From 70b397784a6cb32fddda1646aa936ac7bff17c3e Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Thu, 28 Nov 2024 22:15:17 -0600 Subject: [PATCH 01/15] Complete sliding sidebar --- ios/Cove/Cove.swift | 14644 +++++++++------- ios/Cove/CoveApp.swift | 9 +- .../SelectedWalletContainer.swift | 24 +- .../WalletBalanceHeaderView.swift | 2 +- ios/Cove/SidebarContainer.swift | 96 + ios/Cove/Views/SidebarView.swift | 130 +- rust/src/wallet/metadata.rs | 4 +- 7 files changed, 8720 insertions(+), 6189 deletions(-) create mode 100644 ios/Cove/SidebarContainer.swift diff --git a/ios/Cove/Cove.swift b/ios/Cove/Cove.swift index 18882341..c097f51b 100644 --- a/ios/Cove/Cove.swift +++ b/ios/Cove/Cove.swift @@ -8,10 +8,10 @@ import Foundation // might be in a separate module, or it might be compiled inline into // this module. This is a bit of light hackery to work with both. #if canImport(coveFFI) - import coveFFI +import coveFFI #endif -private extension RustBuffer { +fileprivate extension RustBuffer { // Allocate a new buffer, copying the contents of a `UInt8` array. init(bytes: [UInt8]) { let rbuf = bytes.withUnsafeBufferPointer { ptr in @@ -21,7 +21,7 @@ private extension RustBuffer { } static func empty() -> RustBuffer { - RustBuffer(capacity: 0, len: 0, data: nil) + RustBuffer(capacity: 0, len:0, data: nil) } static func from(_ ptr: UnsafeBufferPointer) -> RustBuffer { @@ -35,7 +35,7 @@ private extension RustBuffer { } } -private extension ForeignBytes { +fileprivate extension ForeignBytes { init(bufferPointer: UnsafeBufferPointer) { self.init(len: Int32(bufferPointer.count), data: bufferPointer.baseAddress) } @@ -48,7 +48,7 @@ private extension ForeignBytes { // Helper classes/extensions that don't change. // Someday, this will be in a library of its own. -private extension Data { +fileprivate extension Data { init(rustBuffer: RustBuffer) { self.init( bytesNoCopy: rustBuffer.data!, @@ -72,15 +72,15 @@ private extension Data { // // Instead, the read() method and these helper functions input a tuple of data -private func createReader(data: Data) -> (data: Data, offset: Data.Index) { +fileprivate func createReader(data: Data) -> (data: Data, offset: Data.Index) { (data: data, offset: 0) } // Reads an integer at the current offset, in big-endian order, and advances // the offset on success. Throws if reading the integer would move the // offset past the end of the buffer. -private func readInt(_ reader: inout (data: Data, offset: Data.Index)) throws -> T { - let range = reader.offset ..< reader.offset + MemoryLayout.size +fileprivate func readInt(_ reader: inout (data: Data, offset: Data.Index)) throws -> T { + let range = reader.offset...size guard reader.data.count >= range.upperBound else { throw UniffiInternalError.bufferOverflow } @@ -90,50 +90,50 @@ private func readInt(_ reader: inout (data: Data, offset: return value as! T } var value: T = 0 - let _ = withUnsafeMutableBytes(of: &value) { reader.data.copyBytes(to: $0, from: range) } + let _ = withUnsafeMutableBytes(of: &value, { reader.data.copyBytes(to: $0, from: range)}) reader.offset = range.upperBound return value.bigEndian } // Reads an arbitrary number of bytes, to be used to read // raw bytes, this is useful when lifting strings -private func readBytes(_ reader: inout (data: Data, offset: Data.Index), count: Int) throws -> [UInt8] { - let range = reader.offset ..< (reader.offset + count) +fileprivate func readBytes(_ reader: inout (data: Data, offset: Data.Index), count: Int) throws -> Array { + let range = reader.offset..<(reader.offset+count) guard reader.data.count >= range.upperBound else { throw UniffiInternalError.bufferOverflow } var value = [UInt8](repeating: 0, count: count) - value.withUnsafeMutableBufferPointer { buffer in + value.withUnsafeMutableBufferPointer({ buffer in reader.data.copyBytes(to: buffer, from: range) - } + }) reader.offset = range.upperBound return value } // Reads a float at the current offset. -private func readFloat(_ reader: inout (data: Data, offset: Data.Index)) throws -> Float { - try Float(bitPattern: readInt(&reader)) +fileprivate func readFloat(_ reader: inout (data: Data, offset: Data.Index)) throws -> Float { + return Float(bitPattern: try readInt(&reader)) } // Reads a float at the current offset. -private func readDouble(_ reader: inout (data: Data, offset: Data.Index)) throws -> Double { - try Double(bitPattern: readInt(&reader)) +fileprivate func readDouble(_ reader: inout (data: Data, offset: Data.Index)) throws -> Double { + return Double(bitPattern: try readInt(&reader)) } // Indicates if the offset has reached the end of the buffer. -private func hasRemaining(_ reader: (data: Data, offset: Data.Index)) -> Bool { - reader.offset < reader.data.count +fileprivate func hasRemaining(_ reader: (data: Data, offset: Data.Index)) -> Bool { + return reader.offset < reader.data.count } // Define writer functionality. Normally this would be defined in a class or // struct, but we use standalone functions instead in order to make external // types work. See the above discussion on Readers for details. -private func createWriter() -> [UInt8] { - [] +fileprivate func createWriter() -> [UInt8] { + return [] } -private func writeBytes(_ writer: inout [UInt8], _ byteArr: some Sequence) { +fileprivate func writeBytes(_ writer: inout [UInt8], _ byteArr: S) where S: Sequence, S.Element == UInt8 { writer.append(contentsOf: byteArr) } @@ -141,22 +141,22 @@ private func writeBytes(_ writer: inout [UInt8], _ byteArr: some Sequence // // Warning: make sure what you are trying to write // is in the correct type! -private func writeInt(_ writer: inout [UInt8], _ value: some FixedWidthInteger) { +fileprivate func writeInt(_ writer: inout [UInt8], _ value: T) { var value = value.bigEndian withUnsafeBytes(of: &value) { writer.append(contentsOf: $0) } } -private func writeFloat(_ writer: inout [UInt8], _ value: Float) { +fileprivate func writeFloat(_ writer: inout [UInt8], _ value: Float) { writeInt(&writer, value.bitPattern) } -private func writeDouble(_ writer: inout [UInt8], _ value: Double) { +fileprivate func writeDouble(_ writer: inout [UInt8], _ value: Double) { writeInt(&writer, value.bitPattern) } // Protocol for types that transfer other types across the FFI. This is // analogous to the Rust trait of the same name. -private protocol FfiConverter { +fileprivate protocol FfiConverter { associatedtype FfiType associatedtype SwiftType @@ -167,32 +167,32 @@ private protocol FfiConverter { } // Types conforming to `Primitive` pass themselves directly over the FFI. -private protocol FfiConverterPrimitive: FfiConverter where FfiType == SwiftType {} +fileprivate protocol FfiConverterPrimitive: FfiConverter where FfiType == SwiftType { } extension FfiConverterPrimitive { - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ value: FfiType) throws -> SwiftType { - value + return value } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ value: SwiftType) -> FfiType { - value + return value } } // Types conforming to `FfiConverterRustBuffer` lift and lower into a `RustBuffer`. // Used for complex types where it's hard to write a custom lift/lower. -private protocol FfiConverterRustBuffer: FfiConverter where FfiType == RustBuffer {} +fileprivate protocol FfiConverterRustBuffer: FfiConverter where FfiType == RustBuffer {} extension FfiConverterRustBuffer { - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ buf: RustBuffer) throws -> SwiftType { var reader = createReader(data: Data(rustBuffer: buf)) let value = try read(from: &reader) @@ -203,19 +203,18 @@ extension FfiConverterRustBuffer { return value } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ value: SwiftType) -> RustBuffer { - var writer = createWriter() - write(value, into: &writer) - return RustBuffer(bytes: writer) + var writer = createWriter() + write(value, into: &writer) + return RustBuffer(bytes: writer) } } - // An error type for FFI errors. These errors occur at the UniFFI level, not // the library level. -private enum UniffiInternalError: LocalizedError { +fileprivate enum UniffiInternalError: LocalizedError { case bufferOverflow case incompleteData case unexpectedOptionalTag @@ -228,37 +227,37 @@ private enum UniffiInternalError: LocalizedError { public var errorDescription: String? { switch self { - case .bufferOverflow: "Reading the requested value would read past the end of the buffer" - case .incompleteData: "The buffer still has data after lifting its containing value" - case .unexpectedOptionalTag: "Unexpected optional tag; should be 0 or 1" - case .unexpectedEnumCase: "Raw enum value doesn't match any cases" - case .unexpectedNullPointer: "Raw pointer value was null" - case .unexpectedRustCallStatusCode: "Unexpected RustCallStatus code" - case .unexpectedRustCallError: "CALL_ERROR but no errorClass specified" - case .unexpectedStaleHandle: "The object in the handle map has been dropped already" - case let .rustPanic(message): message + case .bufferOverflow: return "Reading the requested value would read past the end of the buffer" + case .incompleteData: return "The buffer still has data after lifting its containing value" + case .unexpectedOptionalTag: return "Unexpected optional tag; should be 0 or 1" + case .unexpectedEnumCase: return "Raw enum value doesn't match any cases" + case .unexpectedNullPointer: return "Raw pointer value was null" + case .unexpectedRustCallStatusCode: return "Unexpected RustCallStatus code" + case .unexpectedRustCallError: return "CALL_ERROR but no errorClass specified" + case .unexpectedStaleHandle: return "The object in the handle map has been dropped already" + case let .rustPanic(message): return message } } } -private extension NSLock { +fileprivate extension NSLock { func withLock(f: () throws -> T) rethrows -> T { - lock() + self.lock() defer { self.unlock() } return try f() } } -private let CALL_SUCCESS: Int8 = 0 -private let CALL_ERROR: Int8 = 1 -private let CALL_UNEXPECTED_ERROR: Int8 = 2 -private let CALL_CANCELLED: Int8 = 3 +fileprivate let CALL_SUCCESS: Int8 = 0 +fileprivate let CALL_ERROR: Int8 = 1 +fileprivate let CALL_UNEXPECTED_ERROR: Int8 = 2 +fileprivate let CALL_CANCELLED: Int8 = 3 -private extension RustCallStatus { +fileprivate extension RustCallStatus { init() { self.init( code: CALL_SUCCESS, - errorBuf: RustBuffer( + errorBuf: RustBuffer.init( capacity: 0, len: 0, data: nil @@ -272,67 +271,66 @@ private func rustCall(_ callback: (UnsafeMutablePointer) -> T return try makeRustCall(callback, errorHandler: neverThrow) } -private func rustCallWithError( - _ errorHandler: @escaping (RustBuffer) throws -> some Swift.Error, - _ callback: (UnsafeMutablePointer) -> T -) throws -> T { +private func rustCallWithError( + _ errorHandler: @escaping (RustBuffer) throws -> E, + _ callback: (UnsafeMutablePointer) -> T) throws -> T { try makeRustCall(callback, errorHandler: errorHandler) } -private func makeRustCall( +private func makeRustCall( _ callback: (UnsafeMutablePointer) -> T, - errorHandler: ((RustBuffer) throws -> some Swift.Error)? + errorHandler: ((RustBuffer) throws -> E)? ) throws -> T { uniffiEnsureInitialized() - var callStatus = RustCallStatus() + var callStatus = RustCallStatus.init() let returnedVal = callback(&callStatus) try uniffiCheckCallStatus(callStatus: callStatus, errorHandler: errorHandler) return returnedVal } -private func uniffiCheckCallStatus( +private func uniffiCheckCallStatus( callStatus: RustCallStatus, - errorHandler: ((RustBuffer) throws -> some Swift.Error)? + errorHandler: ((RustBuffer) throws -> E)? ) throws { switch callStatus.code { - case CALL_SUCCESS: - return + case CALL_SUCCESS: + return - case CALL_ERROR: - if let errorHandler { - throw try errorHandler(callStatus.errorBuf) - } else { - callStatus.errorBuf.deallocate() - throw UniffiInternalError.unexpectedRustCallError - } + case CALL_ERROR: + if let errorHandler = errorHandler { + throw try errorHandler(callStatus.errorBuf) + } else { + callStatus.errorBuf.deallocate() + throw UniffiInternalError.unexpectedRustCallError + } - case CALL_UNEXPECTED_ERROR: - // When the rust code sees a panic, it tries to construct a RustBuffer - // with the message. But if that code panics, then it just sends back - // an empty buffer. - if callStatus.errorBuf.len > 0 { - throw try UniffiInternalError.rustPanic(FfiConverterString.lift(callStatus.errorBuf)) - } else { - callStatus.errorBuf.deallocate() - throw UniffiInternalError.rustPanic("Rust panic") - } + case CALL_UNEXPECTED_ERROR: + // When the rust code sees a panic, it tries to construct a RustBuffer + // with the message. But if that code panics, then it just sends back + // an empty buffer. + if callStatus.errorBuf.len > 0 { + throw UniffiInternalError.rustPanic(try FfiConverterString.lift(callStatus.errorBuf)) + } else { + callStatus.errorBuf.deallocate() + throw UniffiInternalError.rustPanic("Rust panic") + } - case CALL_CANCELLED: - fatalError("Cancellation not supported yet") + case CALL_CANCELLED: + fatalError("Cancellation not supported yet") - default: - throw UniffiInternalError.unexpectedRustCallStatusCode + default: + throw UniffiInternalError.unexpectedRustCallStatusCode } } private func uniffiTraitInterfaceCall( callStatus: UnsafeMutablePointer, makeCall: () throws -> T, - writeReturn: (T) -> Void + writeReturn: (T) -> () ) { do { try writeReturn(makeCall()) - } catch { + } catch let error { callStatus.pointee.code = CALL_UNEXPECTED_ERROR callStatus.pointee.errorBuf = FfiConverterString.lower(String(describing: error)) } @@ -341,7 +339,7 @@ private func uniffiTraitInterfaceCall( private func uniffiTraitInterfaceCallWithError( callStatus: UnsafeMutablePointer, makeCall: () throws -> T, - writeReturn: (T) -> Void, + writeReturn: (T) -> (), lowerError: (E) -> RustBuffer ) { do { @@ -354,8 +352,7 @@ private func uniffiTraitInterfaceCallWithError( callStatus.pointee.errorBuf = FfiConverterString.lower(String(describing: error)) } } - -private final class UniffiHandleMap: @unchecked Sendable { +fileprivate final class UniffiHandleMap: @unchecked Sendable { // All mutation happens with this lock held, which is why we implement @unchecked Sendable. private let lock = NSLock() private var map: [UInt64: T] = [:] @@ -370,7 +367,7 @@ private final class UniffiHandleMap: @unchecked Sendable { } } - func get(handle: UInt64) throws -> T { + func get(handle: UInt64) throws -> T { try lock.withLock { guard let obj = map[handle] else { throw UniffiInternalError.unexpectedStaleHandle @@ -390,21 +387,25 @@ private final class UniffiHandleMap: @unchecked Sendable { } var count: Int { - map.count + get { + map.count + } } } + // Public interface members begin here. + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterUInt8: FfiConverterPrimitive { +fileprivate struct FfiConverterUInt8: FfiConverterPrimitive { typealias FfiType = UInt8 typealias SwiftType = UInt8 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt8 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: UInt8, into buf: inout [UInt8]) { @@ -413,14 +414,14 @@ private struct FfiConverterUInt8: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterUInt16: FfiConverterPrimitive { +fileprivate struct FfiConverterUInt16: FfiConverterPrimitive { typealias FfiType = UInt16 typealias SwiftType = UInt16 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt16 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: SwiftType, into buf: inout [UInt8]) { @@ -429,14 +430,14 @@ private struct FfiConverterUInt16: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterUInt32: FfiConverterPrimitive { +fileprivate struct FfiConverterUInt32: FfiConverterPrimitive { typealias FfiType = UInt32 typealias SwiftType = UInt32 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt32 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: SwiftType, into buf: inout [UInt8]) { @@ -445,14 +446,14 @@ private struct FfiConverterUInt32: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterInt32: FfiConverterPrimitive { +fileprivate struct FfiConverterInt32: FfiConverterPrimitive { typealias FfiType = Int32 typealias SwiftType = Int32 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Int32 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: Int32, into buf: inout [UInt8]) { @@ -461,14 +462,14 @@ private struct FfiConverterInt32: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterUInt64: FfiConverterPrimitive { +fileprivate struct FfiConverterUInt64: FfiConverterPrimitive { typealias FfiType = UInt64 typealias SwiftType = UInt64 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt64 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: SwiftType, into buf: inout [UInt8]) { @@ -477,14 +478,14 @@ private struct FfiConverterUInt64: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterDouble: FfiConverterPrimitive { +fileprivate struct FfiConverterDouble: FfiConverterPrimitive { typealias FfiType = Double typealias SwiftType = Double public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Double { - try lift(readDouble(&buf)) + return try lift(readDouble(&buf)) } public static func write(_ value: Double, into buf: inout [UInt8]) { @@ -493,22 +494,22 @@ private struct FfiConverterDouble: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterBool: FfiConverter { +fileprivate struct FfiConverterBool : FfiConverter { typealias FfiType = Int8 typealias SwiftType = Bool public static func lift(_ value: Int8) throws -> Bool { - value != 0 + return value != 0 } public static func lower(_ value: Bool) -> Int8 { - value ? 1 : 0 + return value ? 1 : 0 } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bool { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: Bool, into buf: inout [UInt8]) { @@ -517,9 +518,9 @@ private struct FfiConverterBool: FfiConverter { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterString: FfiConverter { +fileprivate struct FfiConverterString: FfiConverter { typealias SwiftType = String typealias FfiType = RustBuffer @@ -535,7 +536,7 @@ private struct FfiConverterString: FfiConverter { } public static func lower(_ value: String) -> RustBuffer { - value.utf8CString.withUnsafeBufferPointer { ptr in + return value.utf8CString.withUnsafeBufferPointer { ptr in // The swift string gives us int8_t, we want uint8_t. ptr.withMemoryRebound(to: UInt8.self) { ptr in // The swift string gives us a trailing null byte, we don't want it. @@ -547,7 +548,7 @@ private struct FfiConverterString: FfiConverter { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> String { let len: Int32 = try readInt(&buf) - return try String(bytes: readBytes(&buf, count: Int(len)), encoding: String.Encoding.utf8)! + return String(bytes: try readBytes(&buf, count: Int(len)), encoding: String.Encoding.utf8)! } public static func write(_ value: String, into buf: inout [UInt8]) { @@ -558,14 +559,14 @@ private struct FfiConverterString: FfiConverter { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterData: FfiConverterRustBuffer { +fileprivate struct FfiConverterData: FfiConverterRustBuffer { typealias SwiftType = Data public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Data { let len: Int32 = try readInt(&buf) - return try Data(readBytes(&buf, count: Int(len))) + return Data(try readBytes(&buf, count: Int(len))) } public static func write(_ value: Data, into buf: inout [UInt8]) { @@ -576,9 +577,9 @@ private struct FfiConverterData: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterDuration: FfiConverterRustBuffer { +fileprivate struct FfiConverterDuration: FfiConverterRustBuffer { typealias SwiftType = TimeInterval public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TimeInterval { @@ -603,21 +604,25 @@ private struct FfiConverterDuration: FfiConverterRustBuffer { } } -public protocol AddressProtocol: AnyObject { - func spacedOut() -> String - func string() -> String + + +public protocol AddressProtocol : AnyObject { + + func spacedOut() -> String + + func string() -> String + } open class Address: - AddressProtocol -{ + AddressProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -625,7 +630,7 @@ open class Address: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -634,71 +639,78 @@ open class Address: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_address(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_address(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_address(pointer, $0) } } - public static func fromString(address: String) throws -> Address { - try FfiConverterTypeAddress.lift(rustCallWithError(FfiConverterTypeAddressError.lift) { - uniffi_cove_fn_constructor_address_from_string( - FfiConverterString.lower(address), $0 - ) - }) - } - - public static func previewNew() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_constructor_address_preview_new($0 - ) - }) - } + +public static func fromString(address: String)throws -> Address { + return try FfiConverterTypeAddress.lift(try rustCallWithError(FfiConverterTypeAddressError.lift) { + uniffi_cove_fn_constructor_address_from_string( + FfiConverterString.lower(address),$0 + ) +}) +} + +public static func previewNew() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_constructor_address_preview_new($0 + ) +}) +} + - open func spacedOut() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_address_spaced_out(self.uniffiClonePointer(), $0) - }) - } + +open func spacedOut() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_address_spaced_out(self.uniffiClonePointer(),$0 + ) +}) +} + +open func string() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_address_string(self.uniffiClonePointer(),$0 + ) +}) +} + - open func string() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_address_string(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddress: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Address public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Address { - Address(unsafeFromRawPointer: pointer) + return Address(unsafeFromRawPointer: pointer) } public static func lower(_ value: Address) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Address { @@ -706,7 +718,7 @@ public struct FfiConverterTypeAddress: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -719,37 +731,44 @@ public struct FfiConverterTypeAddress: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddress_lift(_ pointer: UnsafeMutableRawPointer) throws -> Address { - try FfiConverterTypeAddress.lift(pointer) + return try FfiConverterTypeAddress.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddress_lower(_ value: Address) -> UnsafeMutableRawPointer { - FfiConverterTypeAddress.lower(value) + return FfiConverterTypeAddress.lower(value) } -public protocol AddressInfoProtocol: AnyObject { - func address() -> Address - func adressString() -> String - func index() -> UInt32 + +public protocol AddressInfoProtocol : AnyObject { + + func address() -> Address + + func adressString() -> String + + func index() -> UInt32 + } open class AddressInfo: - AddressInfoProtocol -{ + AddressInfoProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -757,7 +776,7 @@ open class AddressInfo: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -766,62 +785,70 @@ open class AddressInfo: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_addressinfo(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_addressinfo(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_addressinfo(pointer, $0) } } - open func address() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_method_addressinfo_address(self.uniffiClonePointer(), $0) - }) - } + - open func adressString() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_addressinfo_adress_string(self.uniffiClonePointer(), $0) - }) - } + +open func address() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_method_addressinfo_address(self.uniffiClonePointer(),$0 + ) +}) +} + +open func adressString() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_addressinfo_adress_string(self.uniffiClonePointer(),$0 + ) +}) +} + +open func index() -> UInt32 { + return try! FfiConverterUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_addressinfo_index(self.uniffiClonePointer(),$0 + ) +}) +} + - open func index() -> UInt32 { - try! FfiConverterUInt32.lift(try! rustCall { - uniffi_cove_fn_method_addressinfo_index(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddressInfo: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = AddressInfo public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressInfo { - AddressInfo(unsafeFromRawPointer: pointer) + return AddressInfo(unsafeFromRawPointer: pointer) } public static func lower(_ value: AddressInfo) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressInfo { @@ -829,7 +856,7 @@ public struct FfiConverterTypeAddressInfo: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -842,37 +869,44 @@ public struct FfiConverterTypeAddressInfo: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressInfo_lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressInfo { - try FfiConverterTypeAddressInfo.lift(pointer) + return try FfiConverterTypeAddressInfo.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressInfo_lower(_ value: AddressInfo) -> UnsafeMutableRawPointer { - FfiConverterTypeAddressInfo.lower(value) + return FfiConverterTypeAddressInfo.lower(value) } -public protocol AddressWithNetworkProtocol: AnyObject { - func address() -> Address - func amount() -> Amount? - func network() -> Network + +public protocol AddressWithNetworkProtocol : AnyObject { + + func address() -> Address + + func amount() -> Amount? + + func network() -> Network + } open class AddressWithNetwork: - AddressWithNetworkProtocol -{ + AddressWithNetworkProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -880,7 +914,7 @@ open class AddressWithNetwork: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -889,70 +923,78 @@ open class AddressWithNetwork: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_addresswithnetwork(self.pointer, $0) } - } - - public convenience init(address: String) throws { - let pointer = - try rustCallWithError(FfiConverterTypeAddressError.lift) { - uniffi_cove_fn_constructor_addresswithnetwork_new( - FfiConverterString.lower(address), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_addresswithnetwork(self.pointer, $0) } } +public convenience init(address: String)throws { + let pointer = + try rustCallWithError(FfiConverterTypeAddressError.lift) { + uniffi_cove_fn_constructor_addresswithnetwork_new( + FfiConverterString.lower(address),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_addresswithnetwork(pointer, $0) } } - open func address() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_method_addresswithnetwork_address(self.uniffiClonePointer(), $0) - }) - } + - open func amount() -> Amount? { - try! FfiConverterOptionTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_addresswithnetwork_amount(self.uniffiClonePointer(), $0) - }) - } + +open func address() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_method_addresswithnetwork_address(self.uniffiClonePointer(),$0 + ) +}) +} + +open func amount() -> Amount? { + return try! FfiConverterOptionTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_addresswithnetwork_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func network() -> Network { + return try! FfiConverterTypeNetwork.lift(try! rustCall() { + uniffi_cove_fn_method_addresswithnetwork_network(self.uniffiClonePointer(),$0 + ) +}) +} + - open func network() -> Network { - try! FfiConverterTypeNetwork.lift(try! rustCall { - uniffi_cove_fn_method_addresswithnetwork_network(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddressWithNetwork: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = AddressWithNetwork public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressWithNetwork { - AddressWithNetwork(unsafeFromRawPointer: pointer) + return AddressWithNetwork(unsafeFromRawPointer: pointer) } public static func lower(_ value: AddressWithNetwork) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressWithNetwork { @@ -960,7 +1002,7 @@ public struct FfiConverterTypeAddressWithNetwork: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -973,45 +1015,52 @@ public struct FfiConverterTypeAddressWithNetwork: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressWithNetwork_lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressWithNetwork { - try FfiConverterTypeAddressWithNetwork.lift(pointer) + return try FfiConverterTypeAddressWithNetwork.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressWithNetwork_lower(_ value: AddressWithNetwork) -> UnsafeMutableRawPointer { - FfiConverterTypeAddressWithNetwork.lower(value) + return FfiConverterTypeAddressWithNetwork.lower(value) } -public protocol AmountProtocol: AnyObject { - func asBtc() -> Double - - func asSats() -> UInt64 - - func btcString() -> String - - func btcStringWithUnit() -> String - func fmtStringWithUnit(unit: Unit) -> String - func satsString() -> String - func satsStringWithUnit() -> String +public protocol AmountProtocol : AnyObject { + + func asBtc() -> Double + + func asSats() -> UInt64 + + func btcString() -> String + + func btcStringWithUnit() -> String + + func fmtStringWithUnit(unit: Unit) -> String + + func satsString() -> String + + func satsStringWithUnit() -> String + } open class Amount: - AmountProtocol -{ + AmountProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1019,7 +1068,7 @@ open class Amount: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1028,109 +1077,121 @@ open class Amount: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_amount(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_amount(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_amount(pointer, $0) } } - public static func fromSat(sats: UInt64) -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_constructor_amount_from_sat( - FfiConverterUInt64.lower(sats), $0 - ) - }) - } - - public static func oneBtc() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_constructor_amount_one_btc($0 - ) - }) - } - - public static func oneSat() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_constructor_amount_one_sat($0 - ) - }) - } - - open func asBtc() -> Double { - try! FfiConverterDouble.lift(try! rustCall { - uniffi_cove_fn_method_amount_as_btc(self.uniffiClonePointer(), $0) - }) - } - - open func asSats() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_amount_as_sats(self.uniffiClonePointer(), $0) - }) - } - - open func btcString() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_btc_string(self.uniffiClonePointer(), $0) - }) - } - - open func btcStringWithUnit() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_btc_string_with_unit(self.uniffiClonePointer(), $0) - }) - } - - open func fmtStringWithUnit(unit: Unit) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_fmt_string_with_unit(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } + +public static func fromSat(sats: UInt64) -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_constructor_amount_from_sat( + FfiConverterUInt64.lower(sats),$0 + ) +}) +} + +public static func oneBtc() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_constructor_amount_one_btc($0 + ) +}) +} + +public static func oneSat() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_constructor_amount_one_sat($0 + ) +}) +} + - open func satsString() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_sats_string(self.uniffiClonePointer(), $0) - }) - } + +open func asBtc() -> Double { + return try! FfiConverterDouble.lift(try! rustCall() { + uniffi_cove_fn_method_amount_as_btc(self.uniffiClonePointer(),$0 + ) +}) +} + +open func asSats() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_amount_as_sats(self.uniffiClonePointer(),$0 + ) +}) +} + +open func btcString() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_btc_string(self.uniffiClonePointer(),$0 + ) +}) +} + +open func btcStringWithUnit() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_btc_string_with_unit(self.uniffiClonePointer(),$0 + ) +}) +} + +open func fmtStringWithUnit(unit: Unit) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_fmt_string_with_unit(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func satsString() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_sats_string(self.uniffiClonePointer(),$0 + ) +}) +} + +open func satsStringWithUnit() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_sats_string_with_unit(self.uniffiClonePointer(),$0 + ) +}) +} + - open func satsStringWithUnit() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_sats_string_with_unit(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAmount: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Amount public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Amount { - Amount(unsafeFromRawPointer: pointer) + return Amount(unsafeFromRawPointer: pointer) } public static func lower(_ value: Amount) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Amount { @@ -1138,7 +1199,7 @@ public struct FfiConverterTypeAmount: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1151,35 +1212,42 @@ public struct FfiConverterTypeAmount: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAmount_lift(_ pointer: UnsafeMutableRawPointer) throws -> Amount { - try FfiConverterTypeAmount.lift(pointer) + return try FfiConverterTypeAmount.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAmount_lower(_ value: Amount) -> UnsafeMutableRawPointer { - FfiConverterTypeAmount.lower(value) + return FfiConverterTypeAmount.lower(value) } -public protocol AutoComplete: AnyObject { - func autocomplete(word: String) -> [String] - func isValidWord(word: String) -> Bool + + +public protocol AutoComplete : AnyObject { + + func autocomplete(word: String) -> [String] + + func isValidWord(word: String) -> Bool + } open class AutoCompleteImpl: - AutoComplete -{ + AutoComplete { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1187,7 +1255,7 @@ open class AutoCompleteImpl: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1196,45 +1264,50 @@ open class AutoCompleteImpl: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_autocomplete(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_autocomplete(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_autocomplete(pointer, $0) } } - open func autocomplete(word: String) -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_autocomplete_autocomplete(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } + - open func isValidWord(word: String) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_autocomplete_is_valid_word(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } + +open func autocomplete(word: String) -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_autocomplete_autocomplete(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) } + +open func isValidWord(word: String) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_autocomplete_is_valid_word(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) +} + +} // Magic number for the Rust proxy to call using the same mechanism as every other method, // to free the callback once it's dropped by Rust. private let IDX_CALLBACK_FREE: Int32 = 0 @@ -1244,7 +1317,8 @@ private let UNIFFI_CALLBACK_ERROR: Int32 = 1 private let UNIFFI_CALLBACK_UNEXPECTED_ERROR: Int32 = 2 // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceAutoComplete { +fileprivate struct UniffiCallbackInterfaceAutoComplete { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -1262,11 +1336,12 @@ private enum UniffiCallbackInterfaceAutoComplete { guard let uniffiObj = try? FfiConverterTypeAutoComplete.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.autocomplete( - word: FfiConverterString.lift(word) + return uniffiObj.autocomplete( + word: try FfiConverterString.lift(word) ) } + let writeReturn = { uniffiOutReturn.pointee = FfiConverterSequenceString.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -1285,11 +1360,12 @@ private enum UniffiCallbackInterfaceAutoComplete { guard let uniffiObj = try? FfiConverterTypeAutoComplete.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.isValidWord( - word: FfiConverterString.lift(word) + return uniffiObj.isValidWord( + word: try FfiConverterString.lift(word) ) } + let writeReturn = { uniffiOutReturn.pointee = FfiConverterBool.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -1297,7 +1373,7 @@ private enum UniffiCallbackInterfaceAutoComplete { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterTypeAutoComplete.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface AutoComplete: handle missing in uniffiFree") @@ -1311,7 +1387,7 @@ private func uniffiCallbackInitAutoComplete() { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAutoComplete: FfiConverter { fileprivate static let handleMap = UniffiHandleMap() @@ -1320,7 +1396,7 @@ public struct FfiConverterTypeAutoComplete: FfiConverter { typealias SwiftType = AutoComplete public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> AutoComplete { - AutoCompleteImpl(unsafeFromRawPointer: pointer) + return AutoCompleteImpl(unsafeFromRawPointer: pointer) } public static func lower(_ value: AutoComplete) -> UnsafeMutableRawPointer { @@ -1335,7 +1411,7 @@ public struct FfiConverterTypeAutoComplete: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1348,37 +1424,44 @@ public struct FfiConverterTypeAutoComplete: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAutoComplete_lift(_ pointer: UnsafeMutableRawPointer) throws -> AutoComplete { - try FfiConverterTypeAutoComplete.lift(pointer) + return try FfiConverterTypeAutoComplete.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAutoComplete_lower(_ value: AutoComplete) -> UnsafeMutableRawPointer { - FfiConverterTypeAutoComplete.lower(value) + return FfiConverterTypeAutoComplete.lower(value) } -public protocol BbqrJoinResultProtocol: AnyObject { - func finalResult() throws -> String - func isComplete() -> Bool - func partsLeft() -> UInt32 + +public protocol BbqrJoinResultProtocol : AnyObject { + + func finalResult() throws -> String + + func isComplete() -> Bool + + func partsLeft() -> UInt32 + } open class BbqrJoinResult: - BbqrJoinResultProtocol -{ + BbqrJoinResultProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1386,7 +1469,7 @@ open class BbqrJoinResult: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1395,62 +1478,70 @@ open class BbqrJoinResult: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bbqrjoinresult(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_bbqrjoinresult(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bbqrjoinresult(pointer, $0) } } - open func finalResult() throws -> String { - try FfiConverterString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_bbqrjoinresult_final_result(self.uniffiClonePointer(), $0) - }) - } + - open func isComplete() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_bbqrjoinresult_is_complete(self.uniffiClonePointer(), $0) - }) - } + +open func finalResult()throws -> String { + return try FfiConverterString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_bbqrjoinresult_final_result(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isComplete() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_bbqrjoinresult_is_complete(self.uniffiClonePointer(),$0 + ) +}) +} + +open func partsLeft() -> UInt32 { + return try! FfiConverterUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_bbqrjoinresult_parts_left(self.uniffiClonePointer(),$0 + ) +}) +} + - open func partsLeft() -> UInt32 { - try! FfiConverterUInt32.lift(try! rustCall { - uniffi_cove_fn_method_bbqrjoinresult_parts_left(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBbqrJoinResult: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BbqrJoinResult public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoinResult { - BbqrJoinResult(unsafeFromRawPointer: pointer) + return BbqrJoinResult(unsafeFromRawPointer: pointer) } public static func lower(_ value: BbqrJoinResult) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BbqrJoinResult { @@ -1458,7 +1549,7 @@ public struct FfiConverterTypeBbqrJoinResult: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1471,35 +1562,42 @@ public struct FfiConverterTypeBbqrJoinResult: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoinResult_lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoinResult { - try FfiConverterTypeBbqrJoinResult.lift(pointer) + return try FfiConverterTypeBbqrJoinResult.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoinResult_lower(_ value: BbqrJoinResult) -> UnsafeMutableRawPointer { - FfiConverterTypeBbqrJoinResult.lower(value) + return FfiConverterTypeBbqrJoinResult.lower(value) } -public protocol BbqrJoinedProtocol: AnyObject { - func getGroupedWords(chunks: UInt8) throws -> [[String]] - func getSeedWords() throws -> [String] + + +public protocol BbqrJoinedProtocol : AnyObject { + + func getGroupedWords(chunks: UInt8) throws -> [[String]] + + func getSeedWords() throws -> [String] + } open class BbqrJoined: - BbqrJoinedProtocol -{ + BbqrJoinedProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1507,7 +1605,7 @@ open class BbqrJoined: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1516,57 +1614,64 @@ open class BbqrJoined: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bbqrjoined(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_bbqrjoined(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bbqrjoined(pointer, $0) } } - open func getGroupedWords(chunks: UInt8) throws -> [[String]] { - try FfiConverterSequenceSequenceString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_bbqrjoined_get_grouped_words(self.uniffiClonePointer(), - FfiConverterUInt8.lower(chunks), $0) - }) - } + + + +open func getGroupedWords(chunks: UInt8)throws -> [[String]] { + return try FfiConverterSequenceSequenceString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_bbqrjoined_get_grouped_words(self.uniffiClonePointer(), + FfiConverterUInt8.lower(chunks),$0 + ) +}) +} + +open func getSeedWords()throws -> [String] { + return try FfiConverterSequenceString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_bbqrjoined_get_seed_words(self.uniffiClonePointer(),$0 + ) +}) +} + - open func getSeedWords() throws -> [String] { - try FfiConverterSequenceString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_bbqrjoined_get_seed_words(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBbqrJoined: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BbqrJoined public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoined { - BbqrJoined(unsafeFromRawPointer: pointer) + return BbqrJoined(unsafeFromRawPointer: pointer) } public static func lower(_ value: BbqrJoined) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BbqrJoined { @@ -1574,7 +1679,7 @@ public struct FfiConverterTypeBbqrJoined: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1587,35 +1692,42 @@ public struct FfiConverterTypeBbqrJoined: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoined_lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoined { - try FfiConverterTypeBbqrJoined.lift(pointer) + return try FfiConverterTypeBbqrJoined.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoined_lower(_ value: BbqrJoined) -> UnsafeMutableRawPointer { - FfiConverterTypeBbqrJoined.lower(value) + return FfiConverterTypeBbqrJoined.lower(value) } -public protocol Bip39AutoCompleteProtocol: AnyObject { - func autocomplete(word: String) -> [String] - func isValidWord(word: String) -> Bool + + +public protocol Bip39AutoCompleteProtocol : AnyObject { + + func autocomplete(word: String) -> [String] + + func isValidWord(word: String) -> Bool + } open class Bip39AutoComplete: - Bip39AutoCompleteProtocol -{ + Bip39AutoCompleteProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1623,7 +1735,7 @@ open class Bip39AutoComplete: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1632,65 +1744,72 @@ open class Bip39AutoComplete: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bip39autocomplete(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_bip39autocomplete_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_bip39autocomplete(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_bip39autocomplete_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bip39autocomplete(pointer, $0) } } - open func autocomplete(word: String) -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_bip39autocomplete_autocomplete(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } + + + +open func autocomplete(word: String) -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_bip39autocomplete_autocomplete(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) +} + +open func isValidWord(word: String) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_bip39autocomplete_is_valid_word(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) +} + - open func isValidWord(word: String) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_bip39autocomplete_is_valid_word(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBip39AutoComplete: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Bip39AutoComplete public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39AutoComplete { - Bip39AutoComplete(unsafeFromRawPointer: pointer) + return Bip39AutoComplete(unsafeFromRawPointer: pointer) } public static func lower(_ value: Bip39AutoComplete) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bip39AutoComplete { @@ -1698,7 +1817,7 @@ public struct FfiConverterTypeBip39AutoComplete: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1711,37 +1830,44 @@ public struct FfiConverterTypeBip39AutoComplete: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBip39AutoComplete_lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39AutoComplete { - try FfiConverterTypeBip39AutoComplete.lift(pointer) + return try FfiConverterTypeBip39AutoComplete.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBip39AutoComplete_lower(_ value: Bip39AutoComplete) -> UnsafeMutableRawPointer { - FfiConverterTypeBip39AutoComplete.lower(value) + return FfiConverterTypeBip39AutoComplete.lower(value) } -public protocol Bip39WordSpecificAutocompleteProtocol: AnyObject { - func autocomplete(word: String, allWords: [[String]]) -> [String] - func isBip39Word(word: String) -> Bool - func isValidWord(word: String, allWords: [[String]]) -> Bool + +public protocol Bip39WordSpecificAutocompleteProtocol : AnyObject { + + func autocomplete(word: String, allWords: [[String]]) -> [String] + + func isBip39Word(word: String) -> Bool + + func isValidWord(word: String, allWords: [[String]]) -> Bool + } open class Bip39WordSpecificAutocomplete: - Bip39WordSpecificAutocompleteProtocol -{ + Bip39WordSpecificAutocompleteProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1749,7 +1875,7 @@ open class Bip39WordSpecificAutocomplete: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1758,76 +1884,84 @@ open class Bip39WordSpecificAutocomplete: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bip39wordspecificautocomplete(self.pointer, $0) } - } - - public convenience init(wordNumber: UInt16, numberOfWords: NumberOfBip39Words) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_bip39wordspecificautocomplete_new( - FfiConverterUInt16.lower(wordNumber), - FfiConverterTypeNumberOfBip39Words.lower(numberOfWords), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) - } + return try! rustCall { uniffi_cove_fn_clone_bip39wordspecificautocomplete(self.pointer, $0) } + } +public convenience init(wordNumber: UInt16, numberOfWords: NumberOfBip39Words) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_bip39wordspecificautocomplete_new( + FfiConverterUInt16.lower(wordNumber), + FfiConverterTypeNumberOfBip39Words.lower(numberOfWords),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bip39wordspecificautocomplete(pointer, $0) } } - open func autocomplete(word: String, allWords: [[String]]) -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_bip39wordspecificautocomplete_autocomplete(self.uniffiClonePointer(), - FfiConverterString.lower(word), - FfiConverterSequenceSequenceString.lower(allWords), $0) - }) - } + - open func isBip39Word(word: String) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_bip39wordspecificautocomplete_is_bip39_word(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } + +open func autocomplete(word: String, allWords: [[String]]) -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_bip39wordspecificautocomplete_autocomplete(self.uniffiClonePointer(), + FfiConverterString.lower(word), + FfiConverterSequenceSequenceString.lower(allWords),$0 + ) +}) +} + +open func isBip39Word(word: String) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_bip39wordspecificautocomplete_is_bip39_word(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) +} + +open func isValidWord(word: String, allWords: [[String]]) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_bip39wordspecificautocomplete_is_valid_word(self.uniffiClonePointer(), + FfiConverterString.lower(word), + FfiConverterSequenceSequenceString.lower(allWords),$0 + ) +}) +} + - open func isValidWord(word: String, allWords: [[String]]) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_bip39wordspecificautocomplete_is_valid_word(self.uniffiClonePointer(), - FfiConverterString.lower(word), - FfiConverterSequenceSequenceString.lower(allWords), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBip39WordSpecificAutocomplete: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Bip39WordSpecificAutocomplete public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39WordSpecificAutocomplete { - Bip39WordSpecificAutocomplete(unsafeFromRawPointer: pointer) + return Bip39WordSpecificAutocomplete(unsafeFromRawPointer: pointer) } public static func lower(_ value: Bip39WordSpecificAutocomplete) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bip39WordSpecificAutocomplete { @@ -1835,7 +1969,7 @@ public struct FfiConverterTypeBip39WordSpecificAutocomplete: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1848,37 +1982,44 @@ public struct FfiConverterTypeBip39WordSpecificAutocomplete: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBip39WordSpecificAutocomplete_lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39WordSpecificAutocomplete { - try FfiConverterTypeBip39WordSpecificAutocomplete.lift(pointer) + return try FfiConverterTypeBip39WordSpecificAutocomplete.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBip39WordSpecificAutocomplete_lower(_ value: Bip39WordSpecificAutocomplete) -> UnsafeMutableRawPointer { - FfiConverterTypeBip39WordSpecificAutocomplete.lower(value) + return FfiConverterTypeBip39WordSpecificAutocomplete.lower(value) } -public protocol BitcoinTransactionProtocol: AnyObject { - func normalizeTxId() -> String - func txId() -> TxId - func txIdHash() -> String + +public protocol BitcoinTransactionProtocol : AnyObject { + + func normalizeTxId() -> String + + func txId() -> TxId + + func txIdHash() -> String + } open class BitcoinTransaction: - BitcoinTransactionProtocol -{ + BitcoinTransactionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1886,7 +2027,7 @@ open class BitcoinTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1895,78 +2036,86 @@ open class BitcoinTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bitcointransaction(self.pointer, $0) } - } - - public convenience init(txHex: String) throws { - let pointer = - try rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { - uniffi_cove_fn_constructor_bitcointransaction_new( - FfiConverterString.lower(txHex), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_bitcointransaction(self.pointer, $0) } } +public convenience init(txHex: String)throws { + let pointer = + try rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { + uniffi_cove_fn_constructor_bitcointransaction_new( + FfiConverterString.lower(txHex),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bitcointransaction(pointer, $0) } } - public static func tryFromData(data: Data) throws -> BitcoinTransaction { - try FfiConverterTypeBitcoinTransaction.lift(rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { - uniffi_cove_fn_constructor_bitcointransaction_tryfromdata( - FfiConverterData.lower(data), $0 - ) - }) - } - - open func normalizeTxId() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_bitcointransaction_normalize_tx_id(self.uniffiClonePointer(), $0) - }) - } + +public static func tryFromData(data: Data)throws -> BitcoinTransaction { + return try FfiConverterTypeBitcoinTransaction.lift(try rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { + uniffi_cove_fn_constructor_bitcointransaction_tryfromdata( + FfiConverterData.lower(data),$0 + ) +}) +} + - open func txId() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_bitcointransaction_tx_id(self.uniffiClonePointer(), $0) - }) - } + +open func normalizeTxId() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_bitcointransaction_normalize_tx_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func txId() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_bitcointransaction_tx_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func txIdHash() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_bitcointransaction_tx_id_hash(self.uniffiClonePointer(),$0 + ) +}) +} + - open func txIdHash() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_bitcointransaction_tx_id_hash(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBitcoinTransaction: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BitcoinTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BitcoinTransaction { - BitcoinTransaction(unsafeFromRawPointer: pointer) + return BitcoinTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: BitcoinTransaction) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BitcoinTransaction { @@ -1974,7 +2123,7 @@ public struct FfiConverterTypeBitcoinTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1987,33 +2136,40 @@ public struct FfiConverterTypeBitcoinTransaction: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBitcoinTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> BitcoinTransaction { - try FfiConverterTypeBitcoinTransaction.lift(pointer) + return try FfiConverterTypeBitcoinTransaction.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBitcoinTransaction_lower(_ value: BitcoinTransaction) -> UnsafeMutableRawPointer { - FfiConverterTypeBitcoinTransaction.lower(value) + return FfiConverterTypeBitcoinTransaction.lower(value) } -public protocol BoxedRouteProtocol: AnyObject { - func route() -> Route + + + +public protocol BoxedRouteProtocol : AnyObject { + + func route() -> Route + } open class BoxedRoute: - BoxedRouteProtocol -{ + BoxedRouteProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2021,7 +2177,7 @@ open class BoxedRoute: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2030,58 +2186,64 @@ open class BoxedRoute: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_boxedroute(self.pointer, $0) } - } - - public convenience init(route: Route) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_boxedroute_new( - FfiConverterTypeRoute.lower(route), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_boxedroute(self.pointer, $0) } } +public convenience init(route: Route) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_boxedroute_new( + FfiConverterTypeRoute.lower(route),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_boxedroute(pointer, $0) } } - open func route() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_boxedroute_route(self.uniffiClonePointer(), $0) - }) - } + + + +open func route() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_boxedroute_route(self.uniffiClonePointer(),$0 + ) +}) +} + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBoxedRoute: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BoxedRoute public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BoxedRoute { - BoxedRoute(unsafeFromRawPointer: pointer) + return BoxedRoute(unsafeFromRawPointer: pointer) } public static func lower(_ value: BoxedRoute) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BoxedRoute { @@ -2089,7 +2251,7 @@ public struct FfiConverterTypeBoxedRoute: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2102,31 +2264,38 @@ public struct FfiConverterTypeBoxedRoute: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBoxedRoute_lift(_ pointer: UnsafeMutableRawPointer) throws -> BoxedRoute { - try FfiConverterTypeBoxedRoute.lift(pointer) + return try FfiConverterTypeBoxedRoute.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBoxedRoute_lower(_ value: BoxedRoute) -> UnsafeMutableRawPointer { - FfiConverterTypeBoxedRoute.lower(value) + return FfiConverterTypeBoxedRoute.lower(value) } -public protocol ChainPositionProtocol: AnyObject {} + + + +public protocol ChainPositionProtocol : AnyObject { + +} open class ChainPosition: - ChainPositionProtocol -{ + ChainPositionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2134,7 +2303,7 @@ open class ChainPosition: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2143,44 +2312,49 @@ open class ChainPosition: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_chainposition(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_chainposition(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_chainposition(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeChainPosition: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = ChainPosition public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> ChainPosition { - ChainPosition(unsafeFromRawPointer: pointer) + return ChainPosition(unsafeFromRawPointer: pointer) } public static func lower(_ value: ChainPosition) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ChainPosition { @@ -2188,7 +2362,7 @@ public struct FfiConverterTypeChainPosition: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2201,55 +2375,62 @@ public struct FfiConverterTypeChainPosition: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeChainPosition_lift(_ pointer: UnsafeMutableRawPointer) throws -> ChainPosition { - try FfiConverterTypeChainPosition.lift(pointer) + return try FfiConverterTypeChainPosition.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeChainPosition_lower(_ value: ChainPosition) -> UnsafeMutableRawPointer { - FfiConverterTypeChainPosition.lower(value) -} - -public protocol ConfirmDetailsProtocol: AnyObject { - func feeRate() -> FeeRate - - func feeTotal() -> Amount - - func id() -> TxId - - func idHash() -> String - - func isEqual(rhs: ConfirmDetails) -> Bool - - func normalizedId() -> String - - func psbtBytes() -> Data - - func psbtToBbqr() throws -> [String] - - func psbtToHex() -> String - - func sendingAmount() -> Amount - - func sendingTo() -> Address - - func spendingAmount() -> Amount + return FfiConverterTypeChainPosition.lower(value) +} + + + + +public protocol ConfirmDetailsProtocol : AnyObject { + + func feeRate() -> FeeRate + + func feeTotal() -> Amount + + func id() -> TxId + + func idHash() -> String + + func isEqual(rhs: ConfirmDetails) -> Bool + + func normalizedId() -> String + + func psbtBytes() -> Data + + func psbtToBbqr() throws -> [String] + + func psbtToHex() -> String + + func sendingAmount() -> Amount + + func sendingTo() -> Address + + func spendingAmount() -> Amount + } open class ConfirmDetails: - ConfirmDetailsProtocol -{ + ConfirmDetailsProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2257,7 +2438,7 @@ open class ConfirmDetails: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2266,124 +2447,141 @@ open class ConfirmDetails: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_confirmdetails(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_confirmdetails(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_confirmdetails(pointer, $0) } } - public static func previewNew() -> ConfirmDetails { - try! FfiConverterTypeConfirmDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_confirmdetails_preview_new($0 - ) - }) - } - - open func feeRate() -> FeeRate { - try! FfiConverterTypeFeeRate.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_fee_rate(self.uniffiClonePointer(), $0) - }) - } - - open func feeTotal() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_fee_total(self.uniffiClonePointer(), $0) - }) - } - - open func id() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_id(self.uniffiClonePointer(), $0) - }) - } - - open func idHash() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_id_hash(self.uniffiClonePointer(), $0) - }) - } - - open func isEqual(rhs: ConfirmDetails) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_is_equal(self.uniffiClonePointer(), - FfiConverterTypeConfirmDetails.lower(rhs), $0) - }) - } - - open func normalizedId() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_normalized_id(self.uniffiClonePointer(), $0) - }) - } - - open func psbtBytes() -> Data { - try! FfiConverterData.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_psbt_bytes(self.uniffiClonePointer(), $0) - }) - } - - open func psbtToBbqr() throws -> [String] { - try FfiConverterSequenceString.lift(rustCallWithError(FfiConverterTypeConfirmDetailsError.lift) { - uniffi_cove_fn_method_confirmdetails_psbt_to_bbqr(self.uniffiClonePointer(), $0) - }) - } - - open func psbtToHex() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_psbt_to_hex(self.uniffiClonePointer(), $0) - }) - } - - open func sendingAmount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_sending_amount(self.uniffiClonePointer(), $0) - }) - } + +public static func previewNew() -> ConfirmDetails { + return try! FfiConverterTypeConfirmDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_confirmdetails_preview_new($0 + ) +}) +} + - open func sendingTo() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_sending_to(self.uniffiClonePointer(), $0) - }) - } + +open func feeRate() -> FeeRate { + return try! FfiConverterTypeFeeRate.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_fee_rate(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeTotal() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_fee_total(self.uniffiClonePointer(),$0 + ) +}) +} + +open func id() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func idHash() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_id_hash(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEqual(rhs: ConfirmDetails) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_is_equal(self.uniffiClonePointer(), + FfiConverterTypeConfirmDetails.lower(rhs),$0 + ) +}) +} + +open func normalizedId() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_normalized_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func psbtBytes() -> Data { + return try! FfiConverterData.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_psbt_bytes(self.uniffiClonePointer(),$0 + ) +}) +} + +open func psbtToBbqr()throws -> [String] { + return try FfiConverterSequenceString.lift(try rustCallWithError(FfiConverterTypeConfirmDetailsError.lift) { + uniffi_cove_fn_method_confirmdetails_psbt_to_bbqr(self.uniffiClonePointer(),$0 + ) +}) +} + +open func psbtToHex() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_psbt_to_hex(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sendingAmount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_sending_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sendingTo() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_sending_to(self.uniffiClonePointer(),$0 + ) +}) +} + +open func spendingAmount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_spending_amount(self.uniffiClonePointer(),$0 + ) +}) +} + - open func spendingAmount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_spending_amount(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmDetails: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = ConfirmDetails public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmDetails { - ConfirmDetails(unsafeFromRawPointer: pointer) + return ConfirmDetails(unsafeFromRawPointer: pointer) } public static func lower(_ value: ConfirmDetails) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmDetails { @@ -2391,7 +2589,7 @@ public struct FfiConverterTypeConfirmDetails: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2404,49 +2602,56 @@ public struct FfiConverterTypeConfirmDetails: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmDetails_lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmDetails { - try FfiConverterTypeConfirmDetails.lift(pointer) + return try FfiConverterTypeConfirmDetails.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmDetails_lower(_ value: ConfirmDetails) -> UnsafeMutableRawPointer { - FfiConverterTypeConfirmDetails.lower(value) + return FfiConverterTypeConfirmDetails.lower(value) } -public protocol ConfirmedTransactionProtocol: AnyObject { - func blockHeight() -> UInt32 - func blockHeightFmt() -> String - func confirmedAt() -> UInt64 - func confirmedAtFmt() -> String +public protocol ConfirmedTransactionProtocol : AnyObject { + + func blockHeight() -> UInt32 + + func blockHeightFmt() -> String + + func confirmedAt() -> UInt64 + + func confirmedAtFmt() -> String + + func confirmedAtFmtWithTime() -> String + + func fiatAmount() -> FiatAmount? + + func id() -> TxId + + func label() -> String + + func sentAndReceived() -> SentAndReceived + +} - func confirmedAtFmtWithTime() -> String - - func fiatAmount() -> FiatAmount? - - func id() -> TxId - - func label() -> String - - func sentAndReceived() -> SentAndReceived -} - -open class ConfirmedTransaction: - ConfirmedTransactionProtocol -{ - fileprivate let pointer: UnsafeMutableRawPointer! +open class ConfirmedTransaction: + ConfirmedTransactionProtocol { + fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2454,7 +2659,7 @@ open class ConfirmedTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2463,98 +2668,112 @@ open class ConfirmedTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_confirmedtransaction(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_confirmedtransaction(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_confirmedtransaction(pointer, $0) } } - open func blockHeight() -> UInt32 { - try! FfiConverterUInt32.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_block_height(self.uniffiClonePointer(), $0) - }) - } - - open func blockHeightFmt() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_block_height_fmt(self.uniffiClonePointer(), $0) - }) - } - - open func confirmedAt() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_confirmed_at(self.uniffiClonePointer(), $0) - }) - } - - open func confirmedAtFmt() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt(self.uniffiClonePointer(), $0) - }) - } - - open func confirmedAtFmtWithTime() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt_with_time(self.uniffiClonePointer(), $0) - }) - } - - open func fiatAmount() -> FiatAmount? { - try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_fiat_amount(self.uniffiClonePointer(), $0) - }) - } - - open func id() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_id(self.uniffiClonePointer(), $0) - }) - } + - open func label() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_label(self.uniffiClonePointer(), $0) - }) - } + +open func blockHeight() -> UInt32 { + return try! FfiConverterUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_block_height(self.uniffiClonePointer(),$0 + ) +}) +} + +open func blockHeightFmt() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_block_height_fmt(self.uniffiClonePointer(),$0 + ) +}) +} + +open func confirmedAt() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_confirmed_at(self.uniffiClonePointer(),$0 + ) +}) +} + +open func confirmedAtFmt() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt(self.uniffiClonePointer(),$0 + ) +}) +} + +open func confirmedAtFmtWithTime() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt_with_time(self.uniffiClonePointer(),$0 + ) +}) +} + +open func fiatAmount() -> FiatAmount? { + return try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_fiat_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func id() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func label() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_label(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sentAndReceived() -> SentAndReceived { + return try! FfiConverterTypeSentAndReceived.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_sent_and_received(self.uniffiClonePointer(),$0 + ) +}) +} + - open func sentAndReceived() -> SentAndReceived { - try! FfiConverterTypeSentAndReceived.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_sent_and_received(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmedTransaction: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = ConfirmedTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmedTransaction { - ConfirmedTransaction(unsafeFromRawPointer: pointer) + return ConfirmedTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: ConfirmedTransaction) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmedTransaction { @@ -2562,7 +2781,7 @@ public struct FfiConverterTypeConfirmedTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2575,37 +2794,44 @@ public struct FfiConverterTypeConfirmedTransaction: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmedTransaction { - try FfiConverterTypeConfirmedTransaction.lift(pointer) + return try FfiConverterTypeConfirmedTransaction.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedTransaction_lower(_ value: ConfirmedTransaction) -> UnsafeMutableRawPointer { - FfiConverterTypeConfirmedTransaction.lower(value) + return FfiConverterTypeConfirmedTransaction.lower(value) } -public protocol DatabaseProtocol: AnyObject { - func globalConfig() -> GlobalConfigTable - func unsignedTransactions() -> UnsignedTransactionsTable - func wallets() -> WalletsTable + +public protocol DatabaseProtocol : AnyObject { + + func globalConfig() -> GlobalConfigTable + + func unsignedTransactions() -> UnsignedTransactionsTable + + func wallets() -> WalletsTable + } open class Database: - DatabaseProtocol -{ + DatabaseProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2613,7 +2839,7 @@ open class Database: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2622,69 +2848,77 @@ open class Database: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_database(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_database_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_database(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_database_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_database(pointer, $0) } } - open func globalConfig() -> GlobalConfigTable { - try! FfiConverterTypeGlobalConfigTable.lift(try! rustCall { - uniffi_cove_fn_method_database_global_config(self.uniffiClonePointer(), $0) - }) - } + - open func unsignedTransactions() -> UnsignedTransactionsTable { - try! FfiConverterTypeUnsignedTransactionsTable.lift(try! rustCall { - uniffi_cove_fn_method_database_unsigned_transactions(self.uniffiClonePointer(), $0) - }) - } + +open func globalConfig() -> GlobalConfigTable { + return try! FfiConverterTypeGlobalConfigTable.lift(try! rustCall() { + uniffi_cove_fn_method_database_global_config(self.uniffiClonePointer(),$0 + ) +}) +} + +open func unsignedTransactions() -> UnsignedTransactionsTable { + return try! FfiConverterTypeUnsignedTransactionsTable.lift(try! rustCall() { + uniffi_cove_fn_method_database_unsigned_transactions(self.uniffiClonePointer(),$0 + ) +}) +} + +open func wallets() -> WalletsTable { + return try! FfiConverterTypeWalletsTable.lift(try! rustCall() { + uniffi_cove_fn_method_database_wallets(self.uniffiClonePointer(),$0 + ) +}) +} + - open func wallets() -> WalletsTable { - try! FfiConverterTypeWalletsTable.lift(try! rustCall { - uniffi_cove_fn_method_database_wallets(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeDatabase: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Database public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Database { - Database(unsafeFromRawPointer: pointer) + return Database(unsafeFromRawPointer: pointer) } public static func lower(_ value: Database) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Database { @@ -2692,7 +2926,7 @@ public struct FfiConverterTypeDatabase: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2705,33 +2939,40 @@ public struct FfiConverterTypeDatabase: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeDatabase_lift(_ pointer: UnsafeMutableRawPointer) throws -> Database { - try FfiConverterTypeDatabase.lift(pointer) + return try FfiConverterTypeDatabase.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeDatabase_lower(_ value: Database) -> UnsafeMutableRawPointer { - FfiConverterTypeDatabase.lower(value) + return FfiConverterTypeDatabase.lower(value) } -public protocol FeeRateProtocol: AnyObject { - func satPerVb() -> Double + + + +public protocol FeeRateProtocol : AnyObject { + + func satPerVb() -> Double + } open class FeeRate: - FeeRateProtocol -{ + FeeRateProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2739,7 +2980,7 @@ open class FeeRate: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2748,58 +2989,64 @@ open class FeeRate: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerate(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_feerate(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerate(pointer, $0) } } - public static func fromSatPerVb(satPerVb: UInt64) -> FeeRate { - try! FfiConverterTypeFeeRate.lift(try! rustCall { - uniffi_cove_fn_constructor_feerate_from_sat_per_vb( - FfiConverterUInt64.lower(satPerVb), $0 - ) - }) - } + +public static func fromSatPerVb(satPerVb: UInt64) -> FeeRate { + return try! FfiConverterTypeFeeRate.lift(try! rustCall() { + uniffi_cove_fn_constructor_feerate_from_sat_per_vb( + FfiConverterUInt64.lower(satPerVb),$0 + ) +}) +} + + + +open func satPerVb() -> Double { + return try! FfiConverterDouble.lift(try! rustCall() { + uniffi_cove_fn_method_feerate_sat_per_vb(self.uniffiClonePointer(),$0 + ) +}) +} + - open func satPerVb() -> Double { - try! FfiConverterDouble.lift(try! rustCall { - uniffi_cove_fn_method_feerate_sat_per_vb(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRate: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRate public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRate { - FeeRate(unsafeFromRawPointer: pointer) + return FeeRate(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRate) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRate { @@ -2807,7 +3054,7 @@ public struct FfiConverterTypeFeeRate: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2820,41 +3067,48 @@ public struct FfiConverterTypeFeeRate: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRate_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRate { - try FfiConverterTypeFeeRate.lift(pointer) + return try FfiConverterTypeFeeRate.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRate_lower(_ value: FeeRate) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRate.lower(value) + return FfiConverterTypeFeeRate.lower(value) } -public protocol FeeRateOptionProtocol: AnyObject { - func duration() -> String - - func feeRate() -> FeeRate - func feeSpeed() -> FeeSpeed - func isEqual(rhs: FeeRateOption) -> Bool - func satPerVb() -> Double +public protocol FeeRateOptionProtocol : AnyObject { + + func duration() -> String + + func feeRate() -> FeeRate + + func feeSpeed() -> FeeSpeed + + func isEqual(rhs: FeeRateOption) -> Bool + + func satPerVb() -> Double + } open class FeeRateOption: - FeeRateOptionProtocol -{ + FeeRateOptionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2862,7 +3116,7 @@ open class FeeRateOption: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2871,84 +3125,94 @@ open class FeeRateOption: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerateoption(self.pointer, $0) } - } - - public convenience init(feeSpeed: FeeSpeed, feeRate: UInt64) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_feerateoption_new( - FfiConverterTypeFeeSpeed.lower(feeSpeed), - FfiConverterUInt64.lower(feeRate), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) - } + return try! rustCall { uniffi_cove_fn_clone_feerateoption(self.pointer, $0) } + } +public convenience init(feeSpeed: FeeSpeed, feeRate: UInt64) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_feerateoption_new( + FfiConverterTypeFeeSpeed.lower(feeSpeed), + FfiConverterUInt64.lower(feeRate),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoption(pointer, $0) } } - open func duration() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_duration(self.uniffiClonePointer(), $0) - }) - } - - open func feeRate() -> FeeRate { - try! FfiConverterTypeFeeRate.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_fee_rate(self.uniffiClonePointer(), $0) - }) - } - - open func feeSpeed() -> FeeSpeed { - try! FfiConverterTypeFeeSpeed.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_fee_speed(self.uniffiClonePointer(), $0) - }) - } + - open func isEqual(rhs: FeeRateOption) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_is_equal(self.uniffiClonePointer(), - FfiConverterTypeFeeRateOption.lower(rhs), $0) - }) - } + +open func duration() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_duration(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeRate() -> FeeRate { + return try! FfiConverterTypeFeeRate.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_fee_rate(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeSpeed() -> FeeSpeed { + return try! FfiConverterTypeFeeSpeed.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_fee_speed(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEqual(rhs: FeeRateOption) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_is_equal(self.uniffiClonePointer(), + FfiConverterTypeFeeRateOption.lower(rhs),$0 + ) +}) +} + +open func satPerVb() -> Double { + return try! FfiConverterDouble.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_sat_per_vb(self.uniffiClonePointer(),$0 + ) +}) +} + - open func satPerVb() -> Double { - try! FfiConverterDouble.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_sat_per_vb(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOption: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOption public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOption { - FeeRateOption(unsafeFromRawPointer: pointer) + return FeeRateOption(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOption) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOption { @@ -2956,7 +3220,7 @@ public struct FfiConverterTypeFeeRateOption: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2969,45 +3233,52 @@ public struct FfiConverterTypeFeeRateOption: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOption_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOption { - try FfiConverterTypeFeeRateOption.lift(pointer) + return try FfiConverterTypeFeeRateOption.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOption_lower(_ value: FeeRateOption) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRateOption.lower(value) + return FfiConverterTypeFeeRateOption.lower(value) } -public protocol FeeRateOptionWithTotalFeeProtocol: AnyObject { - func duration() -> String - - func feeRate() -> FeeRate - - func feeRateOptions() -> FeeRateOption - - func feeSpeed() -> FeeSpeed - func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool - func satPerVb() -> Double - func totalFee() -> Amount +public protocol FeeRateOptionWithTotalFeeProtocol : AnyObject { + + func duration() -> String + + func feeRate() -> FeeRate + + func feeRateOptions() -> FeeRateOption + + func feeSpeed() -> FeeSpeed + + func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool + + func satPerVb() -> Double + + func totalFee() -> Amount + } open class FeeRateOptionWithTotalFee: - FeeRateOptionWithTotalFeeProtocol -{ + FeeRateOptionWithTotalFeeProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3015,7 +3286,7 @@ open class FeeRateOptionWithTotalFee: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3024,87 +3295,99 @@ open class FeeRateOptionWithTotalFee: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerateoptionwithtotalfee(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_feerateoptionwithtotalfee(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoptionwithtotalfee(pointer, $0) } } - open func duration() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_duration(self.uniffiClonePointer(), $0) - }) - } - - open func feeRate() -> FeeRate { - try! FfiConverterTypeFeeRate.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate(self.uniffiClonePointer(), $0) - }) - } - - open func feeRateOptions() -> FeeRateOption { - try! FfiConverterTypeFeeRateOption.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate_options(self.uniffiClonePointer(), $0) - }) - } - - open func feeSpeed() -> FeeSpeed { - try! FfiConverterTypeFeeSpeed.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_speed(self.uniffiClonePointer(), $0) - }) - } - - open func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_is_equal(self.uniffiClonePointer(), - FfiConverterTypeFeeRateOptionWithTotalFee.lower(rhs), $0) - }) - } + - open func satPerVb() -> Double { - try! FfiConverterDouble.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_sat_per_vb(self.uniffiClonePointer(), $0) - }) - } + +open func duration() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_duration(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeRate() -> FeeRate { + return try! FfiConverterTypeFeeRate.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeRateOptions() -> FeeRateOption { + return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate_options(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeSpeed() -> FeeSpeed { + return try! FfiConverterTypeFeeSpeed.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_speed(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_is_equal(self.uniffiClonePointer(), + FfiConverterTypeFeeRateOptionWithTotalFee.lower(rhs),$0 + ) +}) +} + +open func satPerVb() -> Double { + return try! FfiConverterDouble.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_sat_per_vb(self.uniffiClonePointer(),$0 + ) +}) +} + +open func totalFee() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_total_fee(self.uniffiClonePointer(),$0 + ) +}) +} + - open func totalFee() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_total_fee(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOptionWithTotalFee: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOptionWithTotalFee public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionWithTotalFee { - FeeRateOptionWithTotalFee(unsafeFromRawPointer: pointer) + return FeeRateOptionWithTotalFee(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOptionWithTotalFee) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOptionWithTotalFee { @@ -3112,7 +3395,7 @@ public struct FfiConverterTypeFeeRateOptionWithTotalFee: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3125,37 +3408,44 @@ public struct FfiConverterTypeFeeRateOptionWithTotalFee: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionWithTotalFee_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionWithTotalFee { - try FfiConverterTypeFeeRateOptionWithTotalFee.lift(pointer) + return try FfiConverterTypeFeeRateOptionWithTotalFee.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionWithTotalFee_lower(_ value: FeeRateOptionWithTotalFee) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRateOptionWithTotalFee.lower(value) + return FfiConverterTypeFeeRateOptionWithTotalFee.lower(value) } -public protocol FeeRateOptionsProtocol: AnyObject { - func fast() -> FeeRateOption - func medium() -> FeeRateOption - func slow() -> FeeRateOption + +public protocol FeeRateOptionsProtocol : AnyObject { + + func fast() -> FeeRateOption + + func medium() -> FeeRateOption + + func slow() -> FeeRateOption + } open class FeeRateOptions: - FeeRateOptionsProtocol -{ + FeeRateOptionsProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3163,7 +3453,7 @@ open class FeeRateOptions: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3172,69 +3462,77 @@ open class FeeRateOptions: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerateoptions(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_feerateoptions(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoptions(pointer, $0) } } - public static func previewNew() -> FeeRateOptions { - try! FfiConverterTypeFeeRateOptions.lift(try! rustCall { - uniffi_cove_fn_constructor_feerateoptions_preview_new($0 - ) - }) - } - - open func fast() -> FeeRateOption { - try! FfiConverterTypeFeeRateOption.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptions_fast(self.uniffiClonePointer(), $0) - }) - } + +public static func previewNew() -> FeeRateOptions { + return try! FfiConverterTypeFeeRateOptions.lift(try! rustCall() { + uniffi_cove_fn_constructor_feerateoptions_preview_new($0 + ) +}) +} + - open func medium() -> FeeRateOption { - try! FfiConverterTypeFeeRateOption.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptions_medium(self.uniffiClonePointer(), $0) - }) - } + +open func fast() -> FeeRateOption { + return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptions_fast(self.uniffiClonePointer(),$0 + ) +}) +} + +open func medium() -> FeeRateOption { + return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptions_medium(self.uniffiClonePointer(),$0 + ) +}) +} + +open func slow() -> FeeRateOption { + return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptions_slow(self.uniffiClonePointer(),$0 + ) +}) +} + - open func slow() -> FeeRateOption { - try! FfiConverterTypeFeeRateOption.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptions_slow(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOptions: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOptions public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptions { - FeeRateOptions(unsafeFromRawPointer: pointer) + return FeeRateOptions(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOptions) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOptions { @@ -3242,7 +3540,7 @@ public struct FfiConverterTypeFeeRateOptions: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3255,39 +3553,46 @@ public struct FfiConverterTypeFeeRateOptions: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptions_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptions { - try FfiConverterTypeFeeRateOptions.lift(pointer) + return try FfiConverterTypeFeeRateOptions.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptions_lower(_ value: FeeRateOptions) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRateOptions.lower(value) + return FfiConverterTypeFeeRateOptions.lower(value) } -public protocol FeeRateOptionsWithTotalFeeProtocol: AnyObject { - func fast() -> FeeRateOptionWithTotalFee - func feeRateOptions() -> FeeRateOptions - func medium() -> FeeRateOptionWithTotalFee - func slow() -> FeeRateOptionWithTotalFee +public protocol FeeRateOptionsWithTotalFeeProtocol : AnyObject { + + func fast() -> FeeRateOptionWithTotalFee + + func feeRateOptions() -> FeeRateOptions + + func medium() -> FeeRateOptionWithTotalFee + + func slow() -> FeeRateOptionWithTotalFee + } open class FeeRateOptionsWithTotalFee: - FeeRateOptionsWithTotalFeeProtocol -{ + FeeRateOptionsWithTotalFeeProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3295,7 +3600,7 @@ open class FeeRateOptionsWithTotalFee: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3304,75 +3609,84 @@ open class FeeRateOptionsWithTotalFee: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerateoptionswithtotalfee(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_feerateoptionswithtotalfee(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoptionswithtotalfee(pointer, $0) } } - public static func previewNew() -> FeeRateOptionsWithTotalFee { - try! FfiConverterTypeFeeRateOptionsWithTotalFee.lift(try! rustCall { - uniffi_cove_fn_constructor_feerateoptionswithtotalfee_preview_new($0 - ) - }) - } - - open func fast() -> FeeRateOptionWithTotalFee { - try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionswithtotalfee_fast(self.uniffiClonePointer(), $0) - }) - } - - open func feeRateOptions() -> FeeRateOptions { - try! FfiConverterTypeFeeRateOptions.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionswithtotalfee_fee_rate_options(self.uniffiClonePointer(), $0) - }) - } + +public static func previewNew() -> FeeRateOptionsWithTotalFee { + return try! FfiConverterTypeFeeRateOptionsWithTotalFee.lift(try! rustCall() { + uniffi_cove_fn_constructor_feerateoptionswithtotalfee_preview_new($0 + ) +}) +} + - open func medium() -> FeeRateOptionWithTotalFee { - try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionswithtotalfee_medium(self.uniffiClonePointer(), $0) - }) - } + +open func fast() -> FeeRateOptionWithTotalFee { + return try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionswithtotalfee_fast(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeRateOptions() -> FeeRateOptions { + return try! FfiConverterTypeFeeRateOptions.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionswithtotalfee_fee_rate_options(self.uniffiClonePointer(),$0 + ) +}) +} + +open func medium() -> FeeRateOptionWithTotalFee { + return try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionswithtotalfee_medium(self.uniffiClonePointer(),$0 + ) +}) +} + +open func slow() -> FeeRateOptionWithTotalFee { + return try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionswithtotalfee_slow(self.uniffiClonePointer(),$0 + ) +}) +} + - open func slow() -> FeeRateOptionWithTotalFee { - try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionswithtotalfee_slow(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOptionsWithTotalFee: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOptionsWithTotalFee public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionsWithTotalFee { - FeeRateOptionsWithTotalFee(unsafeFromRawPointer: pointer) + return FeeRateOptionsWithTotalFee(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOptionsWithTotalFee) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOptionsWithTotalFee { @@ -3380,7 +3694,7 @@ public struct FfiConverterTypeFeeRateOptionsWithTotalFee: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3393,93 +3707,100 @@ public struct FfiConverterTypeFeeRateOptionsWithTotalFee: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionsWithTotalFee_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionsWithTotalFee { - try FfiConverterTypeFeeRateOptionsWithTotalFee.lift(pointer) + return try FfiConverterTypeFeeRateOptionsWithTotalFee.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionsWithTotalFee_lower(_ value: FeeRateOptionsWithTotalFee) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRateOptionsWithTotalFee.lower(value) + return FfiConverterTypeFeeRateOptionsWithTotalFee.lower(value) } + + + /** * Representation of our app over FFI. Essentially a wrapper of [`App`]. */ -public protocol FfiAppProtocol: AnyObject { +public protocol FfiAppProtocol : AnyObject { + /** * Frontend calls this method to send events to the rust application logic */ - func dispatch(action: AppAction) - - func fees() async throws -> FeeResponse - + func dispatch(action: AppAction) + + func fees() async throws -> FeeResponse + /** * Get the selected wallet */ - func goToSelectedWallet() -> WalletId? - + func goToSelectedWallet() -> WalletId? + /** * Check if there's any wallets */ - func hasWallets() -> Bool - + func hasWallets() -> Bool + /** * run all initialization tasks here, only called once */ - func initOnStart() async - - func listenForUpdates(updater: FfiReconcile) - + func initOnStart() async + + func listenForUpdates(updater: FfiReconcile) + /** * Load and reset the default route after 800ms delay */ - func loadAndResetDefaultRoute(route: Route) - + func loadAndResetDefaultRoute(route: Route) + /** * Load and reset the default route * Shows a laoding screen, and then resets the default route */ - func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) - - func network() -> Network - + func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) + + func network() -> Network + /** * Number of wallets */ - func numWallets() -> UInt16 - - func prices() async throws -> PriceResponse - + func numWallets() -> UInt16 + + func prices() async throws -> PriceResponse + /** * Change the default route, and reset the routes */ - func resetDefaultRouteTo(route: Route) - + func resetDefaultRouteTo(route: Route) + /** * Select a wallet */ - func selectWallet(id: WalletId) throws - - func state() -> AppState + func selectWallet(id: WalletId) throws + + func state() -> AppState + } /** * Representation of our app over FFI. Essentially a wrapper of [`App`]. */ open class FfiApp: - FfiAppProtocol -{ + FfiAppProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3487,7 +3808,7 @@ open class FfiApp: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3496,54 +3817,59 @@ open class FfiApp: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_ffiapp(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_ffiapp(self.pointer, $0) } } - /** * FFI constructor which wraps in an Arc */ - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_ffiapp_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) - } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_ffiapp_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_ffiapp(pointer, $0) } } + + + /** * Frontend calls this method to send events to the rust application logic */ - open func dispatch(action: AppAction) { try! rustCall { - uniffi_cove_fn_method_ffiapp_dispatch(self.uniffiClonePointer(), - FfiConverterTypeAppAction.lower(action), $0) - } - } - - open func fees() async throws -> FeeResponse { - try await uniffiRustCallAsync( +open func dispatch(action: AppAction) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_dispatch(self.uniffiClonePointer(), + FfiConverterTypeAppAction.lower(action),$0 + ) +} +} + +open func fees()async throws -> FeeResponse { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_ffiapp_fees( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -3552,34 +3878,38 @@ open class FfiApp: liftFunc: FfiConverterTypeFeeResponse.lift, errorHandler: FfiConverterTypeAppError.lift ) - } - +} + /** * Get the selected wallet */ - open func goToSelectedWallet() -> WalletId? { - try! FfiConverterOptionTypeWalletId.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_go_to_selected_wallet(self.uniffiClonePointer(), $0) - }) - } - +open func goToSelectedWallet() -> WalletId? { + return try! FfiConverterOptionTypeWalletId.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_go_to_selected_wallet(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Check if there's any wallets */ - open func hasWallets() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_has_wallets(self.uniffiClonePointer(), $0) - }) - } - +open func hasWallets() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_has_wallets(self.uniffiClonePointer(),$0 + ) +}) +} + /** * run all initialization tasks here, only called once */ - open func initOnStart() async { - try! await uniffiRustCallAsync( +open func initOnStart()async { + return + try! await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_ffiapp_init_on_start( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_void, @@ -3587,55 +3917,63 @@ open class FfiApp: freeFunc: ffi_cove_rust_future_free_void, liftFunc: { $0 }, errorHandler: nil + ) - } - - open func listenForUpdates(updater: FfiReconcile) { try! rustCall { - uniffi_cove_fn_method_ffiapp_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfaceFfiReconcile.lower(updater), $0) - } - } - +} + +open func listenForUpdates(updater: FfiReconcile) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfaceFfiReconcile.lower(updater),$0 + ) +} +} + /** * Load and reset the default route after 800ms delay */ - open func loadAndResetDefaultRoute(route: Route) { try! rustCall { - uniffi_cove_fn_method_ffiapp_load_and_reset_default_route(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), $0) - } - } - +open func loadAndResetDefaultRoute(route: Route) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_load_and_reset_default_route(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route),$0 + ) +} +} + /** * Load and reset the default route * Shows a laoding screen, and then resets the default route */ - open func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) { try! rustCall { - uniffi_cove_fn_method_ffiapp_load_and_reset_default_route_after(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), - FfiConverterUInt32.lower(afterMillis), $0) - } - } - - open func network() -> Network { - try! FfiConverterTypeNetwork.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_network(self.uniffiClonePointer(), $0) - }) - } - +open func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_load_and_reset_default_route_after(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route), + FfiConverterUInt32.lower(afterMillis),$0 + ) +} +} + +open func network() -> Network { + return try! FfiConverterTypeNetwork.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_network(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Number of wallets */ - open func numWallets() -> UInt16 { - try! FfiConverterUInt16.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_num_wallets(self.uniffiClonePointer(), $0) - }) - } - - open func prices() async throws -> PriceResponse { - try await uniffiRustCallAsync( +open func numWallets() -> UInt16 { + return try! FfiConverterUInt16.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_num_wallets(self.uniffiClonePointer(),$0 + ) +}) +} + +open func prices()async throws -> PriceResponse { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_ffiapp_prices( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -3644,46 +3982,52 @@ open class FfiApp: liftFunc: FfiConverterTypePriceResponse.lift, errorHandler: FfiConverterTypeAppError.lift ) - } - +} + /** * Change the default route, and reset the routes */ - open func resetDefaultRouteTo(route: Route) { try! rustCall { - uniffi_cove_fn_method_ffiapp_reset_default_route_to(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), $0) - } - } - +open func resetDefaultRouteTo(route: Route) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_reset_default_route_to(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route),$0 + ) +} +} + /** * Select a wallet */ - open func selectWallet(id: WalletId) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_ffiapp_select_wallet(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), $0) - } - } +open func selectWallet(id: WalletId)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_ffiapp_select_wallet(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id),$0 + ) +} +} + +open func state() -> AppState { + return try! FfiConverterTypeAppState.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_state(self.uniffiClonePointer(),$0 + ) +}) +} + - open func state() -> AppState { - try! FfiConverterTypeAppState.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_state(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiApp: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FfiApp public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiApp { - FfiApp(unsafeFromRawPointer: pointer) + return FfiApp(unsafeFromRawPointer: pointer) } public static func lower(_ value: FfiApp) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiApp { @@ -3691,7 +4035,7 @@ public struct FfiConverterTypeFfiApp: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3704,43 +4048,50 @@ public struct FfiConverterTypeFfiApp: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiApp_lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiApp { - try FfiConverterTypeFfiApp.lift(pointer) + return try FfiConverterTypeFfiApp.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiApp_lower(_ value: FfiApp) -> UnsafeMutableRawPointer { - FfiConverterTypeFfiApp.lower(value) + return FfiConverterTypeFfiApp.lower(value) } -public protocol FfiNfcReaderProtocol: AnyObject { - func dataFromRecords(records: [NdefRecord]) -> Data - func isResumeable(data: Data) throws - func isStarted() -> Bool - func messageInfo() -> MessageInfo? - - func parse(data: Data) throws -> ParseResult - - func stringFromRecord(record: NdefRecord) -> String? +public protocol FfiNfcReaderProtocol : AnyObject { + + func dataFromRecords(records: [NdefRecord]) -> Data + + func isResumeable(data: Data) throws + + func isStarted() -> Bool + + func messageInfo() -> MessageInfo? + + func parse(data: Data) throws -> ParseResult + + func stringFromRecord(record: NdefRecord) -> String? + } open class FfiNfcReader: - FfiNfcReaderProtocol -{ + FfiNfcReaderProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3748,7 +4099,7 @@ open class FfiNfcReader: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3757,90 +4108,101 @@ open class FfiNfcReader: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_ffinfcreader(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_ffinfcreader_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_ffinfcreader(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_ffinfcreader_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_ffinfcreader(pointer, $0) } } - open func dataFromRecords(records: [NdefRecord]) -> Data { - try! FfiConverterData.lift(try! rustCall { - uniffi_cove_fn_method_ffinfcreader_data_from_records(self.uniffiClonePointer(), - FfiConverterSequenceTypeNdefRecord.lower(records), $0) - }) - } - - open func isResumeable(data: Data) throws { try rustCallWithError(FfiConverterTypeResumeError.lift) { - uniffi_cove_fn_method_ffinfcreader_is_resumeable(self.uniffiClonePointer(), - FfiConverterData.lower(data), $0) - } - } - - open func isStarted() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_ffinfcreader_is_started(self.uniffiClonePointer(), $0) - }) - } - - open func messageInfo() -> MessageInfo? { - try! FfiConverterOptionTypeMessageInfo.lift(try! rustCall { - uniffi_cove_fn_method_ffinfcreader_message_info(self.uniffiClonePointer(), $0) - }) - } + - open func parse(data: Data) throws -> ParseResult { - try FfiConverterTypeParseResult.lift(rustCallWithError(FfiConverterTypeNfcReaderError.lift) { - uniffi_cove_fn_method_ffinfcreader_parse(self.uniffiClonePointer(), - FfiConverterData.lower(data), $0) - }) - } + +open func dataFromRecords(records: [NdefRecord]) -> Data { + return try! FfiConverterData.lift(try! rustCall() { + uniffi_cove_fn_method_ffinfcreader_data_from_records(self.uniffiClonePointer(), + FfiConverterSequenceTypeNdefRecord.lower(records),$0 + ) +}) +} + +open func isResumeable(data: Data)throws {try rustCallWithError(FfiConverterTypeResumeError.lift) { + uniffi_cove_fn_method_ffinfcreader_is_resumeable(self.uniffiClonePointer(), + FfiConverterData.lower(data),$0 + ) +} +} + +open func isStarted() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_ffinfcreader_is_started(self.uniffiClonePointer(),$0 + ) +}) +} + +open func messageInfo() -> MessageInfo? { + return try! FfiConverterOptionTypeMessageInfo.lift(try! rustCall() { + uniffi_cove_fn_method_ffinfcreader_message_info(self.uniffiClonePointer(),$0 + ) +}) +} + +open func parse(data: Data)throws -> ParseResult { + return try FfiConverterTypeParseResult.lift(try rustCallWithError(FfiConverterTypeNfcReaderError.lift) { + uniffi_cove_fn_method_ffinfcreader_parse(self.uniffiClonePointer(), + FfiConverterData.lower(data),$0 + ) +}) +} + +open func stringFromRecord(record: NdefRecord) -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_ffinfcreader_string_from_record(self.uniffiClonePointer(), + FfiConverterTypeNdefRecord.lower(record),$0 + ) +}) +} + - open func stringFromRecord(record: NdefRecord) -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_ffinfcreader_string_from_record(self.uniffiClonePointer(), - FfiConverterTypeNdefRecord.lower(record), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiNfcReader: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FfiNfcReader public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiNfcReader { - FfiNfcReader(unsafeFromRawPointer: pointer) + return FfiNfcReader(unsafeFromRawPointer: pointer) } public static func lower(_ value: FfiNfcReader) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiNfcReader { @@ -3848,7 +4210,7 @@ public struct FfiConverterTypeFfiNfcReader: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3861,31 +4223,38 @@ public struct FfiConverterTypeFfiNfcReader: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiNfcReader_lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiNfcReader { - try FfiConverterTypeFfiNfcReader.lift(pointer) + return try FfiConverterTypeFfiNfcReader.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiNfcReader_lower(_ value: FfiNfcReader) -> UnsafeMutableRawPointer { - FfiConverterTypeFfiNfcReader.lower(value) + return FfiConverterTypeFfiNfcReader.lower(value) } -public protocol FiatClientProtocol: AnyObject {} + + + +public protocol FiatClientProtocol : AnyObject { + +} open class FiatClient: - FiatClientProtocol -{ + FiatClientProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3893,7 +4262,7 @@ open class FiatClient: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3902,44 +4271,49 @@ open class FiatClient: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_fiatclient(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_fiatclient(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_fiatclient(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatClient: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FiatClient public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FiatClient { - FiatClient(unsafeFromRawPointer: pointer) + return FiatClient(unsafeFromRawPointer: pointer) } public static func lower(_ value: FiatClient) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatClient { @@ -3947,7 +4321,7 @@ public struct FfiConverterTypeFiatClient: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3960,33 +4334,40 @@ public struct FfiConverterTypeFiatClient: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatClient_lift(_ pointer: UnsafeMutableRawPointer) throws -> FiatClient { - try FfiConverterTypeFiatClient.lift(pointer) + return try FfiConverterTypeFiatClient.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatClient_lower(_ value: FiatClient) -> UnsafeMutableRawPointer { - FfiConverterTypeFiatClient.lower(value) + return FfiConverterTypeFiatClient.lower(value) } -public protocol FileHandlerProtocol: AnyObject { - func read() throws -> MultiFormat + + + +public protocol FileHandlerProtocol : AnyObject { + + func read() throws -> MultiFormat + } open class FileHandler: - FileHandlerProtocol -{ + FileHandlerProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3994,7 +4375,7 @@ open class FileHandler: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4003,58 +4384,64 @@ open class FileHandler: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_filehandler(self.pointer, $0) } - } - - public convenience init(filePath: String) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_filehandler_new( - FfiConverterString.lower(filePath), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_filehandler(self.pointer, $0) } } +public convenience init(filePath: String) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_filehandler_new( + FfiConverterString.lower(filePath),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_filehandler(pointer, $0) } } - open func read() throws -> MultiFormat { - try FfiConverterTypeMultiFormat.lift(rustCallWithError(FfiConverterTypeFileHandlerError.lift) { - uniffi_cove_fn_method_filehandler_read(self.uniffiClonePointer(), $0) - }) - } + + + +open func read()throws -> MultiFormat { + return try FfiConverterTypeMultiFormat.lift(try rustCallWithError(FfiConverterTypeFileHandlerError.lift) { + uniffi_cove_fn_method_filehandler_read(self.uniffiClonePointer(),$0 + ) +}) +} + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFileHandler: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FileHandler public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FileHandler { - FileHandler(unsafeFromRawPointer: pointer) + return FileHandler(unsafeFromRawPointer: pointer) } public static func lower(_ value: FileHandler) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FileHandler { @@ -4062,7 +4449,7 @@ public struct FfiConverterTypeFileHandler: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4075,35 +4462,42 @@ public struct FfiConverterTypeFileHandler: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFileHandler_lift(_ pointer: UnsafeMutableRawPointer) throws -> FileHandler { - try FfiConverterTypeFileHandler.lift(pointer) + return try FfiConverterTypeFileHandler.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFileHandler_lower(_ value: FileHandler) -> UnsafeMutableRawPointer { - FfiConverterTypeFileHandler.lower(value) + return FfiConverterTypeFileHandler.lower(value) } -public protocol FingerprintProtocol: AnyObject { - func asLowercase() -> String - func asUppercase() -> String + + +public protocol FingerprintProtocol : AnyObject { + + func asLowercase() -> String + + func asUppercase() -> String + } open class Fingerprint: - FingerprintProtocol -{ + FingerprintProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4111,7 +4505,7 @@ open class Fingerprint: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4120,64 +4514,71 @@ open class Fingerprint: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_fingerprint(self.pointer, $0) } - } - - public convenience init(id: WalletId) throws { - let pointer = - try rustCallWithError(FfiConverterTypeFingerprintError.lift) { - uniffi_cove_fn_constructor_fingerprint_new( - FfiConverterTypeWalletId.lower(id), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_fingerprint(self.pointer, $0) } } +public convenience init(id: WalletId)throws { + let pointer = + try rustCallWithError(FfiConverterTypeFingerprintError.lift) { + uniffi_cove_fn_constructor_fingerprint_new( + FfiConverterTypeWalletId.lower(id),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_fingerprint(pointer, $0) } } - open func asLowercase() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_fingerprint_as_lowercase(self.uniffiClonePointer(), $0) - }) - } + + + +open func asLowercase() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_fingerprint_as_lowercase(self.uniffiClonePointer(),$0 + ) +}) +} + +open func asUppercase() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_fingerprint_as_uppercase(self.uniffiClonePointer(),$0 + ) +}) +} + - open func asUppercase() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_fingerprint_as_uppercase(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFingerprint: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Fingerprint public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Fingerprint { - Fingerprint(unsafeFromRawPointer: pointer) + return Fingerprint(unsafeFromRawPointer: pointer) } public static func lower(_ value: Fingerprint) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Fingerprint { @@ -4185,7 +4586,7 @@ public struct FfiConverterTypeFingerprint: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4198,31 +4599,38 @@ public struct FfiConverterTypeFingerprint: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFingerprint_lift(_ pointer: UnsafeMutableRawPointer) throws -> Fingerprint { - try FfiConverterTypeFingerprint.lift(pointer) + return try FfiConverterTypeFingerprint.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFingerprint_lower(_ value: Fingerprint) -> UnsafeMutableRawPointer { - FfiConverterTypeFingerprint.lower(value) + return FfiConverterTypeFingerprint.lower(value) } -public protocol FoundJsonProtocol: AnyObject {} -open class FoundJson: - FoundJsonProtocol -{ + + +public protocol FoundJsonProtocol : AnyObject { + +} + +open class FoundJson: + FoundJsonProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4230,7 +4638,7 @@ open class FoundJson: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4239,44 +4647,49 @@ open class FoundJson: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_foundjson(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_foundjson(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_foundjson(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFoundJson: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FoundJson public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FoundJson { - FoundJson(unsafeFromRawPointer: pointer) + return FoundJson(unsafeFromRawPointer: pointer) } public static func lower(_ value: FoundJson) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FoundJson { @@ -4284,7 +4697,7 @@ public struct FfiConverterTypeFoundJson: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4297,55 +4710,62 @@ public struct FfiConverterTypeFoundJson: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFoundJson_lift(_ pointer: UnsafeMutableRawPointer) throws -> FoundJson { - try FfiConverterTypeFoundJson.lift(pointer) + return try FfiConverterTypeFoundJson.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFoundJson_lower(_ value: FoundJson) -> UnsafeMutableRawPointer { - FfiConverterTypeFoundJson.lower(value) -} - -public protocol GlobalConfigTableProtocol: AnyObject { - func clearSelectedWallet() throws - - func colorScheme() -> ColorSchemeSelection - - func delete(key: GlobalConfigKey) throws - - func get(key: GlobalConfigKey) throws -> String? - - func selectWallet(id: WalletId) throws - - func selectedNetwork() -> Network - - func selectedNode() -> Node - - func selectedWallet() -> WalletId? - - func set(key: GlobalConfigKey, value: String) throws - - func setColorScheme(colorScheme: ColorSchemeSelection) throws - - func setSelectedNetwork(network: Network) throws - - func setSelectedNode(node: Node) throws + return FfiConverterTypeFoundJson.lower(value) +} + + + + +public protocol GlobalConfigTableProtocol : AnyObject { + + func clearSelectedWallet() throws + + func colorScheme() -> ColorSchemeSelection + + func delete(key: GlobalConfigKey) throws + + func get(key: GlobalConfigKey) throws -> String? + + func selectWallet(id: WalletId) throws + + func selectedNetwork() -> Network + + func selectedNode() -> Node + + func selectedWallet() -> WalletId? + + func set(key: GlobalConfigKey, value: String) throws + + func setColorScheme(colorScheme: ColorSchemeSelection) throws + + func setSelectedNetwork(network: Network) throws + + func setSelectedNode(node: Node) throws + } open class GlobalConfigTable: - GlobalConfigTableProtocol -{ + GlobalConfigTableProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4353,7 +4773,7 @@ open class GlobalConfigTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4362,117 +4782,134 @@ open class GlobalConfigTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_globalconfigtable(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_globalconfigtable(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_globalconfigtable(pointer, $0) } } - open func clearSelectedWallet() throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_clear_selected_wallet(self.uniffiClonePointer(), $0) - } - } - - open func colorScheme() -> ColorSchemeSelection { - try! FfiConverterTypeColorSchemeSelection.lift(try! rustCall { - uniffi_cove_fn_method_globalconfigtable_color_scheme(self.uniffiClonePointer(), $0) - }) - } - - open func delete(key: GlobalConfigKey) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_delete(self.uniffiClonePointer(), - FfiConverterTypeGlobalConfigKey.lower(key), $0) - } - } - - open func get(key: GlobalConfigKey) throws -> String? { - try FfiConverterOptionString.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_get(self.uniffiClonePointer(), - FfiConverterTypeGlobalConfigKey.lower(key), $0) - }) - } - - open func selectWallet(id: WalletId) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_select_wallet(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), $0) - } - } - - open func selectedNetwork() -> Network { - try! FfiConverterTypeNetwork.lift(try! rustCall { - uniffi_cove_fn_method_globalconfigtable_selected_network(self.uniffiClonePointer(), $0) - }) - } - - open func selectedNode() -> Node { - try! FfiConverterTypeNode.lift(try! rustCall { - uniffi_cove_fn_method_globalconfigtable_selected_node(self.uniffiClonePointer(), $0) - }) - } - - open func selectedWallet() -> WalletId? { - try! FfiConverterOptionTypeWalletId.lift(try! rustCall { - uniffi_cove_fn_method_globalconfigtable_selected_wallet(self.uniffiClonePointer(), $0) - }) - } - - open func set(key: GlobalConfigKey, value: String) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set(self.uniffiClonePointer(), - FfiConverterTypeGlobalConfigKey.lower(key), - FfiConverterString.lower(value), $0) - } - } - - open func setColorScheme(colorScheme: ColorSchemeSelection) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set_color_scheme(self.uniffiClonePointer(), - FfiConverterTypeColorSchemeSelection.lower(colorScheme), $0) - } - } + - open func setSelectedNetwork(network: Network) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set_selected_network(self.uniffiClonePointer(), - FfiConverterTypeNetwork.lower(network), $0) - } - } + +open func clearSelectedWallet()throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_clear_selected_wallet(self.uniffiClonePointer(),$0 + ) +} +} + +open func colorScheme() -> ColorSchemeSelection { + return try! FfiConverterTypeColorSchemeSelection.lift(try! rustCall() { + uniffi_cove_fn_method_globalconfigtable_color_scheme(self.uniffiClonePointer(),$0 + ) +}) +} + +open func delete(key: GlobalConfigKey)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_delete(self.uniffiClonePointer(), + FfiConverterTypeGlobalConfigKey.lower(key),$0 + ) +} +} + +open func get(key: GlobalConfigKey)throws -> String? { + return try FfiConverterOptionString.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_get(self.uniffiClonePointer(), + FfiConverterTypeGlobalConfigKey.lower(key),$0 + ) +}) +} + +open func selectWallet(id: WalletId)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_select_wallet(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id),$0 + ) +} +} + +open func selectedNetwork() -> Network { + return try! FfiConverterTypeNetwork.lift(try! rustCall() { + uniffi_cove_fn_method_globalconfigtable_selected_network(self.uniffiClonePointer(),$0 + ) +}) +} + +open func selectedNode() -> Node { + return try! FfiConverterTypeNode.lift(try! rustCall() { + uniffi_cove_fn_method_globalconfigtable_selected_node(self.uniffiClonePointer(),$0 + ) +}) +} + +open func selectedWallet() -> WalletId? { + return try! FfiConverterOptionTypeWalletId.lift(try! rustCall() { + uniffi_cove_fn_method_globalconfigtable_selected_wallet(self.uniffiClonePointer(),$0 + ) +}) +} + +open func set(key: GlobalConfigKey, value: String)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set(self.uniffiClonePointer(), + FfiConverterTypeGlobalConfigKey.lower(key), + FfiConverterString.lower(value),$0 + ) +} +} + +open func setColorScheme(colorScheme: ColorSchemeSelection)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set_color_scheme(self.uniffiClonePointer(), + FfiConverterTypeColorSchemeSelection.lower(colorScheme),$0 + ) +} +} + +open func setSelectedNetwork(network: Network)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set_selected_network(self.uniffiClonePointer(), + FfiConverterTypeNetwork.lower(network),$0 + ) +} +} + +open func setSelectedNode(node: Node)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set_selected_node(self.uniffiClonePointer(), + FfiConverterTypeNode.lower(node),$0 + ) +} +} + - open func setSelectedNode(node: Node) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set_selected_node(self.uniffiClonePointer(), - FfiConverterTypeNode.lower(node), $0) - } - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalConfigTable: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = GlobalConfigTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalConfigTable { - GlobalConfigTable(unsafeFromRawPointer: pointer) + return GlobalConfigTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: GlobalConfigTable) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalConfigTable { @@ -4480,7 +4917,7 @@ public struct FfiConverterTypeGlobalConfigTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4493,37 +4930,44 @@ public struct FfiConverterTypeGlobalConfigTable: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalConfigTable { - try FfiConverterTypeGlobalConfigTable.lift(pointer) + return try FfiConverterTypeGlobalConfigTable.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigTable_lower(_ value: GlobalConfigTable) -> UnsafeMutableRawPointer { - FfiConverterTypeGlobalConfigTable.lower(value) + return FfiConverterTypeGlobalConfigTable.lower(value) } -public protocol GlobalFlagTableProtocol: AnyObject { - func get(key: GlobalFlagKey) throws -> Bool - func set(key: GlobalFlagKey, value: Bool) throws - func toggleBoolConfig(key: GlobalFlagKey) throws + +public protocol GlobalFlagTableProtocol : AnyObject { + + func get(key: GlobalFlagKey) throws -> Bool + + func set(key: GlobalFlagKey, value: Bool) throws + + func toggleBoolConfig(key: GlobalFlagKey) throws + } open class GlobalFlagTable: - GlobalFlagTableProtocol -{ + GlobalFlagTableProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4531,7 +4975,7 @@ open class GlobalFlagTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4540,64 +4984,72 @@ open class GlobalFlagTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_globalflagtable(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_globalflagtable(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_globalflagtable(pointer, $0) } } - open func get(key: GlobalFlagKey) throws -> Bool { - try FfiConverterBool.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalflagtable_get(self.uniffiClonePointer(), - FfiConverterTypeGlobalFlagKey.lower(key), $0) - }) - } + - open func set(key: GlobalFlagKey, value: Bool) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalflagtable_set(self.uniffiClonePointer(), - FfiConverterTypeGlobalFlagKey.lower(key), - FfiConverterBool.lower(value), $0) - } - } + +open func get(key: GlobalFlagKey)throws -> Bool { + return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalflagtable_get(self.uniffiClonePointer(), + FfiConverterTypeGlobalFlagKey.lower(key),$0 + ) +}) +} + +open func set(key: GlobalFlagKey, value: Bool)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalflagtable_set(self.uniffiClonePointer(), + FfiConverterTypeGlobalFlagKey.lower(key), + FfiConverterBool.lower(value),$0 + ) +} +} + +open func toggleBoolConfig(key: GlobalFlagKey)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalflagtable_toggle_bool_config(self.uniffiClonePointer(), + FfiConverterTypeGlobalFlagKey.lower(key),$0 + ) +} +} + - open func toggleBoolConfig(key: GlobalFlagKey) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalflagtable_toggle_bool_config(self.uniffiClonePointer(), - FfiConverterTypeGlobalFlagKey.lower(key), $0) - } - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalFlagTable: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = GlobalFlagTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalFlagTable { - GlobalFlagTable(unsafeFromRawPointer: pointer) + return GlobalFlagTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: GlobalFlagTable) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalFlagTable { @@ -4605,7 +5057,7 @@ public struct FfiConverterTypeGlobalFlagTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4618,31 +5070,38 @@ public struct FfiConverterTypeGlobalFlagTable: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalFlagTable { - try FfiConverterTypeGlobalFlagTable.lift(pointer) + return try FfiConverterTypeGlobalFlagTable.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagTable_lower(_ value: GlobalFlagTable) -> UnsafeMutableRawPointer { - FfiConverterTypeGlobalFlagTable.lower(value) + return FfiConverterTypeGlobalFlagTable.lower(value) } -public protocol HardwareExportProtocol: AnyObject {} + + + +public protocol HardwareExportProtocol : AnyObject { + +} open class HardwareExport: - HardwareExportProtocol -{ + HardwareExportProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4650,7 +5109,7 @@ open class HardwareExport: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4659,44 +5118,49 @@ open class HardwareExport: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_hardwareexport(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_hardwareexport(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_hardwareexport(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeHardwareExport: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = HardwareExport public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> HardwareExport { - HardwareExport(unsafeFromRawPointer: pointer) + return HardwareExport(unsafeFromRawPointer: pointer) } public static func lower(_ value: HardwareExport) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> HardwareExport { @@ -4704,7 +5168,7 @@ public struct FfiConverterTypeHardwareExport: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4717,37 +5181,44 @@ public struct FfiConverterTypeHardwareExport: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHardwareExport_lift(_ pointer: UnsafeMutableRawPointer) throws -> HardwareExport { - try FfiConverterTypeHardwareExport.lift(pointer) + return try FfiConverterTypeHardwareExport.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHardwareExport_lower(_ value: HardwareExport) -> UnsafeMutableRawPointer { - FfiConverterTypeHardwareExport.lower(value) + return FfiConverterTypeHardwareExport.lower(value) } -public protocol HeaderIconPresenterProtocol: AnyObject { - func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor - func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor - func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor + +public protocol HeaderIconPresenterProtocol : AnyObject { + + func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor + + func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor + + func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor + } open class HeaderIconPresenter: - HeaderIconPresenterProtocol -{ + HeaderIconPresenterProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4755,7 +5226,7 @@ open class HeaderIconPresenter: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4764,82 +5235,90 @@ open class HeaderIconPresenter: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_headericonpresenter(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_headericonpresenter_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_headericonpresenter(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_headericonpresenter_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_headericonpresenter(pointer, $0) } } - open func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { - try! FfiConverterTypeFfiColor.lift(try! rustCall { - uniffi_cove_fn_method_headericonpresenter_background_color(self.uniffiClonePointer(), - FfiConverterTypeTransactionState.lower(state), - FfiConverterTypeTransactionDirection.lower(direction), - FfiConverterTypeFfiColorScheme.lower(colorScheme), - FfiConverterInt32.lower(confirmationCount), $0) - }) - } + - open func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { - try! FfiConverterTypeFfiColor.lift(try! rustCall { - uniffi_cove_fn_method_headericonpresenter_icon_color(self.uniffiClonePointer(), - FfiConverterTypeTransactionState.lower(state), - FfiConverterTypeTransactionDirection.lower(direction), - FfiConverterTypeFfiColorScheme.lower(colorScheme), - FfiConverterInt32.lower(confirmationCount), $0) - }) - } + +open func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { + return try! FfiConverterTypeFfiColor.lift(try! rustCall() { + uniffi_cove_fn_method_headericonpresenter_background_color(self.uniffiClonePointer(), + FfiConverterTypeTransactionState.lower(state), + FfiConverterTypeTransactionDirection.lower(direction), + FfiConverterTypeFfiColorScheme.lower(colorScheme), + FfiConverterInt32.lower(confirmationCount),$0 + ) +}) +} + +open func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { + return try! FfiConverterTypeFfiColor.lift(try! rustCall() { + uniffi_cove_fn_method_headericonpresenter_icon_color(self.uniffiClonePointer(), + FfiConverterTypeTransactionState.lower(state), + FfiConverterTypeTransactionDirection.lower(direction), + FfiConverterTypeFfiColorScheme.lower(colorScheme), + FfiConverterInt32.lower(confirmationCount),$0 + ) +}) +} + +open func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor { + return try! FfiConverterTypeFfiColor.lift(try! rustCall() { + uniffi_cove_fn_method_headericonpresenter_ring_color(self.uniffiClonePointer(), + FfiConverterTypeTransactionState.lower(state), + FfiConverterTypeFfiColorScheme.lower(colorScheme), + FfiConverterTypeTransactionDirection.lower(direction), + FfiConverterInt32.lower(confirmations), + FfiConverterInt32.lower(ringNumber),$0 + ) +}) +} + - open func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor { - try! FfiConverterTypeFfiColor.lift(try! rustCall { - uniffi_cove_fn_method_headericonpresenter_ring_color(self.uniffiClonePointer(), - FfiConverterTypeTransactionState.lower(state), - FfiConverterTypeFfiColorScheme.lower(colorScheme), - FfiConverterTypeTransactionDirection.lower(direction), - FfiConverterInt32.lower(confirmations), - FfiConverterInt32.lower(ringNumber), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeHeaderIconPresenter: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = HeaderIconPresenter public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> HeaderIconPresenter { - HeaderIconPresenter(unsafeFromRawPointer: pointer) + return HeaderIconPresenter(unsafeFromRawPointer: pointer) } public static func lower(_ value: HeaderIconPresenter) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> HeaderIconPresenter { @@ -4847,7 +5326,7 @@ public struct FfiConverterTypeHeaderIconPresenter: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4860,31 +5339,38 @@ public struct FfiConverterTypeHeaderIconPresenter: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHeaderIconPresenter_lift(_ pointer: UnsafeMutableRawPointer) throws -> HeaderIconPresenter { - try FfiConverterTypeHeaderIconPresenter.lift(pointer) + return try FfiConverterTypeHeaderIconPresenter.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHeaderIconPresenter_lower(_ value: HeaderIconPresenter) -> UnsafeMutableRawPointer { - FfiConverterTypeHeaderIconPresenter.lower(value) + return FfiConverterTypeHeaderIconPresenter.lower(value) } -public protocol KeychainProtocol: AnyObject {} + + + +public protocol KeychainProtocol : AnyObject { + +} open class Keychain: - KeychainProtocol -{ + KeychainProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4892,7 +5378,7 @@ open class Keychain: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4901,52 +5387,57 @@ open class Keychain: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_keychain(self.pointer, $0) } - } - - public convenience init(keychain: KeychainAccess) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_keychain_new( - FfiConverterCallbackInterfaceKeychainAccess.lower(keychain), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_keychain(self.pointer, $0) } } +public convenience init(keychain: KeychainAccess) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_keychain_new( + FfiConverterCallbackInterfaceKeychainAccess.lower(keychain),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_keychain(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeKeychain: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Keychain public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Keychain { - Keychain(unsafeFromRawPointer: pointer) + return Keychain(unsafeFromRawPointer: pointer) } public static func lower(_ value: Keychain) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Keychain { @@ -4954,7 +5445,7 @@ public struct FfiConverterTypeKeychain: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4967,35 +5458,42 @@ public struct FfiConverterTypeKeychain: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeKeychain_lift(_ pointer: UnsafeMutableRawPointer) throws -> Keychain { - try FfiConverterTypeKeychain.lift(pointer) + return try FfiConverterTypeKeychain.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeKeychain_lower(_ value: Keychain) -> UnsafeMutableRawPointer { - FfiConverterTypeKeychain.lower(value) + return FfiConverterTypeKeychain.lower(value) } -public protocol MnemonicProtocol: AnyObject { - func allWords() -> [GroupedWord] - func words() -> [String] + + +public protocol MnemonicProtocol : AnyObject { + + func allWords() -> [GroupedWord] + + func words() -> [String] + } open class Mnemonic: - MnemonicProtocol -{ + MnemonicProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5003,7 +5501,7 @@ open class Mnemonic: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5012,72 +5510,79 @@ open class Mnemonic: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_mnemonic(self.pointer, $0) } - } - - public convenience init(id: WalletId) throws { - let pointer = - try rustCallWithError(FfiConverterTypeMnemonicError.lift) { - uniffi_cove_fn_constructor_mnemonic_new( - FfiConverterTypeWalletId.lower(id), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_mnemonic(self.pointer, $0) } } +public convenience init(id: WalletId)throws { + let pointer = + try rustCallWithError(FfiConverterTypeMnemonicError.lift) { + uniffi_cove_fn_constructor_mnemonic_new( + FfiConverterTypeWalletId.lower(id),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_mnemonic(pointer, $0) } } - public static func preview(numberOfBip39Words: NumberOfBip39Words) -> Mnemonic { - try! FfiConverterTypeMnemonic.lift(try! rustCall { - uniffi_cove_fn_constructor_mnemonic_preview( - FfiConverterTypeNumberOfBip39Words.lower(numberOfBip39Words), $0 - ) - }) - } - - open func allWords() -> [GroupedWord] { - try! FfiConverterSequenceTypeGroupedWord.lift(try! rustCall { - uniffi_cove_fn_method_mnemonic_all_words(self.uniffiClonePointer(), $0) - }) - } - - open func words() -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_mnemonic_words(self.uniffiClonePointer(), $0) - }) - } + +public static func preview(numberOfBip39Words: NumberOfBip39Words) -> Mnemonic { + return try! FfiConverterTypeMnemonic.lift(try! rustCall() { + uniffi_cove_fn_constructor_mnemonic_preview( + FfiConverterTypeNumberOfBip39Words.lower(numberOfBip39Words),$0 + ) +}) } + -#if swift(>=5.8) - @_documentation(visibility: private) + +open func allWords() -> [GroupedWord] { + return try! FfiConverterSequenceTypeGroupedWord.lift(try! rustCall() { + uniffi_cove_fn_method_mnemonic_all_words(self.uniffiClonePointer(),$0 + ) +}) +} + +open func words() -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_mnemonic_words(self.uniffiClonePointer(),$0 + ) +}) +} + + +} + +#if swift(>=5.8) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMnemonic: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Mnemonic public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Mnemonic { - Mnemonic(unsafeFromRawPointer: pointer) + return Mnemonic(unsafeFromRawPointer: pointer) } public static func lower(_ value: Mnemonic) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Mnemonic { @@ -5085,7 +5590,7 @@ public struct FfiConverterTypeMnemonic: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5098,43 +5603,50 @@ public struct FfiConverterTypeMnemonic: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMnemonic_lift(_ pointer: UnsafeMutableRawPointer) throws -> Mnemonic { - try FfiConverterTypeMnemonic.lift(pointer) + return try FfiConverterTypeMnemonic.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMnemonic_lower(_ value: Mnemonic) -> UnsafeMutableRawPointer { - FfiConverterTypeMnemonic.lower(value) + return FfiConverterTypeMnemonic.lower(value) } -public protocol MultiQrProtocol: AnyObject { - func addPart(qr: String) throws -> BbqrJoinResult - - func getGroupedWords(qr: StringOrData, groupsOf: UInt8) throws -> [[String]]? - func handleScanResult(qr: StringOrData) throws -> MultiQrScanResult - func isBbqr() -> Bool - func isSeedQr() -> Bool - - func totalParts() -> UInt32 +public protocol MultiQrProtocol : AnyObject { + + func addPart(qr: String) throws -> BbqrJoinResult + + func getGroupedWords(qr: StringOrData, groupsOf: UInt8) throws -> [[String]]? + + func handleScanResult(qr: StringOrData) throws -> MultiQrScanResult + + func isBbqr() -> Bool + + func isSeedQr() -> Bool + + func totalParts() -> UInt32 + } open class MultiQr: - MultiQrProtocol -{ + MultiQrProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5142,7 +5654,7 @@ open class MultiQr: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5151,108 +5663,119 @@ open class MultiQr: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_multiqr(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_multiqr(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_multiqr(pointer, $0) } } - public static func newFromString(qr: String) -> MultiQr { - try! FfiConverterTypeMultiQr.lift(try! rustCall { - uniffi_cove_fn_constructor_multiqr_new_from_string( - FfiConverterString.lower(qr), $0 - ) - }) - } - - public static func tryNew(qr: StringOrData) throws -> MultiQr { - try FfiConverterTypeMultiQr.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_constructor_multiqr_try_new( - FfiConverterTypeStringOrData.lower(qr), $0 - ) - }) - } - - public static func tryNewFromData(data: Data) throws -> MultiQr { - try FfiConverterTypeMultiQr.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_constructor_multiqr_try_new_from_data( - FfiConverterData.lower(data), $0 - ) - }) - } - - open func addPart(qr: String) throws -> BbqrJoinResult { - try FfiConverterTypeBbqrJoinResult.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_multiqr_add_part(self.uniffiClonePointer(), - FfiConverterString.lower(qr), $0) - }) - } - - open func getGroupedWords(qr: StringOrData, groupsOf: UInt8) throws -> [[String]]? { - try FfiConverterOptionSequenceSequenceString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_multiqr_get_grouped_words(self.uniffiClonePointer(), - FfiConverterTypeStringOrData.lower(qr), - FfiConverterUInt8.lower(groupsOf), $0) - }) - } - - open func handleScanResult(qr: StringOrData) throws -> MultiQrScanResult { - try FfiConverterTypeMultiQrScanResult.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_multiqr_handle_scan_result(self.uniffiClonePointer(), - FfiConverterTypeStringOrData.lower(qr), $0) - }) - } - - open func isBbqr() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_multiqr_is_bbqr(self.uniffiClonePointer(), $0) - }) - } + +public static func newFromString(qr: String) -> MultiQr { + return try! FfiConverterTypeMultiQr.lift(try! rustCall() { + uniffi_cove_fn_constructor_multiqr_new_from_string( + FfiConverterString.lower(qr),$0 + ) +}) +} + +public static func tryNew(qr: StringOrData)throws -> MultiQr { + return try FfiConverterTypeMultiQr.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_constructor_multiqr_try_new( + FfiConverterTypeStringOrData.lower(qr),$0 + ) +}) +} + +public static func tryNewFromData(data: Data)throws -> MultiQr { + return try FfiConverterTypeMultiQr.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_constructor_multiqr_try_new_from_data( + FfiConverterData.lower(data),$0 + ) +}) +} + - open func isSeedQr() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_multiqr_is_seed_qr(self.uniffiClonePointer(), $0) - }) - } + +open func addPart(qr: String)throws -> BbqrJoinResult { + return try FfiConverterTypeBbqrJoinResult.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_multiqr_add_part(self.uniffiClonePointer(), + FfiConverterString.lower(qr),$0 + ) +}) +} + +open func getGroupedWords(qr: StringOrData, groupsOf: UInt8)throws -> [[String]]? { + return try FfiConverterOptionSequenceSequenceString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_multiqr_get_grouped_words(self.uniffiClonePointer(), + FfiConverterTypeStringOrData.lower(qr), + FfiConverterUInt8.lower(groupsOf),$0 + ) +}) +} + +open func handleScanResult(qr: StringOrData)throws -> MultiQrScanResult { + return try FfiConverterTypeMultiQrScanResult.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_multiqr_handle_scan_result(self.uniffiClonePointer(), + FfiConverterTypeStringOrData.lower(qr),$0 + ) +}) +} + +open func isBbqr() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_multiqr_is_bbqr(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isSeedQr() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_multiqr_is_seed_qr(self.uniffiClonePointer(),$0 + ) +}) +} + +open func totalParts() -> UInt32 { + return try! FfiConverterUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_multiqr_total_parts(self.uniffiClonePointer(),$0 + ) +}) +} + - open func totalParts() -> UInt32 { - try! FfiConverterUInt32.lift(try! rustCall { - uniffi_cove_fn_method_multiqr_total_parts(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiQr: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = MultiQr public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> MultiQr { - MultiQr(unsafeFromRawPointer: pointer) + return MultiQr(unsafeFromRawPointer: pointer) } public static func lower(_ value: MultiQr) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiQr { @@ -5260,7 +5783,7 @@ public struct FfiConverterTypeMultiQr: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5273,35 +5796,42 @@ public struct FfiConverterTypeMultiQr: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiQr_lift(_ pointer: UnsafeMutableRawPointer) throws -> MultiQr { - try FfiConverterTypeMultiQr.lift(pointer) + return try FfiConverterTypeMultiQr.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiQr_lower(_ value: MultiQr) -> UnsafeMutableRawPointer { - FfiConverterTypeMultiQr.lower(value) + return FfiConverterTypeMultiQr.lower(value) } -public protocol NdefRecordReaderProtocol: AnyObject { - func id() -> String? - func type() -> String? + + +public protocol NdefRecordReaderProtocol : AnyObject { + + func id() -> String? + + func type() -> String? + } open class NdefRecordReader: - NdefRecordReaderProtocol -{ + NdefRecordReaderProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5309,7 +5839,7 @@ open class NdefRecordReader: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5318,64 +5848,71 @@ open class NdefRecordReader: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_ndefrecordreader(self.pointer, $0) } - } - - public convenience init(record: NdefRecord) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_ndefrecordreader_new( - FfiConverterTypeNdefRecord.lower(record), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_ndefrecordreader(self.pointer, $0) } } +public convenience init(record: NdefRecord) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_ndefrecordreader_new( + FfiConverterTypeNdefRecord.lower(record),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_ndefrecordreader(pointer, $0) } } - open func id() -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_ndefrecordreader_id(self.uniffiClonePointer(), $0) - }) - } + + + +open func id() -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_ndefrecordreader_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func type() -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_ndefrecordreader_type_(self.uniffiClonePointer(),$0 + ) +}) +} + - open func type() -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_ndefrecordreader_type_(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefRecordReader: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = NdefRecordReader public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> NdefRecordReader { - NdefRecordReader(unsafeFromRawPointer: pointer) + return NdefRecordReader(unsafeFromRawPointer: pointer) } public static func lower(_ value: NdefRecordReader) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefRecordReader { @@ -5383,7 +5920,7 @@ public struct FfiConverterTypeNdefRecordReader: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5396,37 +5933,44 @@ public struct FfiConverterTypeNdefRecordReader: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecordReader_lift(_ pointer: UnsafeMutableRawPointer) throws -> NdefRecordReader { - try FfiConverterTypeNdefRecordReader.lift(pointer) + return try FfiConverterTypeNdefRecordReader.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecordReader_lower(_ value: NdefRecordReader) -> UnsafeMutableRawPointer { - FfiConverterTypeNdefRecordReader.lower(value) + return FfiConverterTypeNdefRecordReader.lower(value) } -public protocol NfcConstProtocol: AnyObject { - func bytesPerBlock() -> UInt16 - func numberOfBlocksPerChunk() -> UInt16 - func totalBytesPerChunk() -> UInt16 + +public protocol NfcConstProtocol : AnyObject { + + func bytesPerBlock() -> UInt16 + + func numberOfBlocksPerChunk() -> UInt16 + + func totalBytesPerChunk() -> UInt16 + } open class NfcConst: - NfcConstProtocol -{ + NfcConstProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5434,7 +5978,7 @@ open class NfcConst: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5443,69 +5987,77 @@ open class NfcConst: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_nfcconst(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_nfcconst_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_nfcconst(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_nfcconst_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_nfcconst(pointer, $0) } } - open func bytesPerBlock() -> UInt16 { - try! FfiConverterUInt16.lift(try! rustCall { - uniffi_cove_fn_method_nfcconst_bytes_per_block(self.uniffiClonePointer(), $0) - }) - } + - open func numberOfBlocksPerChunk() -> UInt16 { - try! FfiConverterUInt16.lift(try! rustCall { - uniffi_cove_fn_method_nfcconst_number_of_blocks_per_chunk(self.uniffiClonePointer(), $0) - }) - } + +open func bytesPerBlock() -> UInt16 { + return try! FfiConverterUInt16.lift(try! rustCall() { + uniffi_cove_fn_method_nfcconst_bytes_per_block(self.uniffiClonePointer(),$0 + ) +}) +} + +open func numberOfBlocksPerChunk() -> UInt16 { + return try! FfiConverterUInt16.lift(try! rustCall() { + uniffi_cove_fn_method_nfcconst_number_of_blocks_per_chunk(self.uniffiClonePointer(),$0 + ) +}) +} + +open func totalBytesPerChunk() -> UInt16 { + return try! FfiConverterUInt16.lift(try! rustCall() { + uniffi_cove_fn_method_nfcconst_total_bytes_per_chunk(self.uniffiClonePointer(),$0 + ) +}) +} + - open func totalBytesPerChunk() -> UInt16 { - try! FfiConverterUInt16.lift(try! rustCall { - uniffi_cove_fn_method_nfcconst_total_bytes_per_chunk(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNfcConst: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = NfcConst public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> NfcConst { - NfcConst(unsafeFromRawPointer: pointer) + return NfcConst(unsafeFromRawPointer: pointer) } public static func lower(_ value: NfcConst) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NfcConst { @@ -5513,7 +6065,7 @@ public struct FfiConverterTypeNfcConst: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5526,49 +6078,56 @@ public struct FfiConverterTypeNfcConst: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNfcConst_lift(_ pointer: UnsafeMutableRawPointer) throws -> NfcConst { - try FfiConverterTypeNfcConst.lift(pointer) + return try FfiConverterTypeNfcConst.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNfcConst_lower(_ value: NfcConst) -> UnsafeMutableRawPointer { - FfiConverterTypeNfcConst.lower(value) + return FfiConverterTypeNfcConst.lower(value) } -public protocol NodeSelectorProtocol: AnyObject { - /** - * Check the node url and set it as selected node if it is valid - */ - func checkAndSaveNode(node: Node) async throws - func checkSelectedNode(node: Node) async throws - func nodeList() -> [NodeSelection] +public protocol NodeSelectorProtocol : AnyObject { + + /** + * Check the node url and set it as selected node if it is valid + */ + func checkAndSaveNode(node: Node) async throws + + func checkSelectedNode(node: Node) async throws + + func nodeList() -> [NodeSelection] + /** * Use the url and name of the custom node to set it as the selected node */ - func parseCustomNode(url: String, name: String, enteredName: String) throws -> Node - - func selectPresetNode(name: String) throws -> Node - - func selectedNode() -> NodeSelection + func parseCustomNode(url: String, name: String, enteredName: String) throws -> Node + + func selectPresetNode(name: String) throws -> Node + + func selectedNode() -> NodeSelection + } open class NodeSelector: - NodeSelectorProtocol -{ + NodeSelectorProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5576,7 +6135,7 @@ open class NodeSelector: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5585,42 +6144,45 @@ open class NodeSelector: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_nodeselector(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_nodeselector_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_nodeselector(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_nodeselector_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_nodeselector(pointer, $0) } } + + + /** * Check the node url and set it as selected node if it is valid */ - open func checkAndSaveNode(node: Node) async throws { - try await uniffiRustCallAsync( +open func checkAndSaveNode(node: Node)async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_nodeselector_check_and_save_node( self.uniffiClonePointer(), @@ -5633,10 +6195,11 @@ open class NodeSelector: liftFunc: { $0 }, errorHandler: FfiConverterTypeNodeSelectorError.lift ) - } - - open func checkSelectedNode(node: Node) async throws { - try await uniffiRustCallAsync( +} + +open func checkSelectedNode(node: Node)async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_nodeselector_check_selected_node( self.uniffiClonePointer(), @@ -5649,53 +6212,60 @@ open class NodeSelector: liftFunc: { $0 }, errorHandler: FfiConverterTypeNodeSelectorError.lift ) - } - - open func nodeList() -> [NodeSelection] { - try! FfiConverterSequenceTypeNodeSelection.lift(try! rustCall { - uniffi_cove_fn_method_nodeselector_node_list(self.uniffiClonePointer(), $0) - }) - } - +} + +open func nodeList() -> [NodeSelection] { + return try! FfiConverterSequenceTypeNodeSelection.lift(try! rustCall() { + uniffi_cove_fn_method_nodeselector_node_list(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Use the url and name of the custom node to set it as the selected node */ - open func parseCustomNode(url: String, name: String, enteredName: String) throws -> Node { - try FfiConverterTypeNode.lift(rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { - uniffi_cove_fn_method_nodeselector_parse_custom_node(self.uniffiClonePointer(), - FfiConverterString.lower(url), - FfiConverterString.lower(name), - FfiConverterString.lower(enteredName), $0) - }) - } - - open func selectPresetNode(name: String) throws -> Node { - try FfiConverterTypeNode.lift(rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { - uniffi_cove_fn_method_nodeselector_select_preset_node(self.uniffiClonePointer(), - FfiConverterString.lower(name), $0) - }) - } +open func parseCustomNode(url: String, name: String, enteredName: String)throws -> Node { + return try FfiConverterTypeNode.lift(try rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { + uniffi_cove_fn_method_nodeselector_parse_custom_node(self.uniffiClonePointer(), + FfiConverterString.lower(url), + FfiConverterString.lower(name), + FfiConverterString.lower(enteredName),$0 + ) +}) +} + +open func selectPresetNode(name: String)throws -> Node { + return try FfiConverterTypeNode.lift(try rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { + uniffi_cove_fn_method_nodeselector_select_preset_node(self.uniffiClonePointer(), + FfiConverterString.lower(name),$0 + ) +}) +} + +open func selectedNode() -> NodeSelection { + return try! FfiConverterTypeNodeSelection.lift(try! rustCall() { + uniffi_cove_fn_method_nodeselector_selected_node(self.uniffiClonePointer(),$0 + ) +}) +} + - open func selectedNode() -> NodeSelection { - try! FfiConverterTypeNodeSelection.lift(try! rustCall { - uniffi_cove_fn_method_nodeselector_selected_node(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNodeSelector: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = NodeSelector public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> NodeSelector { - NodeSelector(unsafeFromRawPointer: pointer) + return NodeSelector(unsafeFromRawPointer: pointer) } public static func lower(_ value: NodeSelector) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NodeSelector { @@ -5703,7 +6273,7 @@ public struct FfiConverterTypeNodeSelector: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5716,31 +6286,38 @@ public struct FfiConverterTypeNodeSelector: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelector_lift(_ pointer: UnsafeMutableRawPointer) throws -> NodeSelector { - try FfiConverterTypeNodeSelector.lift(pointer) + return try FfiConverterTypeNodeSelector.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelector_lower(_ value: NodeSelector) -> UnsafeMutableRawPointer { - FfiConverterTypeNodeSelector.lower(value) + return FfiConverterTypeNodeSelector.lower(value) } -public protocol OutPointProtocol: AnyObject {} + + + +public protocol OutPointProtocol : AnyObject { + +} open class OutPoint: - OutPointProtocol -{ + OutPointProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5748,7 +6325,7 @@ open class OutPoint: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5757,44 +6334,49 @@ open class OutPoint: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_outpoint(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_outpoint(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_outpoint(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeOutPoint: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = OutPoint public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> OutPoint { - OutPoint(unsafeFromRawPointer: pointer) + return OutPoint(unsafeFromRawPointer: pointer) } public static func lower(_ value: OutPoint) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> OutPoint { @@ -5802,7 +6384,7 @@ public struct FfiConverterTypeOutPoint: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5815,31 +6397,38 @@ public struct FfiConverterTypeOutPoint: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeOutPoint_lift(_ pointer: UnsafeMutableRawPointer) throws -> OutPoint { - try FfiConverterTypeOutPoint.lift(pointer) + return try FfiConverterTypeOutPoint.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeOutPoint_lower(_ value: OutPoint) -> UnsafeMutableRawPointer { - FfiConverterTypeOutPoint.lower(value) + return FfiConverterTypeOutPoint.lower(value) } -public protocol PendingWalletProtocol: AnyObject {} + + + +public protocol PendingWalletProtocol : AnyObject { + +} open class PendingWallet: - PendingWalletProtocol -{ + PendingWalletProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5847,7 +6436,7 @@ open class PendingWallet: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5856,44 +6445,49 @@ open class PendingWallet: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_pendingwallet(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_pendingwallet(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_pendingwallet(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWallet: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = PendingWallet public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> PendingWallet { - PendingWallet(unsafeFromRawPointer: pointer) + return PendingWallet(unsafeFromRawPointer: pointer) } public static func lower(_ value: PendingWallet) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWallet { @@ -5901,7 +6495,7 @@ public struct FfiConverterTypePendingWallet: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5914,46 +6508,53 @@ public struct FfiConverterTypePendingWallet: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWallet_lift(_ pointer: UnsafeMutableRawPointer) throws -> PendingWallet { - try FfiConverterTypePendingWallet.lift(pointer) + return try FfiConverterTypePendingWallet.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWallet_lower(_ value: PendingWallet) -> UnsafeMutableRawPointer { - FfiConverterTypePendingWallet.lower(value) + return FfiConverterTypePendingWallet.lower(value) } -public protocol PsbtProtocol: AnyObject { + + + +public protocol PsbtProtocol : AnyObject { + /** * Total fee in sats. */ - func fee() throws -> Amount - + func fee() throws -> Amount + /** * Get the transaction id of the unsigned transaction */ - func txId() -> TxId - + func txId() -> TxId + /** * The virtual size of the transaction. */ - func weight() -> UInt64 + func weight() -> UInt64 + } open class Psbt: - PsbtProtocol -{ + PsbtProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5961,7 +6562,7 @@ open class Psbt: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5970,79 +6571,87 @@ open class Psbt: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_psbt(self.pointer, $0) } - } - - public convenience init(data: Data) throws { - let pointer = - try rustCallWithError(FfiConverterTypePsbtError.lift) { - uniffi_cove_fn_constructor_psbt_new( - FfiConverterData.lower(data), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_psbt(self.pointer, $0) } } +public convenience init(data: Data)throws { + let pointer = + try rustCallWithError(FfiConverterTypePsbtError.lift) { + uniffi_cove_fn_constructor_psbt_new( + FfiConverterData.lower(data),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_psbt(pointer, $0) } } + + + /** * Total fee in sats. */ - open func fee() throws -> Amount { - try FfiConverterTypeAmount.lift(rustCallWithError(FfiConverterTypePsbtError.lift) { - uniffi_cove_fn_method_psbt_fee(self.uniffiClonePointer(), $0) - }) - } - +open func fee()throws -> Amount { + return try FfiConverterTypeAmount.lift(try rustCallWithError(FfiConverterTypePsbtError.lift) { + uniffi_cove_fn_method_psbt_fee(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Get the transaction id of the unsigned transaction */ - open func txId() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_psbt_tx_id(self.uniffiClonePointer(), $0) - }) - } - +open func txId() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_psbt_tx_id(self.uniffiClonePointer(),$0 + ) +}) +} + /** * The virtual size of the transaction. */ - open func weight() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_psbt_weight(self.uniffiClonePointer(), $0) - }) - } +open func weight() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_psbt_weight(self.uniffiClonePointer(),$0 + ) +}) +} + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePsbt: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Psbt public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Psbt { - Psbt(unsafeFromRawPointer: pointer) + return Psbt(unsafeFromRawPointer: pointer) } public static func lower(_ value: Psbt) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Psbt { @@ -6050,7 +6659,7 @@ public struct FfiConverterTypePsbt: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6063,59 +6672,66 @@ public struct FfiConverterTypePsbt: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePsbt_lift(_ pointer: UnsafeMutableRawPointer) throws -> Psbt { - try FfiConverterTypePsbt.lift(pointer) + return try FfiConverterTypePsbt.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePsbt_lower(_ value: Psbt) -> UnsafeMutableRawPointer { - FfiConverterTypePsbt.lower(value) -} - -public protocol RouteFactoryProtocol: AnyObject { - func coldWalletImport(route: ColdWalletRoute) -> Route - - func hotWallet(route: HotWalletRoute) -> Route - - func hotWalletImportFromScan() -> Route - - func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool - - func loadAndResetTo(resetTo: Route) -> Route - - func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route - - func newHotWallet() -> Route - - func newWalletSelect() -> Route - - func qrImport() -> Route - - func secretWords(walletId: WalletId) -> Route - - func send(send: SendRoute) -> Route - - func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route - - func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route - - func sendSetAmount(id: WalletId, address: Address?, amount: Amount?) -> Route + return FfiConverterTypePsbt.lower(value) +} + + + + +public protocol RouteFactoryProtocol : AnyObject { + + func coldWalletImport(route: ColdWalletRoute) -> Route + + func hotWallet(route: HotWalletRoute) -> Route + + func hotWalletImportFromScan() -> Route + + func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool + + func loadAndResetTo(resetTo: Route) -> Route + + func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route + + func newHotWallet() -> Route + + func newWalletSelect() -> Route + + func qrImport() -> Route + + func secretWords(walletId: WalletId) -> Route + + func send(send: SendRoute) -> Route + + func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route + + func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route + + func sendSetAmount(id: WalletId, address: Address?, amount: Amount?) -> Route + } open class RouteFactory: - RouteFactoryProtocol -{ + RouteFactoryProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -6123,7 +6739,7 @@ open class RouteFactory: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6132,151 +6748,170 @@ open class RouteFactory: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_routefactory(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_routefactory_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_routefactory(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_routefactory_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_routefactory(pointer, $0) } } - open func coldWalletImport(route: ColdWalletRoute) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_cold_wallet_import(self.uniffiClonePointer(), - FfiConverterTypeColdWalletRoute.lower(route), $0) - }) - } - - open func hotWallet(route: HotWalletRoute) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_hot_wallet(self.uniffiClonePointer(), - FfiConverterTypeHotWalletRoute.lower(route), $0) - }) - } - - open func hotWalletImportFromScan() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_hot_wallet_import_from_scan(self.uniffiClonePointer(), $0) - }) - } - - open func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_is_same_parent_route(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), - FfiConverterTypeRoute.lower(routeToCheck), $0) - }) - } - - open func loadAndResetTo(resetTo: Route) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_load_and_reset_to(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(resetTo), $0) - }) - } - - open func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_load_and_reset_to_after(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(resetTo), - FfiConverterUInt32.lower(time), $0) - }) - } - - open func newHotWallet() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_new_hot_wallet(self.uniffiClonePointer(), $0) - }) - } - - open func newWalletSelect() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_new_wallet_select(self.uniffiClonePointer(), $0) - }) - } - - open func qrImport() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_qr_import(self.uniffiClonePointer(), $0) - }) - } - - open func secretWords(walletId: WalletId) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_secret_words(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(walletId), $0) - }) - } - - open func send(send: SendRoute) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_send(self.uniffiClonePointer(), - FfiConverterTypeSendRoute.lower(send), $0) - }) - } - - open func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_send_confirm(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), - FfiConverterTypeConfirmDetails.lower(details), $0) - }) - } + - open func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_send_hardware_export(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), - FfiConverterTypeConfirmDetails.lower(details), $0) - }) - } + +open func coldWalletImport(route: ColdWalletRoute) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_cold_wallet_import(self.uniffiClonePointer(), + FfiConverterTypeColdWalletRoute.lower(route),$0 + ) +}) +} + +open func hotWallet(route: HotWalletRoute) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_hot_wallet(self.uniffiClonePointer(), + FfiConverterTypeHotWalletRoute.lower(route),$0 + ) +}) +} + +open func hotWalletImportFromScan() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_hot_wallet_import_from_scan(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_is_same_parent_route(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route), + FfiConverterTypeRoute.lower(routeToCheck),$0 + ) +}) +} + +open func loadAndResetTo(resetTo: Route) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_load_and_reset_to(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(resetTo),$0 + ) +}) +} + +open func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_load_and_reset_to_after(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(resetTo), + FfiConverterUInt32.lower(time),$0 + ) +}) +} + +open func newHotWallet() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_new_hot_wallet(self.uniffiClonePointer(),$0 + ) +}) +} + +open func newWalletSelect() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_new_wallet_select(self.uniffiClonePointer(),$0 + ) +}) +} + +open func qrImport() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_qr_import(self.uniffiClonePointer(),$0 + ) +}) +} + +open func secretWords(walletId: WalletId) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_secret_words(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(walletId),$0 + ) +}) +} + +open func send(send: SendRoute) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_send(self.uniffiClonePointer(), + FfiConverterTypeSendRoute.lower(send),$0 + ) +}) +} + +open func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_send_confirm(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), + FfiConverterTypeConfirmDetails.lower(details),$0 + ) +}) +} + +open func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_send_hardware_export(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), + FfiConverterTypeConfirmDetails.lower(details),$0 + ) +}) +} + +open func sendSetAmount(id: WalletId, address: Address? = nil, amount: Amount? = nil) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_send_set_amount(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), + FfiConverterOptionTypeAddress.lower(address), + FfiConverterOptionTypeAmount.lower(amount),$0 + ) +}) +} + - open func sendSetAmount(id: WalletId, address: Address? = nil, amount: Amount? = nil) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_send_set_amount(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), - FfiConverterOptionTypeAddress.lower(address), - FfiConverterOptionTypeAmount.lower(amount), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRouteFactory: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RouteFactory public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RouteFactory { - RouteFactory(unsafeFromRawPointer: pointer) + return RouteFactory(unsafeFromRawPointer: pointer) } public static func lower(_ value: RouteFactory) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RouteFactory { @@ -6284,7 +6919,7 @@ public struct FfiConverterTypeRouteFactory: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6297,43 +6932,50 @@ public struct FfiConverterTypeRouteFactory: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRouteFactory_lift(_ pointer: UnsafeMutableRawPointer) throws -> RouteFactory { - try FfiConverterTypeRouteFactory.lift(pointer) + return try FfiConverterTypeRouteFactory.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRouteFactory_lower(_ value: RouteFactory) -> UnsafeMutableRawPointer { - FfiConverterTypeRouteFactory.lower(value) + return FfiConverterTypeRouteFactory.lower(value) } -public protocol RustImportWalletViewModelProtocol: AnyObject { + + + +public protocol RustImportWalletViewModelProtocol : AnyObject { + /** * Action from the frontend to change the state of the view model */ - func dispatch(action: ImportWalletViewModelAction) - + func dispatch(action: ImportWalletViewModelAction) + /** * Import wallet view from entered words */ - func importWallet(enteredWords: [[String]]) throws -> WalletMetadata - - func listenForUpdates(reconciler: ImportWalletViewModelReconciler) + func importWallet(enteredWords: [[String]]) throws -> WalletMetadata + + func listenForUpdates(reconciler: ImportWalletViewModelReconciler) + } open class RustImportWalletViewModel: - RustImportWalletViewModelProtocol -{ + RustImportWalletViewModelProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -6341,7 +6983,7 @@ open class RustImportWalletViewModel: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6350,76 +6992,84 @@ open class RustImportWalletViewModel: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_rustimportwalletviewmodel(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_rustimportwalletviewmodel_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_rustimportwalletviewmodel(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_rustimportwalletviewmodel_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_rustimportwalletviewmodel(pointer, $0) } } + + + /** * Action from the frontend to change the state of the view model */ - open func dispatch(action: ImportWalletViewModelAction) { try! rustCall { - uniffi_cove_fn_method_rustimportwalletviewmodel_dispatch(self.uniffiClonePointer(), - FfiConverterTypeImportWalletViewModelAction.lower(action), $0) - } - } - +open func dispatch(action: ImportWalletViewModelAction) {try! rustCall() { + uniffi_cove_fn_method_rustimportwalletviewmodel_dispatch(self.uniffiClonePointer(), + FfiConverterTypeImportWalletViewModelAction.lower(action),$0 + ) +} +} + /** * Import wallet view from entered words */ - open func importWallet(enteredWords: [[String]]) throws -> WalletMetadata { - try FfiConverterTypeWalletMetadata.lift(rustCallWithError(FfiConverterTypeImportWalletError.lift) { - uniffi_cove_fn_method_rustimportwalletviewmodel_import_wallet(self.uniffiClonePointer(), - FfiConverterSequenceSequenceString.lower(enteredWords), $0) - }) - } +open func importWallet(enteredWords: [[String]])throws -> WalletMetadata { + return try FfiConverterTypeWalletMetadata.lift(try rustCallWithError(FfiConverterTypeImportWalletError.lift) { + uniffi_cove_fn_method_rustimportwalletviewmodel_import_wallet(self.uniffiClonePointer(), + FfiConverterSequenceSequenceString.lower(enteredWords),$0 + ) +}) +} + +open func listenForUpdates(reconciler: ImportWalletViewModelReconciler) {try! rustCall() { + uniffi_cove_fn_method_rustimportwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfaceImportWalletViewModelReconciler.lower(reconciler),$0 + ) +} +} + - open func listenForUpdates(reconciler: ImportWalletViewModelReconciler) { try! rustCall { - uniffi_cove_fn_method_rustimportwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfaceImportWalletViewModelReconciler.lower(reconciler), $0) - } - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRustImportWalletViewModel: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RustImportWalletViewModel public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RustImportWalletViewModel { - RustImportWalletViewModel(unsafeFromRawPointer: pointer) + return RustImportWalletViewModel(unsafeFromRawPointer: pointer) } public static func lower(_ value: RustImportWalletViewModel) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RustImportWalletViewModel { @@ -6427,7 +7077,7 @@ public struct FfiConverterTypeRustImportWalletViewModel: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6440,50 +7090,57 @@ public struct FfiConverterTypeRustImportWalletViewModel: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustImportWalletViewModel_lift(_ pointer: UnsafeMutableRawPointer) throws -> RustImportWalletViewModel { - try FfiConverterTypeRustImportWalletViewModel.lift(pointer) + return try FfiConverterTypeRustImportWalletViewModel.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustImportWalletViewModel_lower(_ value: RustImportWalletViewModel) -> UnsafeMutableRawPointer { - FfiConverterTypeRustImportWalletViewModel.lower(value) + return FfiConverterTypeRustImportWalletViewModel.lower(value) } -public protocol RustPendingWalletViewModelProtocol: AnyObject { - func bip39Words() -> [String] - func bip39WordsGrouped() -> [[GroupedWord]] - func cardIndexes() -> UInt8 +public protocol RustPendingWalletViewModelProtocol : AnyObject { + + func bip39Words() -> [String] + + func bip39WordsGrouped() -> [[GroupedWord]] + + func cardIndexes() -> UInt8 + /** * Action from the frontend to change the state of the view model */ - func dispatch(action: PendingWalletViewModelAction) - - func getState() -> PendingWalletViewModelState - - func listenForUpdates(reconciler: PendingWalletViewModelReconciler) - - func numberOfWordsCount() -> UInt8 - - func saveWallet() throws -> WalletMetadata + func dispatch(action: PendingWalletViewModelAction) + + func getState() -> PendingWalletViewModelState + + func listenForUpdates(reconciler: PendingWalletViewModelReconciler) + + func numberOfWordsCount() -> UInt8 + + func saveWallet() throws -> WalletMetadata + } open class RustPendingWalletViewModel: - RustPendingWalletViewModelProtocol -{ + RustPendingWalletViewModelProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -6491,7 +7148,7 @@ open class RustPendingWalletViewModel: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6500,103 +7157,116 @@ open class RustPendingWalletViewModel: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_rustpendingwalletviewmodel(self.pointer, $0) } - } - - public convenience init(numberOfWords: NumberOfBip39Words) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_rustpendingwalletviewmodel_new( - FfiConverterTypeNumberOfBip39Words.lower(numberOfWords), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_rustpendingwalletviewmodel(self.pointer, $0) } } +public convenience init(numberOfWords: NumberOfBip39Words) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_rustpendingwalletviewmodel_new( + FfiConverterTypeNumberOfBip39Words.lower(numberOfWords),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_rustpendingwalletviewmodel(pointer, $0) } } - open func bip39Words() -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words(self.uniffiClonePointer(), $0) - }) - } - - open func bip39WordsGrouped() -> [[GroupedWord]] { - try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words_grouped(self.uniffiClonePointer(), $0) - }) - } - - open func cardIndexes() -> UInt8 { - try! FfiConverterUInt8.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_card_indexes(self.uniffiClonePointer(), $0) - }) - } + + +open func bip39Words() -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words(self.uniffiClonePointer(),$0 + ) +}) +} + +open func bip39WordsGrouped() -> [[GroupedWord]] { + return try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words_grouped(self.uniffiClonePointer(),$0 + ) +}) +} + +open func cardIndexes() -> UInt8 { + return try! FfiConverterUInt8.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_card_indexes(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Action from the frontend to change the state of the view model */ - open func dispatch(action: PendingWalletViewModelAction) { try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_dispatch(self.uniffiClonePointer(), - FfiConverterTypePendingWalletViewModelAction.lower(action), $0) - } - } - - open func getState() -> PendingWalletViewModelState { - try! FfiConverterTypePendingWalletViewModelState.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_get_state(self.uniffiClonePointer(), $0) - }) - } - - open func listenForUpdates(reconciler: PendingWalletViewModelReconciler) { try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfacePendingWalletViewModelReconciler.lower(reconciler), $0) - } - } - - open func numberOfWordsCount() -> UInt8 { - try! FfiConverterUInt8.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_number_of_words_count(self.uniffiClonePointer(), $0) - }) - } +open func dispatch(action: PendingWalletViewModelAction) {try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_dispatch(self.uniffiClonePointer(), + FfiConverterTypePendingWalletViewModelAction.lower(action),$0 + ) +} +} + +open func getState() -> PendingWalletViewModelState { + return try! FfiConverterTypePendingWalletViewModelState.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_get_state(self.uniffiClonePointer(),$0 + ) +}) +} + +open func listenForUpdates(reconciler: PendingWalletViewModelReconciler) {try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfacePendingWalletViewModelReconciler.lower(reconciler),$0 + ) +} +} + +open func numberOfWordsCount() -> UInt8 { + return try! FfiConverterUInt8.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_number_of_words_count(self.uniffiClonePointer(),$0 + ) +}) +} + +open func saveWallet()throws -> WalletMetadata { + return try FfiConverterTypeWalletMetadata.lift(try rustCallWithError(FfiConverterTypePendingWalletViewModelError.lift) { + uniffi_cove_fn_method_rustpendingwalletviewmodel_save_wallet(self.uniffiClonePointer(),$0 + ) +}) +} + - open func saveWallet() throws -> WalletMetadata { - try FfiConverterTypeWalletMetadata.lift(rustCallWithError(FfiConverterTypePendingWalletViewModelError.lift) { - uniffi_cove_fn_method_rustpendingwalletviewmodel_save_wallet(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRustPendingWalletViewModel: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RustPendingWalletViewModel public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RustPendingWalletViewModel { - RustPendingWalletViewModel(unsafeFromRawPointer: pointer) + return RustPendingWalletViewModel(unsafeFromRawPointer: pointer) } public static func lower(_ value: RustPendingWalletViewModel) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RustPendingWalletViewModel { @@ -6604,7 +7274,7 @@ public struct FfiConverterTypeRustPendingWalletViewModel: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6617,112 +7287,119 @@ public struct FfiConverterTypeRustPendingWalletViewModel: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustPendingWalletViewModel_lift(_ pointer: UnsafeMutableRawPointer) throws -> RustPendingWalletViewModel { - try FfiConverterTypeRustPendingWalletViewModel.lift(pointer) + return try FfiConverterTypeRustPendingWalletViewModel.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustPendingWalletViewModel_lower(_ value: RustPendingWalletViewModel) -> UnsafeMutableRawPointer { - FfiConverterTypeRustPendingWalletViewModel.lower(value) + return FfiConverterTypeRustPendingWalletViewModel.lower(value) } -public protocol RustWalletViewModelProtocol: AnyObject { - /** - * Get address at the given index - */ - func addressAt(index: UInt32) async throws -> AddressInfo - - func amountInFiat(amount: Amount, currency: FiatCurrency) async throws -> Double - - func balance() async -> Balance - - func balanceInFiat() async throws -> Double - - func buildTransaction(amount: Amount, address: Address) async throws -> Psbt - - func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate) async throws -> Psbt - - func currentBlockHeight() async throws -> UInt32 - func deleteUnsignedTransaction(txId: TxId) throws - func deleteWallet() throws +public protocol RustWalletViewModelProtocol : AnyObject { + + /** + * Get address at the given index + */ + func addressAt(index: UInt32) async throws -> AddressInfo + + func amountInFiat(amount: Amount, currency: FiatCurrency) async throws -> Double + + func balance() async -> Balance + + func balanceInFiat() async throws -> Double + + func buildTransaction(amount: Amount, address: Address) async throws -> Psbt + + func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate) async throws -> Psbt + + func currentBlockHeight() async throws -> UInt32 + + func deleteUnsignedTransaction(txId: TxId) throws + + func deleteWallet() throws + /** * Action from the frontend to change the state of the view model */ - func dispatch(action: WalletViewModelAction) - - func displayAmount(amount: Amount) -> String - - func displayFiatAmount(amount: Double) -> String - - func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String - - func feeRateOptions() async throws -> FeeRateOptions - - func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address) async throws -> FeeRateOptionsWithTotalFee - - func fees() -> FeeResponse? - - func fingerprint() -> String - - func forceUpdateHeight() async throws -> UInt32 - - func forceWalletScan() async throws - - func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate) async throws -> ConfirmDetails - - func getFeeOptions() async throws -> FeeRateOptions - - func getMaxSendAmount(fee: FeeRateOptionWithTotalFee) async throws -> Amount - - func getUnsignedTransactions() throws -> [UnsignedTransaction] - - func listenForUpdates(reconciler: WalletViewModelReconciler) - - func markWalletAsVerified() throws - + func dispatch(action: WalletViewModelAction) + + func displayAmount(amount: Amount) -> String + + func displayFiatAmount(amount: Double) -> String + + func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String + + func feeRateOptions() async throws -> FeeRateOptions + + func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address) async throws -> FeeRateOptionsWithTotalFee + + func fees() -> FeeResponse? + + func fingerprint() -> String + + func forceUpdateHeight() async throws -> UInt32 + + func forceWalletScan() async throws + + func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate) async throws -> ConfirmDetails + + func getFeeOptions() async throws -> FeeRateOptions + + func getMaxSendAmount(fee: FeeRateOptionWithTotalFee) async throws -> Amount + + func getUnsignedTransactions() throws -> [UnsignedTransaction] + + func listenForUpdates(reconciler: WalletViewModelReconciler) + + func markWalletAsVerified() throws + /** * Get the next address for the wallet */ - func nextAddress() async throws -> AddressInfo - - func numberOfConfirmations(blockHeight: UInt32) async throws -> UInt32 - - func numberOfConfirmationsFmt(blockHeight: UInt32) async throws -> String - - func saveUnsignedTransaction(details: ConfirmDetails) throws - - func sentAndReceivedFiat(sentAndReceived: SentAndReceived) async throws -> Double - - func setWalletMetadata(metadata: WalletMetadata) - - func startWalletScan() async throws - - func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType) async throws - - func transactionDetails(txId: TxId) async throws -> TransactionDetails - - func walletMetadata() -> WalletMetadata - - func wordValidator() throws -> WordValidator + func nextAddress() async throws -> AddressInfo + + func numberOfConfirmations(blockHeight: UInt32) async throws -> UInt32 + + func numberOfConfirmationsFmt(blockHeight: UInt32) async throws -> String + + func saveUnsignedTransaction(details: ConfirmDetails) throws + + func sentAndReceivedFiat(sentAndReceived: SentAndReceived) async throws -> Double + + func setWalletMetadata(metadata: WalletMetadata) + + func startWalletScan() async throws + + func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType) async throws + + func transactionDetails(txId: TxId) async throws -> TransactionDetails + + func walletMetadata() -> WalletMetadata + + func wordValidator() throws -> WordValidator + } open class RustWalletViewModel: - RustWalletViewModelProtocol -{ + RustWalletViewModelProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -6730,7 +7407,7 @@ open class RustWalletViewModel: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6739,58 +7416,61 @@ open class RustWalletViewModel: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_rustwalletviewmodel(self.pointer, $0) } - } - - public convenience init(id: WalletId) throws { - let pointer = - try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_constructor_rustwalletviewmodel_new( - FfiConverterTypeWalletId.lower(id), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_rustwalletviewmodel(self.pointer, $0) } } +public convenience init(id: WalletId)throws { + let pointer = + try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_constructor_rustwalletviewmodel_new( + FfiConverterTypeWalletId.lower(id),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_rustwalletviewmodel(pointer, $0) } } - public static func previewNewWallet() -> RustWalletViewModel { - try! FfiConverterTypeRustWalletViewModel.lift(try! rustCall { - uniffi_cove_fn_constructor_rustwalletviewmodel_preview_new_wallet($0 - ) - }) - } - - public static func tryNewFromXpub(xpub: String) throws -> RustWalletViewModel { - try FfiConverterTypeRustWalletViewModel.lift(rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_constructor_rustwalletviewmodel_try_new_from_xpub( - FfiConverterString.lower(xpub), $0 - ) - }) - } + +public static func previewNewWallet() -> RustWalletViewModel { + return try! FfiConverterTypeRustWalletViewModel.lift(try! rustCall() { + uniffi_cove_fn_constructor_rustwalletviewmodel_preview_new_wallet($0 + ) +}) +} + +public static func tryNewFromXpub(xpub: String)throws -> RustWalletViewModel { + return try FfiConverterTypeRustWalletViewModel.lift(try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_constructor_rustwalletviewmodel_try_new_from_xpub( + FfiConverterString.lower(xpub),$0 + ) +}) +} + + /** * Get address at the given index */ - open func addressAt(index: UInt32) async throws -> AddressInfo { - try await uniffiRustCallAsync( +open func addressAt(index: UInt32)async throws -> AddressInfo { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_address_at( self.uniffiClonePointer(), @@ -6803,14 +7483,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeAddressInfo.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func amountInFiat(amount: Amount, currency: FiatCurrency) async throws -> Double { - try await uniffiRustCallAsync( +} + +open func amountInFiat(amount: Amount, currency: FiatCurrency)async throws -> Double { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_amount_in_fiat( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), FfiConverterTypeFiatCurrency.lower(currency) + FfiConverterTypeAmount.lower(amount),FfiConverterTypeFiatCurrency.lower(currency) ) }, pollFunc: ffi_cove_rust_future_poll_f64, @@ -6819,13 +7500,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func balance() async -> Balance { - try! await uniffiRustCallAsync( +} + +open func balance()async -> Balance { + return + try! await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_balance( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -6833,14 +7516,17 @@ open class RustWalletViewModel: freeFunc: ffi_cove_rust_future_free_rust_buffer, liftFunc: FfiConverterTypeBalance.lift, errorHandler: nil + ) - } - - open func balanceInFiat() async throws -> Double { - try await uniffiRustCallAsync( +} + +open func balanceInFiat()async throws -> Double { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_balance_in_fiat( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_f64, @@ -6849,14 +7535,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func buildTransaction(amount: Amount, address: Address) async throws -> Psbt { - try await uniffiRustCallAsync( +} + +open func buildTransaction(amount: Amount, address: Address)async throws -> Psbt { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_build_transaction( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address) + FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -6865,14 +7552,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypePsbt.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate) async throws -> Psbt { - try await uniffiRustCallAsync( +} + +open func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate)async throws -> Psbt { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_build_transaction_with_fee_rate( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address), FfiConverterTypeFeeRate.lower(feeRate) + FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address),FfiConverterTypeFeeRate.lower(feeRate) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -6881,13 +7569,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypePsbt.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func currentBlockHeight() async throws -> UInt32 { - try await uniffiRustCallAsync( +} + +open func currentBlockHeight()async throws -> UInt32 { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_current_block_height( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_u32, @@ -6896,54 +7586,62 @@ open class RustWalletViewModel: liftFunc: FfiConverterUInt32.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func deleteUnsignedTransaction(txId: TxId) throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_delete_unsigned_transaction(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(txId), $0) - } - } - - open func deleteWallet() throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_delete_wallet(self.uniffiClonePointer(), $0) - } - } - +} + +open func deleteUnsignedTransaction(txId: TxId)throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_delete_unsigned_transaction(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(txId),$0 + ) +} +} + +open func deleteWallet()throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_delete_wallet(self.uniffiClonePointer(),$0 + ) +} +} + /** * Action from the frontend to change the state of the view model */ - open func dispatch(action: WalletViewModelAction) { try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_dispatch(self.uniffiClonePointer(), - FfiConverterTypeWalletViewModelAction.lower(action), $0) - } - } - - open func displayAmount(amount: Amount) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_display_amount(self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), $0) - }) - } - - open func displayFiatAmount(amount: Double) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_display_fiat_amount(self.uniffiClonePointer(), - FfiConverterDouble.lower(amount), $0) - }) - } - - open func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_display_sent_and_received_amount(self.uniffiClonePointer(), - FfiConverterTypeSentAndReceived.lower(sentAndReceived), $0) - }) - } - - open func feeRateOptions() async throws -> FeeRateOptions { - try await uniffiRustCallAsync( +open func dispatch(action: WalletViewModelAction) {try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_dispatch(self.uniffiClonePointer(), + FfiConverterTypeWalletViewModelAction.lower(action),$0 + ) +} +} + +open func displayAmount(amount: Amount) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_display_amount(self.uniffiClonePointer(), + FfiConverterTypeAmount.lower(amount),$0 + ) +}) +} + +open func displayFiatAmount(amount: Double) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_display_fiat_amount(self.uniffiClonePointer(), + FfiConverterDouble.lower(amount),$0 + ) +}) +} + +open func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_display_sent_and_received_amount(self.uniffiClonePointer(), + FfiConverterTypeSentAndReceived.lower(sentAndReceived),$0 + ) +}) +} + +open func feeRateOptions()async throws -> FeeRateOptions { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_fee_rate_options( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -6952,14 +7650,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeFeeRateOptions.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address) async throws -> FeeRateOptionsWithTotalFee { - try await uniffiRustCallAsync( +} + +open func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address)async throws -> FeeRateOptionsWithTotalFee { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_fee_rate_options_with_total_fee( self.uniffiClonePointer(), - FfiConverterOptionTypeFeeRateOptions.lower(feeRateOptions), FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address) + FfiConverterOptionTypeFeeRateOptions.lower(feeRateOptions),FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -6968,25 +7667,29 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeFeeRateOptionsWithTotalFee.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func fees() -> FeeResponse? { - try! FfiConverterOptionTypeFeeResponse.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_fees(self.uniffiClonePointer(), $0) - }) - } - - open func fingerprint() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_fingerprint(self.uniffiClonePointer(), $0) - }) - } - - open func forceUpdateHeight() async throws -> UInt32 { - try await uniffiRustCallAsync( +} + +open func fees() -> FeeResponse? { + return try! FfiConverterOptionTypeFeeResponse.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_fees(self.uniffiClonePointer(),$0 + ) +}) +} + +open func fingerprint() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_fingerprint(self.uniffiClonePointer(),$0 + ) +}) +} + +open func forceUpdateHeight()async throws -> UInt32 { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_force_update_height( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_u32, @@ -6995,13 +7698,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterUInt32.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func forceWalletScan() async throws { - try await uniffiRustCallAsync( +} + +open func forceWalletScan()async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_force_wallet_scan( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_void, @@ -7010,14 +7715,15 @@ open class RustWalletViewModel: liftFunc: { $0 }, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate) async throws -> ConfirmDetails { - try await uniffiRustCallAsync( +} + +open func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate)async throws -> ConfirmDetails { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_get_confirm_details( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address), FfiConverterTypeFeeRate.lower(feeRate) + FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address),FfiConverterTypeFeeRate.lower(feeRate) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7026,13 +7732,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeConfirmDetails.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func getFeeOptions() async throws -> FeeRateOptions { - try await uniffiRustCallAsync( +} + +open func getFeeOptions()async throws -> FeeRateOptions { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_get_fee_options( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7041,10 +7749,11 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeFeeRateOptions.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func getMaxSendAmount(fee: FeeRateOptionWithTotalFee) async throws -> Amount { - try await uniffiRustCallAsync( +} + +open func getMaxSendAmount(fee: FeeRateOptionWithTotalFee)async throws -> Amount { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_get_max_send_amount( self.uniffiClonePointer(), @@ -7057,33 +7766,38 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeAmount.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func getUnsignedTransactions() throws -> [UnsignedTransaction] { - try FfiConverterSequenceTypeUnsignedTransaction.lift(rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_get_unsigned_transactions(self.uniffiClonePointer(), $0) - }) - } - - open func listenForUpdates(reconciler: WalletViewModelReconciler) { try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfaceWalletViewModelReconciler.lower(reconciler), $0) - } - } - - open func markWalletAsVerified() throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_mark_wallet_as_verified(self.uniffiClonePointer(), $0) - } - } - +} + +open func getUnsignedTransactions()throws -> [UnsignedTransaction] { + return try FfiConverterSequenceTypeUnsignedTransaction.lift(try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_get_unsigned_transactions(self.uniffiClonePointer(),$0 + ) +}) +} + +open func listenForUpdates(reconciler: WalletViewModelReconciler) {try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfaceWalletViewModelReconciler.lower(reconciler),$0 + ) +} +} + +open func markWalletAsVerified()throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_mark_wallet_as_verified(self.uniffiClonePointer(),$0 + ) +} +} + /** * Get the next address for the wallet */ - open func nextAddress() async throws -> AddressInfo { - try await uniffiRustCallAsync( +open func nextAddress()async throws -> AddressInfo { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_next_address( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7092,10 +7806,11 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeAddressInfo.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func numberOfConfirmations(blockHeight: UInt32) async throws -> UInt32 { - try await uniffiRustCallAsync( +} + +open func numberOfConfirmations(blockHeight: UInt32)async throws -> UInt32 { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_number_of_confirmations( self.uniffiClonePointer(), @@ -7108,10 +7823,11 @@ open class RustWalletViewModel: liftFunc: FfiConverterUInt32.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func numberOfConfirmationsFmt(blockHeight: UInt32) async throws -> String { - try await uniffiRustCallAsync( +} + +open func numberOfConfirmationsFmt(blockHeight: UInt32)async throws -> String { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_number_of_confirmations_fmt( self.uniffiClonePointer(), @@ -7124,16 +7840,18 @@ open class RustWalletViewModel: liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func saveUnsignedTransaction(details: ConfirmDetails) throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_save_unsigned_transaction(self.uniffiClonePointer(), - FfiConverterTypeConfirmDetails.lower(details), $0) - } - } - - open func sentAndReceivedFiat(sentAndReceived: SentAndReceived) async throws -> Double { - try await uniffiRustCallAsync( +} + +open func saveUnsignedTransaction(details: ConfirmDetails)throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_save_unsigned_transaction(self.uniffiClonePointer(), + FfiConverterTypeConfirmDetails.lower(details),$0 + ) +} +} + +open func sentAndReceivedFiat(sentAndReceived: SentAndReceived)async throws -> Double { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_sent_and_received_fiat( self.uniffiClonePointer(), @@ -7146,19 +7864,22 @@ open class RustWalletViewModel: liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func setWalletMetadata(metadata: WalletMetadata) { try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_set_wallet_metadata(self.uniffiClonePointer(), - FfiConverterTypeWalletMetadata.lower(metadata), $0) - } - } - - open func startWalletScan() async throws { - try await uniffiRustCallAsync( +} + +open func setWalletMetadata(metadata: WalletMetadata) {try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_set_wallet_metadata(self.uniffiClonePointer(), + FfiConverterTypeWalletMetadata.lower(metadata),$0 + ) +} +} + +open func startWalletScan()async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_start_wallet_scan( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_void, @@ -7167,10 +7888,11 @@ open class RustWalletViewModel: liftFunc: { $0 }, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType) async throws { - try await uniffiRustCallAsync( +} + +open func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType)async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_switch_to_different_wallet_address_type( self.uniffiClonePointer(), @@ -7183,10 +7905,11 @@ open class RustWalletViewModel: liftFunc: { $0 }, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func transactionDetails(txId: TxId) async throws -> TransactionDetails { - try await uniffiRustCallAsync( +} + +open func transactionDetails(txId: TxId)async throws -> TransactionDetails { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_transaction_details( self.uniffiClonePointer(), @@ -7199,34 +7922,39 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeTransactionDetails.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func walletMetadata() -> WalletMetadata { - try! FfiConverterTypeWalletMetadata.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_wallet_metadata(self.uniffiClonePointer(), $0) - }) - } +} + +open func walletMetadata() -> WalletMetadata { + return try! FfiConverterTypeWalletMetadata.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_wallet_metadata(self.uniffiClonePointer(),$0 + ) +}) +} + +open func wordValidator()throws -> WordValidator { + return try FfiConverterTypeWordValidator.lift(try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_word_validator(self.uniffiClonePointer(),$0 + ) +}) +} + - open func wordValidator() throws -> WordValidator { - try FfiConverterTypeWordValidator.lift(rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_word_validator(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRustWalletViewModel: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RustWalletViewModel public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RustWalletViewModel { - RustWalletViewModel(unsafeFromRawPointer: pointer) + return RustWalletViewModel(unsafeFromRawPointer: pointer) } public static func lower(_ value: RustWalletViewModel) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RustWalletViewModel { @@ -7234,7 +7962,7 @@ public struct FfiConverterTypeRustWalletViewModel: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7247,35 +7975,42 @@ public struct FfiConverterTypeRustWalletViewModel: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustWalletViewModel_lift(_ pointer: UnsafeMutableRawPointer) throws -> RustWalletViewModel { - try FfiConverterTypeRustWalletViewModel.lift(pointer) + return try FfiConverterTypeRustWalletViewModel.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustWalletViewModel_lower(_ value: RustWalletViewModel) -> UnsafeMutableRawPointer { - FfiConverterTypeRustWalletViewModel.lower(value) + return FfiConverterTypeRustWalletViewModel.lower(value) } -public protocol SeedQrProtocol: AnyObject { - func getWords() -> [String] - func groupedPlainWords() -> [[String]] + + +public protocol SeedQrProtocol : AnyObject { + + func getWords() -> [String] + + func groupedPlainWords() -> [[String]] + } open class SeedQr: - SeedQrProtocol -{ + SeedQrProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7283,7 +8018,7 @@ open class SeedQr: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7292,72 +8027,79 @@ open class SeedQr: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_seedqr(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_seedqr(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_seedqr(pointer, $0) } } - public static func newFromData(data: Data) throws -> SeedQr { - try FfiConverterTypeSeedQr.lift(rustCallWithError(FfiConverterTypeSeedQrError.lift) { - uniffi_cove_fn_constructor_seedqr_new_from_data( - FfiConverterData.lower(data), $0 - ) - }) - } - - public static func newFromStr(qr: String) throws -> SeedQr { - try FfiConverterTypeSeedQr.lift(rustCallWithError(FfiConverterTypeSeedQrError.lift) { - uniffi_cove_fn_constructor_seedqr_new_from_str( - FfiConverterString.lower(qr), $0 - ) - }) - } + +public static func newFromData(data: Data)throws -> SeedQr { + return try FfiConverterTypeSeedQr.lift(try rustCallWithError(FfiConverterTypeSeedQrError.lift) { + uniffi_cove_fn_constructor_seedqr_new_from_data( + FfiConverterData.lower(data),$0 + ) +}) +} + +public static func newFromStr(qr: String)throws -> SeedQr { + return try FfiConverterTypeSeedQr.lift(try rustCallWithError(FfiConverterTypeSeedQrError.lift) { + uniffi_cove_fn_constructor_seedqr_new_from_str( + FfiConverterString.lower(qr),$0 + ) +}) +} + - open func getWords() -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_seedqr_get_words(self.uniffiClonePointer(), $0) - }) - } + +open func getWords() -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_seedqr_get_words(self.uniffiClonePointer(),$0 + ) +}) +} + +open func groupedPlainWords() -> [[String]] { + return try! FfiConverterSequenceSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_seedqr_grouped_plain_words(self.uniffiClonePointer(),$0 + ) +}) +} + - open func groupedPlainWords() -> [[String]] { - try! FfiConverterSequenceSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_seedqr_grouped_plain_words(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSeedQr: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = SeedQr public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> SeedQr { - SeedQr(unsafeFromRawPointer: pointer) + return SeedQr(unsafeFromRawPointer: pointer) } public static func lower(_ value: SeedQr) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SeedQr { @@ -7365,7 +8107,7 @@ public struct FfiConverterTypeSeedQr: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7378,43 +8120,50 @@ public struct FfiConverterTypeSeedQr: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSeedQr_lift(_ pointer: UnsafeMutableRawPointer) throws -> SeedQr { - try FfiConverterTypeSeedQr.lift(pointer) + return try FfiConverterTypeSeedQr.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSeedQr_lower(_ value: SeedQr) -> UnsafeMutableRawPointer { - FfiConverterTypeSeedQr.lower(value) + return FfiConverterTypeSeedQr.lower(value) } -public protocol SentAndReceivedProtocol: AnyObject { - func amount() -> Amount - - func amountFmt(unit: Unit) -> String - - func direction() -> TransactionDirection - func label() -> String - func received() -> Amount - func sent() -> Amount +public protocol SentAndReceivedProtocol : AnyObject { + + func amount() -> Amount + + func amountFmt(unit: Unit) -> String + + func direction() -> TransactionDirection + + func label() -> String + + func received() -> Amount + + func sent() -> Amount + } open class SentAndReceived: - SentAndReceivedProtocol -{ + SentAndReceivedProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7422,7 +8171,7 @@ open class SentAndReceived: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7431,81 +8180,92 @@ open class SentAndReceived: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_sentandreceived(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_sentandreceived(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_sentandreceived(pointer, $0) } } - open func amount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_amount(self.uniffiClonePointer(), $0) - }) - } - - open func amountFmt(unit: Unit) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_amount_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } - - open func direction() -> TransactionDirection { - try! FfiConverterTypeTransactionDirection.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_direction(self.uniffiClonePointer(), $0) - }) - } - - open func label() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_label(self.uniffiClonePointer(), $0) - }) - } + - open func received() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_received(self.uniffiClonePointer(), $0) - }) - } + +open func amount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func amountFmt(unit: Unit) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_amount_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func direction() -> TransactionDirection { + return try! FfiConverterTypeTransactionDirection.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_direction(self.uniffiClonePointer(),$0 + ) +}) +} + +open func label() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_label(self.uniffiClonePointer(),$0 + ) +}) +} + +open func received() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_received(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sent() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_sent(self.uniffiClonePointer(),$0 + ) +}) +} + - open func sent() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_sent(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSentAndReceived: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = SentAndReceived public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> SentAndReceived { - SentAndReceived(unsafeFromRawPointer: pointer) + return SentAndReceived(unsafeFromRawPointer: pointer) } public static func lower(_ value: SentAndReceived) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SentAndReceived { @@ -7513,7 +8273,7 @@ public struct FfiConverterTypeSentAndReceived: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7526,65 +8286,72 @@ public struct FfiConverterTypeSentAndReceived: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSentAndReceived_lift(_ pointer: UnsafeMutableRawPointer) throws -> SentAndReceived { - try FfiConverterTypeSentAndReceived.lift(pointer) + return try FfiConverterTypeSentAndReceived.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSentAndReceived_lower(_ value: SentAndReceived) -> UnsafeMutableRawPointer { - FfiConverterTypeSentAndReceived.lower(value) -} - -public protocol TransactionDetailsProtocol: AnyObject { - func address() -> Address - - func addressSpacedOut() -> String - - func amount() -> Amount - - func amountFiat() async throws -> Double - - func amountFiatFmt() async throws -> String - - func amountFmt(unit: Unit) -> String - - func blockNumber() -> UInt32? - - func blockNumberFmt() -> String? - - func confirmationDateTime() -> String? - - func feeFiatFmt() async throws -> String - - func feeFmt(unit: Unit) -> String? - - func isConfirmed() -> Bool - - func isReceived() -> Bool - - func isSent() -> Bool - - func sentSansFeeFiatFmt() async throws -> String - - func sentSansFeeFmt(unit: Unit) -> String? - - func transactionUrl() -> String + return FfiConverterTypeSentAndReceived.lower(value) +} + + + + +public protocol TransactionDetailsProtocol : AnyObject { + + func address() -> Address + + func addressSpacedOut() -> String + + func amount() -> Amount + + func amountFiat() async throws -> Double + + func amountFiatFmt() async throws -> String + + func amountFmt(unit: Unit) -> String + + func blockNumber() -> UInt32? + + func blockNumberFmt() -> String? + + func confirmationDateTime() -> String? + + func feeFiatFmt() async throws -> String + + func feeFmt(unit: Unit) -> String? + + func isConfirmed() -> Bool + + func isReceived() -> Bool + + func isSent() -> Bool + + func sentSansFeeFiatFmt() async throws -> String + + func sentSansFeeFmt(unit: Unit) -> String? + + func transactionUrl() -> String + } open class TransactionDetails: - TransactionDetailsProtocol -{ + TransactionDetailsProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7592,7 +8359,7 @@ open class TransactionDetails: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7601,88 +8368,95 @@ open class TransactionDetails: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_transactiondetails(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_transactiondetails(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_transactiondetails(pointer, $0) } } - public static func previewConfirmedReceived() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_received($0 - ) - }) - } - - public static func previewConfirmedSent() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_sent($0 - ) - }) - } - - public static func previewNewConfirmed() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_new_confirmed($0 - ) - }) - } - - public static func previewPendingReceived() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_pending_received($0 - ) - }) - } - - public static func previewPendingSent() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_pending_sent($0 - ) - }) - } - - open func address() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_address(self.uniffiClonePointer(), $0) - }) - } - - open func addressSpacedOut() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_address_spaced_out(self.uniffiClonePointer(), $0) - }) - } - - open func amount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_amount(self.uniffiClonePointer(), $0) - }) - } + +public static func previewConfirmedReceived() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_received($0 + ) +}) +} + +public static func previewConfirmedSent() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_sent($0 + ) +}) +} + +public static func previewNewConfirmed() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_new_confirmed($0 + ) +}) +} + +public static func previewPendingReceived() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_pending_received($0 + ) +}) +} + +public static func previewPendingSent() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_pending_sent($0 + ) +}) +} + - open func amountFiat() async throws -> Double { - try await uniffiRustCallAsync( + +open func address() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_address(self.uniffiClonePointer(),$0 + ) +}) +} + +open func addressSpacedOut() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_address_spaced_out(self.uniffiClonePointer(),$0 + ) +}) +} + +open func amount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func amountFiat()async throws -> Double { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_amount_fiat( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_f64, @@ -7691,13 +8465,15 @@ open class TransactionDetails: liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) - } - - open func amountFiatFmt() async throws -> String { - try await uniffiRustCallAsync( +} + +open func amountFiatFmt()async throws -> String { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_amount_fiat_fmt( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -7706,38 +8482,44 @@ open class TransactionDetails: liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) - } - - open func amountFmt(unit: Unit) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_amount_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } - - open func blockNumber() -> UInt32? { - try! FfiConverterOptionUInt32.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_block_number(self.uniffiClonePointer(), $0) - }) - } - - open func blockNumberFmt() -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_block_number_fmt(self.uniffiClonePointer(), $0) - }) - } - - open func confirmationDateTime() -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_confirmation_date_time(self.uniffiClonePointer(), $0) - }) - } - - open func feeFiatFmt() async throws -> String { - try await uniffiRustCallAsync( +} + +open func amountFmt(unit: Unit) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_amount_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func blockNumber() -> UInt32? { + return try! FfiConverterOptionUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_block_number(self.uniffiClonePointer(),$0 + ) +}) +} + +open func blockNumberFmt() -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_block_number_fmt(self.uniffiClonePointer(),$0 + ) +}) +} + +open func confirmationDateTime() -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_confirmation_date_time(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeFiatFmt()async throws -> String { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_fee_fiat_fmt( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -7746,38 +8528,44 @@ open class TransactionDetails: liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) - } - - open func feeFmt(unit: Unit) -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_fee_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } - - open func isConfirmed() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_is_confirmed(self.uniffiClonePointer(), $0) - }) - } - - open func isReceived() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_is_received(self.uniffiClonePointer(), $0) - }) - } - - open func isSent() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_is_sent(self.uniffiClonePointer(), $0) - }) - } - - open func sentSansFeeFiatFmt() async throws -> String { - try await uniffiRustCallAsync( +} + +open func feeFmt(unit: Unit) -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_fee_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func isConfirmed() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_is_confirmed(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isReceived() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_is_received(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isSent() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_is_sent(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sentSansFeeFiatFmt()async throws -> String { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_sent_sans_fee_fiat_fmt( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -7786,35 +8574,40 @@ open class TransactionDetails: liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) - } - - open func sentSansFeeFmt(unit: Unit) -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_sent_sans_fee_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } +} + +open func sentSansFeeFmt(unit: Unit) -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_sent_sans_fee_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func transactionUrl() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_transaction_url(self.uniffiClonePointer(),$0 + ) +}) +} + - open func transactionUrl() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_transaction_url(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionDetails: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TransactionDetails public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TransactionDetails { - TransactionDetails(unsafeFromRawPointer: pointer) + return TransactionDetails(unsafeFromRawPointer: pointer) } public static func lower(_ value: TransactionDetails) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionDetails { @@ -7822,7 +8615,7 @@ public struct FfiConverterTypeTransactionDetails: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7835,35 +8628,42 @@ public struct FfiConverterTypeTransactionDetails: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDetails_lift(_ pointer: UnsafeMutableRawPointer) throws -> TransactionDetails { - try FfiConverterTypeTransactionDetails.lift(pointer) + return try FfiConverterTypeTransactionDetails.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDetails_lower(_ value: TransactionDetails) -> UnsafeMutableRawPointer { - FfiConverterTypeTransactionDetails.lower(value) + return FfiConverterTypeTransactionDetails.lower(value) } -public protocol TxIdProtocol: AnyObject { - func asHashString() -> String - func isEqual(other: TxId) -> Bool + + +public protocol TxIdProtocol : AnyObject { + + func asHashString() -> String + + func isEqual(other: TxId) -> Bool + } open class TxId: - TxIdProtocol -{ + TxIdProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7871,7 +8671,7 @@ open class TxId: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7880,57 +8680,64 @@ open class TxId: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_txid(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_txid(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_txid(pointer, $0) } } - open func asHashString() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_txid_as_hash_string(self.uniffiClonePointer(), $0) - }) - } + + + +open func asHashString() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_txid_as_hash_string(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEqual(other: TxId) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_txid_is_equal(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(other),$0 + ) +}) +} + - open func isEqual(other: TxId) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_txid_is_equal(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(other), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTxId: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TxId public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TxId { - TxId(unsafeFromRawPointer: pointer) + return TxId(unsafeFromRawPointer: pointer) } public static func lower(_ value: TxId) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TxId { @@ -7938,7 +8745,7 @@ public struct FfiConverterTypeTxId: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7951,31 +8758,38 @@ public struct FfiConverterTypeTxId: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxId_lift(_ pointer: UnsafeMutableRawPointer) throws -> TxId { - try FfiConverterTypeTxId.lift(pointer) + return try FfiConverterTypeTxId.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxId_lower(_ value: TxId) -> UnsafeMutableRawPointer { - FfiConverterTypeTxId.lower(value) + return FfiConverterTypeTxId.lower(value) } -public protocol TxInProtocol: AnyObject {} + + + +public protocol TxInProtocol : AnyObject { + +} open class TxIn: - TxInProtocol -{ + TxInProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7983,7 +8797,7 @@ open class TxIn: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7992,44 +8806,49 @@ open class TxIn: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_txin(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_txin(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_txin(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTxIn: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TxIn public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TxIn { - TxIn(unsafeFromRawPointer: pointer) + return TxIn(unsafeFromRawPointer: pointer) } public static func lower(_ value: TxIn) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TxIn { @@ -8037,7 +8856,7 @@ public struct FfiConverterTypeTxIn: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8050,31 +8869,38 @@ public struct FfiConverterTypeTxIn: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxIn_lift(_ pointer: UnsafeMutableRawPointer) throws -> TxIn { - try FfiConverterTypeTxIn.lift(pointer) + return try FfiConverterTypeTxIn.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxIn_lower(_ value: TxIn) -> UnsafeMutableRawPointer { - FfiConverterTypeTxIn.lower(value) + return FfiConverterTypeTxIn.lower(value) } -public protocol TxOutProtocol: AnyObject {} + + + +public protocol TxOutProtocol : AnyObject { + +} open class TxOut: - TxOutProtocol -{ + TxOutProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8082,7 +8908,7 @@ open class TxOut: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8091,44 +8917,49 @@ open class TxOut: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_txout(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_txout(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_txout(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTxOut: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TxOut public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TxOut { - TxOut(unsafeFromRawPointer: pointer) + return TxOut(unsafeFromRawPointer: pointer) } public static func lower(_ value: TxOut) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TxOut { @@ -8136,7 +8967,7 @@ public struct FfiConverterTypeTxOut: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8149,41 +8980,48 @@ public struct FfiConverterTypeTxOut: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxOut_lift(_ pointer: UnsafeMutableRawPointer) throws -> TxOut { - try FfiConverterTypeTxOut.lift(pointer) + return try FfiConverterTypeTxOut.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxOut_lower(_ value: TxOut) -> UnsafeMutableRawPointer { - FfiConverterTypeTxOut.lower(value) + return FfiConverterTypeTxOut.lower(value) } -public protocol UnconfirmedTransactionProtocol: AnyObject { - func fiatAmount() -> FiatAmount? - - func id() -> TxId - func label() -> String - func lastSeen() -> UInt64 - func sentAndReceived() -> SentAndReceived +public protocol UnconfirmedTransactionProtocol : AnyObject { + + func fiatAmount() -> FiatAmount? + + func id() -> TxId + + func label() -> String + + func lastSeen() -> UInt64 + + func sentAndReceived() -> SentAndReceived + } open class UnconfirmedTransaction: - UnconfirmedTransactionProtocol -{ + UnconfirmedTransactionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8191,7 +9029,7 @@ open class UnconfirmedTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8200,74 +9038,84 @@ open class UnconfirmedTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_unconfirmedtransaction(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_unconfirmedtransaction(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_unconfirmedtransaction(pointer, $0) } } - open func fiatAmount() -> FiatAmount? { - try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_fiat_amount(self.uniffiClonePointer(), $0) - }) - } - - open func id() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_id(self.uniffiClonePointer(), $0) - }) - } - - open func label() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_label(self.uniffiClonePointer(), $0) - }) - } + - open func lastSeen() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_last_seen(self.uniffiClonePointer(), $0) - }) - } + +open func fiatAmount() -> FiatAmount? { + return try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_fiat_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func id() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func label() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_label(self.uniffiClonePointer(),$0 + ) +}) +} + +open func lastSeen() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_last_seen(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sentAndReceived() -> SentAndReceived { + return try! FfiConverterTypeSentAndReceived.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_sent_and_received(self.uniffiClonePointer(),$0 + ) +}) +} + - open func sentAndReceived() -> SentAndReceived { - try! FfiConverterTypeSentAndReceived.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_sent_and_received(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnconfirmedTransaction: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnconfirmedTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnconfirmedTransaction { - UnconfirmedTransaction(unsafeFromRawPointer: pointer) + return UnconfirmedTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnconfirmedTransaction) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnconfirmedTransaction { @@ -8275,7 +9123,7 @@ public struct FfiConverterTypeUnconfirmedTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8288,41 +9136,48 @@ public struct FfiConverterTypeUnconfirmedTransaction: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnconfirmedTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnconfirmedTransaction { - try FfiConverterTypeUnconfirmedTransaction.lift(pointer) + return try FfiConverterTypeUnconfirmedTransaction.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnconfirmedTransaction_lower(_ value: UnconfirmedTransaction) -> UnsafeMutableRawPointer { - FfiConverterTypeUnconfirmedTransaction.lower(value) + return FfiConverterTypeUnconfirmedTransaction.lower(value) } -public protocol UnsignedTransactionProtocol: AnyObject { - func details() -> ConfirmDetails - func id() -> TxId - func label() -> String - func sendingAmount() -> Amount - - func spendingAmount() -> Amount +public protocol UnsignedTransactionProtocol : AnyObject { + + func details() -> ConfirmDetails + + func id() -> TxId + + func label() -> String + + func sendingAmount() -> Amount + + func spendingAmount() -> Amount + } open class UnsignedTransaction: - UnsignedTransactionProtocol -{ + UnsignedTransactionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8330,7 +9185,7 @@ open class UnsignedTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8339,81 +9194,91 @@ open class UnsignedTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_unsignedtransaction(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_unsignedtransaction(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_unsignedtransaction(pointer, $0) } } - public static func previewNew() -> UnsignedTransaction { - try! FfiConverterTypeUnsignedTransaction.lift(try! rustCall { - uniffi_cove_fn_constructor_unsignedtransaction_preview_new($0 - ) - }) - } - - open func details() -> ConfirmDetails { - try! FfiConverterTypeConfirmDetails.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_details(self.uniffiClonePointer(), $0) - }) - } - - open func id() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_id(self.uniffiClonePointer(), $0) - }) - } - - open func label() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_label(self.uniffiClonePointer(), $0) - }) - } + +public static func previewNew() -> UnsignedTransaction { + return try! FfiConverterTypeUnsignedTransaction.lift(try! rustCall() { + uniffi_cove_fn_constructor_unsignedtransaction_preview_new($0 + ) +}) +} + - open func sendingAmount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_sending_amount(self.uniffiClonePointer(), $0) - }) - } + +open func details() -> ConfirmDetails { + return try! FfiConverterTypeConfirmDetails.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_details(self.uniffiClonePointer(),$0 + ) +}) +} + +open func id() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func label() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_label(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sendingAmount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_sending_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func spendingAmount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_spending_amount(self.uniffiClonePointer(),$0 + ) +}) +} + - open func spendingAmount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_spending_amount(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransaction: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnsignedTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransaction { - UnsignedTransaction(unsafeFromRawPointer: pointer) + return UnsignedTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnsignedTransaction) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransaction { @@ -8421,7 +9286,7 @@ public struct FfiConverterTypeUnsignedTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8434,39 +9299,46 @@ public struct FfiConverterTypeUnsignedTransaction: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransaction { - try FfiConverterTypeUnsignedTransaction.lift(pointer) + return try FfiConverterTypeUnsignedTransaction.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransaction_lower(_ value: UnsignedTransaction) -> UnsafeMutableRawPointer { - FfiConverterTypeUnsignedTransaction.lower(value) + return FfiConverterTypeUnsignedTransaction.lower(value) } -public protocol UnsignedTransactionRecordProtocol: AnyObject { - func confirmDetails() -> ConfirmDetails - func createdAt() -> UInt64 - func txId() -> TxId - func walletId() -> WalletId +public protocol UnsignedTransactionRecordProtocol : AnyObject { + + func confirmDetails() -> ConfirmDetails + + func createdAt() -> UInt64 + + func txId() -> TxId + + func walletId() -> WalletId + } open class UnsignedTransactionRecord: - UnsignedTransactionRecordProtocol -{ + UnsignedTransactionRecordProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8474,7 +9346,7 @@ open class UnsignedTransactionRecord: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8483,68 +9355,77 @@ open class UnsignedTransactionRecord: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_unsignedtransactionrecord(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_unsignedtransactionrecord(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_unsignedtransactionrecord(pointer, $0) } } - open func confirmDetails() -> ConfirmDetails { - try! FfiConverterTypeConfirmDetails.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionrecord_confirm_details(self.uniffiClonePointer(), $0) - }) - } - - open func createdAt() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionrecord_created_at(self.uniffiClonePointer(), $0) - }) - } + - open func txId() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionrecord_tx_id(self.uniffiClonePointer(), $0) - }) - } + +open func confirmDetails() -> ConfirmDetails { + return try! FfiConverterTypeConfirmDetails.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionrecord_confirm_details(self.uniffiClonePointer(),$0 + ) +}) +} + +open func createdAt() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionrecord_created_at(self.uniffiClonePointer(),$0 + ) +}) +} + +open func txId() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionrecord_tx_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func walletId() -> WalletId { + return try! FfiConverterTypeWalletId.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionrecord_wallet_id(self.uniffiClonePointer(),$0 + ) +}) +} + - open func walletId() -> WalletId { - try! FfiConverterTypeWalletId.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionrecord_wallet_id(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransactionRecord: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnsignedTransactionRecord public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionRecord { - UnsignedTransactionRecord(unsafeFromRawPointer: pointer) + return UnsignedTransactionRecord(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnsignedTransactionRecord) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransactionRecord { @@ -8552,7 +9433,7 @@ public struct FfiConverterTypeUnsignedTransactionRecord: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8565,35 +9446,42 @@ public struct FfiConverterTypeUnsignedTransactionRecord: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionRecord_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionRecord { - try FfiConverterTypeUnsignedTransactionRecord.lift(pointer) + return try FfiConverterTypeUnsignedTransactionRecord.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionRecord_lower(_ value: UnsignedTransactionRecord) -> UnsafeMutableRawPointer { - FfiConverterTypeUnsignedTransactionRecord.lower(value) + return FfiConverterTypeUnsignedTransactionRecord.lower(value) } -public protocol UnsignedTransactionsTableProtocol: AnyObject { - func getTx(txId: TxId) -> UnsignedTransactionRecord? - func getTxThrow(txId: TxId) throws -> UnsignedTransactionRecord + + +public protocol UnsignedTransactionsTableProtocol : AnyObject { + + func getTx(txId: TxId) -> UnsignedTransactionRecord? + + func getTxThrow(txId: TxId) throws -> UnsignedTransactionRecord + } open class UnsignedTransactionsTable: - UnsignedTransactionsTableProtocol -{ + UnsignedTransactionsTableProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8601,7 +9489,7 @@ open class UnsignedTransactionsTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8610,58 +9498,65 @@ open class UnsignedTransactionsTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_unsignedtransactionstable(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_unsignedtransactionstable(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_unsignedtransactionstable(pointer, $0) } } - open func getTx(txId: TxId) -> UnsignedTransactionRecord? { - try! FfiConverterOptionTypeUnsignedTransactionRecord.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionstable_gettx(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(txId), $0) - }) - } + + + +open func getTx(txId: TxId) -> UnsignedTransactionRecord? { + return try! FfiConverterOptionTypeUnsignedTransactionRecord.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionstable_gettx(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(txId),$0 + ) +}) +} + +open func getTxThrow(txId: TxId)throws -> UnsignedTransactionRecord { + return try FfiConverterTypeUnsignedTransactionRecord.lift(try rustCallWithError(FfiConverterTypeUnsignedTransactionsTableError.lift) { + uniffi_cove_fn_method_unsignedtransactionstable_gettxthrow(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(txId),$0 + ) +}) +} + - open func getTxThrow(txId: TxId) throws -> UnsignedTransactionRecord { - try FfiConverterTypeUnsignedTransactionRecord.lift(rustCallWithError(FfiConverterTypeUnsignedTransactionsTableError.lift) { - uniffi_cove_fn_method_unsignedtransactionstable_gettxthrow(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(txId), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransactionsTable: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnsignedTransactionsTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionsTable { - UnsignedTransactionsTable(unsafeFromRawPointer: pointer) + return UnsignedTransactionsTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnsignedTransactionsTable) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransactionsTable { @@ -8669,7 +9564,7 @@ public struct FfiConverterTypeUnsignedTransactionsTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8682,33 +9577,40 @@ public struct FfiConverterTypeUnsignedTransactionsTable: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionsTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionsTable { - try FfiConverterTypeUnsignedTransactionsTable.lift(pointer) + return try FfiConverterTypeUnsignedTransactionsTable.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionsTable_lower(_ value: UnsignedTransactionsTable) -> UnsafeMutableRawPointer { - FfiConverterTypeUnsignedTransactionsTable.lower(value) + return FfiConverterTypeUnsignedTransactionsTable.lower(value) } -public protocol WalletProtocol: AnyObject { - func id() -> WalletId + + + +public protocol WalletProtocol : AnyObject { + + func id() -> WalletId + } open class Wallet: - WalletProtocol -{ + WalletProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8716,7 +9618,7 @@ open class Wallet: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8725,73 +9627,79 @@ open class Wallet: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_wallet(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_wallet(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_wallet(pointer, $0) } } - public static func newFromExport(export: HardwareExport) throws -> Wallet { - try FfiConverterTypeWallet.lift(rustCallWithError(FfiConverterTypeWalletError.lift) { - uniffi_cove_fn_constructor_wallet_new_from_export( - FfiConverterTypeHardwareExport.lower(export), $0 - ) - }) - } - - public static func newFromXpub(xpub: String) throws -> Wallet { - try FfiConverterTypeWallet.lift(rustCallWithError(FfiConverterTypeWalletError.lift) { - uniffi_cove_fn_constructor_wallet_new_from_xpub( - FfiConverterString.lower(xpub), $0 - ) - }) - } + +public static func newFromExport(export: HardwareExport)throws -> Wallet { + return try FfiConverterTypeWallet.lift(try rustCallWithError(FfiConverterTypeWalletError.lift) { + uniffi_cove_fn_constructor_wallet_new_from_export( + FfiConverterTypeHardwareExport.lower(export),$0 + ) +}) +} + +public static func newFromXpub(xpub: String)throws -> Wallet { + return try FfiConverterTypeWallet.lift(try rustCallWithError(FfiConverterTypeWalletError.lift) { + uniffi_cove_fn_constructor_wallet_new_from_xpub( + FfiConverterString.lower(xpub),$0 + ) +}) +} + +public static func previewNewWallet() -> Wallet { + return try! FfiConverterTypeWallet.lift(try! rustCall() { + uniffi_cove_fn_constructor_wallet_previewnewwallet($0 + ) +}) +} + - public static func previewNewWallet() -> Wallet { - try! FfiConverterTypeWallet.lift(try! rustCall { - uniffi_cove_fn_constructor_wallet_previewnewwallet($0 - ) - }) - } + +open func id() -> WalletId { + return try! FfiConverterTypeWalletId.lift(try! rustCall() { + uniffi_cove_fn_method_wallet_id(self.uniffiClonePointer(),$0 + ) +}) +} + - open func id() -> WalletId { - try! FfiConverterTypeWalletId.lift(try! rustCall { - uniffi_cove_fn_method_wallet_id(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWallet: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Wallet public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Wallet { - Wallet(unsafeFromRawPointer: pointer) + return Wallet(unsafeFromRawPointer: pointer) } public static func lower(_ value: Wallet) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Wallet { @@ -8799,7 +9707,7 @@ public struct FfiConverterTypeWallet: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8812,31 +9720,38 @@ public struct FfiConverterTypeWallet: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWallet_lift(_ pointer: UnsafeMutableRawPointer) throws -> Wallet { - try FfiConverterTypeWallet.lift(pointer) + return try FfiConverterTypeWallet.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWallet_lower(_ value: Wallet) -> UnsafeMutableRawPointer { - FfiConverterTypeWallet.lower(value) + return FfiConverterTypeWallet.lower(value) } -public protocol WalletDataDbProtocol: AnyObject {} + + + +public protocol WalletDataDbProtocol : AnyObject { + +} open class WalletDataDb: - WalletDataDbProtocol -{ + WalletDataDbProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8844,7 +9759,7 @@ open class WalletDataDb: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8853,44 +9768,49 @@ open class WalletDataDb: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_walletdatadb(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_walletdatadb(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_walletdatadb(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletDataDb: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WalletDataDb public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletDataDb { - WalletDataDb(unsafeFromRawPointer: pointer) + return WalletDataDb(unsafeFromRawPointer: pointer) } public static func lower(_ value: WalletDataDb) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletDataDb { @@ -8898,7 +9818,7 @@ public struct FfiConverterTypeWalletDataDb: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8911,31 +9831,38 @@ public struct FfiConverterTypeWalletDataDb: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataDb_lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletDataDb { - try FfiConverterTypeWalletDataDb.lift(pointer) + return try FfiConverterTypeWalletDataDb.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataDb_lower(_ value: WalletDataDb) -> UnsafeMutableRawPointer { - FfiConverterTypeWalletDataDb.lower(value) + return FfiConverterTypeWalletDataDb.lower(value) } -public protocol WalletKeyProtocol: AnyObject {} + + + +public protocol WalletKeyProtocol : AnyObject { + +} open class WalletKey: - WalletKeyProtocol -{ + WalletKeyProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8943,7 +9870,7 @@ open class WalletKey: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8952,44 +9879,49 @@ open class WalletKey: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_walletkey(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_walletkey(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_walletkey(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletKey: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WalletKey public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletKey { - WalletKey(unsafeFromRawPointer: pointer) + return WalletKey(unsafeFromRawPointer: pointer) } public static func lower(_ value: WalletKey) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletKey { @@ -8997,7 +9929,7 @@ public struct FfiConverterTypeWalletKey: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9010,37 +9942,44 @@ public struct FfiConverterTypeWalletKey: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletKey_lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletKey { - try FfiConverterTypeWalletKey.lift(pointer) + return try FfiConverterTypeWalletKey.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletKey_lower(_ value: WalletKey) -> UnsafeMutableRawPointer { - FfiConverterTypeWalletKey.lower(value) + return FfiConverterTypeWalletKey.lower(value) } -public protocol WalletsTableProtocol: AnyObject { - func all() throws -> [WalletMetadata] - func isEmpty() throws -> Bool - func len(network: Network) throws -> UInt16 + +public protocol WalletsTableProtocol : AnyObject { + + func all() throws -> [WalletMetadata] + + func isEmpty() throws -> Bool + + func len(network: Network) throws -> UInt16 + } open class WalletsTable: - WalletsTableProtocol -{ + WalletsTableProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -9048,7 +9987,7 @@ open class WalletsTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9057,63 +9996,71 @@ open class WalletsTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_walletstable(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_walletstable(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_walletstable(pointer, $0) } } - open func all() throws -> [WalletMetadata] { - try FfiConverterSequenceTypeWalletMetadata.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_walletstable_all(self.uniffiClonePointer(), $0) - }) - } + - open func isEmpty() throws -> Bool { - try FfiConverterBool.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_walletstable_is_empty(self.uniffiClonePointer(), $0) - }) - } + +open func all()throws -> [WalletMetadata] { + return try FfiConverterSequenceTypeWalletMetadata.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_walletstable_all(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEmpty()throws -> Bool { + return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_walletstable_is_empty(self.uniffiClonePointer(),$0 + ) +}) +} + +open func len(network: Network)throws -> UInt16 { + return try FfiConverterUInt16.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_walletstable_len(self.uniffiClonePointer(), + FfiConverterTypeNetwork.lower(network),$0 + ) +}) +} + - open func len(network: Network) throws -> UInt16 { - try FfiConverterUInt16.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_walletstable_len(self.uniffiClonePointer(), - FfiConverterTypeNetwork.lower(network), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletsTable: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WalletsTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletsTable { - WalletsTable(unsafeFromRawPointer: pointer) + return WalletsTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: WalletsTable) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletsTable { @@ -9121,7 +10068,7 @@ public struct FfiConverterTypeWalletsTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9134,39 +10081,46 @@ public struct FfiConverterTypeWalletsTable: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletsTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletsTable { - try FfiConverterTypeWalletsTable.lift(pointer) + return try FfiConverterTypeWalletsTable.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletsTable_lower(_ value: WalletsTable) -> UnsafeMutableRawPointer { - FfiConverterTypeWalletsTable.lower(value) + return FfiConverterTypeWalletsTable.lower(value) } -public protocol WordValidatorProtocol: AnyObject { - func groupedWords() -> [[GroupedWord]] - func invalidWordsString(enteredWords: [[String]]) -> String - func isAllWordsValid(enteredWords: [[String]]) -> Bool - func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool +public protocol WordValidatorProtocol : AnyObject { + + func groupedWords() -> [[GroupedWord]] + + func invalidWordsString(enteredWords: [[String]]) -> String + + func isAllWordsValid(enteredWords: [[String]]) -> Bool + + func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool + } open class WordValidator: - WordValidatorProtocol -{ + WordValidatorProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -9174,7 +10128,7 @@ open class WordValidator: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9183,72 +10137,81 @@ open class WordValidator: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_wordvalidator(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_wordvalidator(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_wordvalidator(pointer, $0) } } - open func groupedWords() -> [[GroupedWord]] { - try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall { - uniffi_cove_fn_method_wordvalidator_grouped_words(self.uniffiClonePointer(), $0) - }) - } - - open func invalidWordsString(enteredWords: [[String]]) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_wordvalidator_invalid_words_string(self.uniffiClonePointer(), - FfiConverterSequenceSequenceString.lower(enteredWords), $0) - }) - } + - open func isAllWordsValid(enteredWords: [[String]]) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_wordvalidator_is_all_words_valid(self.uniffiClonePointer(), - FfiConverterSequenceSequenceString.lower(enteredWords), $0) - }) - } + +open func groupedWords() -> [[GroupedWord]] { + return try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall() { + uniffi_cove_fn_method_wordvalidator_grouped_words(self.uniffiClonePointer(),$0 + ) +}) +} + +open func invalidWordsString(enteredWords: [[String]]) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_wordvalidator_invalid_words_string(self.uniffiClonePointer(), + FfiConverterSequenceSequenceString.lower(enteredWords),$0 + ) +}) +} + +open func isAllWordsValid(enteredWords: [[String]]) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_wordvalidator_is_all_words_valid(self.uniffiClonePointer(), + FfiConverterSequenceSequenceString.lower(enteredWords),$0 + ) +}) +} + +open func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_wordvalidator_is_valid_word_group(self.uniffiClonePointer(), + FfiConverterUInt8.lower(groupNumber), + FfiConverterSequenceString.lower(enteredWords),$0 + ) +}) +} + - open func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_wordvalidator_is_valid_word_group(self.uniffiClonePointer(), - FfiConverterUInt8.lower(groupNumber), - FfiConverterSequenceString.lower(enteredWords), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWordValidator: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WordValidator public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WordValidator { - WordValidator(unsafeFromRawPointer: pointer) + return WordValidator(unsafeFromRawPointer: pointer) } public static func lower(_ value: WordValidator) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WordValidator { @@ -9256,7 +10219,7 @@ public struct FfiConverterTypeWordValidator: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9269,20 +10232,24 @@ public struct FfiConverterTypeWordValidator: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWordValidator_lift(_ pointer: UnsafeMutableRawPointer) throws -> WordValidator { - try FfiConverterTypeWordValidator.lift(pointer) + return try FfiConverterTypeWordValidator.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWordValidator_lower(_ value: WordValidator) -> UnsafeMutableRawPointer { - FfiConverterTypeWordValidator.lower(value) + return FfiConverterTypeWordValidator.lower(value) } + public struct AddressIndex { public var lastSeenIndex: UInt8 public var addressListHash: UInt64 @@ -9295,8 +10262,10 @@ public struct AddressIndex { } } + + extension AddressIndex: Equatable, Hashable { - public static func == (lhs: AddressIndex, rhs: AddressIndex) -> Bool { + public static func ==(lhs: AddressIndex, rhs: AddressIndex) -> Bool { if lhs.lastSeenIndex != rhs.lastSeenIndex { return false } @@ -9312,14 +10281,16 @@ extension AddressIndex: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddressIndex: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressIndex { - try AddressIndex( - lastSeenIndex: FfiConverterUInt8.read(from: &buf), - addressListHash: FfiConverterUInt64.read(from: &buf) + return + try AddressIndex( + lastSeenIndex: FfiConverterUInt8.read(from: &buf), + addressListHash: FfiConverterUInt64.read(from: &buf) ) } @@ -9329,20 +10300,22 @@ public struct FfiConverterTypeAddressIndex: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressIndex_lift(_ buf: RustBuffer) throws -> AddressIndex { - try FfiConverterTypeAddressIndex.lift(buf) + return try FfiConverterTypeAddressIndex.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressIndex_lower(_ value: AddressIndex) -> RustBuffer { - FfiConverterTypeAddressIndex.lower(value) + return FfiConverterTypeAddressIndex.lower(value) } + public struct AppState { public var router: Router @@ -9353,13 +10326,16 @@ public struct AppState { } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAppState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppState { - try AppState( - router: FfiConverterTypeRouter.read(from: &buf) + return + try AppState( + router: FfiConverterTypeRouter.read(from: &buf) ) } @@ -9368,20 +10344,22 @@ public struct FfiConverterTypeAppState: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppState_lift(_ buf: RustBuffer) throws -> AppState { - try FfiConverterTypeAppState.lift(buf) + return try FfiConverterTypeAppState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppState_lower(_ value: AppState) -> RustBuffer { - FfiConverterTypeAppState.lower(value) + return FfiConverterTypeAppState.lower(value) } + public struct Balance { public var immature: Amount public var trustedPending: Amount @@ -9398,16 +10376,19 @@ public struct Balance { } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBalance: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Balance { - try Balance( - immature: FfiConverterTypeAmount.read(from: &buf), - trustedPending: FfiConverterTypeAmount.read(from: &buf), - untrustedPending: FfiConverterTypeAmount.read(from: &buf), - confirmed: FfiConverterTypeAmount.read(from: &buf) + return + try Balance( + immature: FfiConverterTypeAmount.read(from: &buf), + trustedPending: FfiConverterTypeAmount.read(from: &buf), + untrustedPending: FfiConverterTypeAmount.read(from: &buf), + confirmed: FfiConverterTypeAmount.read(from: &buf) ) } @@ -9419,20 +10400,22 @@ public struct FfiConverterTypeBalance: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBalance_lift(_ buf: RustBuffer) throws -> Balance { - try FfiConverterTypeBalance.lift(buf) + return try FfiConverterTypeBalance.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBalance_lower(_ value: Balance) -> RustBuffer { - FfiConverterTypeBalance.lower(value) + return FfiConverterTypeBalance.lower(value) } + public struct BlockSizeLast { public var blockHeight: UInt64 public var lastSeen: TimeInterval @@ -9445,8 +10428,10 @@ public struct BlockSizeLast { } } + + extension BlockSizeLast: Equatable, Hashable { - public static func == (lhs: BlockSizeLast, rhs: BlockSizeLast) -> Bool { + public static func ==(lhs: BlockSizeLast, rhs: BlockSizeLast) -> Bool { if lhs.blockHeight != rhs.blockHeight { return false } @@ -9462,14 +10447,16 @@ extension BlockSizeLast: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBlockSizeLast: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BlockSizeLast { - try BlockSizeLast( - blockHeight: FfiConverterUInt64.read(from: &buf), - lastSeen: FfiConverterDuration.read(from: &buf) + return + try BlockSizeLast( + blockHeight: FfiConverterUInt64.read(from: &buf), + lastSeen: FfiConverterDuration.read(from: &buf) ) } @@ -9479,20 +10466,22 @@ public struct FfiConverterTypeBlockSizeLast: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBlockSizeLast_lift(_ buf: RustBuffer) throws -> BlockSizeLast { - try FfiConverterTypeBlockSizeLast.lift(buf) + return try FfiConverterTypeBlockSizeLast.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBlockSizeLast_lower(_ value: BlockSizeLast) -> RustBuffer { - FfiConverterTypeBlockSizeLast.lower(value) + return FfiConverterTypeBlockSizeLast.lower(value) } + public struct ConfirmedDetails { public var blockNumber: UInt32 public var confirmationTime: UInt64 @@ -9505,8 +10494,10 @@ public struct ConfirmedDetails { } } + + extension ConfirmedDetails: Equatable, Hashable { - public static func == (lhs: ConfirmedDetails, rhs: ConfirmedDetails) -> Bool { + public static func ==(lhs: ConfirmedDetails, rhs: ConfirmedDetails) -> Bool { if lhs.blockNumber != rhs.blockNumber { return false } @@ -9522,14 +10513,16 @@ extension ConfirmedDetails: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmedDetails: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmedDetails { - try ConfirmedDetails( - blockNumber: FfiConverterUInt32.read(from: &buf), - confirmationTime: FfiConverterUInt64.read(from: &buf) + return + try ConfirmedDetails( + blockNumber: FfiConverterUInt32.read(from: &buf), + confirmationTime: FfiConverterUInt64.read(from: &buf) ) } @@ -9539,20 +10532,22 @@ public struct FfiConverterTypeConfirmedDetails: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedDetails_lift(_ buf: RustBuffer) throws -> ConfirmedDetails { - try FfiConverterTypeConfirmedDetails.lift(buf) + return try FfiConverterTypeConfirmedDetails.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedDetails_lower(_ value: ConfirmedDetails) -> RustBuffer { - FfiConverterTypeConfirmedDetails.lower(value) + return FfiConverterTypeConfirmedDetails.lower(value) } + public struct FeeResponse { public var fastestFee: UInt64 public var halfHourFee: UInt64 @@ -9571,8 +10566,10 @@ public struct FeeResponse { } } + + extension FeeResponse: Equatable, Hashable { - public static func == (lhs: FeeResponse, rhs: FeeResponse) -> Bool { + public static func ==(lhs: FeeResponse, rhs: FeeResponse) -> Bool { if lhs.fastestFee != rhs.fastestFee { return false } @@ -9600,17 +10597,19 @@ extension FeeResponse: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeResponse: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeResponse { - try FeeResponse( - fastestFee: FfiConverterUInt64.read(from: &buf), - halfHourFee: FfiConverterUInt64.read(from: &buf), - hourFee: FfiConverterUInt64.read(from: &buf), - economyFee: FfiConverterUInt64.read(from: &buf), - minimumFee: FfiConverterUInt64.read(from: &buf) + return + try FeeResponse( + fastestFee: FfiConverterUInt64.read(from: &buf), + halfHourFee: FfiConverterUInt64.read(from: &buf), + hourFee: FfiConverterUInt64.read(from: &buf), + economyFee: FfiConverterUInt64.read(from: &buf), + minimumFee: FfiConverterUInt64.read(from: &buf) ) } @@ -9623,20 +10622,22 @@ public struct FfiConverterTypeFeeResponse: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeResponse_lift(_ buf: RustBuffer) throws -> FeeResponse { - try FfiConverterTypeFeeResponse.lift(buf) + return try FfiConverterTypeFeeResponse.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeResponse_lower(_ value: FeeResponse) -> RustBuffer { - FfiConverterTypeFeeResponse.lower(value) + return FfiConverterTypeFeeResponse.lower(value) } + public struct FiatAmount { public var amount: Double public var currency: FiatCurrency @@ -9649,8 +10650,10 @@ public struct FiatAmount { } } + + extension FiatAmount: Equatable, Hashable { - public static func == (lhs: FiatAmount, rhs: FiatAmount) -> Bool { + public static func ==(lhs: FiatAmount, rhs: FiatAmount) -> Bool { if lhs.amount != rhs.amount { return false } @@ -9666,14 +10669,16 @@ extension FiatAmount: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatAmount: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatAmount { - try FiatAmount( - amount: FfiConverterDouble.read(from: &buf), - currency: FfiConverterTypeFiatCurrency.read(from: &buf) + return + try FiatAmount( + amount: FfiConverterDouble.read(from: &buf), + currency: FfiConverterTypeFiatCurrency.read(from: &buf) ) } @@ -9683,20 +10688,22 @@ public struct FfiConverterTypeFiatAmount: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatAmount_lift(_ buf: RustBuffer) throws -> FiatAmount { - try FfiConverterTypeFiatAmount.lift(buf) + return try FfiConverterTypeFiatAmount.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatAmount_lower(_ value: FiatAmount) -> RustBuffer { - FfiConverterTypeFiatAmount.lower(value) + return FfiConverterTypeFiatAmount.lower(value) } + public struct FoundAddress { public var type: WalletAddressType public var firstAddress: String @@ -9709,8 +10716,10 @@ public struct FoundAddress { } } + + extension FoundAddress: Equatable, Hashable { - public static func == (lhs: FoundAddress, rhs: FoundAddress) -> Bool { + public static func ==(lhs: FoundAddress, rhs: FoundAddress) -> Bool { if lhs.type != rhs.type { return false } @@ -9726,14 +10735,16 @@ extension FoundAddress: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFoundAddress: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FoundAddress { - try FoundAddress( - type: FfiConverterTypeWalletAddressType.read(from: &buf), - firstAddress: FfiConverterString.read(from: &buf) + return + try FoundAddress( + type: FfiConverterTypeWalletAddressType.read(from: &buf), + firstAddress: FfiConverterString.read(from: &buf) ) } @@ -9743,20 +10754,22 @@ public struct FfiConverterTypeFoundAddress: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFoundAddress_lift(_ buf: RustBuffer) throws -> FoundAddress { - try FfiConverterTypeFoundAddress.lift(buf) + return try FfiConverterTypeFoundAddress.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFoundAddress_lower(_ value: FoundAddress) -> RustBuffer { - FfiConverterTypeFoundAddress.lower(value) + return FfiConverterTypeFoundAddress.lower(value) } + public struct GroupedWord { public var number: UInt8 public var word: String @@ -9769,8 +10782,10 @@ public struct GroupedWord { } } + + extension GroupedWord: Equatable, Hashable { - public static func == (lhs: GroupedWord, rhs: GroupedWord) -> Bool { + public static func ==(lhs: GroupedWord, rhs: GroupedWord) -> Bool { if lhs.number != rhs.number { return false } @@ -9786,14 +10801,16 @@ extension GroupedWord: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGroupedWord: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GroupedWord { - try GroupedWord( - number: FfiConverterUInt8.read(from: &buf), - word: FfiConverterString.read(from: &buf) + return + try GroupedWord( + number: FfiConverterUInt8.read(from: &buf), + word: FfiConverterString.read(from: &buf) ) } @@ -9803,59 +10820,71 @@ public struct FfiConverterTypeGroupedWord: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGroupedWord_lift(_ buf: RustBuffer) throws -> GroupedWord { - try FfiConverterTypeGroupedWord.lift(buf) + return try FfiConverterTypeGroupedWord.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGroupedWord_lower(_ value: GroupedWord) -> RustBuffer { - FfiConverterTypeGroupedWord.lower(value) + return FfiConverterTypeGroupedWord.lower(value) } + public struct ImportWalletViewModelState { + // Default memberwise initializers are never public by default, so we // declare one manually. - public init() {} + public init() { + } } + + extension ImportWalletViewModelState: Equatable, Hashable { - public static func == (_: ImportWalletViewModelState, _: ImportWalletViewModelState) -> Bool { - true + public static func ==(lhs: ImportWalletViewModelState, rhs: ImportWalletViewModelState) -> Bool { + return true } - public func hash(into _: inout Hasher) {} + public func hash(into hasher: inout Hasher) { + } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletViewModelState: FfiConverterRustBuffer { - public static func read(from _: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelState { - ImportWalletViewModelState() + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelState { + return + ImportWalletViewModelState() } - public static func write(_: ImportWalletViewModelState, into _: inout [UInt8]) {} + public static func write(_ value: ImportWalletViewModelState, into buf: inout [UInt8]) { + } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelState_lift(_ buf: RustBuffer) throws -> ImportWalletViewModelState { - try FfiConverterTypeImportWalletViewModelState.lift(buf) + return try FfiConverterTypeImportWalletViewModelState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelState_lower(_ value: ImportWalletViewModelState) -> RustBuffer { - FfiConverterTypeImportWalletViewModelState.lower(value) + return FfiConverterTypeImportWalletViewModelState.lower(value) } + public struct InternalOnlyMetadata { public var addressIndex: AddressIndex? public var lastScanFinished: TimeInterval? @@ -9870,8 +10899,10 @@ public struct InternalOnlyMetadata { } } + + extension InternalOnlyMetadata: Equatable, Hashable { - public static func == (lhs: InternalOnlyMetadata, rhs: InternalOnlyMetadata) -> Bool { + public static func ==(lhs: InternalOnlyMetadata, rhs: InternalOnlyMetadata) -> Bool { if lhs.addressIndex != rhs.addressIndex { return false } @@ -9891,15 +10922,17 @@ extension InternalOnlyMetadata: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeInternalOnlyMetadata: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> InternalOnlyMetadata { - try InternalOnlyMetadata( - addressIndex: FfiConverterOptionTypeAddressIndex.read(from: &buf), - lastScanFinished: FfiConverterOptionDuration.read(from: &buf), - lastHeightFetched: FfiConverterOptionTypeBlockSizeLast.read(from: &buf) + return + try InternalOnlyMetadata( + addressIndex: FfiConverterOptionTypeAddressIndex.read(from: &buf), + lastScanFinished: FfiConverterOptionDuration.read(from: &buf), + lastHeightFetched: FfiConverterOptionTypeBlockSizeLast.read(from: &buf) ) } @@ -9910,20 +10943,22 @@ public struct FfiConverterTypeInternalOnlyMetadata: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeInternalOnlyMetadata_lift(_ buf: RustBuffer) throws -> InternalOnlyMetadata { - try FfiConverterTypeInternalOnlyMetadata.lift(buf) + return try FfiConverterTypeInternalOnlyMetadata.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeInternalOnlyMetadata_lower(_ value: InternalOnlyMetadata) -> RustBuffer { - FfiConverterTypeInternalOnlyMetadata.lower(value) + return FfiConverterTypeInternalOnlyMetadata.lower(value) } + public struct MessageInfo { /** * The payload length of the message, including the header info @@ -9940,19 +10975,20 @@ public struct MessageInfo { public init( /** * The payload length of the message, including the header info - */ fullMessageLength: UInt16, + */fullMessageLength: UInt16, /** - * The payload length of the message, reported in the info header - * This is the length of the payload, without the header info - */ payloadLength: UInt16 - ) { + * The payload length of the message, reported in the info header + * This is the length of the payload, without the header info + */payloadLength: UInt16) { self.fullMessageLength = fullMessageLength self.payloadLength = payloadLength } } + + extension MessageInfo: Equatable, Hashable { - public static func == (lhs: MessageInfo, rhs: MessageInfo) -> Bool { + public static func ==(lhs: MessageInfo, rhs: MessageInfo) -> Bool { if lhs.fullMessageLength != rhs.fullMessageLength { return false } @@ -9968,14 +11004,16 @@ extension MessageInfo: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMessageInfo: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MessageInfo { - try MessageInfo( - fullMessageLength: FfiConverterUInt16.read(from: &buf), - payloadLength: FfiConverterUInt16.read(from: &buf) + return + try MessageInfo( + fullMessageLength: FfiConverterUInt16.read(from: &buf), + payloadLength: FfiConverterUInt16.read(from: &buf) ) } @@ -9985,20 +11023,22 @@ public struct FfiConverterTypeMessageInfo: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMessageInfo_lift(_ buf: RustBuffer) throws -> MessageInfo { - try FfiConverterTypeMessageInfo.lift(buf) + return try FfiConverterTypeMessageInfo.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMessageInfo_lower(_ value: MessageInfo) -> RustBuffer { - FfiConverterTypeMessageInfo.lower(value) + return FfiConverterTypeMessageInfo.lower(value) } + public struct NdefHeader { public var messageBegin: Bool public var messageEnd: Bool @@ -10025,8 +11065,10 @@ public struct NdefHeader { } } + + extension NdefHeader: Equatable, Hashable { - public static func == (lhs: NdefHeader, rhs: NdefHeader) -> Bool { + public static func ==(lhs: NdefHeader, rhs: NdefHeader) -> Bool { if lhs.messageBegin != rhs.messageBegin { return false } @@ -10070,21 +11112,23 @@ extension NdefHeader: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefHeader: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefHeader { - try NdefHeader( - messageBegin: FfiConverterBool.read(from: &buf), - messageEnd: FfiConverterBool.read(from: &buf), - chunked: FfiConverterBool.read(from: &buf), - shortRecord: FfiConverterBool.read(from: &buf), - hasIdLength: FfiConverterBool.read(from: &buf), - typeNameFormat: FfiConverterTypeNdefType.read(from: &buf), - typeLength: FfiConverterUInt8.read(from: &buf), - payloadLength: FfiConverterUInt32.read(from: &buf), - idLength: FfiConverterOptionUInt8.read(from: &buf) + return + try NdefHeader( + messageBegin: FfiConverterBool.read(from: &buf), + messageEnd: FfiConverterBool.read(from: &buf), + chunked: FfiConverterBool.read(from: &buf), + shortRecord: FfiConverterBool.read(from: &buf), + hasIdLength: FfiConverterBool.read(from: &buf), + typeNameFormat: FfiConverterTypeNdefType.read(from: &buf), + typeLength: FfiConverterUInt8.read(from: &buf), + payloadLength: FfiConverterUInt32.read(from: &buf), + idLength: FfiConverterOptionUInt8.read(from: &buf) ) } @@ -10101,20 +11145,22 @@ public struct FfiConverterTypeNdefHeader: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefHeader_lift(_ buf: RustBuffer) throws -> NdefHeader { - try FfiConverterTypeNdefHeader.lift(buf) + return try FfiConverterTypeNdefHeader.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefHeader_lower(_ value: NdefHeader) -> RustBuffer { - FfiConverterTypeNdefHeader.lower(value) + return FfiConverterTypeNdefHeader.lower(value) } + public struct NdefRecord { public var header: NdefHeader public var type: Data @@ -10131,8 +11177,10 @@ public struct NdefRecord { } } + + extension NdefRecord: Equatable, Hashable { - public static func == (lhs: NdefRecord, rhs: NdefRecord) -> Bool { + public static func ==(lhs: NdefRecord, rhs: NdefRecord) -> Bool { if lhs.header != rhs.header { return false } @@ -10156,16 +11204,18 @@ extension NdefRecord: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefRecord: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefRecord { - try NdefRecord( - header: FfiConverterTypeNdefHeader.read(from: &buf), - type: FfiConverterData.read(from: &buf), - id: FfiConverterOptionData.read(from: &buf), - payload: FfiConverterTypeNdefPayload.read(from: &buf) + return + try NdefRecord( + header: FfiConverterTypeNdefHeader.read(from: &buf), + type: FfiConverterData.read(from: &buf), + id: FfiConverterOptionData.read(from: &buf), + payload: FfiConverterTypeNdefPayload.read(from: &buf) ) } @@ -10177,20 +11227,22 @@ public struct FfiConverterTypeNdefRecord: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecord_lift(_ buf: RustBuffer) throws -> NdefRecord { - try FfiConverterTypeNdefRecord.lift(buf) + return try FfiConverterTypeNdefRecord.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecord_lower(_ value: NdefRecord) -> RustBuffer { - FfiConverterTypeNdefRecord.lower(value) + return FfiConverterTypeNdefRecord.lower(value) } + public struct Node { public var name: String public var network: Network @@ -10207,8 +11259,10 @@ public struct Node { } } + + extension Node: Equatable, Hashable { - public static func == (lhs: Node, rhs: Node) -> Bool { + public static func ==(lhs: Node, rhs: Node) -> Bool { if lhs.name != rhs.name { return false } @@ -10232,16 +11286,18 @@ extension Node: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNode: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Node { - try Node( - name: FfiConverterString.read(from: &buf), - network: FfiConverterTypeNetwork.read(from: &buf), - apiType: FfiConverterTypeApiType.read(from: &buf), - url: FfiConverterString.read(from: &buf) + return + try Node( + name: FfiConverterString.read(from: &buf), + network: FfiConverterTypeNetwork.read(from: &buf), + apiType: FfiConverterTypeApiType.read(from: &buf), + url: FfiConverterString.read(from: &buf) ) } @@ -10253,20 +11309,22 @@ public struct FfiConverterTypeNode: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNode_lift(_ buf: RustBuffer) throws -> Node { - try FfiConverterTypeNode.lift(buf) + return try FfiConverterTypeNode.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNode_lower(_ value: Node) -> RustBuffer { - FfiConverterTypeNode.lower(value) + return FfiConverterTypeNode.lower(value) } + public struct ParsingContext { public var messageInfo: MessageInfo public var needed: UInt16 @@ -10281,8 +11339,10 @@ public struct ParsingContext { } } + + extension ParsingContext: Equatable, Hashable { - public static func == (lhs: ParsingContext, rhs: ParsingContext) -> Bool { + public static func ==(lhs: ParsingContext, rhs: ParsingContext) -> Bool { if lhs.messageInfo != rhs.messageInfo { return false } @@ -10302,15 +11362,17 @@ extension ParsingContext: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeParsingContext: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParsingContext { - try ParsingContext( - messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), - needed: FfiConverterUInt16.read(from: &buf), - firstBlockHash: FfiConverterOptionString.read(from: &buf) + return + try ParsingContext( + messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), + needed: FfiConverterUInt16.read(from: &buf), + firstBlockHash: FfiConverterOptionString.read(from: &buf) ) } @@ -10321,20 +11383,22 @@ public struct FfiConverterTypeParsingContext: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParsingContext_lift(_ buf: RustBuffer) throws -> ParsingContext { - try FfiConverterTypeParsingContext.lift(buf) + return try FfiConverterTypeParsingContext.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParsingContext_lower(_ value: ParsingContext) -> RustBuffer { - FfiConverterTypeParsingContext.lower(value) + return FfiConverterTypeParsingContext.lower(value) } + public struct ParsingMessage { public var messageInfo: MessageInfo public var leftOverBytes: Data @@ -10347,8 +11411,10 @@ public struct ParsingMessage { } } + + extension ParsingMessage: Equatable, Hashable { - public static func == (lhs: ParsingMessage, rhs: ParsingMessage) -> Bool { + public static func ==(lhs: ParsingMessage, rhs: ParsingMessage) -> Bool { if lhs.messageInfo != rhs.messageInfo { return false } @@ -10364,14 +11430,16 @@ extension ParsingMessage: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeParsingMessage: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParsingMessage { - try ParsingMessage( - messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), - leftOverBytes: FfiConverterData.read(from: &buf) + return + try ParsingMessage( + messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), + leftOverBytes: FfiConverterData.read(from: &buf) ) } @@ -10381,20 +11449,22 @@ public struct FfiConverterTypeParsingMessage: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParsingMessage_lift(_ buf: RustBuffer) throws -> ParsingMessage { - try FfiConverterTypeParsingMessage.lift(buf) + return try FfiConverterTypeParsingMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParsingMessage_lower(_ value: ParsingMessage) -> RustBuffer { - FfiConverterTypeParsingMessage.lower(value) + return FfiConverterTypeParsingMessage.lower(value) } + public struct PendingDetails { public var lastSeen: UInt64 @@ -10405,8 +11475,10 @@ public struct PendingDetails { } } + + extension PendingDetails: Equatable, Hashable { - public static func == (lhs: PendingDetails, rhs: PendingDetails) -> Bool { + public static func ==(lhs: PendingDetails, rhs: PendingDetails) -> Bool { if lhs.lastSeen != rhs.lastSeen { return false } @@ -10418,13 +11490,15 @@ extension PendingDetails: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingDetails: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingDetails { - try PendingDetails( - lastSeen: FfiConverterUInt64.read(from: &buf) + return + try PendingDetails( + lastSeen: FfiConverterUInt64.read(from: &buf) ) } @@ -10433,20 +11507,22 @@ public struct FfiConverterTypePendingDetails: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingDetails_lift(_ buf: RustBuffer) throws -> PendingDetails { - try FfiConverterTypePendingDetails.lift(buf) + return try FfiConverterTypePendingDetails.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingDetails_lower(_ value: PendingDetails) -> RustBuffer { - FfiConverterTypePendingDetails.lower(value) + return FfiConverterTypePendingDetails.lower(value) } + public struct PendingWalletViewModelState { public var numberOfWords: NumberOfBip39Words public var wallet: PendingWallet @@ -10459,14 +11535,17 @@ public struct PendingWalletViewModelState { } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelState { - try PendingWalletViewModelState( - numberOfWords: FfiConverterTypeNumberOfBip39Words.read(from: &buf), - wallet: FfiConverterTypePendingWallet.read(from: &buf) + return + try PendingWalletViewModelState( + numberOfWords: FfiConverterTypeNumberOfBip39Words.read(from: &buf), + wallet: FfiConverterTypePendingWallet.read(from: &buf) ) } @@ -10476,20 +11555,22 @@ public struct FfiConverterTypePendingWalletViewModelState: FfiConverterRustBuffe } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelState_lift(_ buf: RustBuffer) throws -> PendingWalletViewModelState { - try FfiConverterTypePendingWalletViewModelState.lift(buf) + return try FfiConverterTypePendingWalletViewModelState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelState_lower(_ value: PendingWalletViewModelState) -> RustBuffer { - FfiConverterTypePendingWalletViewModelState.lower(value) + return FfiConverterTypePendingWalletViewModelState.lower(value) } + public struct PriceResponse { public var time: UInt64 public var usd: UInt64 @@ -10514,8 +11595,10 @@ public struct PriceResponse { } } + + extension PriceResponse: Equatable, Hashable { - public static func == (lhs: PriceResponse, rhs: PriceResponse) -> Bool { + public static func ==(lhs: PriceResponse, rhs: PriceResponse) -> Bool { if lhs.time != rhs.time { return false } @@ -10555,20 +11638,22 @@ extension PriceResponse: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePriceResponse: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PriceResponse { - try PriceResponse( - time: FfiConverterUInt64.read(from: &buf), - usd: FfiConverterUInt64.read(from: &buf), - eur: FfiConverterUInt64.read(from: &buf), - gbp: FfiConverterUInt64.read(from: &buf), - cad: FfiConverterUInt64.read(from: &buf), - chf: FfiConverterUInt64.read(from: &buf), - aud: FfiConverterUInt64.read(from: &buf), - jpy: FfiConverterUInt64.read(from: &buf) + return + try PriceResponse( + time: FfiConverterUInt64.read(from: &buf), + usd: FfiConverterUInt64.read(from: &buf), + eur: FfiConverterUInt64.read(from: &buf), + gbp: FfiConverterUInt64.read(from: &buf), + cad: FfiConverterUInt64.read(from: &buf), + chf: FfiConverterUInt64.read(from: &buf), + aud: FfiConverterUInt64.read(from: &buf), + jpy: FfiConverterUInt64.read(from: &buf) ) } @@ -10584,20 +11669,22 @@ public struct FfiConverterTypePriceResponse: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePriceResponse_lift(_ buf: RustBuffer) throws -> PriceResponse { - try FfiConverterTypePriceResponse.lift(buf) + return try FfiConverterTypePriceResponse.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePriceResponse_lower(_ value: PriceResponse) -> RustBuffer { - FfiConverterTypePriceResponse.lower(value) + return FfiConverterTypePriceResponse.lower(value) } + public struct Rgb { public var r: UInt8 public var g: UInt8 @@ -10612,8 +11699,10 @@ public struct Rgb { } } + + extension Rgb: Equatable, Hashable { - public static func == (lhs: Rgb, rhs: Rgb) -> Bool { + public static func ==(lhs: Rgb, rhs: Rgb) -> Bool { if lhs.r != rhs.r { return false } @@ -10633,15 +11722,17 @@ extension Rgb: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRgb: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Rgb { - try Rgb( - r: FfiConverterUInt8.read(from: &buf), - g: FfiConverterUInt8.read(from: &buf), - b: FfiConverterUInt8.read(from: &buf) + return + try Rgb( + r: FfiConverterUInt8.read(from: &buf), + g: FfiConverterUInt8.read(from: &buf), + b: FfiConverterUInt8.read(from: &buf) ) } @@ -10652,20 +11743,22 @@ public struct FfiConverterTypeRgb: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRgb_lift(_ buf: RustBuffer) throws -> Rgb { - try FfiConverterTypeRgb.lift(buf) + return try FfiConverterTypeRgb.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRgb_lower(_ value: Rgb) -> RustBuffer { - FfiConverterTypeRgb.lower(value) + return FfiConverterTypeRgb.lower(value) } + public struct Router { public var app: FfiApp public var `default`: Route @@ -10673,46 +11766,51 @@ public struct Router { // Default memberwise initializers are never public by default, so we // declare one manually. - public init(app: FfiApp, default: Route, routes: [Route]) { + public init(app: FfiApp, `default`: Route, routes: [Route]) { self.app = app - self.default = `default` + self.`default` = `default` self.routes = routes } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRouter: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Router { - try Router( - app: FfiConverterTypeFfiApp.read(from: &buf), - default: FfiConverterTypeRoute.read(from: &buf), - routes: FfiConverterSequenceTypeRoute.read(from: &buf) + return + try Router( + app: FfiConverterTypeFfiApp.read(from: &buf), + default: FfiConverterTypeRoute.read(from: &buf), + routes: FfiConverterSequenceTypeRoute.read(from: &buf) ) } public static func write(_ value: Router, into buf: inout [UInt8]) { FfiConverterTypeFfiApp.write(value.app, into: &buf) - FfiConverterTypeRoute.write(value.default, into: &buf) + FfiConverterTypeRoute.write(value.`default`, into: &buf) FfiConverterSequenceTypeRoute.write(value.routes, into: &buf) } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRouter_lift(_ buf: RustBuffer) throws -> Router { - try FfiConverterTypeRouter.lift(buf) + return try FfiConverterTypeRouter.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRouter_lower(_ value: Router) -> RustBuffer { - FfiConverterTypeRouter.lower(value) + return FfiConverterTypeRouter.lower(value) } + public struct ScanningInfo { public var addressType: WalletAddressType public var count: UInt32 @@ -10725,8 +11823,10 @@ public struct ScanningInfo { } } + + extension ScanningInfo: Equatable, Hashable { - public static func == (lhs: ScanningInfo, rhs: ScanningInfo) -> Bool { + public static func ==(lhs: ScanningInfo, rhs: ScanningInfo) -> Bool { if lhs.addressType != rhs.addressType { return false } @@ -10742,14 +11842,16 @@ extension ScanningInfo: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeScanningInfo: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ScanningInfo { - try ScanningInfo( - addressType: FfiConverterTypeWalletAddressType.read(from: &buf), - count: FfiConverterUInt32.read(from: &buf) + return + try ScanningInfo( + addressType: FfiConverterTypeWalletAddressType.read(from: &buf), + count: FfiConverterUInt32.read(from: &buf) ) } @@ -10759,20 +11861,22 @@ public struct FfiConverterTypeScanningInfo: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScanningInfo_lift(_ buf: RustBuffer) throws -> ScanningInfo { - try FfiConverterTypeScanningInfo.lift(buf) + return try FfiConverterTypeScanningInfo.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScanningInfo_lower(_ value: ScanningInfo) -> RustBuffer { - FfiConverterTypeScanningInfo.lower(value) + return FfiConverterTypeScanningInfo.lower(value) } + public struct TextPayload { public var format: TextPayloadFormat public var language: String @@ -10787,8 +11891,10 @@ public struct TextPayload { } } + + extension TextPayload: Equatable, Hashable { - public static func == (lhs: TextPayload, rhs: TextPayload) -> Bool { + public static func ==(lhs: TextPayload, rhs: TextPayload) -> Bool { if lhs.format != rhs.format { return false } @@ -10808,15 +11914,17 @@ extension TextPayload: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTextPayload: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TextPayload { - try TextPayload( - format: FfiConverterTypeTextPayloadFormat.read(from: &buf), - language: FfiConverterString.read(from: &buf), - text: FfiConverterString.read(from: &buf) + return + try TextPayload( + format: FfiConverterTypeTextPayloadFormat.read(from: &buf), + language: FfiConverterString.read(from: &buf), + text: FfiConverterString.read(from: &buf) ) } @@ -10827,20 +11935,22 @@ public struct FfiConverterTypeTextPayload: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTextPayload_lift(_ buf: RustBuffer) throws -> TextPayload { - try FfiConverterTypeTextPayload.lift(buf) + return try FfiConverterTypeTextPayload.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTextPayload_lower(_ value: TextPayload) -> RustBuffer { - FfiConverterTypeTextPayload.lower(value) + return FfiConverterTypeTextPayload.lower(value) } + public struct WalletMetadata { public var id: WalletId public var name: String @@ -10861,7 +11971,7 @@ public struct WalletMetadata { // Default memberwise initializers are never public by default, so we // declare one manually. - public init(id: WalletId, name: String, color: WalletColor, verified: Bool, network: Network, performedFullScan: Bool, masterFingerprint: Fingerprint?, selectedUnit: Unit, selectedFiatCurrency: FiatCurrency, sensitiveVisible: Bool, detailsExpanded: Bool, walletType: WalletType, discoveryState: DiscoveryState, addressType: WalletAddressType, fiatOrBtc: FiatOrBtc, internal: InternalOnlyMetadata) { + public init(id: WalletId, name: String, color: WalletColor, verified: Bool, network: Network, performedFullScan: Bool, masterFingerprint: Fingerprint?, selectedUnit: Unit, selectedFiatCurrency: FiatCurrency, sensitiveVisible: Bool, detailsExpanded: Bool, walletType: WalletType, discoveryState: DiscoveryState, addressType: WalletAddressType, fiatOrBtc: FiatOrBtc, `internal`: InternalOnlyMetadata) { self.id = id self.name = name self.color = color @@ -10877,32 +11987,35 @@ public struct WalletMetadata { self.discoveryState = discoveryState self.addressType = addressType self.fiatOrBtc = fiatOrBtc - self.internal = `internal` + self.`internal` = `internal` } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletMetadata: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletMetadata { - try WalletMetadata( - id: FfiConverterTypeWalletId.read(from: &buf), - name: FfiConverterString.read(from: &buf), - color: FfiConverterTypeWalletColor.read(from: &buf), - verified: FfiConverterBool.read(from: &buf), - network: FfiConverterTypeNetwork.read(from: &buf), - performedFullScan: FfiConverterBool.read(from: &buf), - masterFingerprint: FfiConverterOptionTypeFingerprint.read(from: &buf), - selectedUnit: FfiConverterTypeUnit.read(from: &buf), - selectedFiatCurrency: FfiConverterTypeFiatCurrency.read(from: &buf), - sensitiveVisible: FfiConverterBool.read(from: &buf), - detailsExpanded: FfiConverterBool.read(from: &buf), - walletType: FfiConverterTypeWalletType.read(from: &buf), - discoveryState: FfiConverterTypeDiscoveryState.read(from: &buf), - addressType: FfiConverterTypeWalletAddressType.read(from: &buf), - fiatOrBtc: FfiConverterTypeFiatOrBtc.read(from: &buf), - internal: FfiConverterTypeInternalOnlyMetadata.read(from: &buf) + return + try WalletMetadata( + id: FfiConverterTypeWalletId.read(from: &buf), + name: FfiConverterString.read(from: &buf), + color: FfiConverterTypeWalletColor.read(from: &buf), + verified: FfiConverterBool.read(from: &buf), + network: FfiConverterTypeNetwork.read(from: &buf), + performedFullScan: FfiConverterBool.read(from: &buf), + masterFingerprint: FfiConverterOptionTypeFingerprint.read(from: &buf), + selectedUnit: FfiConverterTypeUnit.read(from: &buf), + selectedFiatCurrency: FfiConverterTypeFiatCurrency.read(from: &buf), + sensitiveVisible: FfiConverterBool.read(from: &buf), + detailsExpanded: FfiConverterBool.read(from: &buf), + walletType: FfiConverterTypeWalletType.read(from: &buf), + discoveryState: FfiConverterTypeDiscoveryState.read(from: &buf), + addressType: FfiConverterTypeWalletAddressType.read(from: &buf), + fiatOrBtc: FfiConverterTypeFiatOrBtc.read(from: &buf), + internal: FfiConverterTypeInternalOnlyMetadata.read(from: &buf) ) } @@ -10922,25 +12035,30 @@ public struct FfiConverterTypeWalletMetadata: FfiConverterRustBuffer { FfiConverterTypeDiscoveryState.write(value.discoveryState, into: &buf) FfiConverterTypeWalletAddressType.write(value.addressType, into: &buf) FfiConverterTypeFiatOrBtc.write(value.fiatOrBtc, into: &buf) - FfiConverterTypeInternalOnlyMetadata.write(value.internal, into: &buf) + FfiConverterTypeInternalOnlyMetadata.write(value.`internal`, into: &buf) } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletMetadata_lift(_ buf: RustBuffer) throws -> WalletMetadata { - try FfiConverterTypeWalletMetadata.lift(buf) + return try FfiConverterTypeWalletMetadata.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletMetadata_lower(_ value: WalletMetadata) -> RustBuffer { - FfiConverterTypeWalletMetadata.lower(value) + return FfiConverterTypeWalletMetadata.lower(value) } + public enum AddressError { + + + case NoOutputs case ScriptError(String ) @@ -10951,8 +12069,9 @@ public enum AddressError { case EmptyAddress } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddressError: FfiConverterRustBuffer { typealias SwiftType = AddressError @@ -10960,45 +12079,62 @@ public struct FfiConverterTypeAddressError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .NoOutputs - case 2: return try .ScriptError( - FfiConverterString.read(from: &buf) + case 2: return .ScriptError( + try FfiConverterString.read(from: &buf) ) case 3: return .InvalidAddress case 4: return .UnsupportedNetwork - case 5: return try .WrongNetwork( - current: FfiConverterTypeNetwork.read(from: &buf) + case 5: return .WrongNetwork( + current: try FfiConverterTypeNetwork.read(from: &buf) ) case 6: return .EmptyAddress - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AddressError, into buf: inout [UInt8]) { switch value { + + + + + case .NoOutputs: writeInt(&buf, Int32(1)) - + + case let .ScriptError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case .InvalidAddress: writeInt(&buf, Int32(3)) - + + case .UnsupportedNetwork: writeInt(&buf, Int32(4)) - + + case let .WrongNetwork(current): writeInt(&buf, Int32(5)) FfiConverterTypeNetwork.write(current, into: &buf) - + + case .EmptyAddress: writeInt(&buf, Int32(6)) + } } } + extension AddressError: Equatable, Hashable {} extension AddressError: Foundation.LocalizedError { @@ -11011,13 +12147,15 @@ extension AddressError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ApiType { + case esplora case electrum case rpc } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeApiType: FfiConverterRustBuffer { typealias SwiftType = ApiType @@ -11025,50 +12163,62 @@ public struct FfiConverterTypeApiType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ApiType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .esplora - + case 2: return .electrum - + case 3: return .rpc - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ApiType, into buf: inout [UInt8]) { switch value { + + case .esplora: writeInt(&buf, Int32(1)) - + + case .electrum: writeInt(&buf, Int32(2)) - + + case .rpc: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeApiType_lift(_ buf: RustBuffer) throws -> ApiType { - try FfiConverterTypeApiType.lift(buf) + return try FfiConverterTypeApiType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeApiType_lower(_ value: ApiType) -> RustBuffer { - FfiConverterTypeApiType.lower(value) + return FfiConverterTypeApiType.lower(value) } + + extension ApiType: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum AppAction { + case updateRoute(routes: [Route] ) case changeNetwork(network: Network @@ -11081,8 +12231,9 @@ public enum AppAction { case updateFees } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAppAction: FfiConverterRustBuffer { typealias SwiftType = AppAction @@ -11090,76 +12241,94 @@ public struct FfiConverterTypeAppAction: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppAction { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .updateRoute(routes: FfiConverterSequenceTypeRoute.read(from: &buf) - ) - - case 2: return try .changeNetwork(network: FfiConverterTypeNetwork.read(from: &buf) - ) - - case 3: return try .changeColorScheme(FfiConverterTypeColorSchemeSelection.read(from: &buf) - ) - - case 4: return try .setSelectedNode(FfiConverterTypeNode.read(from: &buf) - ) - + + case 1: return .updateRoute(routes: try FfiConverterSequenceTypeRoute.read(from: &buf) + ) + + case 2: return .changeNetwork(network: try FfiConverterTypeNetwork.read(from: &buf) + ) + + case 3: return .changeColorScheme(try FfiConverterTypeColorSchemeSelection.read(from: &buf) + ) + + case 4: return .setSelectedNode(try FfiConverterTypeNode.read(from: &buf) + ) + case 5: return .updateFiatPrices - + case 6: return .updateFees - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AppAction, into buf: inout [UInt8]) { switch value { + + case let .updateRoute(routes): writeInt(&buf, Int32(1)) FfiConverterSequenceTypeRoute.write(routes, into: &buf) - + + case let .changeNetwork(network): writeInt(&buf, Int32(2)) FfiConverterTypeNetwork.write(network, into: &buf) - + + case let .changeColorScheme(v1): writeInt(&buf, Int32(3)) FfiConverterTypeColorSchemeSelection.write(v1, into: &buf) - + + case let .setSelectedNode(v1): writeInt(&buf, Int32(4)) FfiConverterTypeNode.write(v1, into: &buf) - + + case .updateFiatPrices: writeInt(&buf, Int32(5)) - + + case .updateFees: writeInt(&buf, Int32(6)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppAction_lift(_ buf: RustBuffer) throws -> AppAction { - try FfiConverterTypeAppAction.lift(buf) + return try FfiConverterTypeAppAction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppAction_lower(_ value: AppAction) -> RustBuffer { - FfiConverterTypeAppAction.lower(value) + return FfiConverterTypeAppAction.lower(value) } + + + + public enum AppError { + + + case PricesError(String ) case FeesError(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAppError: FfiConverterRustBuffer { typealias SwiftType = AppError @@ -11167,31 +12336,42 @@ public struct FfiConverterTypeAppError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .PricesError( - FfiConverterString.read(from: &buf) - ) - case 2: return try .FeesError( - FfiConverterString.read(from: &buf) + + + + case 1: return .PricesError( + try FfiConverterString.read(from: &buf) + ) + case 2: return .FeesError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AppError, into buf: inout [UInt8]) { switch value { + + + + + case let .PricesError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .FeesError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension AppError: Equatable, Hashable {} extension AppError: Foundation.LocalizedError { @@ -11204,6 +12384,7 @@ extension AppError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum AppStateReconcileMessage { + case defaultRouteChanged(Route ) case routeUpdated([Route] @@ -11219,8 +12400,9 @@ public enum AppStateReconcileMessage { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAppStateReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = AppStateReconcileMessage @@ -11228,77 +12410,95 @@ public struct FfiConverterTypeAppStateReconcileMessage: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppStateReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .defaultRouteChanged(FfiConverterTypeRoute.read(from: &buf) - ) - - case 2: return try .routeUpdated(FfiConverterSequenceTypeRoute.read(from: &buf) - ) - + + case 1: return .defaultRouteChanged(try FfiConverterTypeRoute.read(from: &buf) + ) + + case 2: return .routeUpdated(try FfiConverterSequenceTypeRoute.read(from: &buf) + ) + case 3: return .databaseUpdated - - case 4: return try .colorSchemeChanged(FfiConverterTypeColorSchemeSelection.read(from: &buf) - ) - - case 5: return try .selectedNodeChanged(FfiConverterTypeNode.read(from: &buf) - ) - - case 6: return try .fiatPricesChanged(FfiConverterTypePriceResponse.read(from: &buf) - ) - - case 7: return try .feesChanged(FfiConverterTypeFeeResponse.read(from: &buf) - ) - + + case 4: return .colorSchemeChanged(try FfiConverterTypeColorSchemeSelection.read(from: &buf) + ) + + case 5: return .selectedNodeChanged(try FfiConverterTypeNode.read(from: &buf) + ) + + case 6: return .fiatPricesChanged(try FfiConverterTypePriceResponse.read(from: &buf) + ) + + case 7: return .feesChanged(try FfiConverterTypeFeeResponse.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AppStateReconcileMessage, into buf: inout [UInt8]) { switch value { + + case let .defaultRouteChanged(v1): writeInt(&buf, Int32(1)) FfiConverterTypeRoute.write(v1, into: &buf) - + + case let .routeUpdated(v1): writeInt(&buf, Int32(2)) FfiConverterSequenceTypeRoute.write(v1, into: &buf) - + + case .databaseUpdated: writeInt(&buf, Int32(3)) - + + case let .colorSchemeChanged(v1): writeInt(&buf, Int32(4)) FfiConverterTypeColorSchemeSelection.write(v1, into: &buf) - + + case let .selectedNodeChanged(v1): writeInt(&buf, Int32(5)) FfiConverterTypeNode.write(v1, into: &buf) - + + case let .fiatPricesChanged(v1): writeInt(&buf, Int32(6)) FfiConverterTypePriceResponse.write(v1, into: &buf) - + + case let .feesChanged(v1): writeInt(&buf, Int32(7)) FfiConverterTypeFeeResponse.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppStateReconcileMessage_lift(_ buf: RustBuffer) throws -> AppStateReconcileMessage { - try FfiConverterTypeAppStateReconcileMessage.lift(buf) + return try FfiConverterTypeAppStateReconcileMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppStateReconcileMessage_lower(_ value: AppStateReconcileMessage) -> RustBuffer { - FfiConverterTypeAppStateReconcileMessage.lower(value) + return FfiConverterTypeAppStateReconcileMessage.lower(value) } + + + + public enum Bip39Error { + + + /** * Mnemonic has a word count that is not a multiple of 6, found {0}. */ @@ -11326,8 +12526,9 @@ public enum Bip39Error { case AmbiguousLanguages } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBip39Error: FfiConverterRustBuffer { typealias SwiftType = Bip39Error @@ -11335,44 +12536,60 @@ public struct FfiConverterTypeBip39Error: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bip39Error { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .BadWordCount( - FfiConverterUInt32.read(from: &buf) + + + + + case 1: return .BadWordCount( + try FfiConverterUInt32.read(from: &buf) ) - case 2: return try .UnknownWord( - FfiConverterUInt32.read(from: &buf) + case 2: return .UnknownWord( + try FfiConverterUInt32.read(from: &buf) ) - case 3: return try .BadEntropyBitCount( - FfiConverterUInt32.read(from: &buf) + case 3: return .BadEntropyBitCount( + try FfiConverterUInt32.read(from: &buf) ) case 4: return .InvalidChecksum case 5: return .AmbiguousLanguages - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Bip39Error, into buf: inout [UInt8]) { switch value { + + + + + case let .BadWordCount(v1): writeInt(&buf, Int32(1)) FfiConverterUInt32.write(v1, into: &buf) - + + case let .UnknownWord(v1): writeInt(&buf, Int32(2)) FfiConverterUInt32.write(v1, into: &buf) - + + case let .BadEntropyBitCount(v1): writeInt(&buf, Int32(3)) FfiConverterUInt32.write(v1, into: &buf) - + + case .InvalidChecksum: writeInt(&buf, Int32(4)) - + + case .AmbiguousLanguages: writeInt(&buf, Int32(5)) + } } } + extension Bip39Error: Equatable, Hashable {} extension Bip39Error: Foundation.LocalizedError { @@ -11381,15 +12598,20 @@ extension Bip39Error: Foundation.LocalizedError { } } + public enum BitcoinTransactionError { + + + case HexDecodeError(String ) case ParseTransactionError(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBitcoinTransactionError: FfiConverterRustBuffer { typealias SwiftType = BitcoinTransactionError @@ -11397,31 +12619,42 @@ public struct FfiConverterTypeBitcoinTransactionError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BitcoinTransactionError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .HexDecodeError( - FfiConverterString.read(from: &buf) - ) - case 2: return try .ParseTransactionError( - FfiConverterString.read(from: &buf) + + + + case 1: return .HexDecodeError( + try FfiConverterString.read(from: &buf) + ) + case 2: return .ParseTransactionError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: BitcoinTransactionError, into buf: inout [UInt8]) { switch value { + + + + + case let .HexDecodeError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .ParseTransactionError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension BitcoinTransactionError: Equatable, Hashable {} extension BitcoinTransactionError: Foundation.LocalizedError { @@ -11434,11 +12667,13 @@ extension BitcoinTransactionError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ColdWalletRoute { + case qrCode } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeColdWalletRoute: FfiConverterRustBuffer { typealias SwiftType = ColdWalletRoute @@ -11446,47 +12681,58 @@ public struct FfiConverterTypeColdWalletRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ColdWalletRoute { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .qrCode - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ColdWalletRoute, into buf: inout [UInt8]) { switch value { + + case .qrCode: writeInt(&buf, Int32(1)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeColdWalletRoute_lift(_ buf: RustBuffer) throws -> ColdWalletRoute { - try FfiConverterTypeColdWalletRoute.lift(buf) + return try FfiConverterTypeColdWalletRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeColdWalletRoute_lower(_ value: ColdWalletRoute) -> RustBuffer { - FfiConverterTypeColdWalletRoute.lower(value) + return FfiConverterTypeColdWalletRoute.lower(value) } + + extension ColdWalletRoute: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ColorSchemeSelection { + case light case dark case system } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeColorSchemeSelection: FfiConverterRustBuffer { typealias SwiftType = ColorSchemeSelection @@ -11494,53 +12740,69 @@ public struct FfiConverterTypeColorSchemeSelection: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ColorSchemeSelection { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .light - + case 2: return .dark - + case 3: return .system - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ColorSchemeSelection, into buf: inout [UInt8]) { switch value { + + case .light: writeInt(&buf, Int32(1)) - + + case .dark: writeInt(&buf, Int32(2)) - + + case .system: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeColorSchemeSelection_lift(_ buf: RustBuffer) throws -> ColorSchemeSelection { - try FfiConverterTypeColorSchemeSelection.lift(buf) + return try FfiConverterTypeColorSchemeSelection.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeColorSchemeSelection_lower(_ value: ColorSchemeSelection) -> RustBuffer { - FfiConverterTypeColorSchemeSelection.lower(value) + return FfiConverterTypeColorSchemeSelection.lower(value) } + + extension ColorSchemeSelection: Equatable, Hashable {} + + + public enum ConfirmDetailsError { + + + case QrCodeCreation(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmDetailsError: FfiConverterRustBuffer { typealias SwiftType = ConfirmDetailsError @@ -11548,23 +12810,34 @@ public struct FfiConverterTypeConfirmDetailsError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmDetailsError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .QrCodeCreation( - FfiConverterString.read(from: &buf) + + + + + case 1: return .QrCodeCreation( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ConfirmDetailsError, into buf: inout [UInt8]) { switch value { + + + + + case let .QrCodeCreation(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) + } } } + extension ConfirmDetailsError: Equatable, Hashable {} extension ConfirmDetailsError: Foundation.LocalizedError { @@ -11573,7 +12846,11 @@ extension ConfirmDetailsError: Foundation.LocalizedError { } } + public enum DatabaseError { + + + case DatabaseAccess(String ) case TableAccess(String @@ -11592,8 +12869,9 @@ public enum DatabaseError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeDatabaseError: FfiConverterRustBuffer { typealias SwiftType = DatabaseError @@ -11601,71 +12879,90 @@ public struct FfiConverterTypeDatabaseError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DatabaseError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .DatabaseAccess( - FfiConverterString.read(from: &buf) + + + + + case 1: return .DatabaseAccess( + try FfiConverterString.read(from: &buf) ) - case 2: return try .TableAccess( - FfiConverterString.read(from: &buf) + case 2: return .TableAccess( + try FfiConverterString.read(from: &buf) ) - case 3: return try .Wallets( - FfiConverterTypeWalletTableError.read(from: &buf) + case 3: return .Wallets( + try FfiConverterTypeWalletTableError.read(from: &buf) ) - case 4: return try .GlobalFlag( - FfiConverterTypeGlobalFlagTableError.read(from: &buf) + case 4: return .GlobalFlag( + try FfiConverterTypeGlobalFlagTableError.read(from: &buf) ) - case 5: return try .GlobalConfig( - FfiConverterTypeGlobalConfigTableError.read(from: &buf) + case 5: return .GlobalConfig( + try FfiConverterTypeGlobalConfigTableError.read(from: &buf) ) - case 6: return try .GlobalCache( - FfiConverterTypeGlobalCacheTableError.read(from: &buf) + case 6: return .GlobalCache( + try FfiConverterTypeGlobalCacheTableError.read(from: &buf) ) - case 7: return try .UnsignedTransactions( - FfiConverterTypeUnsignedTransactionsTableError.read(from: &buf) + case 7: return .UnsignedTransactions( + try FfiConverterTypeUnsignedTransactionsTableError.read(from: &buf) ) - case 8: return try .Serialization( - FfiConverterTypeSerdeError.read(from: &buf) + case 8: return .Serialization( + try FfiConverterTypeSerdeError.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: DatabaseError, into buf: inout [UInt8]) { switch value { + + + + + case let .DatabaseAccess(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .TableAccess(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .Wallets(v1): writeInt(&buf, Int32(3)) FfiConverterTypeWalletTableError.write(v1, into: &buf) - + + case let .GlobalFlag(v1): writeInt(&buf, Int32(4)) FfiConverterTypeGlobalFlagTableError.write(v1, into: &buf) - + + case let .GlobalConfig(v1): writeInt(&buf, Int32(5)) FfiConverterTypeGlobalConfigTableError.write(v1, into: &buf) - + + case let .GlobalCache(v1): writeInt(&buf, Int32(6)) FfiConverterTypeGlobalCacheTableError.write(v1, into: &buf) - + + case let .UnsignedTransactions(v1): writeInt(&buf, Int32(7)) FfiConverterTypeUnsignedTransactionsTableError.write(v1, into: &buf) - + + case let .Serialization(v1): writeInt(&buf, Int32(8)) FfiConverterTypeSerdeError.write(v1, into: &buf) + } } } + extension DatabaseError: Equatable, Hashable {} extension DatabaseError: Foundation.LocalizedError { @@ -11674,7 +12971,11 @@ extension DatabaseError: Foundation.LocalizedError { } } + public enum DescriptorError { + + + case InvalidDescriptor(String ) case MissingKeys @@ -11695,8 +12996,9 @@ public enum DescriptorError { case SinglePubkeyNotSupported } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeDescriptorError: FfiConverterRustBuffer { typealias SwiftType = DescriptorError @@ -11704,82 +13006,106 @@ public struct FfiConverterTypeDescriptorError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DescriptorError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .InvalidDescriptor( - FfiConverterString.read(from: &buf) + + + + + case 1: return .InvalidDescriptor( + try FfiConverterString.read(from: &buf) ) case 2: return .MissingKeys - case 3: return try .TooManyKeys( - FfiConverterUInt32.read(from: &buf) + case 3: return .TooManyKeys( + try FfiConverterUInt32.read(from: &buf) ) - case 4: return try .InvalidDescriptorParse( - FfiConverterString.read(from: &buf) + case 4: return .InvalidDescriptorParse( + try FfiConverterString.read(from: &buf) ) case 5: return .MissingDescriptor case 6: return .MissingXpub case 7: return .MissingDerivationPath case 8: return .MissingScriptType case 9: return .MissingFingerprint - case 10: return try .InvalidXpub( - FfiConverterString.read(from: &buf) + case 10: return .InvalidXpub( + try FfiConverterString.read(from: &buf) ) - case 11: return try .UnableToParseXpub( - FfiConverterString.read(from: &buf) + case 11: return .UnableToParseXpub( + try FfiConverterString.read(from: &buf) ) case 12: return .NoXpubInDescriptor case 13: return .SinglePubkeyNotSupported - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: DescriptorError, into buf: inout [UInt8]) { switch value { + + + + + case let .InvalidDescriptor(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case .MissingKeys: writeInt(&buf, Int32(2)) - + + case let .TooManyKeys(v1): writeInt(&buf, Int32(3)) FfiConverterUInt32.write(v1, into: &buf) - + + case let .InvalidDescriptorParse(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case .MissingDescriptor: writeInt(&buf, Int32(5)) - + + case .MissingXpub: writeInt(&buf, Int32(6)) - + + case .MissingDerivationPath: writeInt(&buf, Int32(7)) - + + case .MissingScriptType: writeInt(&buf, Int32(8)) - + + case .MissingFingerprint: writeInt(&buf, Int32(9)) - + + case let .InvalidXpub(v1): writeInt(&buf, Int32(10)) FfiConverterString.write(v1, into: &buf) - + + case let .UnableToParseXpub(v1): writeInt(&buf, Int32(11)) FfiConverterString.write(v1, into: &buf) - + + case .NoXpubInDescriptor: writeInt(&buf, Int32(12)) - + + case .SinglePubkeyNotSupported: writeInt(&buf, Int32(13)) + } } } + extension DescriptorError: Equatable, Hashable {} extension DescriptorError: Foundation.LocalizedError { @@ -11792,19 +13118,22 @@ extension DescriptorError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum DiscoveryState { + case single case startedJson(FoundJson ) case startedMnemonic - case foundAddressesFromJson([FoundAddress], FoundJson) + case foundAddressesFromJson([FoundAddress],FoundJson + ) case foundAddressesFromMnemonic([FoundAddress] ) case noneFound case choseAdressType } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeDiscoveryState: FfiConverterRustBuffer { typealias SwiftType = DiscoveryState @@ -11812,81 +13141,98 @@ public struct FfiConverterTypeDiscoveryState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DiscoveryState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .single - - case 2: return try .startedJson(FfiConverterTypeFoundJson.read(from: &buf) - ) - + + case 2: return .startedJson(try FfiConverterTypeFoundJson.read(from: &buf) + ) + case 3: return .startedMnemonic - - case 4: return try .foundAddressesFromJson(FfiConverterSequenceTypeFoundAddress.read(from: &buf), FfiConverterTypeFoundJson.read(from: &buf)) - - case 5: return try .foundAddressesFromMnemonic(FfiConverterSequenceTypeFoundAddress.read(from: &buf) - ) - + + case 4: return .foundAddressesFromJson(try FfiConverterSequenceTypeFoundAddress.read(from: &buf), try FfiConverterTypeFoundJson.read(from: &buf) + ) + + case 5: return .foundAddressesFromMnemonic(try FfiConverterSequenceTypeFoundAddress.read(from: &buf) + ) + case 6: return .noneFound - + case 7: return .choseAdressType - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: DiscoveryState, into buf: inout [UInt8]) { switch value { + + case .single: writeInt(&buf, Int32(1)) - + + case let .startedJson(v1): writeInt(&buf, Int32(2)) FfiConverterTypeFoundJson.write(v1, into: &buf) - + + case .startedMnemonic: writeInt(&buf, Int32(3)) - - case let .foundAddressesFromJson(v1, v2): + + + case let .foundAddressesFromJson(v1,v2): writeInt(&buf, Int32(4)) FfiConverterSequenceTypeFoundAddress.write(v1, into: &buf) FfiConverterTypeFoundJson.write(v2, into: &buf) - + + case let .foundAddressesFromMnemonic(v1): writeInt(&buf, Int32(5)) FfiConverterSequenceTypeFoundAddress.write(v1, into: &buf) - + + case .noneFound: writeInt(&buf, Int32(6)) - + + case .choseAdressType: writeInt(&buf, Int32(7)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeDiscoveryState_lift(_ buf: RustBuffer) throws -> DiscoveryState { - try FfiConverterTypeDiscoveryState.lift(buf) + return try FfiConverterTypeDiscoveryState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeDiscoveryState_lower(_ value: DiscoveryState) -> RustBuffer { - FfiConverterTypeDiscoveryState.lower(value) + return FfiConverterTypeDiscoveryState.lower(value) } + + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FeeSpeed { + case fast case medium case slow } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeSpeed: FfiConverterRustBuffer { typealias SwiftType = FeeSpeed @@ -11894,50 +13240,62 @@ public struct FfiConverterTypeFeeSpeed: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeSpeed { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .fast - + case 2: return .medium - + case 3: return .slow - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FeeSpeed, into buf: inout [UInt8]) { switch value { + + case .fast: writeInt(&buf, Int32(1)) - + + case .medium: writeInt(&buf, Int32(2)) - + + case .slow: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeSpeed_lift(_ buf: RustBuffer) throws -> FeeSpeed { - try FfiConverterTypeFeeSpeed.lift(buf) + return try FfiConverterTypeFeeSpeed.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeSpeed_lower(_ value: FeeSpeed) -> RustBuffer { - FfiConverterTypeFeeSpeed.lower(value) + return FfiConverterTypeFeeSpeed.lower(value) } + + extension FeeSpeed: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FfiColor { + case red(FfiOpacity ) case blue(FfiOpacity @@ -11960,11 +13318,13 @@ public enum FfiColor { ) case coolGray(FfiOpacity ) - case custom(Rgb, FfiOpacity) + case custom(Rgb,FfiOpacity + ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiColor: FfiConverterRustBuffer { typealias SwiftType = FfiColor @@ -11972,125 +13332,148 @@ public struct FfiConverterTypeFfiColor: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiColor { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .red(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 2: return try .blue(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 3: return try .green(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 4: return try .yellow(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 5: return try .orange(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 6: return try .purple(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 7: return try .pink(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 8: return try .white(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 9: return try .black(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 10: return try .gray(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 11: return try .coolGray(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 12: return try .custom(FfiConverterTypeRgb.read(from: &buf), FfiConverterTypeFfiOpacity.read(from: &buf)) - + + case 1: return .red(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 2: return .blue(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 3: return .green(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 4: return .yellow(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 5: return .orange(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 6: return .purple(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 7: return .pink(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 8: return .white(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 9: return .black(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 10: return .gray(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 11: return .coolGray(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 12: return .custom(try FfiConverterTypeRgb.read(from: &buf), try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FfiColor, into buf: inout [UInt8]) { switch value { + + case let .red(v1): writeInt(&buf, Int32(1)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .blue(v1): writeInt(&buf, Int32(2)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .green(v1): writeInt(&buf, Int32(3)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .yellow(v1): writeInt(&buf, Int32(4)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .orange(v1): writeInt(&buf, Int32(5)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .purple(v1): writeInt(&buf, Int32(6)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .pink(v1): writeInt(&buf, Int32(7)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .white(v1): writeInt(&buf, Int32(8)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .black(v1): writeInt(&buf, Int32(9)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .gray(v1): writeInt(&buf, Int32(10)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .coolGray(v1): writeInt(&buf, Int32(11)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - case let .custom(v1, v2): + + + case let .custom(v1,v2): writeInt(&buf, Int32(12)) FfiConverterTypeRgb.write(v1, into: &buf) FfiConverterTypeFfiOpacity.write(v2, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiColor_lift(_ buf: RustBuffer) throws -> FfiColor { - try FfiConverterTypeFfiColor.lift(buf) + return try FfiConverterTypeFfiColor.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiColor_lower(_ value: FfiColor) -> RustBuffer { - FfiConverterTypeFfiColor.lower(value) + return FfiConverterTypeFfiColor.lower(value) } + + extension FfiColor: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FfiColorScheme { + case light case dark } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiColorScheme: FfiConverterRustBuffer { typealias SwiftType = FfiColorScheme @@ -12098,42 +13481,56 @@ public struct FfiConverterTypeFfiColorScheme: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiColorScheme { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .light - + case 2: return .dark - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FfiColorScheme, into buf: inout [UInt8]) { switch value { + + case .light: writeInt(&buf, Int32(1)) - + + case .dark: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiColorScheme_lift(_ buf: RustBuffer) throws -> FfiColorScheme { - try FfiConverterTypeFfiColorScheme.lift(buf) + return try FfiConverterTypeFfiColorScheme.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiColorScheme_lower(_ value: FfiColorScheme) -> RustBuffer { - FfiConverterTypeFfiColorScheme.lower(value) + return FfiConverterTypeFfiColorScheme.lower(value) } + + extension FfiColorScheme: Equatable, Hashable {} + + + public enum FiatAmountError { + + + /** * Unable to convert to fiat amount, prices client unavailable {0} */ @@ -12141,8 +13538,9 @@ public enum FiatAmountError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatAmountError: FfiConverterRustBuffer { typealias SwiftType = FiatAmountError @@ -12150,23 +13548,34 @@ public struct FfiConverterTypeFiatAmountError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatAmountError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .PricesUnavailable( - FfiConverterString.read(from: &buf) + + + + + case 1: return .PricesUnavailable( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FiatAmountError, into buf: inout [UInt8]) { switch value { + + + + + case let .PricesUnavailable(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) + } } } + extension FiatAmountError: Equatable, Hashable {} extension FiatAmountError: Foundation.LocalizedError { @@ -12179,6 +13588,7 @@ extension FiatAmountError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FiatCurrency { + case usd case eur case gbp @@ -12188,8 +13598,9 @@ public enum FiatCurrency { case jpy } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatCurrency: FfiConverterRustBuffer { typealias SwiftType = FiatCurrency @@ -12197,76 +13608,93 @@ public struct FfiConverterTypeFiatCurrency: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatCurrency { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .usd - + case 2: return .eur - + case 3: return .gbp - + case 4: return .cad - + case 5: return .chf - + case 6: return .aud - + case 7: return .jpy - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FiatCurrency, into buf: inout [UInt8]) { switch value { + + case .usd: writeInt(&buf, Int32(1)) - + + case .eur: writeInt(&buf, Int32(2)) - + + case .gbp: writeInt(&buf, Int32(3)) - + + case .cad: writeInt(&buf, Int32(4)) - + + case .chf: writeInt(&buf, Int32(5)) - + + case .aud: writeInt(&buf, Int32(6)) - + + case .jpy: writeInt(&buf, Int32(7)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatCurrency_lift(_ buf: RustBuffer) throws -> FiatCurrency { - try FfiConverterTypeFiatCurrency.lift(buf) + return try FfiConverterTypeFiatCurrency.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatCurrency_lower(_ value: FiatCurrency) -> RustBuffer { - FfiConverterTypeFiatCurrency.lower(value) + return FfiConverterTypeFiatCurrency.lower(value) } + + extension FiatCurrency: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FiatOrBtc { + case btc case fiat } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatOrBtc: FfiConverterRustBuffer { typealias SwiftType = FiatOrBtc @@ -12274,42 +13702,56 @@ public struct FfiConverterTypeFiatOrBtc: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatOrBtc { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .btc - + case 2: return .fiat - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FiatOrBtc, into buf: inout [UInt8]) { switch value { + + case .btc: writeInt(&buf, Int32(1)) - + + case .fiat: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatOrBtc_lift(_ buf: RustBuffer) throws -> FiatOrBtc { - try FfiConverterTypeFiatOrBtc.lift(buf) + return try FfiConverterTypeFiatOrBtc.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatOrBtc_lower(_ value: FiatOrBtc) -> RustBuffer { - FfiConverterTypeFiatOrBtc.lower(value) + return FfiConverterTypeFiatOrBtc.lower(value) } + + extension FiatOrBtc: Equatable, Hashable {} + + + public enum FileHandlerError { + + + /** * File not found */ @@ -12331,8 +13773,9 @@ public enum FileHandlerError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFileHandlerError: FfiConverterRustBuffer { typealias SwiftType = FileHandlerError @@ -12340,40 +13783,55 @@ public struct FfiConverterTypeFileHandlerError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FileHandlerError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .FileNotFound - case 2: return try .OpenFile( - FfiConverterString.read(from: &buf) + case 2: return .OpenFile( + try FfiConverterString.read(from: &buf) ) - case 3: return try .ReadFile( - FfiConverterString.read(from: &buf) + case 3: return .ReadFile( + try FfiConverterString.read(from: &buf) ) - case 4: return try .NotRecognizedFormat( - FfiConverterTypeMultiFormatError.read(from: &buf) + case 4: return .NotRecognizedFormat( + try FfiConverterTypeMultiFormatError.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FileHandlerError, into buf: inout [UInt8]) { switch value { + + + + + case .FileNotFound: writeInt(&buf, Int32(1)) - + + case let .OpenFile(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .ReadFile(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .NotRecognizedFormat(v1): writeInt(&buf, Int32(4)) FfiConverterTypeMultiFormatError.write(v1, into: &buf) + } } } + extension FileHandlerError: Equatable, Hashable {} extension FileHandlerError: Foundation.LocalizedError { @@ -12382,12 +13840,17 @@ extension FileHandlerError: Foundation.LocalizedError { } } + public enum FingerprintError { + + + case WalletNotFound } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFingerprintError: FfiConverterRustBuffer { typealias SwiftType = FingerprintError @@ -12395,20 +13858,31 @@ public struct FfiConverterTypeFingerprintError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FingerprintError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .WalletNotFound - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FingerprintError, into buf: inout [UInt8]) { switch value { + + + + + case .WalletNotFound: writeInt(&buf, Int32(1)) + } } } + extension FingerprintError: Equatable, Hashable {} extension FingerprintError: Foundation.LocalizedError { @@ -12417,15 +13891,20 @@ extension FingerprintError: Foundation.LocalizedError { } } + public enum GlobalCacheTableError { + + + case Save(String ) case Read(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalCacheTableError: FfiConverterRustBuffer { typealias SwiftType = GlobalCacheTableError @@ -12433,31 +13912,42 @@ public struct FfiConverterTypeGlobalCacheTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalCacheTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Save( - FfiConverterString.read(from: &buf) - ) - case 2: return try .Read( - FfiConverterString.read(from: &buf) + + + + case 1: return .Save( + try FfiConverterString.read(from: &buf) + ) + case 2: return .Read( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalCacheTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension GlobalCacheTableError: Equatable, Hashable {} extension GlobalCacheTableError: Foundation.LocalizedError { @@ -12470,6 +13960,7 @@ extension GlobalCacheTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum GlobalConfigKey { + case selectedWalletId case selectedNetwork case selectedNode(Network @@ -12477,8 +13968,9 @@ public enum GlobalConfigKey { case colorScheme } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalConfigKey: FfiConverterRustBuffer { typealias SwiftType = GlobalConfigKey @@ -12486,62 +13978,79 @@ public struct FfiConverterTypeGlobalConfigKey: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalConfigKey { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .selectedWalletId - + case 2: return .selectedNetwork - - case 3: return try .selectedNode(FfiConverterTypeNetwork.read(from: &buf) - ) - + + case 3: return .selectedNode(try FfiConverterTypeNetwork.read(from: &buf) + ) + case 4: return .colorScheme - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalConfigKey, into buf: inout [UInt8]) { switch value { + + case .selectedWalletId: writeInt(&buf, Int32(1)) - + + case .selectedNetwork: writeInt(&buf, Int32(2)) - + + case let .selectedNode(v1): writeInt(&buf, Int32(3)) FfiConverterTypeNetwork.write(v1, into: &buf) - + + case .colorScheme: writeInt(&buf, Int32(4)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigKey_lift(_ buf: RustBuffer) throws -> GlobalConfigKey { - try FfiConverterTypeGlobalConfigKey.lift(buf) + return try FfiConverterTypeGlobalConfigKey.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigKey_lower(_ value: GlobalConfigKey) -> RustBuffer { - FfiConverterTypeGlobalConfigKey.lower(value) + return FfiConverterTypeGlobalConfigKey.lower(value) } + + extension GlobalConfigKey: Equatable, Hashable {} + + + public enum GlobalConfigTableError { + + + case Save(String ) case Read(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalConfigTableError: FfiConverterRustBuffer { typealias SwiftType = GlobalConfigTableError @@ -12549,31 +14058,42 @@ public struct FfiConverterTypeGlobalConfigTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalConfigTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Save( - FfiConverterString.read(from: &buf) - ) - case 2: return try .Read( - FfiConverterString.read(from: &buf) + + + + case 1: return .Save( + try FfiConverterString.read(from: &buf) + ) + case 2: return .Read( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalConfigTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension GlobalConfigTableError: Equatable, Hashable {} extension GlobalConfigTableError: Foundation.LocalizedError { @@ -12586,11 +14106,13 @@ extension GlobalConfigTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum GlobalFlagKey { + case completedOnboarding } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalFlagKey: FfiConverterRustBuffer { typealias SwiftType = GlobalFlagKey @@ -12598,45 +14120,59 @@ public struct FfiConverterTypeGlobalFlagKey: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalFlagKey { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .completedOnboarding - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalFlagKey, into buf: inout [UInt8]) { switch value { + + case .completedOnboarding: writeInt(&buf, Int32(1)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagKey_lift(_ buf: RustBuffer) throws -> GlobalFlagKey { - try FfiConverterTypeGlobalFlagKey.lift(buf) + return try FfiConverterTypeGlobalFlagKey.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagKey_lower(_ value: GlobalFlagKey) -> RustBuffer { - FfiConverterTypeGlobalFlagKey.lower(value) + return FfiConverterTypeGlobalFlagKey.lower(value) } + + extension GlobalFlagKey: Equatable, Hashable {} + + + public enum GlobalFlagTableError { + + + case Save(String ) case Read(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalFlagTableError: FfiConverterRustBuffer { typealias SwiftType = GlobalFlagTableError @@ -12644,31 +14180,42 @@ public struct FfiConverterTypeGlobalFlagTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalFlagTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Save( - FfiConverterString.read(from: &buf) - ) - case 2: return try .Read( - FfiConverterString.read(from: &buf) + + + + case 1: return .Save( + try FfiConverterString.read(from: &buf) + ) + case 2: return .Read( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalFlagTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension GlobalFlagTableError: Equatable, Hashable {} extension GlobalFlagTableError: Foundation.LocalizedError { @@ -12681,16 +14228,19 @@ extension GlobalFlagTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum HotWalletRoute { + case select case create(NumberOfBip39Words ) - case `import`(NumberOfBip39Words, ImportType) + case `import`(NumberOfBip39Words,ImportType + ) case verifyWords(WalletId ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeHotWalletRoute: FfiConverterRustBuffer { typealias SwiftType = HotWalletRoute @@ -12698,68 +14248,83 @@ public struct FfiConverterTypeHotWalletRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> HotWalletRoute { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .select - - case 2: return try .create(FfiConverterTypeNumberOfBip39Words.read(from: &buf) - ) - - case 3: return try .import(FfiConverterTypeNumberOfBip39Words.read(from: &buf), FfiConverterTypeImportType.read(from: &buf)) - - case 4: return try .verifyWords(FfiConverterTypeWalletId.read(from: &buf) - ) - + + case 2: return .create(try FfiConverterTypeNumberOfBip39Words.read(from: &buf) + ) + + case 3: return .`import`(try FfiConverterTypeNumberOfBip39Words.read(from: &buf), try FfiConverterTypeImportType.read(from: &buf) + ) + + case 4: return .verifyWords(try FfiConverterTypeWalletId.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: HotWalletRoute, into buf: inout [UInt8]) { switch value { + + case .select: writeInt(&buf, Int32(1)) - + + case let .create(v1): writeInt(&buf, Int32(2)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) - - case let .import(v1, v2): + + + case let .`import`(v1,v2): writeInt(&buf, Int32(3)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) FfiConverterTypeImportType.write(v2, into: &buf) - + + case let .verifyWords(v1): writeInt(&buf, Int32(4)) FfiConverterTypeWalletId.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHotWalletRoute_lift(_ buf: RustBuffer) throws -> HotWalletRoute { - try FfiConverterTypeHotWalletRoute.lift(buf) + return try FfiConverterTypeHotWalletRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHotWalletRoute_lower(_ value: HotWalletRoute) -> RustBuffer { - FfiConverterTypeHotWalletRoute.lower(value) + return FfiConverterTypeHotWalletRoute.lower(value) } + + extension HotWalletRoute: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ImportType { + case manual case nfc case qr } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportType: FfiConverterRustBuffer { typealias SwiftType = ImportType @@ -12767,47 +14332,62 @@ public struct FfiConverterTypeImportType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .manual - + case 2: return .nfc - + case 3: return .qr - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportType, into buf: inout [UInt8]) { switch value { + + case .manual: writeInt(&buf, Int32(1)) - + + case .nfc: writeInt(&buf, Int32(2)) - + + case .qr: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportType_lift(_ buf: RustBuffer) throws -> ImportType { - try FfiConverterTypeImportType.lift(buf) + return try FfiConverterTypeImportType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportType_lower(_ value: ImportType) -> RustBuffer { - FfiConverterTypeImportType.lower(value) + return FfiConverterTypeImportType.lower(value) } + + extension ImportType: Equatable, Hashable {} + + + public enum ImportWalletError { + + + case WalletImportError(String ) case InvalidWordGroup(String @@ -12822,8 +14402,9 @@ public enum ImportWalletError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletError: FfiConverterRustBuffer { typealias SwiftType = ImportWalletError @@ -12831,57 +14412,74 @@ public struct FfiConverterTypeImportWalletError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .WalletImportError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .WalletImportError( + try FfiConverterString.read(from: &buf) ) - case 2: return try .InvalidWordGroup( - FfiConverterString.read(from: &buf) + case 2: return .InvalidWordGroup( + try FfiConverterString.read(from: &buf) ) - case 3: return try .KeychainError( - FfiConverterTypeKeychainError.read(from: &buf) + case 3: return .KeychainError( + try FfiConverterTypeKeychainError.read(from: &buf) ) - case 4: return try .WalletAlreadyExists( - FfiConverterTypeWalletId.read(from: &buf) + case 4: return .WalletAlreadyExists( + try FfiConverterTypeWalletId.read(from: &buf) ) - case 5: return try .DatabaseError( - FfiConverterTypeDatabaseError.read(from: &buf) + case 5: return .DatabaseError( + try FfiConverterTypeDatabaseError.read(from: &buf) ) - case 6: return try .BdkError( - FfiConverterString.read(from: &buf) + case 6: return .BdkError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportWalletError, into buf: inout [UInt8]) { switch value { + + + + + case let .WalletImportError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .InvalidWordGroup(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .KeychainError(v1): writeInt(&buf, Int32(3)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .WalletAlreadyExists(v1): writeInt(&buf, Int32(4)) FfiConverterTypeWalletId.write(v1, into: &buf) - + + case let .DatabaseError(v1): writeInt(&buf, Int32(5)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - + + case let .BdkError(v1): writeInt(&buf, Int32(6)) FfiConverterString.write(v1, into: &buf) + } } } + extension ImportWalletError: Equatable, Hashable {} extension ImportWalletError: Foundation.LocalizedError { @@ -12894,11 +14492,13 @@ extension ImportWalletError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ImportWalletViewModelAction { + case noOp } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletViewModelAction: FfiConverterRustBuffer { typealias SwiftType = ImportWalletViewModelAction @@ -12906,45 +14506,56 @@ public struct FfiConverterTypeImportWalletViewModelAction: FfiConverterRustBuffe public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelAction { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .noOp - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportWalletViewModelAction, into buf: inout [UInt8]) { switch value { + + case .noOp: writeInt(&buf, Int32(1)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelAction_lift(_ buf: RustBuffer) throws -> ImportWalletViewModelAction { - try FfiConverterTypeImportWalletViewModelAction.lift(buf) + return try FfiConverterTypeImportWalletViewModelAction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelAction_lower(_ value: ImportWalletViewModelAction) -> RustBuffer { - FfiConverterTypeImportWalletViewModelAction.lower(value) + return FfiConverterTypeImportWalletViewModelAction.lower(value) } + + extension ImportWalletViewModelAction: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ImportWalletViewModelReconcileMessage { + case noOp } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletViewModelReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = ImportWalletViewModelReconcileMessage @@ -12952,37 +14563,50 @@ public struct FfiConverterTypeImportWalletViewModelReconcileMessage: FfiConverte public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .noOp - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportWalletViewModelReconcileMessage, into buf: inout [UInt8]) { switch value { + + case .noOp: writeInt(&buf, Int32(1)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelReconcileMessage_lift(_ buf: RustBuffer) throws -> ImportWalletViewModelReconcileMessage { - try FfiConverterTypeImportWalletViewModelReconcileMessage.lift(buf) + return try FfiConverterTypeImportWalletViewModelReconcileMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelReconcileMessage_lower(_ value: ImportWalletViewModelReconcileMessage) -> RustBuffer { - FfiConverterTypeImportWalletViewModelReconcileMessage.lower(value) + return FfiConverterTypeImportWalletViewModelReconcileMessage.lower(value) } + + extension ImportWalletViewModelReconcileMessage: Equatable, Hashable {} + + + public enum KeychainError { + + + case Save case Delete case ParseSavedValue(String @@ -12993,8 +14617,9 @@ public enum KeychainError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeKeychainError: FfiConverterRustBuffer { typealias SwiftType = KeychainError @@ -13002,44 +14627,60 @@ public struct FfiConverterTypeKeychainError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> KeychainError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .Save case 2: return .Delete - case 3: return try .ParseSavedValue( - FfiConverterString.read(from: &buf) + case 3: return .ParseSavedValue( + try FfiConverterString.read(from: &buf) ) - case 4: return try .Encrypt( - FfiConverterString.read(from: &buf) + case 4: return .Encrypt( + try FfiConverterString.read(from: &buf) ) - case 5: return try .Decrypt( - FfiConverterString.read(from: &buf) + case 5: return .Decrypt( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: KeychainError, into buf: inout [UInt8]) { switch value { + + + + + case .Save: writeInt(&buf, Int32(1)) - + + case .Delete: writeInt(&buf, Int32(2)) - + + case let .ParseSavedValue(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .Encrypt(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case let .Decrypt(v1): writeInt(&buf, Int32(5)) FfiConverterString.write(v1, into: &buf) + } } } + extension KeychainError: Equatable, Hashable {} extension KeychainError: Foundation.LocalizedError { @@ -13048,15 +14689,20 @@ extension KeychainError: Foundation.LocalizedError { } } + public enum MnemonicError { + + + case GetWalletKeychain(KeychainError ) case NotAvailable(WalletId ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMnemonicError: FfiConverterRustBuffer { typealias SwiftType = MnemonicError @@ -13064,31 +14710,42 @@ public struct FfiConverterTypeMnemonicError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MnemonicError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .GetWalletKeychain( - FfiConverterTypeKeychainError.read(from: &buf) - ) - case 2: return try .NotAvailable( - FfiConverterTypeWalletId.read(from: &buf) + + + + case 1: return .GetWalletKeychain( + try FfiConverterTypeKeychainError.read(from: &buf) + ) + case 2: return .NotAvailable( + try FfiConverterTypeWalletId.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MnemonicError, into buf: inout [UInt8]) { switch value { + + + + + case let .GetWalletKeychain(v1): writeInt(&buf, Int32(1)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .NotAvailable(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletId.write(v1, into: &buf) + } } } + extension MnemonicError: Equatable, Hashable {} extension MnemonicError: Foundation.LocalizedError { @@ -13097,12 +14754,18 @@ extension MnemonicError: Foundation.LocalizedError { } } + public enum MnemonicParseError { - case InvalidMnemonic(String, String) + + + + case InvalidMnemonic(String,String + ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMnemonicParseError: FfiConverterRustBuffer { typealias SwiftType = MnemonicParseError @@ -13110,25 +14773,36 @@ public struct FfiConverterTypeMnemonicParseError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MnemonicParseError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .InvalidMnemonic( - FfiConverterString.read(from: &buf), - FfiConverterString.read(from: &buf) + + + + + case 1: return .InvalidMnemonic( + try FfiConverterString.read(from: &buf), + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MnemonicParseError, into buf: inout [UInt8]) { switch value { - case let .InvalidMnemonic(v1, v2): + + + + + + case let .InvalidMnemonic(v1,v2): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) FfiConverterString.write(v2, into: &buf) + } } } + extension MnemonicParseError: Equatable, Hashable {} extension MnemonicParseError: Foundation.LocalizedError { @@ -13141,6 +14815,7 @@ extension MnemonicParseError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum MultiFormat { + case address(AddressWithNetwork ) case hardwareExport(HardwareExport @@ -13151,8 +14826,9 @@ public enum MultiFormat { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiFormat: FfiConverterRustBuffer { typealias SwiftType = MultiFormat @@ -13160,58 +14836,73 @@ public struct FfiConverterTypeMultiFormat: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiFormat { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .address(FfiConverterTypeAddressWithNetwork.read(from: &buf) - ) - - case 2: return try .hardwareExport(FfiConverterTypeHardwareExport.read(from: &buf) - ) - - case 3: return try .mnemonic(FfiConverterTypeMnemonic.read(from: &buf) - ) - - case 4: return try .transaction(FfiConverterTypeBitcoinTransaction.read(from: &buf) - ) - + + case 1: return .address(try FfiConverterTypeAddressWithNetwork.read(from: &buf) + ) + + case 2: return .hardwareExport(try FfiConverterTypeHardwareExport.read(from: &buf) + ) + + case 3: return .mnemonic(try FfiConverterTypeMnemonic.read(from: &buf) + ) + + case 4: return .transaction(try FfiConverterTypeBitcoinTransaction.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiFormat, into buf: inout [UInt8]) { switch value { + + case let .address(v1): writeInt(&buf, Int32(1)) FfiConverterTypeAddressWithNetwork.write(v1, into: &buf) - + + case let .hardwareExport(v1): writeInt(&buf, Int32(2)) FfiConverterTypeHardwareExport.write(v1, into: &buf) - + + case let .mnemonic(v1): writeInt(&buf, Int32(3)) FfiConverterTypeMnemonic.write(v1, into: &buf) - + + case let .transaction(v1): writeInt(&buf, Int32(4)) FfiConverterTypeBitcoinTransaction.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiFormat_lift(_ buf: RustBuffer) throws -> MultiFormat { - try FfiConverterTypeMultiFormat.lift(buf) + return try FfiConverterTypeMultiFormat.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiFormat_lower(_ value: MultiFormat) -> RustBuffer { - FfiConverterTypeMultiFormat.lower(value) + return FfiConverterTypeMultiFormat.lower(value) } + + + + public enum MultiFormatError { + + + case InvalidSeedQr(SeedQrError ) /** @@ -13224,8 +14915,9 @@ public enum MultiFormatError { case UnrecognizedFormat } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiFormatError: FfiConverterRustBuffer { typealias SwiftType = MultiFormatError @@ -13233,30 +14925,44 @@ public struct FfiConverterTypeMultiFormatError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiFormatError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .InvalidSeedQr( - FfiConverterTypeSeedQrError.read(from: &buf) + + + + + case 1: return .InvalidSeedQr( + try FfiConverterTypeSeedQrError.read(from: &buf) ) case 2: return .UnsupportedNetworkAddress case 3: return .UnrecognizedFormat - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiFormatError, into buf: inout [UInt8]) { switch value { + + + + + case let .InvalidSeedQr(v1): writeInt(&buf, Int32(1)) FfiConverterTypeSeedQrError.write(v1, into: &buf) - + + case .UnsupportedNetworkAddress: writeInt(&buf, Int32(2)) - + + case .UnrecognizedFormat: writeInt(&buf, Int32(3)) + } } } + extension MultiFormatError: Equatable, Hashable {} extension MultiFormatError: Foundation.LocalizedError { @@ -13265,7 +14971,11 @@ extension MultiFormatError: Foundation.LocalizedError { } } + public enum MultiQrError { + + + case CannotAddPartToSingleQr case CannotAddPartToSeedQr case ParseError(String @@ -13281,8 +14991,9 @@ public enum MultiQrError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiQrError: FfiConverterRustBuffer { typealias SwiftType = MultiQrError @@ -13290,63 +15001,83 @@ public struct FfiConverterTypeMultiQrError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiQrError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .CannotAddPartToSingleQr case 2: return .CannotAddPartToSeedQr - case 3: return try .ParseError( - FfiConverterString.read(from: &buf) + case 3: return .ParseError( + try FfiConverterString.read(from: &buf) ) case 4: return .InvalidUtf8 case 5: return .NotYetAvailable case 6: return .CannotAddBinaryDataToBbqr - case 7: return try .BbqrDidNotContainSeedWords( - FfiConverterString.read(from: &buf) + case 7: return .BbqrDidNotContainSeedWords( + try FfiConverterString.read(from: &buf) ) - case 8: return try .InvalidSeedQr( - FfiConverterTypeSeedQrError.read(from: &buf) + case 8: return .InvalidSeedQr( + try FfiConverterTypeSeedQrError.read(from: &buf) ) - case 9: return try .InvalidPlainTextQr( - FfiConverterString.read(from: &buf) + case 9: return .InvalidPlainTextQr( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiQrError, into buf: inout [UInt8]) { switch value { + + + + + case .CannotAddPartToSingleQr: writeInt(&buf, Int32(1)) - + + case .CannotAddPartToSeedQr: writeInt(&buf, Int32(2)) - + + case let .ParseError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case .InvalidUtf8: writeInt(&buf, Int32(4)) - + + case .NotYetAvailable: writeInt(&buf, Int32(5)) - + + case .CannotAddBinaryDataToBbqr: writeInt(&buf, Int32(6)) - + + case let .BbqrDidNotContainSeedWords(v1): writeInt(&buf, Int32(7)) FfiConverterString.write(v1, into: &buf) - + + case let .InvalidSeedQr(v1): writeInt(&buf, Int32(8)) FfiConverterTypeSeedQrError.write(v1, into: &buf) - + + case let .InvalidPlainTextQr(v1): writeInt(&buf, Int32(9)) FfiConverterString.write(v1, into: &buf) + } } } + extension MultiQrError: Equatable, Hashable {} extension MultiQrError: Foundation.LocalizedError { @@ -13359,6 +15090,7 @@ extension MultiQrError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum MultiQrScanResult { + case seedQr(SeedQr ) case single(String @@ -13369,8 +15101,9 @@ public enum MultiQrScanResult { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiQrScanResult: FfiConverterRustBuffer { typealias SwiftType = MultiQrScanResult @@ -13378,69 +15111,82 @@ public struct FfiConverterTypeMultiQrScanResult: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiQrScanResult { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .seedQr(FfiConverterTypeSeedQr.read(from: &buf) - ) - - case 2: return try .single(FfiConverterString.read(from: &buf) - ) - - case 3: return try .completedBBqr(FfiConverterTypeBbqrJoined.read(from: &buf) - ) - - case 4: return try .inProgressBBqr(FfiConverterUInt32.read(from: &buf) - ) - + + case 1: return .seedQr(try FfiConverterTypeSeedQr.read(from: &buf) + ) + + case 2: return .single(try FfiConverterString.read(from: &buf) + ) + + case 3: return .completedBBqr(try FfiConverterTypeBbqrJoined.read(from: &buf) + ) + + case 4: return .inProgressBBqr(try FfiConverterUInt32.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiQrScanResult, into buf: inout [UInt8]) { switch value { + + case let .seedQr(v1): writeInt(&buf, Int32(1)) FfiConverterTypeSeedQr.write(v1, into: &buf) - + + case let .single(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .completedBBqr(v1): writeInt(&buf, Int32(3)) FfiConverterTypeBbqrJoined.write(v1, into: &buf) - + + case let .inProgressBBqr(v1): writeInt(&buf, Int32(4)) FfiConverterUInt32.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiQrScanResult_lift(_ buf: RustBuffer) throws -> MultiQrScanResult { - try FfiConverterTypeMultiQrScanResult.lift(buf) + return try FfiConverterTypeMultiQrScanResult.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiQrScanResult_lower(_ value: MultiQrScanResult) -> RustBuffer { - FfiConverterTypeMultiQrScanResult.lower(value) + return FfiConverterTypeMultiQrScanResult.lower(value) } + + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NdefPayload { + case text(TextPayload ) case data(Data ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefPayload: FfiConverterRustBuffer { typealias SwiftType = NdefPayload @@ -13448,49 +15194,60 @@ public struct FfiConverterTypeNdefPayload: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefPayload { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .text(FfiConverterTypeTextPayload.read(from: &buf) - ) - - case 2: return try .data(FfiConverterData.read(from: &buf) - ) - + + case 1: return .text(try FfiConverterTypeTextPayload.read(from: &buf) + ) + + case 2: return .data(try FfiConverterData.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NdefPayload, into buf: inout [UInt8]) { switch value { + + case let .text(v1): writeInt(&buf, Int32(1)) FfiConverterTypeTextPayload.write(v1, into: &buf) - + + case let .data(v1): writeInt(&buf, Int32(2)) FfiConverterData.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefPayload_lift(_ buf: RustBuffer) throws -> NdefPayload { - try FfiConverterTypeNdefPayload.lift(buf) + return try FfiConverterTypeNdefPayload.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefPayload_lower(_ value: NdefPayload) -> RustBuffer { - FfiConverterTypeNdefPayload.lower(value) + return FfiConverterTypeNdefPayload.lower(value) } + + extension NdefPayload: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NdefType { + case empty case wellKnown case mime @@ -13501,8 +15258,9 @@ public enum NdefType { case reserved } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefType: FfiConverterRustBuffer { typealias SwiftType = NdefType @@ -13510,81 +15268,99 @@ public struct FfiConverterTypeNdefType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .empty - + case 2: return .wellKnown - + case 3: return .mime - + case 4: return .absoluteUri - + case 5: return .external - + case 6: return .unknown - + case 7: return .unchanged - + case 8: return .reserved - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NdefType, into buf: inout [UInt8]) { switch value { + + case .empty: writeInt(&buf, Int32(1)) - + + case .wellKnown: writeInt(&buf, Int32(2)) - + + case .mime: writeInt(&buf, Int32(3)) - + + case .absoluteUri: writeInt(&buf, Int32(4)) - + + case .external: writeInt(&buf, Int32(5)) - + + case .unknown: writeInt(&buf, Int32(6)) - + + case .unchanged: writeInt(&buf, Int32(7)) - + + case .reserved: writeInt(&buf, Int32(8)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefType_lift(_ buf: RustBuffer) throws -> NdefType { - try FfiConverterTypeNdefType.lift(buf) + return try FfiConverterTypeNdefType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefType_lower(_ value: NdefType) -> RustBuffer { - FfiConverterTypeNdefType.lower(value) + return FfiConverterTypeNdefType.lower(value) } + + extension NdefType: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Network { + case bitcoin case testnet } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNetwork: FfiConverterRustBuffer { typealias SwiftType = Network @@ -13592,45 +15368,56 @@ public struct FfiConverterTypeNetwork: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Network { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .bitcoin - + case 2: return .testnet - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Network, into buf: inout [UInt8]) { switch value { + + case .bitcoin: writeInt(&buf, Int32(1)) - + + case .testnet: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNetwork_lift(_ buf: RustBuffer) throws -> Network { - try FfiConverterTypeNetwork.lift(buf) + return try FfiConverterTypeNetwork.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNetwork_lower(_ value: Network) -> RustBuffer { - FfiConverterTypeNetwork.lower(value) + return FfiConverterTypeNetwork.lower(value) } + + extension Network: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NewWalletRoute { + case select case hotWallet(HotWalletRoute ) @@ -13638,8 +15425,9 @@ public enum NewWalletRoute { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNewWalletRoute: FfiConverterRustBuffer { typealias SwiftType = NewWalletRoute @@ -13647,51 +15435,66 @@ public struct FfiConverterTypeNewWalletRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NewWalletRoute { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .select - - case 2: return try .hotWallet(FfiConverterTypeHotWalletRoute.read(from: &buf) - ) - - case 3: return try .coldWallet(FfiConverterTypeColdWalletRoute.read(from: &buf) - ) - + + case 2: return .hotWallet(try FfiConverterTypeHotWalletRoute.read(from: &buf) + ) + + case 3: return .coldWallet(try FfiConverterTypeColdWalletRoute.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NewWalletRoute, into buf: inout [UInt8]) { switch value { + + case .select: writeInt(&buf, Int32(1)) - + + case let .hotWallet(v1): writeInt(&buf, Int32(2)) FfiConverterTypeHotWalletRoute.write(v1, into: &buf) - + + case let .coldWallet(v1): writeInt(&buf, Int32(3)) FfiConverterTypeColdWalletRoute.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNewWalletRoute_lift(_ buf: RustBuffer) throws -> NewWalletRoute { - try FfiConverterTypeNewWalletRoute.lift(buf) + return try FfiConverterTypeNewWalletRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNewWalletRoute_lower(_ value: NewWalletRoute) -> RustBuffer { - FfiConverterTypeNewWalletRoute.lower(value) + return FfiConverterTypeNewWalletRoute.lower(value) } + + extension NewWalletRoute: Equatable, Hashable {} + + + public enum NfcReaderError { + + + /** * Error parsing the NDEF message */ @@ -13707,8 +15510,9 @@ public enum NfcReaderError { case AlreadyParsed } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNfcReaderError: FfiConverterRustBuffer { typealias SwiftType = NfcReaderError @@ -13716,30 +15520,44 @@ public struct FfiConverterTypeNfcReaderError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NfcReaderError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .ParsingError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .ParsingError( + try FfiConverterString.read(from: &buf) ) case 2: return .NotEnoughData case 3: return .AlreadyParsed - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NfcReaderError, into buf: inout [UInt8]) { switch value { + + + + + case let .ParsingError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case .NotEnoughData: writeInt(&buf, Int32(2)) - + + case .AlreadyParsed: writeInt(&buf, Int32(3)) + } } } + extension NfcReaderError: Equatable, Hashable {} extension NfcReaderError: Foundation.LocalizedError { @@ -13752,14 +15570,16 @@ extension NfcReaderError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NodeSelection { + case preset(Node ) case custom(Node ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNodeSelection: FfiConverterRustBuffer { typealias SwiftType = NodeSelection @@ -13767,46 +15587,60 @@ public struct FfiConverterTypeNodeSelection: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NodeSelection { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .preset(FfiConverterTypeNode.read(from: &buf) - ) - - case 2: return try .custom(FfiConverterTypeNode.read(from: &buf) - ) - + + case 1: return .preset(try FfiConverterTypeNode.read(from: &buf) + ) + + case 2: return .custom(try FfiConverterTypeNode.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NodeSelection, into buf: inout [UInt8]) { switch value { + + case let .preset(v1): writeInt(&buf, Int32(1)) FfiConverterTypeNode.write(v1, into: &buf) - + + case let .custom(v1): writeInt(&buf, Int32(2)) FfiConverterTypeNode.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelection_lift(_ buf: RustBuffer) throws -> NodeSelection { - try FfiConverterTypeNodeSelection.lift(buf) + return try FfiConverterTypeNodeSelection.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelection_lower(_ value: NodeSelection) -> RustBuffer { - FfiConverterTypeNodeSelection.lower(value) + return FfiConverterTypeNodeSelection.lower(value) } + + extension NodeSelection: Equatable, Hashable {} + + + public enum NodeSelectorError { + + + case NodeNotFound(String ) case SetSelectedNodeError(String @@ -13817,8 +15651,9 @@ public enum NodeSelectorError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNodeSelectorError: FfiConverterRustBuffer { typealias SwiftType = NodeSelectorError @@ -13826,43 +15661,58 @@ public struct FfiConverterTypeNodeSelectorError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NodeSelectorError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .NodeNotFound( - FfiConverterString.read(from: &buf) + + + + + case 1: return .NodeNotFound( + try FfiConverterString.read(from: &buf) ) - case 2: return try .SetSelectedNodeError( - FfiConverterString.read(from: &buf) + case 2: return .SetSelectedNodeError( + try FfiConverterString.read(from: &buf) ) - case 3: return try .NodeAccessError( - FfiConverterString.read(from: &buf) + case 3: return .NodeAccessError( + try FfiConverterString.read(from: &buf) ) - case 4: return try .ParseNodeUrlError( - FfiConverterString.read(from: &buf) + case 4: return .ParseNodeUrlError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NodeSelectorError, into buf: inout [UInt8]) { switch value { + + + + + case let .NodeNotFound(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .SetSelectedNodeError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .NodeAccessError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .ParseNodeUrlError(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) + } } } + extension NodeSelectorError: Equatable, Hashable {} extension NodeSelectorError: Foundation.LocalizedError { @@ -13875,12 +15725,14 @@ extension NodeSelectorError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NumberOfBip39Words { + case twelve case twentyFour } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNumberOfBip39Words: FfiConverterRustBuffer { typealias SwiftType = NumberOfBip39Words @@ -13888,49 +15740,61 @@ public struct FfiConverterTypeNumberOfBip39Words: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NumberOfBip39Words { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .twelve - + case 2: return .twentyFour - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NumberOfBip39Words, into buf: inout [UInt8]) { switch value { + + case .twelve: writeInt(&buf, Int32(1)) - + + case .twentyFour: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNumberOfBip39Words_lift(_ buf: RustBuffer) throws -> NumberOfBip39Words { - try FfiConverterTypeNumberOfBip39Words.lift(buf) + return try FfiConverterTypeNumberOfBip39Words.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNumberOfBip39Words_lower(_ value: NumberOfBip39Words) -> RustBuffer { - FfiConverterTypeNumberOfBip39Words.lower(value) + return FfiConverterTypeNumberOfBip39Words.lower(value) } + + extension NumberOfBip39Words: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ParseResult { + /** * Completed The message is a NDEF message */ - case complete(MessageInfo, [NdefRecord]) + case complete(MessageInfo,[NdefRecord] + ) /** * Incomplete, need more data to parse the message */ @@ -13938,8 +15802,9 @@ public enum ParseResult { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeParseResult: FfiConverterRustBuffer { typealias SwiftType = ParseResult @@ -13947,57 +15812,70 @@ public struct FfiConverterTypeParseResult: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParseResult { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .complete(FfiConverterTypeMessageInfo.read(from: &buf), FfiConverterSequenceTypeNdefRecord.read(from: &buf)) - - case 2: return try .incomplete(FfiConverterTypeParsingMessage.read(from: &buf) - ) - + + case 1: return .complete(try FfiConverterTypeMessageInfo.read(from: &buf), try FfiConverterSequenceTypeNdefRecord.read(from: &buf) + ) + + case 2: return .incomplete(try FfiConverterTypeParsingMessage.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ParseResult, into buf: inout [UInt8]) { switch value { - case let .complete(v1, v2): + + + case let .complete(v1,v2): writeInt(&buf, Int32(1)) FfiConverterTypeMessageInfo.write(v1, into: &buf) FfiConverterSequenceTypeNdefRecord.write(v2, into: &buf) - + + case let .incomplete(v1): writeInt(&buf, Int32(2)) FfiConverterTypeParsingMessage.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParseResult_lift(_ buf: RustBuffer) throws -> ParseResult { - try FfiConverterTypeParseResult.lift(buf) + return try FfiConverterTypeParseResult.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParseResult_lower(_ value: ParseResult) -> RustBuffer { - FfiConverterTypeParseResult.lower(value) + return FfiConverterTypeParseResult.lower(value) } + + extension ParseResult: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ParserState { + case notStarted case parsing(ParsingContext ) case complete } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeParserState: FfiConverterRustBuffer { typealias SwiftType = ParserState @@ -14005,60 +15883,73 @@ public struct FfiConverterTypeParserState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParserState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .notStarted - - case 2: return try .parsing(FfiConverterTypeParsingContext.read(from: &buf) - ) - + + case 2: return .parsing(try FfiConverterTypeParsingContext.read(from: &buf) + ) + case 3: return .complete - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ParserState, into buf: inout [UInt8]) { switch value { + + case .notStarted: writeInt(&buf, Int32(1)) - + + case let .parsing(v1): writeInt(&buf, Int32(2)) FfiConverterTypeParsingContext.write(v1, into: &buf) - + + case .complete: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParserState_lift(_ buf: RustBuffer) throws -> ParserState { - try FfiConverterTypeParserState.lift(buf) + return try FfiConverterTypeParserState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParserState_lower(_ value: ParserState) -> RustBuffer { - FfiConverterTypeParserState.lower(value) + return FfiConverterTypeParserState.lower(value) } + + extension ParserState: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum PendingOrConfirmed { + case pending(PendingDetails ) case confirmed(ConfirmedDetails ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingOrConfirmed: FfiConverterRustBuffer { typealias SwiftType = PendingOrConfirmed @@ -14066,55 +15957,67 @@ public struct FfiConverterTypePendingOrConfirmed: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingOrConfirmed { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .pending(FfiConverterTypePendingDetails.read(from: &buf) - ) - - case 2: return try .confirmed(FfiConverterTypeConfirmedDetails.read(from: &buf) - ) - + + case 1: return .pending(try FfiConverterTypePendingDetails.read(from: &buf) + ) + + case 2: return .confirmed(try FfiConverterTypeConfirmedDetails.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingOrConfirmed, into buf: inout [UInt8]) { switch value { + + case let .pending(v1): writeInt(&buf, Int32(1)) FfiConverterTypePendingDetails.write(v1, into: &buf) - + + case let .confirmed(v1): writeInt(&buf, Int32(2)) FfiConverterTypeConfirmedDetails.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingOrConfirmed_lift(_ buf: RustBuffer) throws -> PendingOrConfirmed { - try FfiConverterTypePendingOrConfirmed.lift(buf) + return try FfiConverterTypePendingOrConfirmed.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingOrConfirmed_lower(_ value: PendingOrConfirmed) -> RustBuffer { - FfiConverterTypePendingOrConfirmed.lower(value) + return FfiConverterTypePendingOrConfirmed.lower(value) } + + extension PendingOrConfirmed: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum PendingWalletViewModelAction { + case updateWords(NumberOfBip39Words ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelAction: FfiConverterRustBuffer { typealias SwiftType = PendingWalletViewModelAction @@ -14122,47 +16025,61 @@ public struct FfiConverterTypePendingWalletViewModelAction: FfiConverterRustBuff public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelAction { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .updateWords(FfiConverterTypeNumberOfBip39Words.read(from: &buf) - ) - + + case 1: return .updateWords(try FfiConverterTypeNumberOfBip39Words.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingWalletViewModelAction, into buf: inout [UInt8]) { switch value { + + case let .updateWords(v1): writeInt(&buf, Int32(1)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelAction_lift(_ buf: RustBuffer) throws -> PendingWalletViewModelAction { - try FfiConverterTypePendingWalletViewModelAction.lift(buf) + return try FfiConverterTypePendingWalletViewModelAction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelAction_lower(_ value: PendingWalletViewModelAction) -> RustBuffer { - FfiConverterTypePendingWalletViewModelAction.lower(value) + return FfiConverterTypePendingWalletViewModelAction.lower(value) } + + extension PendingWalletViewModelAction: Equatable, Hashable {} + + + public enum PendingWalletViewModelError { + + + case BdkError(String ) case WalletCreationError(WalletCreationError ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelError: FfiConverterRustBuffer { typealias SwiftType = PendingWalletViewModelError @@ -14170,31 +16087,42 @@ public struct FfiConverterTypePendingWalletViewModelError: FfiConverterRustBuffe public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .BdkError( - FfiConverterString.read(from: &buf) - ) - case 2: return try .WalletCreationError( - FfiConverterTypeWalletCreationError.read(from: &buf) + + + + case 1: return .BdkError( + try FfiConverterString.read(from: &buf) + ) + case 2: return .WalletCreationError( + try FfiConverterTypeWalletCreationError.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingWalletViewModelError, into buf: inout [UInt8]) { switch value { + + + + + case let .BdkError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .WalletCreationError(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletCreationError.write(v1, into: &buf) + } } } + extension PendingWalletViewModelError: Equatable, Hashable {} extension PendingWalletViewModelError: Foundation.LocalizedError { @@ -14207,12 +16135,14 @@ extension PendingWalletViewModelError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum PendingWalletViewModelReconcileMessage { + case words(NumberOfBip39Words ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = PendingWalletViewModelReconcileMessage @@ -14220,39 +16150,52 @@ public struct FfiConverterTypePendingWalletViewModelReconcileMessage: FfiConvert public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .words(FfiConverterTypeNumberOfBip39Words.read(from: &buf) - ) - + + case 1: return .words(try FfiConverterTypeNumberOfBip39Words.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingWalletViewModelReconcileMessage, into buf: inout [UInt8]) { switch value { + + case let .words(v1): writeInt(&buf, Int32(1)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelReconcileMessage_lift(_ buf: RustBuffer) throws -> PendingWalletViewModelReconcileMessage { - try FfiConverterTypePendingWalletViewModelReconcileMessage.lift(buf) + return try FfiConverterTypePendingWalletViewModelReconcileMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelReconcileMessage_lower(_ value: PendingWalletViewModelReconcileMessage) -> RustBuffer { - FfiConverterTypePendingWalletViewModelReconcileMessage.lower(value) + return FfiConverterTypePendingWalletViewModelReconcileMessage.lower(value) } + + extension PendingWalletViewModelReconcileMessage: Equatable, Hashable {} + + + public enum PsbtError { + + + /** * Missing UTXO */ @@ -14272,8 +16215,9 @@ public enum PsbtError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePsbtError: FfiConverterRustBuffer { typealias SwiftType = PsbtError @@ -14281,34 +16225,49 @@ public struct FfiConverterTypePsbtError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PsbtError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .MissingUtxo case 2: return .NegativeFee case 3: return .FeeOverflow - case 4: return try .Other( - FfiConverterString.read(from: &buf) + case 4: return .Other( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PsbtError, into buf: inout [UInt8]) { switch value { + + + + + case .MissingUtxo: writeInt(&buf, Int32(1)) - + + case .NegativeFee: writeInt(&buf, Int32(2)) - + + case .FeeOverflow: writeInt(&buf, Int32(3)) - + + case let .Other(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) + } } } + extension PsbtError: Equatable, Hashable {} extension PsbtError: Foundation.LocalizedError { @@ -14317,7 +16276,11 @@ extension PsbtError: Foundation.LocalizedError { } } + public enum ResumeError { + + + /** * Blocks do not match * @@ -14339,15 +16302,17 @@ public enum ResumeError { * The bytes passed in needs to be a multiple of crate::cove_nfc::BYTES_PER_BLOCK * The bytes passed in needs to be the same size as the bytes in the old message (NUMBER_OF_BLOCKS_PER_CHUNK * BYTES_PER_BLOCK) */ - case BlockSizeMismatch(expected: UInt16, actual: UInt16) + case BlockSizeMismatch(expected: UInt16, actual: UInt16 + ) /** * Unable to get first block hash */ case UnableToGetFirstBlockHash } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeResumeError: FfiConverterRustBuffer { typealias SwiftType = ResumeError @@ -14355,43 +16320,59 @@ public struct FfiConverterTypeResumeError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ResumeError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .BlocksDoNotMatch case 2: return .AlreadyParsed - case 3: return try .ParsingError( - FfiConverterString.read(from: &buf) + case 3: return .ParsingError( + try FfiConverterString.read(from: &buf) ) - case 4: return try .BlockSizeMismatch( - expected: FfiConverterUInt16.read(from: &buf), - actual: FfiConverterUInt16.read(from: &buf) + case 4: return .BlockSizeMismatch( + expected: try FfiConverterUInt16.read(from: &buf), + actual: try FfiConverterUInt16.read(from: &buf) ) case 5: return .UnableToGetFirstBlockHash - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ResumeError, into buf: inout [UInt8]) { switch value { + + + + + case .BlocksDoNotMatch: writeInt(&buf, Int32(1)) - + + case .AlreadyParsed: writeInt(&buf, Int32(2)) - + + case let .ParsingError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - - case let .BlockSizeMismatch(expected, actual): + + + case let .BlockSizeMismatch(expected,actual): writeInt(&buf, Int32(4)) FfiConverterUInt16.write(expected, into: &buf) FfiConverterUInt16.write(actual, into: &buf) - + + case .UnableToGetFirstBlockHash: writeInt(&buf, Int32(5)) + } } } + extension ResumeError: Equatable, Hashable {} extension ResumeError: Foundation.LocalizedError { @@ -14404,7 +16385,9 @@ extension ResumeError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Route { - case loadAndReset(resetTo: BoxedRoute, afterMillis: UInt32) + + case loadAndReset(resetTo: BoxedRoute, afterMillis: UInt32 + ) case listWallets case selectedWallet(WalletId ) @@ -14413,13 +16396,15 @@ public enum Route { case settings case secretWords(WalletId ) - case transactionDetails(id: WalletId, details: TransactionDetails) + case transactionDetails(id: WalletId, details: TransactionDetails + ) case send(SendRoute ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRoute: FfiConverterRustBuffer { typealias SwiftType = Route @@ -14427,93 +16412,112 @@ public struct FfiConverterTypeRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Route { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .loadAndReset(resetTo: FfiConverterTypeBoxedRoute.read(from: &buf), afterMillis: FfiConverterUInt32.read(from: &buf)) - + + case 1: return .loadAndReset(resetTo: try FfiConverterTypeBoxedRoute.read(from: &buf), afterMillis: try FfiConverterUInt32.read(from: &buf) + ) + case 2: return .listWallets - - case 3: return try .selectedWallet(FfiConverterTypeWalletId.read(from: &buf) - ) - - case 4: return try .newWallet(FfiConverterTypeNewWalletRoute.read(from: &buf) - ) - + + case 3: return .selectedWallet(try FfiConverterTypeWalletId.read(from: &buf) + ) + + case 4: return .newWallet(try FfiConverterTypeNewWalletRoute.read(from: &buf) + ) + case 5: return .settings - - case 6: return try .secretWords(FfiConverterTypeWalletId.read(from: &buf) - ) - - case 7: return try .transactionDetails(id: FfiConverterTypeWalletId.read(from: &buf), details: FfiConverterTypeTransactionDetails.read(from: &buf)) - - case 8: return try .send(FfiConverterTypeSendRoute.read(from: &buf) - ) - + + case 6: return .secretWords(try FfiConverterTypeWalletId.read(from: &buf) + ) + + case 7: return .transactionDetails(id: try FfiConverterTypeWalletId.read(from: &buf), details: try FfiConverterTypeTransactionDetails.read(from: &buf) + ) + + case 8: return .send(try FfiConverterTypeSendRoute.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Route, into buf: inout [UInt8]) { switch value { - case let .loadAndReset(resetTo, afterMillis): + + + case let .loadAndReset(resetTo,afterMillis): writeInt(&buf, Int32(1)) FfiConverterTypeBoxedRoute.write(resetTo, into: &buf) FfiConverterUInt32.write(afterMillis, into: &buf) - + + case .listWallets: writeInt(&buf, Int32(2)) - + + case let .selectedWallet(v1): writeInt(&buf, Int32(3)) FfiConverterTypeWalletId.write(v1, into: &buf) - + + case let .newWallet(v1): writeInt(&buf, Int32(4)) FfiConverterTypeNewWalletRoute.write(v1, into: &buf) - + + case .settings: writeInt(&buf, Int32(5)) - + + case let .secretWords(v1): writeInt(&buf, Int32(6)) FfiConverterTypeWalletId.write(v1, into: &buf) - - case let .transactionDetails(id, details): + + + case let .transactionDetails(id,details): writeInt(&buf, Int32(7)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterTypeTransactionDetails.write(details, into: &buf) - + + case let .send(v1): writeInt(&buf, Int32(8)) FfiConverterTypeSendRoute.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRoute_lift(_ buf: RustBuffer) throws -> Route { - try FfiConverterTypeRoute.lift(buf) + return try FfiConverterTypeRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRoute_lower(_ value: Route) -> RustBuffer { - FfiConverterTypeRoute.lower(value) + return FfiConverterTypeRoute.lower(value) } + + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ScanState { + case notStarted case scanning(ScanningInfo ) case completed } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeScanState: FfiConverterRustBuffer { typealias SwiftType = ScanState @@ -14521,59 +16525,72 @@ public struct FfiConverterTypeScanState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ScanState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .notStarted - - case 2: return try .scanning(FfiConverterTypeScanningInfo.read(from: &buf) - ) - + + case 2: return .scanning(try FfiConverterTypeScanningInfo.read(from: &buf) + ) + case 3: return .completed - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ScanState, into buf: inout [UInt8]) { switch value { + + case .notStarted: writeInt(&buf, Int32(1)) - + + case let .scanning(v1): writeInt(&buf, Int32(2)) FfiConverterTypeScanningInfo.write(v1, into: &buf) - + + case .completed: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScanState_lift(_ buf: RustBuffer) throws -> ScanState { - try FfiConverterTypeScanState.lift(buf) + return try FfiConverterTypeScanState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScanState_lower(_ value: ScanState) -> RustBuffer { - FfiConverterTypeScanState.lower(value) + return FfiConverterTypeScanState.lower(value) } + + extension ScanState: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ScannerResponse { + case foundAddresses([FoundAddress] ) case noneFound } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeScannerResponse: FfiConverterRustBuffer { typealias SwiftType = ScannerResponse @@ -14581,44 +16598,58 @@ public struct FfiConverterTypeScannerResponse: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ScannerResponse { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .foundAddresses(FfiConverterSequenceTypeFoundAddress.read(from: &buf) - ) - + + case 1: return .foundAddresses(try FfiConverterSequenceTypeFoundAddress.read(from: &buf) + ) + case 2: return .noneFound - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ScannerResponse, into buf: inout [UInt8]) { switch value { + + case let .foundAddresses(v1): writeInt(&buf, Int32(1)) FfiConverterSequenceTypeFoundAddress.write(v1, into: &buf) - + + case .noneFound: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScannerResponse_lift(_ buf: RustBuffer) throws -> ScannerResponse { - try FfiConverterTypeScannerResponse.lift(buf) + return try FfiConverterTypeScannerResponse.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScannerResponse_lower(_ value: ScannerResponse) -> RustBuffer { - FfiConverterTypeScannerResponse.lower(value) + return FfiConverterTypeScannerResponse.lower(value) } + + extension ScannerResponse: Equatable, Hashable {} + + + public enum SeedQrError { + + + case ContainsNonNumericChars case IndexOutOfBounds(UInt16 ) @@ -14628,8 +16659,9 @@ public enum SeedQrError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSeedQrError: FfiConverterRustBuffer { typealias SwiftType = SeedQrError @@ -14637,40 +16669,55 @@ public struct FfiConverterTypeSeedQrError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SeedQrError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .ContainsNonNumericChars - case 2: return try .IndexOutOfBounds( - FfiConverterUInt16.read(from: &buf) + case 2: return .IndexOutOfBounds( + try FfiConverterUInt16.read(from: &buf) ) - case 3: return try .IncorrectWordLength( - FfiConverterUInt16.read(from: &buf) + case 3: return .IncorrectWordLength( + try FfiConverterUInt16.read(from: &buf) ) - case 4: return try .InvalidMnemonic( - FfiConverterTypeBip39Error.read(from: &buf) + case 4: return .InvalidMnemonic( + try FfiConverterTypeBip39Error.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: SeedQrError, into buf: inout [UInt8]) { switch value { + + + + + case .ContainsNonNumericChars: writeInt(&buf, Int32(1)) - + + case let .IndexOutOfBounds(v1): writeInt(&buf, Int32(2)) FfiConverterUInt16.write(v1, into: &buf) - + + case let .IncorrectWordLength(v1): writeInt(&buf, Int32(3)) FfiConverterUInt16.write(v1, into: &buf) - + + case let .InvalidMnemonic(v1): writeInt(&buf, Int32(4)) FfiConverterTypeBip39Error.write(v1, into: &buf) + } } } + extension SeedQrError: Equatable, Hashable {} extension SeedQrError: Foundation.LocalizedError { @@ -14683,13 +16730,18 @@ extension SeedQrError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum SendRoute { - case setAmount(id: WalletId, address: Address?, amount: Amount?) - case hardwareExport(id: WalletId, details: ConfirmDetails) - case confirm(id: WalletId, details: ConfirmDetails) + + case setAmount(id: WalletId, address: Address?, amount: Amount? + ) + case hardwareExport(id: WalletId, details: ConfirmDetails + ) + case confirm(id: WalletId, details: ConfirmDetails + ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSendRoute: FfiConverterRustBuffer { typealias SwiftType = SendRoute @@ -14697,60 +16749,78 @@ public struct FfiConverterTypeSendRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SendRoute { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .setAmount(id: FfiConverterTypeWalletId.read(from: &buf), address: FfiConverterOptionTypeAddress.read(from: &buf), amount: FfiConverterOptionTypeAmount.read(from: &buf)) - - case 2: return try .hardwareExport(id: FfiConverterTypeWalletId.read(from: &buf), details: FfiConverterTypeConfirmDetails.read(from: &buf)) - - case 3: return try .confirm(id: FfiConverterTypeWalletId.read(from: &buf), details: FfiConverterTypeConfirmDetails.read(from: &buf)) - + + case 1: return .setAmount(id: try FfiConverterTypeWalletId.read(from: &buf), address: try FfiConverterOptionTypeAddress.read(from: &buf), amount: try FfiConverterOptionTypeAmount.read(from: &buf) + ) + + case 2: return .hardwareExport(id: try FfiConverterTypeWalletId.read(from: &buf), details: try FfiConverterTypeConfirmDetails.read(from: &buf) + ) + + case 3: return .confirm(id: try FfiConverterTypeWalletId.read(from: &buf), details: try FfiConverterTypeConfirmDetails.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: SendRoute, into buf: inout [UInt8]) { switch value { - case let .setAmount(id, address, amount): + + + case let .setAmount(id,address,amount): writeInt(&buf, Int32(1)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterOptionTypeAddress.write(address, into: &buf) FfiConverterOptionTypeAmount.write(amount, into: &buf) - - case let .hardwareExport(id, details): + + + case let .hardwareExport(id,details): writeInt(&buf, Int32(2)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterTypeConfirmDetails.write(details, into: &buf) - - case let .confirm(id, details): + + + case let .confirm(id,details): writeInt(&buf, Int32(3)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterTypeConfirmDetails.write(details, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSendRoute_lift(_ buf: RustBuffer) throws -> SendRoute { - try FfiConverterTypeSendRoute.lift(buf) + return try FfiConverterTypeSendRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSendRoute_lower(_ value: SendRoute) -> RustBuffer { - FfiConverterTypeSendRoute.lower(value) + return FfiConverterTypeSendRoute.lower(value) } + + + + public enum SerdeError { + + + case SerializationError(String ) case DeserializationError(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSerdeError: FfiConverterRustBuffer { typealias SwiftType = SerdeError @@ -14758,31 +16828,42 @@ public struct FfiConverterTypeSerdeError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SerdeError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .SerializationError( - FfiConverterString.read(from: &buf) - ) - case 2: return try .DeserializationError( - FfiConverterString.read(from: &buf) + + + + case 1: return .SerializationError( + try FfiConverterString.read(from: &buf) + ) + case 2: return .DeserializationError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: SerdeError, into buf: inout [UInt8]) { switch value { + + + + + case let .SerializationError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .DeserializationError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension SerdeError: Equatable, Hashable {} extension SerdeError: Foundation.LocalizedError { @@ -14795,14 +16876,16 @@ extension SerdeError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum StringOrData { + case string(String ) case data(Data ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeStringOrData: FfiConverterRustBuffer { typealias SwiftType = StringOrData @@ -14810,55 +16893,67 @@ public struct FfiConverterTypeStringOrData: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> StringOrData { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .string(FfiConverterString.read(from: &buf) - ) - - case 2: return try .data(FfiConverterData.read(from: &buf) - ) - + + case 1: return .string(try FfiConverterString.read(from: &buf) + ) + + case 2: return .data(try FfiConverterData.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: StringOrData, into buf: inout [UInt8]) { switch value { + + case let .string(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .data(v1): writeInt(&buf, Int32(2)) FfiConverterData.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeStringOrData_lift(_ buf: RustBuffer) throws -> StringOrData { - try FfiConverterTypeStringOrData.lift(buf) + return try FfiConverterTypeStringOrData.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeStringOrData_lower(_ value: StringOrData) -> RustBuffer { - FfiConverterTypeStringOrData.lower(value) + return FfiConverterTypeStringOrData.lower(value) } + + extension StringOrData: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum TextPayloadFormat { + case utf8 case utf16 } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTextPayloadFormat: FfiConverterRustBuffer { typealias SwiftType = TextPayloadFormat @@ -14866,53 +16961,65 @@ public struct FfiConverterTypeTextPayloadFormat: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TextPayloadFormat { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .utf8 - + case 2: return .utf16 - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TextPayloadFormat, into buf: inout [UInt8]) { switch value { + + case .utf8: writeInt(&buf, Int32(1)) - + + case .utf16: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTextPayloadFormat_lift(_ buf: RustBuffer) throws -> TextPayloadFormat { - try FfiConverterTypeTextPayloadFormat.lift(buf) + return try FfiConverterTypeTextPayloadFormat.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTextPayloadFormat_lower(_ value: TextPayloadFormat) -> RustBuffer { - FfiConverterTypeTextPayloadFormat.lower(value) + return FfiConverterTypeTextPayloadFormat.lower(value) } + + extension TextPayloadFormat: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Transaction { + case confirmed(ConfirmedTransaction ) case unconfirmed(UnconfirmedTransaction ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransaction: FfiConverterRustBuffer { typealias SwiftType = Transaction @@ -14920,44 +17027,57 @@ public struct FfiConverterTypeTransaction: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Transaction { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .confirmed(FfiConverterTypeConfirmedTransaction.read(from: &buf) - ) - - case 2: return try .unconfirmed(FfiConverterTypeUnconfirmedTransaction.read(from: &buf) - ) - + + case 1: return .confirmed(try FfiConverterTypeConfirmedTransaction.read(from: &buf) + ) + + case 2: return .unconfirmed(try FfiConverterTypeUnconfirmedTransaction.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Transaction, into buf: inout [UInt8]) { switch value { + + case let .confirmed(v1): writeInt(&buf, Int32(1)) FfiConverterTypeConfirmedTransaction.write(v1, into: &buf) - + + case let .unconfirmed(v1): writeInt(&buf, Int32(2)) FfiConverterTypeUnconfirmedTransaction.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransaction_lift(_ buf: RustBuffer) throws -> Transaction { - try FfiConverterTypeTransaction.lift(buf) + return try FfiConverterTypeTransaction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransaction_lower(_ value: Transaction) -> RustBuffer { - FfiConverterTypeTransaction.lower(value) + return FfiConverterTypeTransaction.lower(value) } + + + + public enum TransactionDetailError { + + + case Fee(String ) case FeeRate(String @@ -14968,8 +17088,9 @@ public enum TransactionDetailError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionDetailError: FfiConverterRustBuffer { typealias SwiftType = TransactionDetailError @@ -14977,43 +17098,58 @@ public struct FfiConverterTypeTransactionDetailError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionDetailError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Fee( - FfiConverterString.read(from: &buf) + + + + + case 1: return .Fee( + try FfiConverterString.read(from: &buf) ) - case 2: return try .FeeRate( - FfiConverterString.read(from: &buf) + case 2: return .FeeRate( + try FfiConverterString.read(from: &buf) ) - case 3: return try .Address( - FfiConverterTypeAddressError.read(from: &buf) + case 3: return .Address( + try FfiConverterTypeAddressError.read(from: &buf) ) - case 4: return try .FiatAmount( - FfiConverterString.read(from: &buf) + case 4: return .FiatAmount( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TransactionDetailError, into buf: inout [UInt8]) { switch value { + + + + + case let .Fee(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .FeeRate(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .Address(v1): writeInt(&buf, Int32(3)) FfiConverterTypeAddressError.write(v1, into: &buf) - + + case let .FiatAmount(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) + } } } + extension TransactionDetailError: Equatable, Hashable {} extension TransactionDetailError: Foundation.LocalizedError { @@ -15026,12 +17162,14 @@ extension TransactionDetailError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum TransactionDirection { + case incoming case outgoing } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionDirection: FfiConverterRustBuffer { typealias SwiftType = TransactionDirection @@ -15039,51 +17177,63 @@ public struct FfiConverterTypeTransactionDirection: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionDirection { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .incoming - + case 2: return .outgoing - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TransactionDirection, into buf: inout [UInt8]) { switch value { + + case .incoming: writeInt(&buf, Int32(1)) - + + case .outgoing: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDirection_lift(_ buf: RustBuffer) throws -> TransactionDirection { - try FfiConverterTypeTransactionDirection.lift(buf) + return try FfiConverterTypeTransactionDirection.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDirection_lower(_ value: TransactionDirection) -> RustBuffer { - FfiConverterTypeTransactionDirection.lower(value) + return FfiConverterTypeTransactionDirection.lower(value) } + + extension TransactionDirection: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum TransactionState { + case pending case confirmed } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionState: FfiConverterRustBuffer { typealias SwiftType = TransactionState @@ -15091,51 +17241,63 @@ public struct FfiConverterTypeTransactionState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .pending - + case 2: return .confirmed - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TransactionState, into buf: inout [UInt8]) { switch value { + + case .pending: writeInt(&buf, Int32(1)) - + + case .confirmed: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionState_lift(_ buf: RustBuffer) throws -> TransactionState { - try FfiConverterTypeTransactionState.lift(buf) + return try FfiConverterTypeTransactionState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionState_lower(_ value: TransactionState) -> RustBuffer { - FfiConverterTypeTransactionState.lower(value) + return FfiConverterTypeTransactionState.lower(value) } + + extension TransactionState: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Unit { + case btc case sat } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnit: FfiConverterRustBuffer { typealias SwiftType = Unit @@ -15143,42 +17305,56 @@ public struct FfiConverterTypeUnit: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Unit { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .btc - + case 2: return .sat - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Unit, into buf: inout [UInt8]) { switch value { + + case .btc: writeInt(&buf, Int32(1)) - + + case .sat: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnit_lift(_ buf: RustBuffer) throws -> Unit { - try FfiConverterTypeUnit.lift(buf) + return try FfiConverterTypeUnit.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnit_lower(_ value: Unit) -> RustBuffer { - FfiConverterTypeUnit.lower(value) + return FfiConverterTypeUnit.lower(value) } + + extension Unit: Equatable, Hashable {} + + + public enum UnsignedTransactionsTableError { + + + case Save(String ) case Read(String @@ -15186,8 +17362,9 @@ public enum UnsignedTransactionsTableError { case NoRecordFound } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransactionsTableError: FfiConverterRustBuffer { typealias SwiftType = UnsignedTransactionsTableError @@ -15195,33 +17372,47 @@ public struct FfiConverterTypeUnsignedTransactionsTableError: FfiConverterRustBu public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransactionsTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Save( - FfiConverterString.read(from: &buf) + + + + + case 1: return .Save( + try FfiConverterString.read(from: &buf) ) - case 2: return try .Read( - FfiConverterString.read(from: &buf) + case 2: return .Read( + try FfiConverterString.read(from: &buf) ) case 3: return .NoRecordFound - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: UnsignedTransactionsTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case .NoRecordFound: writeInt(&buf, Int32(3)) + } } } + extension UnsignedTransactionsTableError: Equatable, Hashable {} extension UnsignedTransactionsTableError: Foundation.LocalizedError { @@ -15234,13 +17425,15 @@ extension UnsignedTransactionsTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletAddressType { + case nativeSegwit case wrappedSegwit case legacy } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletAddressType: FfiConverterRustBuffer { typealias SwiftType = WalletAddressType @@ -15248,50 +17441,62 @@ public struct FfiConverterTypeWalletAddressType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletAddressType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .nativeSegwit - + case 2: return .wrappedSegwit - + case 3: return .legacy - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletAddressType, into buf: inout [UInt8]) { switch value { + + case .nativeSegwit: writeInt(&buf, Int32(1)) - + + case .wrappedSegwit: writeInt(&buf, Int32(2)) - + + case .legacy: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletAddressType_lift(_ buf: RustBuffer) throws -> WalletAddressType { - try FfiConverterTypeWalletAddressType.lift(buf) + return try FfiConverterTypeWalletAddressType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletAddressType_lower(_ value: WalletAddressType) -> RustBuffer { - FfiConverterTypeWalletAddressType.lower(value) + return FfiConverterTypeWalletAddressType.lower(value) } + + extension WalletAddressType: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletColor { + case red case blue case green @@ -15299,11 +17504,13 @@ public enum WalletColor { case orange case purple case pink - case custom(r: UInt8, g: UInt8, b: UInt8) + case custom(r: UInt8, g: UInt8, b: UInt8 + ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletColor: FfiConverterRustBuffer { typealias SwiftType = WalletColor @@ -15311,75 +17518,96 @@ public struct FfiConverterTypeWalletColor: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletColor { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .red - + case 2: return .blue - + case 3: return .green - + case 4: return .yellow - + case 5: return .orange - + case 6: return .purple - + case 7: return .pink - - case 8: return try .custom(r: FfiConverterUInt8.read(from: &buf), g: FfiConverterUInt8.read(from: &buf), b: FfiConverterUInt8.read(from: &buf)) - + + case 8: return .custom(r: try FfiConverterUInt8.read(from: &buf), g: try FfiConverterUInt8.read(from: &buf), b: try FfiConverterUInt8.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletColor, into buf: inout [UInt8]) { switch value { + + case .red: writeInt(&buf, Int32(1)) - + + case .blue: writeInt(&buf, Int32(2)) - + + case .green: writeInt(&buf, Int32(3)) - + + case .yellow: writeInt(&buf, Int32(4)) - + + case .orange: writeInt(&buf, Int32(5)) - + + case .purple: writeInt(&buf, Int32(6)) - + + case .pink: writeInt(&buf, Int32(7)) - - case let .custom(r, g, b): + + + case let .custom(r,g,b): writeInt(&buf, Int32(8)) FfiConverterUInt8.write(r, into: &buf) FfiConverterUInt8.write(g, into: &buf) FfiConverterUInt8.write(b, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletColor_lift(_ buf: RustBuffer) throws -> WalletColor { - try FfiConverterTypeWalletColor.lift(buf) + return try FfiConverterTypeWalletColor.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletColor_lower(_ value: WalletColor) -> RustBuffer { - FfiConverterTypeWalletColor.lower(value) + return FfiConverterTypeWalletColor.lower(value) } + + extension WalletColor: Equatable, Hashable {} + + + public enum WalletCreationError { + + + case Bdk(String ) case Keychain(KeychainError @@ -15392,8 +17620,9 @@ public enum WalletCreationError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletCreationError: FfiConverterRustBuffer { typealias SwiftType = WalletCreationError @@ -15401,50 +17630,66 @@ public struct FfiConverterTypeWalletCreationError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletCreationError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Bdk( - FfiConverterString.read(from: &buf) + + + + + case 1: return .Bdk( + try FfiConverterString.read(from: &buf) ) - case 2: return try .Keychain( - FfiConverterTypeKeychainError.read(from: &buf) + case 2: return .Keychain( + try FfiConverterTypeKeychainError.read(from: &buf) ) - case 3: return try .Database( - FfiConverterTypeDatabaseError.read(from: &buf) + case 3: return .Database( + try FfiConverterTypeDatabaseError.read(from: &buf) ) - case 4: return try .Persist( - FfiConverterString.read(from: &buf) + case 4: return .Persist( + try FfiConverterString.read(from: &buf) ) - case 5: return try .Import( - FfiConverterString.read(from: &buf) + case 5: return .Import( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletCreationError, into buf: inout [UInt8]) { switch value { + + + + + case let .Bdk(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Keychain(v1): writeInt(&buf, Int32(2)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .Database(v1): writeInt(&buf, Int32(3)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - + + case let .Persist(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case let .Import(v1): writeInt(&buf, Int32(5)) FfiConverterString.write(v1, into: &buf) + } } } + extension WalletCreationError: Equatable, Hashable {} extension WalletCreationError: Foundation.LocalizedError { @@ -15453,9 +17698,15 @@ extension WalletCreationError: Foundation.LocalizedError { } } + public enum WalletDataError { - case DatabaseAccess(id: WalletId, error: String) - case TableAccess(id: WalletId, error: String) + + + + case DatabaseAccess(id: WalletId, error: String + ) + case TableAccess(id: WalletId, error: String + ) /** * Unable to read: {0} */ @@ -15468,8 +17719,9 @@ public enum WalletDataError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletDataError: FfiConverterRustBuffer { typealias SwiftType = WalletDataError @@ -15477,47 +17729,62 @@ public struct FfiConverterTypeWalletDataError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletDataError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .DatabaseAccess( - id: FfiConverterTypeWalletId.read(from: &buf), - error: FfiConverterString.read(from: &buf) + + + + + case 1: return .DatabaseAccess( + id: try FfiConverterTypeWalletId.read(from: &buf), + error: try FfiConverterString.read(from: &buf) ) - case 2: return try .TableAccess( - id: FfiConverterTypeWalletId.read(from: &buf), - error: FfiConverterString.read(from: &buf) + case 2: return .TableAccess( + id: try FfiConverterTypeWalletId.read(from: &buf), + error: try FfiConverterString.read(from: &buf) ) - case 3: return try .Read( - FfiConverterString.read(from: &buf) + case 3: return .Read( + try FfiConverterString.read(from: &buf) ) - case 4: return try .Save( - FfiConverterString.read(from: &buf) + case 4: return .Save( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletDataError, into buf: inout [UInt8]) { switch value { - case let .DatabaseAccess(id, error): + + + + + + case let .DatabaseAccess(id,error): writeInt(&buf, Int32(1)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterString.write(error, into: &buf) - - case let .TableAccess(id, error): + + + case let .TableAccess(id,error): writeInt(&buf, Int32(2)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterString.write(error, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .Save(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) + } } } + extension WalletDataError: Equatable, Hashable {} extension WalletDataError: Foundation.LocalizedError { @@ -15530,12 +17797,14 @@ extension WalletDataError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletDataKey { + case scanState(WalletAddressType ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletDataKey: FfiConverterRustBuffer { typealias SwiftType = WalletDataKey @@ -15543,39 +17812,52 @@ public struct FfiConverterTypeWalletDataKey: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletDataKey { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .scanState(FfiConverterTypeWalletAddressType.read(from: &buf) - ) - + + case 1: return .scanState(try FfiConverterTypeWalletAddressType.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletDataKey, into buf: inout [UInt8]) { switch value { + + case let .scanState(v1): writeInt(&buf, Int32(1)) FfiConverterTypeWalletAddressType.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataKey_lift(_ buf: RustBuffer) throws -> WalletDataKey { - try FfiConverterTypeWalletDataKey.lift(buf) + return try FfiConverterTypeWalletDataKey.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataKey_lower(_ value: WalletDataKey) -> RustBuffer { - FfiConverterTypeWalletDataKey.lower(value) + return FfiConverterTypeWalletDataKey.lower(value) } + + extension WalletDataKey: Equatable, Hashable {} + + + public enum WalletError { + + + case BdkError(String ) case UnsupportedWallet(String @@ -15596,8 +17878,9 @@ public enum WalletError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletError: FfiConverterRustBuffer { typealias SwiftType = WalletError @@ -15605,79 +17888,100 @@ public struct FfiConverterTypeWalletError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .BdkError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .BdkError( + try FfiConverterString.read(from: &buf) ) - case 2: return try .UnsupportedWallet( - FfiConverterString.read(from: &buf) + case 2: return .UnsupportedWallet( + try FfiConverterString.read(from: &buf) ) - case 3: return try .PersistError( - FfiConverterString.read(from: &buf) + case 3: return .PersistError( + try FfiConverterString.read(from: &buf) ) - case 4: return try .LoadError( - FfiConverterString.read(from: &buf) + case 4: return .LoadError( + try FfiConverterString.read(from: &buf) ) - case 5: return try .KeychainError( - FfiConverterTypeKeychainError.read(from: &buf) + case 5: return .KeychainError( + try FfiConverterTypeKeychainError.read(from: &buf) ) - case 6: return try .DatabaseError( - FfiConverterTypeDatabaseError.read(from: &buf) + case 6: return .DatabaseError( + try FfiConverterTypeDatabaseError.read(from: &buf) ) case 7: return .WalletNotFound case 8: return .MetadataNotFound - case 9: return try .ParseXpubError( - FfiConverterTypeXpubError.read(from: &buf) + case 9: return .ParseXpubError( + try FfiConverterTypeXpubError.read(from: &buf) ) - case 10: return try .WalletAlreadyExists( - FfiConverterTypeWalletId.read(from: &buf) + case 10: return .WalletAlreadyExists( + try FfiConverterTypeWalletId.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletError, into buf: inout [UInt8]) { switch value { + + + + + case let .BdkError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .UnsupportedWallet(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .PersistError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .LoadError(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case let .KeychainError(v1): writeInt(&buf, Int32(5)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .DatabaseError(v1): writeInt(&buf, Int32(6)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - + + case .WalletNotFound: writeInt(&buf, Int32(7)) - + + case .MetadataNotFound: writeInt(&buf, Int32(8)) - + + case let .ParseXpubError(v1): writeInt(&buf, Int32(9)) FfiConverterTypeXpubError.write(v1, into: &buf) - + + case let .WalletAlreadyExists(v1): writeInt(&buf, Int32(10)) FfiConverterTypeWalletId.write(v1, into: &buf) + } } } + extension WalletError: Equatable, Hashable {} extension WalletError: Foundation.LocalizedError { @@ -15690,13 +17994,15 @@ extension WalletError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletErrorAlert { + case nodeConnectionFailed(String ) case noBalance } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletErrorAlert: FfiConverterRustBuffer { typealias SwiftType = WalletErrorAlert @@ -15704,47 +18010,58 @@ public struct FfiConverterTypeWalletErrorAlert: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletErrorAlert { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .nodeConnectionFailed(FfiConverterString.read(from: &buf) - ) - + + case 1: return .nodeConnectionFailed(try FfiConverterString.read(from: &buf) + ) + case 2: return .noBalance - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletErrorAlert, into buf: inout [UInt8]) { switch value { + + case let .nodeConnectionFailed(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case .noBalance: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletErrorAlert_lift(_ buf: RustBuffer) throws -> WalletErrorAlert { - try FfiConverterTypeWalletErrorAlert.lift(buf) + return try FfiConverterTypeWalletErrorAlert.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletErrorAlert_lower(_ value: WalletErrorAlert) -> RustBuffer { - FfiConverterTypeWalletErrorAlert.lower(value) + return FfiConverterTypeWalletErrorAlert.lower(value) } + + extension WalletErrorAlert: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletLoadState { + case loading case scanning([Transaction] ) @@ -15752,8 +18069,9 @@ public enum WalletLoadState { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletLoadState: FfiConverterRustBuffer { typealias SwiftType = WalletLoadState @@ -15761,49 +18079,63 @@ public struct FfiConverterTypeWalletLoadState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletLoadState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .loading - - case 2: return try .scanning(FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - - case 3: return try .loaded(FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - + + case 2: return .scanning(try FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + + case 3: return .loaded(try FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletLoadState, into buf: inout [UInt8]) { switch value { + + case .loading: writeInt(&buf, Int32(1)) - + + case let .scanning(v1): writeInt(&buf, Int32(2)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - + + case let .loaded(v1): writeInt(&buf, Int32(3)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletLoadState_lift(_ buf: RustBuffer) throws -> WalletLoadState { - try FfiConverterTypeWalletLoadState.lift(buf) + return try FfiConverterTypeWalletLoadState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletLoadState_lower(_ value: WalletLoadState) -> RustBuffer { - FfiConverterTypeWalletLoadState.lower(value) + return FfiConverterTypeWalletLoadState.lower(value) } + + + + public enum WalletScannerError { + + + /** * No address types to scan */ @@ -15820,8 +18152,9 @@ public enum WalletScannerError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletScannerError: FfiConverterRustBuffer { typealias SwiftType = WalletScannerError @@ -15829,33 +18162,47 @@ public struct FfiConverterTypeWalletScannerError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletScannerError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .NoAddressTypes - case 2: return try .WalletCreationError( - FfiConverterTypeWalletError.read(from: &buf) + case 2: return .WalletCreationError( + try FfiConverterTypeWalletError.read(from: &buf) ) - case 3: return try .NoMnemonicAvailable( - FfiConverterTypeWalletId.read(from: &buf) + case 3: return .NoMnemonicAvailable( + try FfiConverterTypeWalletId.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletScannerError, into buf: inout [UInt8]) { switch value { + + + + + case .NoAddressTypes: writeInt(&buf, Int32(1)) - + + case let .WalletCreationError(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletError.write(v1, into: &buf) - + + case let .NoMnemonicAvailable(v1): writeInt(&buf, Int32(3)) FfiConverterTypeWalletId.write(v1, into: &buf) + } } } + extension WalletScannerError: Equatable, Hashable {} extension WalletScannerError: Foundation.LocalizedError { @@ -15864,7 +18211,11 @@ extension WalletScannerError: Foundation.LocalizedError { } } + public enum WalletTableError { + + + case SaveError(String ) case ReadError(String @@ -15872,8 +18223,9 @@ public enum WalletTableError { case WalletAlreadyExists } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletTableError: FfiConverterRustBuffer { typealias SwiftType = WalletTableError @@ -15881,33 +18233,47 @@ public struct FfiConverterTypeWalletTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .SaveError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .SaveError( + try FfiConverterString.read(from: &buf) ) - case 2: return try .ReadError( - FfiConverterString.read(from: &buf) + case 2: return .ReadError( + try FfiConverterString.read(from: &buf) ) case 3: return .WalletAlreadyExists - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .SaveError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .ReadError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case .WalletAlreadyExists: writeInt(&buf, Int32(3)) + } } } + extension WalletTableError: Equatable, Hashable {} extension WalletTableError: Foundation.LocalizedError { @@ -15920,12 +18286,14 @@ extension WalletTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletType { + case hot case cold } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletType: FfiConverterRustBuffer { typealias SwiftType = WalletType @@ -15933,45 +18301,56 @@ public struct FfiConverterTypeWalletType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .hot - + case 2: return .cold - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletType, into buf: inout [UInt8]) { switch value { + + case .hot: writeInt(&buf, Int32(1)) - + + case .cold: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletType_lift(_ buf: RustBuffer) throws -> WalletType { - try FfiConverterTypeWalletType.lift(buf) + return try FfiConverterTypeWalletType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletType_lower(_ value: WalletType) -> RustBuffer { - FfiConverterTypeWalletType.lower(value) + return FfiConverterTypeWalletType.lower(value) } + + extension WalletType: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletViewModelAction { + case updateName(String ) case updateColor(WalletColor @@ -15991,8 +18370,9 @@ public enum WalletViewModelAction { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletViewModelAction: FfiConverterRustBuffer { typealias SwiftType = WalletViewModelAction @@ -16000,99 +18380,122 @@ public struct FfiConverterTypeWalletViewModelAction: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletViewModelAction { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .updateName(FfiConverterString.read(from: &buf) - ) - - case 2: return try .updateColor(FfiConverterTypeWalletColor.read(from: &buf) - ) - - case 3: return try .updateUnit(FfiConverterTypeUnit.read(from: &buf) - ) - - case 4: return try .updateFiatCurrency(FfiConverterTypeFiatCurrency.read(from: &buf) - ) - - case 5: return try .updateFiatOrBtc(FfiConverterTypeFiatOrBtc.read(from: &buf) - ) - + + case 1: return .updateName(try FfiConverterString.read(from: &buf) + ) + + case 2: return .updateColor(try FfiConverterTypeWalletColor.read(from: &buf) + ) + + case 3: return .updateUnit(try FfiConverterTypeUnit.read(from: &buf) + ) + + case 4: return .updateFiatCurrency(try FfiConverterTypeFiatCurrency.read(from: &buf) + ) + + case 5: return .updateFiatOrBtc(try FfiConverterTypeFiatOrBtc.read(from: &buf) + ) + case 6: return .toggleSensitiveVisibility - + case 7: return .toggleDetailsExpanded - + case 8: return .toggleFiatOrBtc - + case 9: return .toggleFiatBtcPrimarySecondary - + case 10: return .selectCurrentWalletAddressType - - case 11: return try .selectDifferentWalletAddressType(FfiConverterTypeWalletAddressType.read(from: &buf) - ) - + + case 11: return .selectDifferentWalletAddressType(try FfiConverterTypeWalletAddressType.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletViewModelAction, into buf: inout [UInt8]) { switch value { + + case let .updateName(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .updateColor(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletColor.write(v1, into: &buf) - + + case let .updateUnit(v1): writeInt(&buf, Int32(3)) FfiConverterTypeUnit.write(v1, into: &buf) - + + case let .updateFiatCurrency(v1): writeInt(&buf, Int32(4)) FfiConverterTypeFiatCurrency.write(v1, into: &buf) - + + case let .updateFiatOrBtc(v1): writeInt(&buf, Int32(5)) FfiConverterTypeFiatOrBtc.write(v1, into: &buf) - + + case .toggleSensitiveVisibility: writeInt(&buf, Int32(6)) - + + case .toggleDetailsExpanded: writeInt(&buf, Int32(7)) - + + case .toggleFiatOrBtc: writeInt(&buf, Int32(8)) - + + case .toggleFiatBtcPrimarySecondary: writeInt(&buf, Int32(9)) - + + case .selectCurrentWalletAddressType: writeInt(&buf, Int32(10)) - + + case let .selectDifferentWalletAddressType(v1): writeInt(&buf, Int32(11)) FfiConverterTypeWalletAddressType.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelAction_lift(_ buf: RustBuffer) throws -> WalletViewModelAction { - try FfiConverterTypeWalletViewModelAction.lift(buf) + return try FfiConverterTypeWalletViewModelAction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelAction_lower(_ value: WalletViewModelAction) -> RustBuffer { - FfiConverterTypeWalletViewModelAction.lower(value) + return FfiConverterTypeWalletViewModelAction.lower(value) } + + extension WalletViewModelAction: Equatable, Hashable {} + + + public enum WalletViewModelError { + + + case GetSelectedWalletError(String ) case WalletDoesNotExist @@ -16116,7 +18519,8 @@ public enum WalletViewModelError { case TransactionDetailsError(String ) case ActorNotFound - case UnableToSwitch(WalletAddressType, String) + case UnableToSwitch(WalletAddressType,String + ) case FiatError(String ) case FeesError(String @@ -16129,8 +18533,9 @@ public enum WalletViewModelError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletViewModelError: FfiConverterRustBuffer { typealias SwiftType = WalletViewModelError @@ -16138,141 +18543,171 @@ public struct FfiConverterTypeWalletViewModelError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletViewModelError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .GetSelectedWalletError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .GetSelectedWalletError( + try FfiConverterString.read(from: &buf) ) case 2: return .WalletDoesNotExist - case 3: return try .SecretRetrievalError( - FfiConverterTypeKeychainError.read(from: &buf) + case 3: return .SecretRetrievalError( + try FfiConverterTypeKeychainError.read(from: &buf) ) - case 4: return try .MarkWalletAsVerifiedError( - FfiConverterTypeDatabaseError.read(from: &buf) + case 4: return .MarkWalletAsVerifiedError( + try FfiConverterTypeDatabaseError.read(from: &buf) ) - case 5: return try .LoadWalletError( - FfiConverterTypeWalletError.read(from: &buf) + case 5: return .LoadWalletError( + try FfiConverterTypeWalletError.read(from: &buf) ) - case 6: return try .NodeConnectionFailed( - FfiConverterString.read(from: &buf) + case 6: return .NodeConnectionFailed( + try FfiConverterString.read(from: &buf) ) - case 7: return try .WalletScanError( - FfiConverterString.read(from: &buf) + case 7: return .WalletScanError( + try FfiConverterString.read(from: &buf) ) - case 8: return try .TransactionsRetrievalError( - FfiConverterString.read(from: &buf) + case 8: return .TransactionsRetrievalError( + try FfiConverterString.read(from: &buf) ) - case 9: return try .WalletBalanceError( - FfiConverterString.read(from: &buf) + case 9: return .WalletBalanceError( + try FfiConverterString.read(from: &buf) ) - case 10: return try .NextAddressError( - FfiConverterString.read(from: &buf) + case 10: return .NextAddressError( + try FfiConverterString.read(from: &buf) ) case 11: return .GetHeightError - case 12: return try .TransactionDetailsError( - FfiConverterString.read(from: &buf) + case 12: return .TransactionDetailsError( + try FfiConverterString.read(from: &buf) ) case 13: return .ActorNotFound - case 14: return try .UnableToSwitch( - FfiConverterTypeWalletAddressType.read(from: &buf), - FfiConverterString.read(from: &buf) + case 14: return .UnableToSwitch( + try FfiConverterTypeWalletAddressType.read(from: &buf), + try FfiConverterString.read(from: &buf) ) - case 15: return try .FiatError( - FfiConverterString.read(from: &buf) + case 15: return .FiatError( + try FfiConverterString.read(from: &buf) ) - case 16: return try .FeesError( - FfiConverterString.read(from: &buf) + case 16: return .FeesError( + try FfiConverterString.read(from: &buf) ) - case 17: return try .BuildTxError( - FfiConverterString.read(from: &buf) + case 17: return .BuildTxError( + try FfiConverterString.read(from: &buf) ) - case 18: return try .InsufficientFunds( - FfiConverterString.read(from: &buf) + case 18: return .InsufficientFunds( + try FfiConverterString.read(from: &buf) ) - case 19: return try .GetConfirmDetailsError( - FfiConverterString.read(from: &buf) + case 19: return .GetConfirmDetailsError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletViewModelError, into buf: inout [UInt8]) { switch value { + + + + + case let .GetSelectedWalletError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case .WalletDoesNotExist: writeInt(&buf, Int32(2)) - + + case let .SecretRetrievalError(v1): writeInt(&buf, Int32(3)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .MarkWalletAsVerifiedError(v1): writeInt(&buf, Int32(4)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - + + case let .LoadWalletError(v1): writeInt(&buf, Int32(5)) FfiConverterTypeWalletError.write(v1, into: &buf) - + + case let .NodeConnectionFailed(v1): writeInt(&buf, Int32(6)) FfiConverterString.write(v1, into: &buf) - + + case let .WalletScanError(v1): writeInt(&buf, Int32(7)) FfiConverterString.write(v1, into: &buf) - + + case let .TransactionsRetrievalError(v1): writeInt(&buf, Int32(8)) FfiConverterString.write(v1, into: &buf) - + + case let .WalletBalanceError(v1): writeInt(&buf, Int32(9)) FfiConverterString.write(v1, into: &buf) - + + case let .NextAddressError(v1): writeInt(&buf, Int32(10)) FfiConverterString.write(v1, into: &buf) - + + case .GetHeightError: writeInt(&buf, Int32(11)) - + + case let .TransactionDetailsError(v1): writeInt(&buf, Int32(12)) FfiConverterString.write(v1, into: &buf) - + + case .ActorNotFound: writeInt(&buf, Int32(13)) - - case let .UnableToSwitch(v1, v2): + + + case let .UnableToSwitch(v1,v2): writeInt(&buf, Int32(14)) FfiConverterTypeWalletAddressType.write(v1, into: &buf) FfiConverterString.write(v2, into: &buf) - + + case let .FiatError(v1): writeInt(&buf, Int32(15)) FfiConverterString.write(v1, into: &buf) - + + case let .FeesError(v1): writeInt(&buf, Int32(16)) FfiConverterString.write(v1, into: &buf) - + + case let .BuildTxError(v1): writeInt(&buf, Int32(17)) FfiConverterString.write(v1, into: &buf) - + + case let .InsufficientFunds(v1): writeInt(&buf, Int32(18)) FfiConverterString.write(v1, into: &buf) - + + case let .GetConfirmDetailsError(v1): writeInt(&buf, Int32(19)) FfiConverterString.write(v1, into: &buf) + } } } + extension WalletViewModelError: Equatable, Hashable {} extension WalletViewModelError: Foundation.LocalizedError { @@ -16285,6 +18720,7 @@ extension WalletViewModelError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletViewModelReconcileMessage { + case startedWalletScan case availableTransactions([Transaction] ) @@ -16305,8 +18741,9 @@ public enum WalletViewModelReconcileMessage { case unsignedTransactionsChanged } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletViewModelReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = WalletViewModelReconcileMessage @@ -16314,96 +18751,117 @@ public struct FfiConverterTypeWalletViewModelReconcileMessage: FfiConverterRustB public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletViewModelReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .startedWalletScan - - case 2: return try .availableTransactions(FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - - case 3: return try .scanComplete(FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - - case 4: return try .nodeConnectionFailed(FfiConverterString.read(from: &buf) - ) - - case 5: return try .walletMetadataChanged(FfiConverterTypeWalletMetadata.read(from: &buf) - ) - - case 6: return try .walletBalanceChanged(FfiConverterTypeBalance.read(from: &buf) - ) - - case 7: return try .walletError(FfiConverterTypeWalletViewModelError.read(from: &buf) - ) - - case 8: return try .unknownError(FfiConverterString.read(from: &buf) - ) - - case 9: return try .walletScannerResponse(FfiConverterTypeScannerResponse.read(from: &buf) - ) - + + case 2: return .availableTransactions(try FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + + case 3: return .scanComplete(try FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + + case 4: return .nodeConnectionFailed(try FfiConverterString.read(from: &buf) + ) + + case 5: return .walletMetadataChanged(try FfiConverterTypeWalletMetadata.read(from: &buf) + ) + + case 6: return .walletBalanceChanged(try FfiConverterTypeBalance.read(from: &buf) + ) + + case 7: return .walletError(try FfiConverterTypeWalletViewModelError.read(from: &buf) + ) + + case 8: return .unknownError(try FfiConverterString.read(from: &buf) + ) + + case 9: return .walletScannerResponse(try FfiConverterTypeScannerResponse.read(from: &buf) + ) + case 10: return .unsignedTransactionsChanged - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletViewModelReconcileMessage, into buf: inout [UInt8]) { switch value { + + case .startedWalletScan: writeInt(&buf, Int32(1)) - + + case let .availableTransactions(v1): writeInt(&buf, Int32(2)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - + + case let .scanComplete(v1): writeInt(&buf, Int32(3)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - + + case let .nodeConnectionFailed(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case let .walletMetadataChanged(v1): writeInt(&buf, Int32(5)) FfiConverterTypeWalletMetadata.write(v1, into: &buf) - + + case let .walletBalanceChanged(v1): writeInt(&buf, Int32(6)) FfiConverterTypeBalance.write(v1, into: &buf) - + + case let .walletError(v1): writeInt(&buf, Int32(7)) FfiConverterTypeWalletViewModelError.write(v1, into: &buf) - + + case let .unknownError(v1): writeInt(&buf, Int32(8)) FfiConverterString.write(v1, into: &buf) - + + case let .walletScannerResponse(v1): writeInt(&buf, Int32(9)) FfiConverterTypeScannerResponse.write(v1, into: &buf) - + + case .unsignedTransactionsChanged: writeInt(&buf, Int32(10)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelReconcileMessage_lift(_ buf: RustBuffer) throws -> WalletViewModelReconcileMessage { - try FfiConverterTypeWalletViewModelReconcileMessage.lift(buf) + return try FfiConverterTypeWalletViewModelReconcileMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelReconcileMessage_lower(_ value: WalletViewModelReconcileMessage) -> RustBuffer { - FfiConverterTypeWalletViewModelReconcileMessage.lower(value) + return FfiConverterTypeWalletViewModelReconcileMessage.lower(value) } + + + + public enum XpubError { + + + case InvalidDescriptor(DescriptorError ) case InvalidJson(String @@ -16414,8 +18872,9 @@ public enum XpubError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeXpubError: FfiConverterRustBuffer { typealias SwiftType = XpubError @@ -16423,44 +18882,60 @@ public struct FfiConverterTypeXpubError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> XpubError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .InvalidDescriptor( - FfiConverterTypeDescriptorError.read(from: &buf) + + + + + case 1: return .InvalidDescriptor( + try FfiConverterTypeDescriptorError.read(from: &buf) ) - case 2: return try .InvalidJson( - FfiConverterString.read(from: &buf) + case 2: return .InvalidJson( + try FfiConverterString.read(from: &buf) ) case 3: return .InvalidDescriptorInJson case 4: return .JsonNoDecriptor - case 5: return try .MissingXpub( - FfiConverterString.read(from: &buf) + case 5: return .MissingXpub( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: XpubError, into buf: inout [UInt8]) { switch value { + + + + + case let .InvalidDescriptor(v1): writeInt(&buf, Int32(1)) FfiConverterTypeDescriptorError.write(v1, into: &buf) - + + case let .InvalidJson(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case .InvalidDescriptorInJson: writeInt(&buf, Int32(3)) - + + case .JsonNoDecriptor: writeInt(&buf, Int32(4)) - + + case let .MissingXpub(v1): writeInt(&buf, Int32(5)) FfiConverterString.write(v1, into: &buf) + } } } + extension XpubError: Equatable, Hashable {} extension XpubError: Foundation.LocalizedError { @@ -16469,15 +18944,23 @@ extension XpubError: Foundation.LocalizedError { } } -public protocol FfiReconcile: AnyObject { + + + +public protocol FfiReconcile : AnyObject { + /** * Essentially a callback to the frontend */ - func reconcile(message: AppStateReconcileMessage) + func reconcile(message: AppStateReconcileMessage) + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceFfiReconcile { +fileprivate struct UniffiCallbackInterfaceFfiReconcile { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16487,19 +18970,20 @@ private enum UniffiCallbackInterfaceFfiReconcile { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfaceFfiReconcile.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.reconcile( - message: FfiConverterTypeAppStateReconcileMessage.lift(message) + return uniffiObj.reconcile( + message: try FfiConverterTypeAppStateReconcileMessage.lift(message) ) } + let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16507,7 +18991,7 @@ private enum UniffiCallbackInterfaceFfiReconcile { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfaceFfiReconcile.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface FfiReconcile: handle missing in uniffiFree") @@ -16522,58 +19006,66 @@ private func uniffiCallbackInitFfiReconcile() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfaceFfiReconcile { +fileprivate struct FfiConverterCallbackInterfaceFfiReconcile { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceFfiReconcile: FfiConverter { +extension FfiConverterCallbackInterfaceFfiReconcile : FfiConverter { typealias SwiftType = FfiReconcile typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } -public protocol ImportWalletViewModelReconciler: AnyObject { + + + +public protocol ImportWalletViewModelReconciler : AnyObject { + /** * Tells the frontend to reconcile the view model changes */ - func reconcile(message: ImportWalletViewModelReconcileMessage) + func reconcile(message: ImportWalletViewModelReconcileMessage) + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceImportWalletViewModelReconciler { +fileprivate struct UniffiCallbackInterfaceImportWalletViewModelReconciler { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16583,19 +19075,20 @@ private enum UniffiCallbackInterfaceImportWalletViewModelReconciler { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfaceImportWalletViewModelReconciler.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.reconcile( - message: FfiConverterTypeImportWalletViewModelReconcileMessage.lift(message) + return uniffiObj.reconcile( + message: try FfiConverterTypeImportWalletViewModelReconcileMessage.lift(message) ) } + let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16603,7 +19096,7 @@ private enum UniffiCallbackInterfaceImportWalletViewModelReconciler { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfaceImportWalletViewModelReconciler.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface ImportWalletViewModelReconciler: handle missing in uniffiFree") @@ -16618,59 +19111,67 @@ private func uniffiCallbackInitImportWalletViewModelReconciler() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfaceImportWalletViewModelReconciler { +fileprivate struct FfiConverterCallbackInterfaceImportWalletViewModelReconciler { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceImportWalletViewModelReconciler: FfiConverter { +extension FfiConverterCallbackInterfaceImportWalletViewModelReconciler : FfiConverter { typealias SwiftType = ImportWalletViewModelReconciler typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } -public protocol KeychainAccess: AnyObject { - func save(key: String, value: String) throws - func get(key: String) -> String? - func delete(key: String) -> Bool + +public protocol KeychainAccess : AnyObject { + + func save(key: String, value: String) throws + + func get(key: String) -> String? + + func delete(key: String) -> Bool + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceKeychainAccess { +fileprivate struct UniffiCallbackInterfaceKeychainAccess { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16681,20 +19182,21 @@ private enum UniffiCallbackInterfaceKeychainAccess { uniffiHandle: UInt64, key: RustBuffer, value: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } return try uniffiObj.save( - key: FfiConverterString.lift(key), - value: FfiConverterString.lift(value) + key: try FfiConverterString.lift(key), + value: try FfiConverterString.lift(value) ) } + let writeReturn = { () } uniffiTraitInterfaceCallWithError( callStatus: uniffiCallStatus, @@ -16714,11 +19216,12 @@ private enum UniffiCallbackInterfaceKeychainAccess { guard let uniffiObj = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.get( - key: FfiConverterString.lift(key) + return uniffiObj.get( + key: try FfiConverterString.lift(key) ) } + let writeReturn = { uniffiOutReturn.pointee = FfiConverterOptionString.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16737,11 +19240,12 @@ private enum UniffiCallbackInterfaceKeychainAccess { guard let uniffiObj = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.delete( - key: FfiConverterString.lift(key) + return uniffiObj.delete( + key: try FfiConverterString.lift(key) ) } + let writeReturn = { uniffiOutReturn.pointee = FfiConverterBool.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16749,7 +19253,7 @@ private enum UniffiCallbackInterfaceKeychainAccess { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface KeychainAccess: handle missing in uniffiFree") @@ -16764,58 +19268,66 @@ private func uniffiCallbackInitKeychainAccess() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfaceKeychainAccess { +fileprivate struct FfiConverterCallbackInterfaceKeychainAccess { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceKeychainAccess: FfiConverter { +extension FfiConverterCallbackInterfaceKeychainAccess : FfiConverter { typealias SwiftType = KeychainAccess typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } -public protocol PendingWalletViewModelReconciler: AnyObject { + + + +public protocol PendingWalletViewModelReconciler : AnyObject { + /** * Tells the frontend to reconcile the view model changes */ - func reconcile(message: PendingWalletViewModelReconcileMessage) + func reconcile(message: PendingWalletViewModelReconcileMessage) + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfacePendingWalletViewModelReconciler { +fileprivate struct UniffiCallbackInterfacePendingWalletViewModelReconciler { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16825,19 +19337,20 @@ private enum UniffiCallbackInterfacePendingWalletViewModelReconciler { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfacePendingWalletViewModelReconciler.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.reconcile( - message: FfiConverterTypePendingWalletViewModelReconcileMessage.lift(message) + return uniffiObj.reconcile( + message: try FfiConverterTypePendingWalletViewModelReconcileMessage.lift(message) ) } + let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16845,7 +19358,7 @@ private enum UniffiCallbackInterfacePendingWalletViewModelReconciler { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfacePendingWalletViewModelReconciler.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface PendingWalletViewModelReconciler: handle missing in uniffiFree") @@ -16860,58 +19373,66 @@ private func uniffiCallbackInitPendingWalletViewModelReconciler() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfacePendingWalletViewModelReconciler { +fileprivate struct FfiConverterCallbackInterfacePendingWalletViewModelReconciler { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfacePendingWalletViewModelReconciler: FfiConverter { +extension FfiConverterCallbackInterfacePendingWalletViewModelReconciler : FfiConverter { typealias SwiftType = PendingWalletViewModelReconciler typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } -public protocol WalletViewModelReconciler: AnyObject { + + + +public protocol WalletViewModelReconciler : AnyObject { + /** * Tells the frontend to reconcile the view model changes */ - func reconcile(message: WalletViewModelReconcileMessage) + func reconcile(message: WalletViewModelReconcileMessage) + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceWalletViewModelReconciler { +fileprivate struct UniffiCallbackInterfaceWalletViewModelReconciler { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16921,19 +19442,20 @@ private enum UniffiCallbackInterfaceWalletViewModelReconciler { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfaceWalletViewModelReconciler.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.reconcile( - message: FfiConverterTypeWalletViewModelReconcileMessage.lift(message) + return uniffiObj.reconcile( + message: try FfiConverterTypeWalletViewModelReconcileMessage.lift(message) ) } + let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16941,7 +19463,7 @@ private enum UniffiCallbackInterfaceWalletViewModelReconciler { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfaceWalletViewModelReconciler.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface WalletViewModelReconciler: handle missing in uniffiFree") @@ -16956,57 +19478,57 @@ private func uniffiCallbackInitWalletViewModelReconciler() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfaceWalletViewModelReconciler { +fileprivate struct FfiConverterCallbackInterfaceWalletViewModelReconciler { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceWalletViewModelReconciler: FfiConverter { +extension FfiConverterCallbackInterfaceWalletViewModelReconciler : FfiConverter { typealias SwiftType = WalletViewModelReconciler typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionUInt8: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionUInt8: FfiConverterRustBuffer { typealias SwiftType = UInt8? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17024,13 +19546,13 @@ private struct FfiConverterOptionUInt8: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionUInt32: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionUInt32: FfiConverterRustBuffer { typealias SwiftType = UInt32? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17048,13 +19570,13 @@ private struct FfiConverterOptionUInt32: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionString: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionString: FfiConverterRustBuffer { typealias SwiftType = String? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17072,13 +19594,13 @@ private struct FfiConverterOptionString: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionData: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionData: FfiConverterRustBuffer { typealias SwiftType = Data? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17096,13 +19618,13 @@ private struct FfiConverterOptionData: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionDuration: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionDuration: FfiConverterRustBuffer { typealias SwiftType = TimeInterval? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17120,13 +19642,13 @@ private struct FfiConverterOptionDuration: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeAddress: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeAddress: FfiConverterRustBuffer { typealias SwiftType = Address? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17144,13 +19666,13 @@ private struct FfiConverterOptionTypeAddress: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeAmount: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeAmount: FfiConverterRustBuffer { typealias SwiftType = Amount? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17168,13 +19690,13 @@ private struct FfiConverterOptionTypeAmount: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeFeeRateOptions: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeFeeRateOptions: FfiConverterRustBuffer { typealias SwiftType = FeeRateOptions? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17192,13 +19714,13 @@ private struct FfiConverterOptionTypeFeeRateOptions: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeFingerprint: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeFingerprint: FfiConverterRustBuffer { typealias SwiftType = Fingerprint? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17216,13 +19738,13 @@ private struct FfiConverterOptionTypeFingerprint: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeUnsignedTransactionRecord: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeUnsignedTransactionRecord: FfiConverterRustBuffer { typealias SwiftType = UnsignedTransactionRecord? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17240,13 +19762,13 @@ private struct FfiConverterOptionTypeUnsignedTransactionRecord: FfiConverterRust } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeAddressIndex: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeAddressIndex: FfiConverterRustBuffer { typealias SwiftType = AddressIndex? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17264,13 +19786,13 @@ private struct FfiConverterOptionTypeAddressIndex: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeBlockSizeLast: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeBlockSizeLast: FfiConverterRustBuffer { typealias SwiftType = BlockSizeLast? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17288,13 +19810,13 @@ private struct FfiConverterOptionTypeBlockSizeLast: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeFeeResponse: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeFeeResponse: FfiConverterRustBuffer { typealias SwiftType = FeeResponse? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17312,13 +19834,13 @@ private struct FfiConverterOptionTypeFeeResponse: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeFiatAmount: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeFiatAmount: FfiConverterRustBuffer { typealias SwiftType = FiatAmount? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17336,13 +19858,13 @@ private struct FfiConverterOptionTypeFiatAmount: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeMessageInfo: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeMessageInfo: FfiConverterRustBuffer { typealias SwiftType = MessageInfo? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17360,13 +19882,13 @@ private struct FfiConverterOptionTypeMessageInfo: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionSequenceSequenceString: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionSequenceSequenceString: FfiConverterRustBuffer { typealias SwiftType = [[String]]? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17384,13 +19906,13 @@ private struct FfiConverterOptionSequenceSequenceString: FfiConverterRustBuffer } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeWalletId: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeWalletId: FfiConverterRustBuffer { typealias SwiftType = WalletId? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17408,9 +19930,9 @@ private struct FfiConverterOptionTypeWalletId: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceString: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer { typealias SwiftType = [String] public static func write(_ value: [String], into buf: inout [UInt8]) { @@ -17426,16 +19948,16 @@ private struct FfiConverterSequenceString: FfiConverterRustBuffer { var seq = [String]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterString.read(from: &buf)) + seq.append(try FfiConverterString.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeUnsignedTransaction: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeUnsignedTransaction: FfiConverterRustBuffer { typealias SwiftType = [UnsignedTransaction] public static func write(_ value: [UnsignedTransaction], into buf: inout [UInt8]) { @@ -17451,16 +19973,16 @@ private struct FfiConverterSequenceTypeUnsignedTransaction: FfiConverterRustBuff var seq = [UnsignedTransaction]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeUnsignedTransaction.read(from: &buf)) + seq.append(try FfiConverterTypeUnsignedTransaction.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeFoundAddress: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeFoundAddress: FfiConverterRustBuffer { typealias SwiftType = [FoundAddress] public static func write(_ value: [FoundAddress], into buf: inout [UInt8]) { @@ -17476,16 +19998,16 @@ private struct FfiConverterSequenceTypeFoundAddress: FfiConverterRustBuffer { var seq = [FoundAddress]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeFoundAddress.read(from: &buf)) + seq.append(try FfiConverterTypeFoundAddress.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeGroupedWord: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeGroupedWord: FfiConverterRustBuffer { typealias SwiftType = [GroupedWord] public static func write(_ value: [GroupedWord], into buf: inout [UInt8]) { @@ -17501,16 +20023,16 @@ private struct FfiConverterSequenceTypeGroupedWord: FfiConverterRustBuffer { var seq = [GroupedWord]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeGroupedWord.read(from: &buf)) + seq.append(try FfiConverterTypeGroupedWord.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeNdefRecord: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeNdefRecord: FfiConverterRustBuffer { typealias SwiftType = [NdefRecord] public static func write(_ value: [NdefRecord], into buf: inout [UInt8]) { @@ -17526,16 +20048,16 @@ private struct FfiConverterSequenceTypeNdefRecord: FfiConverterRustBuffer { var seq = [NdefRecord]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeNdefRecord.read(from: &buf)) + seq.append(try FfiConverterTypeNdefRecord.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeWalletMetadata: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeWalletMetadata: FfiConverterRustBuffer { typealias SwiftType = [WalletMetadata] public static func write(_ value: [WalletMetadata], into buf: inout [UInt8]) { @@ -17551,16 +20073,16 @@ private struct FfiConverterSequenceTypeWalletMetadata: FfiConverterRustBuffer { var seq = [WalletMetadata]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeWalletMetadata.read(from: &buf)) + seq.append(try FfiConverterTypeWalletMetadata.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeColorSchemeSelection: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeColorSchemeSelection: FfiConverterRustBuffer { typealias SwiftType = [ColorSchemeSelection] public static func write(_ value: [ColorSchemeSelection], into buf: inout [UInt8]) { @@ -17576,16 +20098,16 @@ private struct FfiConverterSequenceTypeColorSchemeSelection: FfiConverterRustBuf var seq = [ColorSchemeSelection]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeColorSchemeSelection.read(from: &buf)) + seq.append(try FfiConverterTypeColorSchemeSelection.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeNetwork: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeNetwork: FfiConverterRustBuffer { typealias SwiftType = [Network] public static func write(_ value: [Network], into buf: inout [UInt8]) { @@ -17601,16 +20123,16 @@ private struct FfiConverterSequenceTypeNetwork: FfiConverterRustBuffer { var seq = [Network]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeNetwork.read(from: &buf)) + seq.append(try FfiConverterTypeNetwork.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeNodeSelection: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeNodeSelection: FfiConverterRustBuffer { typealias SwiftType = [NodeSelection] public static func write(_ value: [NodeSelection], into buf: inout [UInt8]) { @@ -17626,16 +20148,16 @@ private struct FfiConverterSequenceTypeNodeSelection: FfiConverterRustBuffer { var seq = [NodeSelection]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeNodeSelection.read(from: &buf)) + seq.append(try FfiConverterTypeNodeSelection.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeRoute: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeRoute: FfiConverterRustBuffer { typealias SwiftType = [Route] public static func write(_ value: [Route], into buf: inout [UInt8]) { @@ -17651,16 +20173,16 @@ private struct FfiConverterSequenceTypeRoute: FfiConverterRustBuffer { var seq = [Route]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeRoute.read(from: &buf)) + seq.append(try FfiConverterTypeRoute.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer { typealias SwiftType = [Transaction] public static func write(_ value: [Transaction], into buf: inout [UInt8]) { @@ -17676,16 +20198,16 @@ private struct FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer { var seq = [Transaction]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeTransaction.read(from: &buf)) + seq.append(try FfiConverterTypeTransaction.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeUnit: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeUnit: FfiConverterRustBuffer { typealias SwiftType = [Unit] public static func write(_ value: [Unit], into buf: inout [UInt8]) { @@ -17701,16 +20223,16 @@ private struct FfiConverterSequenceTypeUnit: FfiConverterRustBuffer { var seq = [Unit]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeUnit.read(from: &buf)) + seq.append(try FfiConverterTypeUnit.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceSequenceString: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceSequenceString: FfiConverterRustBuffer { typealias SwiftType = [[String]] public static func write(_ value: [[String]], into buf: inout [UInt8]) { @@ -17726,16 +20248,16 @@ private struct FfiConverterSequenceSequenceString: FfiConverterRustBuffer { var seq = [[String]]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterSequenceString.read(from: &buf)) + seq.append(try FfiConverterSequenceString.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuffer { typealias SwiftType = [[GroupedWord]] public static func write(_ value: [[GroupedWord]], into buf: inout [UInt8]) { @@ -17751,12 +20273,13 @@ private struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuff var seq = [[GroupedWord]]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterSequenceTypeGroupedWord.read(from: &buf)) + seq.append(try FfiConverterSequenceTypeGroupedWord.read(from: &buf)) } return seq } } + /** * Typealias from the type name used in the UDL file to the builtin type. This * is needed because the UDL type name is used in function/method signatures. @@ -17764,40 +20287,43 @@ private struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuff public typealias FfiOpacity = UInt8 #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiOpacity: FfiConverter { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiOpacity { - try FfiConverterUInt8.read(from: &buf) + return try FfiConverterUInt8.read(from: &buf) } public static func write(_ value: FfiOpacity, into buf: inout [UInt8]) { - FfiConverterUInt8.write(value, into: &buf) + return FfiConverterUInt8.write(value, into: &buf) } public static func lift(_ value: UInt8) throws -> FfiOpacity { - try FfiConverterUInt8.lift(value) + return try FfiConverterUInt8.lift(value) } public static func lower(_ value: FfiOpacity) -> UInt8 { - FfiConverterUInt8.lower(value) + return FfiConverterUInt8.lower(value) } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiOpacity_lift(_ value: UInt8) throws -> FfiOpacity { - try FfiConverterTypeFfiOpacity.lift(value) + return try FfiConverterTypeFfiOpacity.lift(value) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiOpacity_lower(_ value: FfiOpacity) -> UInt8 { - FfiConverterTypeFfiOpacity.lower(value) + return FfiConverterTypeFfiOpacity.lower(value) } + + /** * Typealias from the type name used in the UDL file to the builtin type. This * is needed because the UDL type name is used in function/method signatures. @@ -17805,50 +20331,51 @@ public func FfiConverterTypeFfiOpacity_lower(_ value: FfiOpacity) -> UInt8 { public typealias WalletId = String #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletId: FfiConverter { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletId { - try FfiConverterString.read(from: &buf) + return try FfiConverterString.read(from: &buf) } public static func write(_ value: WalletId, into buf: inout [UInt8]) { - FfiConverterString.write(value, into: &buf) + return FfiConverterString.write(value, into: &buf) } public static func lift(_ value: RustBuffer) throws -> WalletId { - try FfiConverterString.lift(value) + return try FfiConverterString.lift(value) } public static func lower(_ value: WalletId) -> RustBuffer { - FfiConverterString.lower(value) + return FfiConverterString.lower(value) } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletId_lift(_ value: RustBuffer) throws -> WalletId { - try FfiConverterTypeWalletId.lift(value) + return try FfiConverterTypeWalletId.lift(value) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletId_lower(_ value: WalletId) -> RustBuffer { - FfiConverterTypeWalletId.lower(value) + return FfiConverterTypeWalletId.lower(value) } private let UNIFFI_RUST_FUTURE_POLL_READY: Int8 = 0 private let UNIFFI_RUST_FUTURE_POLL_MAYBE_READY: Int8 = 1 -private let uniffiContinuationHandleMap = UniffiHandleMap>() +fileprivate let uniffiContinuationHandleMap = UniffiHandleMap>() -private func uniffiRustCallAsync( +fileprivate func uniffiRustCallAsync( rustFutureFunc: () -> UInt64, - pollFunc: (UInt64, @escaping UniffiRustFutureContinuationCallback, UInt64) -> Void, + pollFunc: (UInt64, @escaping UniffiRustFutureContinuationCallback, UInt64) -> (), completeFunc: (UInt64, UnsafeMutablePointer) -> F, - freeFunc: (UInt64) -> Void, + freeFunc: (UInt64) -> (), liftFunc: (F) throws -> T, errorHandler: ((RustBuffer) throws -> Swift.Error)? ) async throws -> T { @@ -17859,7 +20386,7 @@ private func uniffiRustCallAsync( defer { freeFunc(rustFuture) } - var pollResult: Int8 + var pollResult: Int8; repeat { pollResult = await withUnsafeContinuation { pollFunc( @@ -17878,286 +20405,254 @@ private func uniffiRustCallAsync( // Callback handlers for an async calls. These are invoked by Rust when the future is ready. They // lift the return value or error and resume the suspended function. -private func uniffiFutureContinuationCallback(handle: UInt64, pollResult: Int8) { +fileprivate func uniffiFutureContinuationCallback(handle: UInt64, pollResult: Int8) { if let continuation = try? uniffiContinuationHandleMap.remove(handle: handle) { continuation.resume(returning: pollResult) } else { print("uniffiFutureContinuationCallback invalid handle") } } - -public func addressIsEqual(lhs: Address, rhs: Address) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_address_is_equal( - FfiConverterTypeAddress.lower(lhs), - FfiConverterTypeAddress.lower(rhs), $0 - ) - }) +public func addressIsEqual(lhs: Address, rhs: Address) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_address_is_equal( + FfiConverterTypeAddress.lower(lhs), + FfiConverterTypeAddress.lower(rhs),$0 + ) +}) } - -public func addressIsValid(address: String) throws { try rustCallWithError(FfiConverterTypeAddressError.lift) { +public func addressIsValid(address: String)throws {try rustCallWithError(FfiConverterTypeAddressError.lift) { uniffi_cove_fn_func_address_is_valid( - FfiConverterString.lower(address), $0 + FfiConverterString.lower(address),$0 ) } } - -public func addressIsValidForNetwork(address: String, network: Network) throws { try rustCallWithError(FfiConverterTypeAddressError.lift) { +public func addressIsValidForNetwork(address: String, network: Network)throws {try rustCallWithError(FfiConverterTypeAddressError.lift) { uniffi_cove_fn_func_address_is_valid_for_network( FfiConverterString.lower(address), - FfiConverterTypeNetwork.lower(network), $0 + FfiConverterTypeNetwork.lower(network),$0 ) } } - -public func addressStringSpacedOut(address: String) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_address_string_spaced_out( - FfiConverterString.lower(address), $0 - ) - }) -} - -public func allColorSchemes() -> [ColorSchemeSelection] { - try! FfiConverterSequenceTypeColorSchemeSelection.lift(try! rustCall { - uniffi_cove_fn_func_all_color_schemes($0 - ) - }) +public func addressStringSpacedOut(address: String) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_address_string_spaced_out( + FfiConverterString.lower(address),$0 + ) +}) } - -public func allNetworks() -> [Network] { - try! FfiConverterSequenceTypeNetwork.lift(try! rustCall { - uniffi_cove_fn_func_all_networks($0 - ) - }) +public func allColorSchemes() -> [ColorSchemeSelection] { + return try! FfiConverterSequenceTypeColorSchemeSelection.lift(try! rustCall() { + uniffi_cove_fn_func_all_color_schemes($0 + ) +}) } - -public func allUnits() -> [Unit] { - try! FfiConverterSequenceTypeUnit.lift(try! rustCall { - uniffi_cove_fn_func_all_units($0 - ) - }) +public func allNetworks() -> [Network] { + return try! FfiConverterSequenceTypeNetwork.lift(try! rustCall() { + uniffi_cove_fn_func_all_networks($0 + ) +}) } - -public func balanceZero() -> Balance { - try! FfiConverterTypeBalance.lift(try! rustCall { - uniffi_cove_fn_func_balance_zero($0 - ) - }) +public func allUnits() -> [Unit] { + return try! FfiConverterSequenceTypeUnit.lift(try! rustCall() { + uniffi_cove_fn_func_all_units($0 + ) +}) } - -public func colorSchemeSelectionCapitalizedString(colorScheme: ColorSchemeSelection) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_color_scheme_selection_capitalized_string( - FfiConverterTypeColorSchemeSelection.lower(colorScheme), $0 - ) - }) +public func balanceZero() -> Balance { + return try! FfiConverterTypeBalance.lift(try! rustCall() { + uniffi_cove_fn_func_balance_zero($0 + ) +}) } - -public func defaultNodeSelection() -> NodeSelection { - try! FfiConverterTypeNodeSelection.lift(try! rustCall { - uniffi_cove_fn_func_default_node_selection($0 - ) - }) +public func colorSchemeSelectionCapitalizedString(colorScheme: ColorSchemeSelection) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_color_scheme_selection_capitalized_string( + FfiConverterTypeColorSchemeSelection.lower(colorScheme),$0 + ) +}) } - -public func discoveryStateIsEqual(lhs: DiscoveryState, rhs: DiscoveryState) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_discovery_state_is_equal( - FfiConverterTypeDiscoveryState.lower(lhs), - FfiConverterTypeDiscoveryState.lower(rhs), $0 - ) - }) +public func defaultNodeSelection() -> NodeSelection { + return try! FfiConverterTypeNodeSelection.lift(try! rustCall() { + uniffi_cove_fn_func_default_node_selection($0 + ) +}) } - -public func feeSpeedDuration(feeSpeed: FeeSpeed) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_fee_speed_duration( - FfiConverterTypeFeeSpeed.lower(feeSpeed), $0 - ) - }) +public func discoveryStateIsEqual(lhs: DiscoveryState, rhs: DiscoveryState) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_discovery_state_is_equal( + FfiConverterTypeDiscoveryState.lower(lhs), + FfiConverterTypeDiscoveryState.lower(rhs),$0 + ) +}) } - -public func feeSpeedToCircleColor(feeSpeed: FeeSpeed) -> FfiColor { - try! FfiConverterTypeFfiColor.lift(try! rustCall { - uniffi_cove_fn_func_fee_speed_to_circle_color( - FfiConverterTypeFeeSpeed.lower(feeSpeed), $0 - ) - }) +public func feeSpeedDuration(feeSpeed: FeeSpeed) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_fee_speed_duration( + FfiConverterTypeFeeSpeed.lower(feeSpeed),$0 + ) +}) } - -public func feeSpeedToString(feeSpeed: FeeSpeed) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_fee_speed_to_string( - FfiConverterTypeFeeSpeed.lower(feeSpeed), $0 - ) - }) +public func feeSpeedToCircleColor(feeSpeed: FeeSpeed) -> FfiColor { + return try! FfiConverterTypeFfiColor.lift(try! rustCall() { + uniffi_cove_fn_func_fee_speed_to_circle_color( + FfiConverterTypeFeeSpeed.lower(feeSpeed),$0 + ) +}) } - -public func fiatAmountPreviewNew() -> FiatAmount { - try! FfiConverterTypeFiatAmount.lift(try! rustCall { - uniffi_cove_fn_func_fiat_amount_preview_new($0 - ) - }) +public func feeSpeedToString(feeSpeed: FeeSpeed) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_fee_speed_to_string( + FfiConverterTypeFeeSpeed.lower(feeSpeed),$0 + ) +}) } - -public func groupedPlainWordsOf(mnemonic: String, groups: UInt8) throws -> [[String]] { - try FfiConverterSequenceSequenceString.lift(rustCallWithError(FfiConverterTypeMnemonicParseError.lift) { - uniffi_cove_fn_func_grouped_plain_words_of( - FfiConverterString.lower(mnemonic), - FfiConverterUInt8.lower(groups), $0 - ) - }) +public func fiatAmountPreviewNew() -> FiatAmount { + return try! FfiConverterTypeFiatAmount.lift(try! rustCall() { + uniffi_cove_fn_func_fiat_amount_preview_new($0 + ) +}) } - -public func hashRoute(route: Route) -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_func_hash_route( - FfiConverterTypeRoute.lower(route), $0 - ) - }) +public func groupedPlainWordsOf(mnemonic: String, groups: UInt8)throws -> [[String]] { + return try FfiConverterSequenceSequenceString.lift(try rustCallWithError(FfiConverterTypeMnemonicParseError.lift) { + uniffi_cove_fn_func_grouped_plain_words_of( + FfiConverterString.lower(mnemonic), + FfiConverterUInt8.lower(groups),$0 + ) +}) } - -public func isRouteEqual(route: Route, routeToCheck: Route) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_is_route_equal( - FfiConverterTypeRoute.lower(route), - FfiConverterTypeRoute.lower(routeToCheck), $0 - ) - }) +public func hashRoute(route: Route) -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_func_hash_route( + FfiConverterTypeRoute.lower(route),$0 + ) +}) } - -public func networkToString(network: Network) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_network_to_string( - FfiConverterTypeNetwork.lower(network), $0 - ) - }) +public func isRouteEqual(route: Route, routeToCheck: Route) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_is_route_equal( + FfiConverterTypeRoute.lower(route), + FfiConverterTypeRoute.lower(routeToCheck),$0 + ) +}) } - -public func nodeSelectionToNode(node: NodeSelection) -> Node { - try! FfiConverterTypeNode.lift(try! rustCall { - uniffi_cove_fn_func_node_selection_to_node( - FfiConverterTypeNodeSelection.lower(node), $0 - ) - }) +public func networkToString(network: Network) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_network_to_string( + FfiConverterTypeNetwork.lower(network),$0 + ) +}) } - -public func numberOfWordsInGroups(me: NumberOfBip39Words, of: UInt8) -> [[String]] { - try! FfiConverterSequenceSequenceString.lift(try! rustCall { - uniffi_cove_fn_func_number_of_words_in_groups( - FfiConverterTypeNumberOfBip39Words.lower(me), - FfiConverterUInt8.lower(of), $0 - ) - }) +public func nodeSelectionToNode(node: NodeSelection) -> Node { + return try! FfiConverterTypeNode.lift(try! rustCall() { + uniffi_cove_fn_func_node_selection_to_node( + FfiConverterTypeNodeSelection.lower(node),$0 + ) +}) } - -public func numberOfWordsToWordCount(me: NumberOfBip39Words) -> UInt8 { - try! FfiConverterUInt8.lift(try! rustCall { - uniffi_cove_fn_func_number_of_words_to_word_count( - FfiConverterTypeNumberOfBip39Words.lower(me), $0 - ) - }) +public func numberOfWordsInGroups(me: NumberOfBip39Words, of: UInt8) -> [[String]] { + return try! FfiConverterSequenceSequenceString.lift(try! rustCall() { + uniffi_cove_fn_func_number_of_words_in_groups( + FfiConverterTypeNumberOfBip39Words.lower(me), + FfiConverterUInt8.lower(of),$0 + ) +}) } - -public func previewNewLegacyFoundAddress() -> FoundAddress { - try! FfiConverterTypeFoundAddress.lift(try! rustCall { - uniffi_cove_fn_func_preview_new_legacy_found_address($0 - ) - }) +public func numberOfWordsToWordCount(me: NumberOfBip39Words) -> UInt8 { + return try! FfiConverterUInt8.lift(try! rustCall() { + uniffi_cove_fn_func_number_of_words_to_word_count( + FfiConverterTypeNumberOfBip39Words.lower(me),$0 + ) +}) } - -public func previewNewWrappedFoundAddress() -> FoundAddress { - try! FfiConverterTypeFoundAddress.lift(try! rustCall { - uniffi_cove_fn_func_preview_new_wrapped_found_address($0 - ) - }) +public func previewNewLegacyFoundAddress() -> FoundAddress { + return try! FfiConverterTypeFoundAddress.lift(try! rustCall() { + uniffi_cove_fn_func_preview_new_legacy_found_address($0 + ) +}) } - -public func stringOrDataTryIntoMultiFormat(stringOrData: StringOrData) throws -> MultiFormat { - try FfiConverterTypeMultiFormat.lift(rustCallWithError(FfiConverterTypeMultiFormatError.lift) { - uniffi_cove_fn_func_string_or_data_try_into_multi_format( - FfiConverterTypeStringOrData.lower(stringOrData), $0 - ) - }) +public func previewNewWrappedFoundAddress() -> FoundAddress { + return try! FfiConverterTypeFoundAddress.lift(try! rustCall() { + uniffi_cove_fn_func_preview_new_wrapped_found_address($0 + ) +}) } - -public func transactionPreviewConfirmedNew() -> Transaction { - try! FfiConverterTypeTransaction.lift(try! rustCall { - uniffi_cove_fn_func_transaction_preview_confirmed_new($0 - ) - }) +public func stringOrDataTryIntoMultiFormat(stringOrData: StringOrData)throws -> MultiFormat { + return try FfiConverterTypeMultiFormat.lift(try rustCallWithError(FfiConverterTypeMultiFormatError.lift) { + uniffi_cove_fn_func_string_or_data_try_into_multi_format( + FfiConverterTypeStringOrData.lower(stringOrData),$0 + ) +}) } - -public func transactionPreviewUnconfirmedNew() -> Transaction { - try! FfiConverterTypeTransaction.lift(try! rustCall { - uniffi_cove_fn_func_transaction_preview_unconfirmed_new($0 - ) - }) +public func transactionPreviewConfirmedNew() -> Transaction { + return try! FfiConverterTypeTransaction.lift(try! rustCall() { + uniffi_cove_fn_func_transaction_preview_confirmed_new($0 + ) +}) } - -public func transactionsPreviewNew(confirmed: UInt8, unconfirmed: UInt8) -> [Transaction] { - try! FfiConverterSequenceTypeTransaction.lift(try! rustCall { - uniffi_cove_fn_func_transactions_preview_new( - FfiConverterUInt8.lower(confirmed), - FfiConverterUInt8.lower(unconfirmed), $0 - ) - }) +public func transactionPreviewUnconfirmedNew() -> Transaction { + return try! FfiConverterTypeTransaction.lift(try! rustCall() { + uniffi_cove_fn_func_transaction_preview_unconfirmed_new($0 + ) +}) } - -public func unitToString(unit: Unit) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_unit_to_string( - FfiConverterTypeUnit.lower(unit), $0 - ) - }) +public func transactionsPreviewNew(confirmed: UInt8, unconfirmed: UInt8) -> [Transaction] { + return try! FfiConverterSequenceTypeTransaction.lift(try! rustCall() { + uniffi_cove_fn_func_transactions_preview_new( + FfiConverterUInt8.lower(confirmed), + FfiConverterUInt8.lower(unconfirmed),$0 + ) +}) } - -public func updatePricesIfNeeded() async { - try! await uniffiRustCallAsync( - rustFutureFunc: { - uniffi_cove_fn_func_update_prices_if_needed( - ) - }, - pollFunc: ffi_cove_rust_future_poll_void, - completeFunc: ffi_cove_rust_future_complete_void, - freeFunc: ffi_cove_rust_future_free_void, - liftFunc: { $0 }, - errorHandler: nil +public func unitToString(unit: Unit) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_unit_to_string( + FfiConverterTypeUnit.lower(unit),$0 ) +}) } - -public func walletAddressTypeLessThan(lhs: WalletAddressType, rhs: WalletAddressType) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_wallet_address_type_less_than( - FfiConverterTypeWalletAddressType.lower(lhs), - FfiConverterTypeWalletAddressType.lower(rhs), $0 +public func updatePricesIfNeeded()async { + return + try! await uniffiRustCallAsync( + rustFutureFunc: { + uniffi_cove_fn_func_update_prices_if_needed( + ) + }, + pollFunc: ffi_cove_rust_future_poll_void, + completeFunc: ffi_cove_rust_future_complete_void, + freeFunc: ffi_cove_rust_future_free_void, + liftFunc: { $0 }, + errorHandler: nil + ) - }) } - -public func walletAddressTypeToString(walletAddressType: WalletAddressType) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_wallet_address_type_to_string( - FfiConverterTypeWalletAddressType.lower(walletAddressType), $0 - ) - }) +public func walletAddressTypeLessThan(lhs: WalletAddressType, rhs: WalletAddressType) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_wallet_address_type_less_than( + FfiConverterTypeWalletAddressType.lower(lhs), + FfiConverterTypeWalletAddressType.lower(rhs),$0 + ) +}) } - -public func walletMetadataPreview() -> WalletMetadata { - try! FfiConverterTypeWalletMetadata.lift(try! rustCall { - uniffi_cove_fn_func_wallet_metadata_preview($0 - ) - }) +public func walletAddressTypeToString(walletAddressType: WalletAddressType) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_wallet_address_type_to_string( + FfiConverterTypeWalletAddressType.lower(walletAddressType),$0 + ) +}) } - -public func walletStateIsEqual(lhs: WalletLoadState, rhs: WalletLoadState) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_wallet_state_is_equal( - FfiConverterTypeWalletLoadState.lower(lhs), - FfiConverterTypeWalletLoadState.lower(rhs), $0 - ) - }) +public func walletMetadataPreview() -> WalletMetadata { + return try! FfiConverterTypeWalletMetadata.lift(try! rustCall() { + uniffi_cove_fn_func_wallet_metadata_preview($0 + ) +}) +} +public func walletStateIsEqual(lhs: WalletLoadState, rhs: WalletLoadState) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_wallet_state_is_equal( + FfiConverterTypeWalletLoadState.lower(lhs), + FfiConverterTypeWalletLoadState.lower(rhs),$0 + ) +}) } private enum InitializationResult { @@ -18165,7 +20660,6 @@ private enum InitializationResult { case contractVersionMismatch case apiChecksumMismatch } - // Use a global variable to perform the versioning checks. Swift ensures that // the code inside is only computed once. private let initializationResult: InitializationResult = { @@ -18176,1024 +20670,1024 @@ private let initializationResult: InitializationResult = { if bindings_contract_version != scaffolding_contract_version { return InitializationResult.contractVersionMismatch } - if uniffi_cove_checksum_func_address_is_equal() != 63981 { + if (uniffi_cove_checksum_func_address_is_equal() != 63981) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_address_is_valid() != 22920 { + if (uniffi_cove_checksum_func_address_is_valid() != 22920) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_address_is_valid_for_network() != 41522 { + if (uniffi_cove_checksum_func_address_is_valid_for_network() != 41522) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_address_string_spaced_out() != 60902 { + if (uniffi_cove_checksum_func_address_string_spaced_out() != 60902) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_all_color_schemes() != 24835 { + if (uniffi_cove_checksum_func_all_color_schemes() != 24835) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_all_networks() != 30650 { + if (uniffi_cove_checksum_func_all_networks() != 30650) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_all_units() != 36925 { + if (uniffi_cove_checksum_func_all_units() != 36925) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_balance_zero() != 63807 { + if (uniffi_cove_checksum_func_balance_zero() != 63807) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_color_scheme_selection_capitalized_string() != 42247 { + if (uniffi_cove_checksum_func_color_scheme_selection_capitalized_string() != 42247) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_default_node_selection() != 14665 { + if (uniffi_cove_checksum_func_default_node_selection() != 14665) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_discovery_state_is_equal() != 12390 { + if (uniffi_cove_checksum_func_discovery_state_is_equal() != 12390) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_fee_speed_duration() != 28599 { + if (uniffi_cove_checksum_func_fee_speed_duration() != 28599) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_fee_speed_to_circle_color() != 46076 { + if (uniffi_cove_checksum_func_fee_speed_to_circle_color() != 46076) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_fee_speed_to_string() != 21405 { + if (uniffi_cove_checksum_func_fee_speed_to_string() != 21405) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_fiat_amount_preview_new() != 6422 { + if (uniffi_cove_checksum_func_fiat_amount_preview_new() != 6422) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_grouped_plain_words_of() != 45802 { + if (uniffi_cove_checksum_func_grouped_plain_words_of() != 45802) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_hash_route() != 32817 { + if (uniffi_cove_checksum_func_hash_route() != 32817) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_is_route_equal() != 25732 { + if (uniffi_cove_checksum_func_is_route_equal() != 25732) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_network_to_string() != 60660 { + if (uniffi_cove_checksum_func_network_to_string() != 60660) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_node_selection_to_node() != 57209 { + if (uniffi_cove_checksum_func_node_selection_to_node() != 57209) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_number_of_words_in_groups() != 14214 { + if (uniffi_cove_checksum_func_number_of_words_in_groups() != 14214) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_number_of_words_to_word_count() != 24846 { + if (uniffi_cove_checksum_func_number_of_words_to_word_count() != 24846) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_preview_new_legacy_found_address() != 36773 { + if (uniffi_cove_checksum_func_preview_new_legacy_found_address() != 36773) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_preview_new_wrapped_found_address() != 57500 { + if (uniffi_cove_checksum_func_preview_new_wrapped_found_address() != 57500) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_string_or_data_try_into_multi_format() != 34953 { + if (uniffi_cove_checksum_func_string_or_data_try_into_multi_format() != 34953) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_transaction_preview_confirmed_new() != 43706 { + if (uniffi_cove_checksum_func_transaction_preview_confirmed_new() != 43706) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_transaction_preview_unconfirmed_new() != 49725 { + if (uniffi_cove_checksum_func_transaction_preview_unconfirmed_new() != 49725) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_transactions_preview_new() != 60166 { + if (uniffi_cove_checksum_func_transactions_preview_new() != 60166) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_unit_to_string() != 63080 { + if (uniffi_cove_checksum_func_unit_to_string() != 63080) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_update_prices_if_needed() != 27986 { + if (uniffi_cove_checksum_func_update_prices_if_needed() != 27986) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_wallet_address_type_less_than() != 14566 { + if (uniffi_cove_checksum_func_wallet_address_type_less_than() != 14566) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_wallet_address_type_to_string() != 36064 { + if (uniffi_cove_checksum_func_wallet_address_type_to_string() != 36064) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_wallet_metadata_preview() != 1229 { + if (uniffi_cove_checksum_func_wallet_metadata_preview() != 1229) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_wallet_state_is_equal() != 27037 { + if (uniffi_cove_checksum_func_wallet_state_is_equal() != 27037) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_address_spaced_out() != 29461 { + if (uniffi_cove_checksum_method_address_spaced_out() != 29461) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_address_string() != 10597 { + if (uniffi_cove_checksum_method_address_string() != 10597) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addressinfo_address() != 59376 { + if (uniffi_cove_checksum_method_addressinfo_address() != 59376) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addressinfo_adress_string() != 41627 { + if (uniffi_cove_checksum_method_addressinfo_adress_string() != 41627) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addressinfo_index() != 45529 { + if (uniffi_cove_checksum_method_addressinfo_index() != 45529) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addresswithnetwork_address() != 33477 { + if (uniffi_cove_checksum_method_addresswithnetwork_address() != 33477) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addresswithnetwork_amount() != 23019 { + if (uniffi_cove_checksum_method_addresswithnetwork_amount() != 23019) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addresswithnetwork_network() != 64145 { + if (uniffi_cove_checksum_method_addresswithnetwork_network() != 64145) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_as_btc() != 7531 { + if (uniffi_cove_checksum_method_amount_as_btc() != 7531) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_as_sats() != 62969 { + if (uniffi_cove_checksum_method_amount_as_sats() != 62969) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_btc_string() != 21387 { + if (uniffi_cove_checksum_method_amount_btc_string() != 21387) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_btc_string_with_unit() != 10939 { + if (uniffi_cove_checksum_method_amount_btc_string_with_unit() != 10939) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_fmt_string_with_unit() != 14497 { + if (uniffi_cove_checksum_method_amount_fmt_string_with_unit() != 14497) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_sats_string() != 36019 { + if (uniffi_cove_checksum_method_amount_sats_string() != 36019) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_sats_string_with_unit() != 34409 { + if (uniffi_cove_checksum_method_amount_sats_string_with_unit() != 34409) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_autocomplete_autocomplete() != 4748 { + if (uniffi_cove_checksum_method_autocomplete_autocomplete() != 4748) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_autocomplete_is_valid_word() != 18021 { + if (uniffi_cove_checksum_method_autocomplete_is_valid_word() != 18021) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoinresult_final_result() != 44157 { + if (uniffi_cove_checksum_method_bbqrjoinresult_final_result() != 44157) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoinresult_is_complete() != 4119 { + if (uniffi_cove_checksum_method_bbqrjoinresult_is_complete() != 4119) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoinresult_parts_left() != 39828 { + if (uniffi_cove_checksum_method_bbqrjoinresult_parts_left() != 39828) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoined_get_grouped_words() != 36018 { + if (uniffi_cove_checksum_method_bbqrjoined_get_grouped_words() != 36018) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoined_get_seed_words() != 64693 { + if (uniffi_cove_checksum_method_bbqrjoined_get_seed_words() != 64693) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39autocomplete_autocomplete() != 21847 { + if (uniffi_cove_checksum_method_bip39autocomplete_autocomplete() != 21847) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39autocomplete_is_valid_word() != 19081 { + if (uniffi_cove_checksum_method_bip39autocomplete_is_valid_word() != 19081) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39wordspecificautocomplete_autocomplete() != 34680 { + if (uniffi_cove_checksum_method_bip39wordspecificautocomplete_autocomplete() != 34680) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_bip39_word() != 59249 { + if (uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_bip39_word() != 59249) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_valid_word() != 4400 { + if (uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_valid_word() != 4400) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bitcointransaction_normalize_tx_id() != 15620 { + if (uniffi_cove_checksum_method_bitcointransaction_normalize_tx_id() != 15620) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bitcointransaction_tx_id() != 39904 { + if (uniffi_cove_checksum_method_bitcointransaction_tx_id() != 39904) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bitcointransaction_tx_id_hash() != 59940 { + if (uniffi_cove_checksum_method_bitcointransaction_tx_id_hash() != 59940) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_boxedroute_route() != 26050 { + if (uniffi_cove_checksum_method_boxedroute_route() != 26050) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_fee_rate() != 32230 { + if (uniffi_cove_checksum_method_confirmdetails_fee_rate() != 32230) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_fee_total() != 15069 { + if (uniffi_cove_checksum_method_confirmdetails_fee_total() != 15069) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_id() != 46525 { + if (uniffi_cove_checksum_method_confirmdetails_id() != 46525) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_id_hash() != 11280 { + if (uniffi_cove_checksum_method_confirmdetails_id_hash() != 11280) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_is_equal() != 16719 { + if (uniffi_cove_checksum_method_confirmdetails_is_equal() != 16719) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_normalized_id() != 32961 { + if (uniffi_cove_checksum_method_confirmdetails_normalized_id() != 32961) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_psbt_bytes() != 48686 { + if (uniffi_cove_checksum_method_confirmdetails_psbt_bytes() != 48686) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_psbt_to_bbqr() != 44579 { + if (uniffi_cove_checksum_method_confirmdetails_psbt_to_bbqr() != 44579) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_psbt_to_hex() != 3021 { + if (uniffi_cove_checksum_method_confirmdetails_psbt_to_hex() != 3021) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_sending_amount() != 58788 { + if (uniffi_cove_checksum_method_confirmdetails_sending_amount() != 58788) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_sending_to() != 43075 { + if (uniffi_cove_checksum_method_confirmdetails_sending_to() != 43075) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_spending_amount() != 62205 { + if (uniffi_cove_checksum_method_confirmdetails_spending_amount() != 62205) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_block_height() != 62845 { + if (uniffi_cove_checksum_method_confirmedtransaction_block_height() != 62845) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_block_height_fmt() != 22839 { + if (uniffi_cove_checksum_method_confirmedtransaction_block_height_fmt() != 22839) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_confirmed_at() != 21481 { + if (uniffi_cove_checksum_method_confirmedtransaction_confirmed_at() != 21481) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt() != 28835 { + if (uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt() != 28835) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt_with_time() != 36703 { + if (uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt_with_time() != 36703) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_fiat_amount() != 31522 { + if (uniffi_cove_checksum_method_confirmedtransaction_fiat_amount() != 31522) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_id() != 63537 { + if (uniffi_cove_checksum_method_confirmedtransaction_id() != 63537) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_label() != 17010 { + if (uniffi_cove_checksum_method_confirmedtransaction_label() != 17010) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_sent_and_received() != 3525 { + if (uniffi_cove_checksum_method_confirmedtransaction_sent_and_received() != 3525) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_database_global_config() != 4476 { + if (uniffi_cove_checksum_method_database_global_config() != 4476) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_database_unsigned_transactions() != 8913 { + if (uniffi_cove_checksum_method_database_unsigned_transactions() != 8913) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_database_wallets() != 38115 { + if (uniffi_cove_checksum_method_database_wallets() != 38115) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerate_sat_per_vb() != 31119 { + if (uniffi_cove_checksum_method_feerate_sat_per_vb() != 31119) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_duration() != 58541 { + if (uniffi_cove_checksum_method_feerateoption_duration() != 58541) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_fee_rate() != 56298 { + if (uniffi_cove_checksum_method_feerateoption_fee_rate() != 56298) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_fee_speed() != 22536 { + if (uniffi_cove_checksum_method_feerateoption_fee_speed() != 22536) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_is_equal() != 48538 { + if (uniffi_cove_checksum_method_feerateoption_is_equal() != 48538) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_sat_per_vb() != 60748 { + if (uniffi_cove_checksum_method_feerateoption_sat_per_vb() != 60748) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_duration() != 26593 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_duration() != 26593) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate() != 14029 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate() != 14029) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate_options() != 29806 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate_options() != 29806) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_speed() != 32155 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_speed() != 32155) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_is_equal() != 47764 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_is_equal() != 47764) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_sat_per_vb() != 40506 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_sat_per_vb() != 40506) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_total_fee() != 40202 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_total_fee() != 40202) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptions_fast() != 29009 { + if (uniffi_cove_checksum_method_feerateoptions_fast() != 29009) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptions_medium() != 5747 { + if (uniffi_cove_checksum_method_feerateoptions_medium() != 5747) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptions_slow() != 58269 { + if (uniffi_cove_checksum_method_feerateoptions_slow() != 58269) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionswithtotalfee_fast() != 15779 { + if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_fast() != 15779) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionswithtotalfee_fee_rate_options() != 7503 { + if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_fee_rate_options() != 7503) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionswithtotalfee_medium() != 444 { + if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_medium() != 444) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionswithtotalfee_slow() != 1762 { + if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_slow() != 1762) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_dispatch() != 48712 { + if (uniffi_cove_checksum_method_ffiapp_dispatch() != 48712) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_fees() != 44559 { + if (uniffi_cove_checksum_method_ffiapp_fees() != 44559) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_go_to_selected_wallet() != 36820 { + if (uniffi_cove_checksum_method_ffiapp_go_to_selected_wallet() != 36820) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_has_wallets() != 3792 { + if (uniffi_cove_checksum_method_ffiapp_has_wallets() != 3792) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_init_on_start() != 44630 { + if (uniffi_cove_checksum_method_ffiapp_init_on_start() != 44630) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_listen_for_updates() != 48795 { + if (uniffi_cove_checksum_method_ffiapp_listen_for_updates() != 48795) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route() != 16043 { + if (uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route() != 16043) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route_after() != 14335 { + if (uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route_after() != 14335) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_network() != 26747 { + if (uniffi_cove_checksum_method_ffiapp_network() != 26747) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_num_wallets() != 28903 { + if (uniffi_cove_checksum_method_ffiapp_num_wallets() != 28903) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_prices() != 58350 { + if (uniffi_cove_checksum_method_ffiapp_prices() != 58350) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_reset_default_route_to() != 40613 { + if (uniffi_cove_checksum_method_ffiapp_reset_default_route_to() != 40613) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_select_wallet() != 4478 { + if (uniffi_cove_checksum_method_ffiapp_select_wallet() != 4478) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_state() != 19551 { + if (uniffi_cove_checksum_method_ffiapp_state() != 19551) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_data_from_records() != 32962 { + if (uniffi_cove_checksum_method_ffinfcreader_data_from_records() != 32962) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_is_resumeable() != 21759 { + if (uniffi_cove_checksum_method_ffinfcreader_is_resumeable() != 21759) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_is_started() != 956 { + if (uniffi_cove_checksum_method_ffinfcreader_is_started() != 956) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_message_info() != 7402 { + if (uniffi_cove_checksum_method_ffinfcreader_message_info() != 7402) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_parse() != 39581 { + if (uniffi_cove_checksum_method_ffinfcreader_parse() != 39581) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_string_from_record() != 60818 { + if (uniffi_cove_checksum_method_ffinfcreader_string_from_record() != 60818) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_filehandler_read() != 31508 { + if (uniffi_cove_checksum_method_filehandler_read() != 31508) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_fingerprint_as_lowercase() != 25321 { + if (uniffi_cove_checksum_method_fingerprint_as_lowercase() != 25321) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_fingerprint_as_uppercase() != 11522 { + if (uniffi_cove_checksum_method_fingerprint_as_uppercase() != 11522) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_clear_selected_wallet() != 22146 { + if (uniffi_cove_checksum_method_globalconfigtable_clear_selected_wallet() != 22146) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_color_scheme() != 18859 { + if (uniffi_cove_checksum_method_globalconfigtable_color_scheme() != 18859) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_delete() != 13364 { + if (uniffi_cove_checksum_method_globalconfigtable_delete() != 13364) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_get() != 52128 { + if (uniffi_cove_checksum_method_globalconfigtable_get() != 52128) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_select_wallet() != 52001 { + if (uniffi_cove_checksum_method_globalconfigtable_select_wallet() != 52001) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_selected_network() != 7657 { + if (uniffi_cove_checksum_method_globalconfigtable_selected_network() != 7657) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_selected_node() != 31353 { + if (uniffi_cove_checksum_method_globalconfigtable_selected_node() != 31353) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_selected_wallet() != 51568 { + if (uniffi_cove_checksum_method_globalconfigtable_selected_wallet() != 51568) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_set() != 31033 { + if (uniffi_cove_checksum_method_globalconfigtable_set() != 31033) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_set_color_scheme() != 24086 { + if (uniffi_cove_checksum_method_globalconfigtable_set_color_scheme() != 24086) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_set_selected_network() != 34312 { + if (uniffi_cove_checksum_method_globalconfigtable_set_selected_network() != 34312) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_set_selected_node() != 35090 { + if (uniffi_cove_checksum_method_globalconfigtable_set_selected_node() != 35090) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalflagtable_get() != 42810 { + if (uniffi_cove_checksum_method_globalflagtable_get() != 42810) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalflagtable_set() != 23016 { + if (uniffi_cove_checksum_method_globalflagtable_set() != 23016) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalflagtable_toggle_bool_config() != 12062 { + if (uniffi_cove_checksum_method_globalflagtable_toggle_bool_config() != 12062) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_headericonpresenter_background_color() != 61819 { + if (uniffi_cove_checksum_method_headericonpresenter_background_color() != 61819) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_headericonpresenter_icon_color() != 52203 { + if (uniffi_cove_checksum_method_headericonpresenter_icon_color() != 52203) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_headericonpresenter_ring_color() != 23010 { + if (uniffi_cove_checksum_method_headericonpresenter_ring_color() != 23010) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_mnemonic_all_words() != 45039 { + if (uniffi_cove_checksum_method_mnemonic_all_words() != 45039) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_mnemonic_words() != 35319 { + if (uniffi_cove_checksum_method_mnemonic_words() != 35319) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_add_part() != 11179 { + if (uniffi_cove_checksum_method_multiqr_add_part() != 11179) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_get_grouped_words() != 21029 { + if (uniffi_cove_checksum_method_multiqr_get_grouped_words() != 21029) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_handle_scan_result() != 3857 { + if (uniffi_cove_checksum_method_multiqr_handle_scan_result() != 3857) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_is_bbqr() != 22296 { + if (uniffi_cove_checksum_method_multiqr_is_bbqr() != 22296) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_is_seed_qr() != 10256 { + if (uniffi_cove_checksum_method_multiqr_is_seed_qr() != 10256) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_total_parts() != 51119 { + if (uniffi_cove_checksum_method_multiqr_total_parts() != 51119) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ndefrecordreader_id() != 37849 { + if (uniffi_cove_checksum_method_ndefrecordreader_id() != 37849) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ndefrecordreader_type_() != 27060 { + if (uniffi_cove_checksum_method_ndefrecordreader_type_() != 27060) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nfcconst_bytes_per_block() != 35854 { + if (uniffi_cove_checksum_method_nfcconst_bytes_per_block() != 35854) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nfcconst_number_of_blocks_per_chunk() != 48258 { + if (uniffi_cove_checksum_method_nfcconst_number_of_blocks_per_chunk() != 48258) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nfcconst_total_bytes_per_chunk() != 41799 { + if (uniffi_cove_checksum_method_nfcconst_total_bytes_per_chunk() != 41799) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_check_and_save_node() != 48519 { + if (uniffi_cove_checksum_method_nodeselector_check_and_save_node() != 48519) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_check_selected_node() != 19872 { + if (uniffi_cove_checksum_method_nodeselector_check_selected_node() != 19872) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_node_list() != 23402 { + if (uniffi_cove_checksum_method_nodeselector_node_list() != 23402) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_parse_custom_node() != 54190 { + if (uniffi_cove_checksum_method_nodeselector_parse_custom_node() != 54190) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_select_preset_node() != 36330 { + if (uniffi_cove_checksum_method_nodeselector_select_preset_node() != 36330) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_selected_node() != 29849 { + if (uniffi_cove_checksum_method_nodeselector_selected_node() != 29849) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_psbt_fee() != 37973 { + if (uniffi_cove_checksum_method_psbt_fee() != 37973) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_psbt_tx_id() != 61047 { + if (uniffi_cove_checksum_method_psbt_tx_id() != 61047) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_psbt_weight() != 5696 { + if (uniffi_cove_checksum_method_psbt_weight() != 5696) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_cold_wallet_import() != 14120 { + if (uniffi_cove_checksum_method_routefactory_cold_wallet_import() != 14120) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_hot_wallet() != 7846 { + if (uniffi_cove_checksum_method_routefactory_hot_wallet() != 7846) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_hot_wallet_import_from_scan() != 63262 { + if (uniffi_cove_checksum_method_routefactory_hot_wallet_import_from_scan() != 63262) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_is_same_parent_route() != 43168 { + if (uniffi_cove_checksum_method_routefactory_is_same_parent_route() != 43168) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_load_and_reset_to() != 41201 { + if (uniffi_cove_checksum_method_routefactory_load_and_reset_to() != 41201) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_load_and_reset_to_after() != 39743 { + if (uniffi_cove_checksum_method_routefactory_load_and_reset_to_after() != 39743) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_new_hot_wallet() != 51032 { + if (uniffi_cove_checksum_method_routefactory_new_hot_wallet() != 51032) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_new_wallet_select() != 21343 { + if (uniffi_cove_checksum_method_routefactory_new_wallet_select() != 21343) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_qr_import() != 17980 { + if (uniffi_cove_checksum_method_routefactory_qr_import() != 17980) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_secret_words() != 64915 { + if (uniffi_cove_checksum_method_routefactory_secret_words() != 64915) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_send() != 62083 { + if (uniffi_cove_checksum_method_routefactory_send() != 62083) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_send_confirm() != 14299 { + if (uniffi_cove_checksum_method_routefactory_send_confirm() != 14299) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_send_hardware_export() != 34735 { + if (uniffi_cove_checksum_method_routefactory_send_hardware_export() != 34735) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_send_set_amount() != 33578 { + if (uniffi_cove_checksum_method_routefactory_send_set_amount() != 33578) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustimportwalletviewmodel_dispatch() != 54003 { + if (uniffi_cove_checksum_method_rustimportwalletviewmodel_dispatch() != 54003) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustimportwalletviewmodel_import_wallet() != 22388 { + if (uniffi_cove_checksum_method_rustimportwalletviewmodel_import_wallet() != 22388) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustimportwalletviewmodel_listen_for_updates() != 3156 { + if (uniffi_cove_checksum_method_rustimportwalletviewmodel_listen_for_updates() != 3156) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words() != 43976 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words() != 43976) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words_grouped() != 45204 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words_grouped() != 45204) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_card_indexes() != 33165 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_card_indexes() != 33165) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_dispatch() != 8422 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_dispatch() != 8422) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_get_state() != 22652 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_get_state() != 22652) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_listen_for_updates() != 25486 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_listen_for_updates() != 25486) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_number_of_words_count() != 47399 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_number_of_words_count() != 47399) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_save_wallet() != 45300 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_save_wallet() != 45300) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_address_at() != 38561 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_address_at() != 38561) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_amount_in_fiat() != 53684 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_amount_in_fiat() != 53684) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_balance() != 10059 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_balance() != 10059) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_balance_in_fiat() != 18683 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_balance_in_fiat() != 18683) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction() != 22450 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction() != 22450) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction_with_fee_rate() != 28947 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction_with_fee_rate() != 28947) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_current_block_height() != 59265 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_current_block_height() != 59265) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_delete_unsigned_transaction() != 60038 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_delete_unsigned_transaction() != 60038) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_delete_wallet() != 30016 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_delete_wallet() != 30016) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_dispatch() != 35864 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_dispatch() != 35864) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_display_amount() != 59974 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_display_amount() != 59974) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_display_fiat_amount() != 40818 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_display_fiat_amount() != 40818) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_display_sent_and_received_amount() != 30788 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_display_sent_and_received_amount() != 30788) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options() != 44766 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options() != 44766) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options_with_total_fee() != 22160 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options_with_total_fee() != 22160) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_fees() != 36596 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_fees() != 36596) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_fingerprint() != 38447 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_fingerprint() != 38447) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_force_update_height() != 17709 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_force_update_height() != 17709) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_force_wallet_scan() != 47434 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_force_wallet_scan() != 47434) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_get_confirm_details() != 13990 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_get_confirm_details() != 13990) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_get_fee_options() != 47126 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_get_fee_options() != 47126) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_get_max_send_amount() != 1655 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_get_max_send_amount() != 1655) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_get_unsigned_transactions() != 23375 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_get_unsigned_transactions() != 23375) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_listen_for_updates() != 31064 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_listen_for_updates() != 31064) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_mark_wallet_as_verified() != 64306 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_mark_wallet_as_verified() != 64306) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_next_address() != 23410 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_next_address() != 23410) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations() != 21053 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations() != 21053) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations_fmt() != 20695 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations_fmt() != 20695) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_save_unsigned_transaction() != 20775 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_save_unsigned_transaction() != 20775) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_sent_and_received_fiat() != 25413 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_sent_and_received_fiat() != 25413) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_set_wallet_metadata() != 16289 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_set_wallet_metadata() != 16289) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_start_wallet_scan() != 46525 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_start_wallet_scan() != 46525) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_switch_to_different_wallet_address_type() != 46868 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_switch_to_different_wallet_address_type() != 46868) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_transaction_details() != 62006 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_transaction_details() != 62006) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_wallet_metadata() != 44518 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_wallet_metadata() != 44518) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_word_validator() != 32309 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_word_validator() != 32309) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_seedqr_get_words() != 64188 { + if (uniffi_cove_checksum_method_seedqr_get_words() != 64188) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_seedqr_grouped_plain_words() != 35569 { + if (uniffi_cove_checksum_method_seedqr_grouped_plain_words() != 35569) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_amount() != 29581 { + if (uniffi_cove_checksum_method_sentandreceived_amount() != 29581) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_amount_fmt() != 55767 { + if (uniffi_cove_checksum_method_sentandreceived_amount_fmt() != 55767) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_direction() != 63307 { + if (uniffi_cove_checksum_method_sentandreceived_direction() != 63307) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_label() != 28947 { + if (uniffi_cove_checksum_method_sentandreceived_label() != 28947) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_received() != 12400 { + if (uniffi_cove_checksum_method_sentandreceived_received() != 12400) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_sent() != 29124 { + if (uniffi_cove_checksum_method_sentandreceived_sent() != 29124) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_address() != 31151 { + if (uniffi_cove_checksum_method_transactiondetails_address() != 31151) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_address_spaced_out() != 61966 { + if (uniffi_cove_checksum_method_transactiondetails_address_spaced_out() != 61966) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_amount() != 16978 { + if (uniffi_cove_checksum_method_transactiondetails_amount() != 16978) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_amount_fiat() != 34436 { + if (uniffi_cove_checksum_method_transactiondetails_amount_fiat() != 34436) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_amount_fiat_fmt() != 60211 { + if (uniffi_cove_checksum_method_transactiondetails_amount_fiat_fmt() != 60211) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_amount_fmt() != 3569 { + if (uniffi_cove_checksum_method_transactiondetails_amount_fmt() != 3569) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_block_number() != 61262 { + if (uniffi_cove_checksum_method_transactiondetails_block_number() != 61262) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_block_number_fmt() != 52006 { + if (uniffi_cove_checksum_method_transactiondetails_block_number_fmt() != 52006) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_confirmation_date_time() != 54859 { + if (uniffi_cove_checksum_method_transactiondetails_confirmation_date_time() != 54859) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_fee_fiat_fmt() != 62198 { + if (uniffi_cove_checksum_method_transactiondetails_fee_fiat_fmt() != 62198) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_fee_fmt() != 46565 { + if (uniffi_cove_checksum_method_transactiondetails_fee_fmt() != 46565) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_is_confirmed() != 54031 { + if (uniffi_cove_checksum_method_transactiondetails_is_confirmed() != 54031) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_is_received() != 54839 { + if (uniffi_cove_checksum_method_transactiondetails_is_received() != 54839) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_is_sent() != 7556 { + if (uniffi_cove_checksum_method_transactiondetails_is_sent() != 7556) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fiat_fmt() != 62275 { + if (uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fiat_fmt() != 62275) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fmt() != 54855 { + if (uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fmt() != 54855) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_transaction_url() != 12235 { + if (uniffi_cove_checksum_method_transactiondetails_transaction_url() != 12235) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_txid_as_hash_string() != 50846 { + if (uniffi_cove_checksum_method_txid_as_hash_string() != 50846) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_txid_is_equal() != 5460 { + if (uniffi_cove_checksum_method_txid_is_equal() != 5460) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_fiat_amount() != 59016 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_fiat_amount() != 59016) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_id() != 59175 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_id() != 59175) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_label() != 12913 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_label() != 12913) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_last_seen() != 29089 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_last_seen() != 29089) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_sent_and_received() != 24593 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_sent_and_received() != 24593) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_details() != 5504 { + if (uniffi_cove_checksum_method_unsignedtransaction_details() != 5504) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_id() != 29504 { + if (uniffi_cove_checksum_method_unsignedtransaction_id() != 29504) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_label() != 12609 { + if (uniffi_cove_checksum_method_unsignedtransaction_label() != 12609) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_sending_amount() != 15688 { + if (uniffi_cove_checksum_method_unsignedtransaction_sending_amount() != 15688) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_spending_amount() != 36292 { + if (uniffi_cove_checksum_method_unsignedtransaction_spending_amount() != 36292) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionrecord_confirm_details() != 25286 { + if (uniffi_cove_checksum_method_unsignedtransactionrecord_confirm_details() != 25286) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionrecord_created_at() != 62407 { + if (uniffi_cove_checksum_method_unsignedtransactionrecord_created_at() != 62407) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionrecord_tx_id() != 61639 { + if (uniffi_cove_checksum_method_unsignedtransactionrecord_tx_id() != 61639) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionrecord_wallet_id() != 32815 { + if (uniffi_cove_checksum_method_unsignedtransactionrecord_wallet_id() != 32815) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionstable_gettx() != 8611 { + if (uniffi_cove_checksum_method_unsignedtransactionstable_gettx() != 8611) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionstable_gettxthrow() != 32085 { + if (uniffi_cove_checksum_method_unsignedtransactionstable_gettxthrow() != 32085) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wallet_id() != 39072 { + if (uniffi_cove_checksum_method_wallet_id() != 39072) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_walletstable_all() != 19569 { + if (uniffi_cove_checksum_method_walletstable_all() != 19569) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_walletstable_is_empty() != 57763 { + if (uniffi_cove_checksum_method_walletstable_is_empty() != 57763) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_walletstable_len() != 35149 { + if (uniffi_cove_checksum_method_walletstable_len() != 35149) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wordvalidator_grouped_words() != 32035 { + if (uniffi_cove_checksum_method_wordvalidator_grouped_words() != 32035) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wordvalidator_invalid_words_string() != 7159 { + if (uniffi_cove_checksum_method_wordvalidator_invalid_words_string() != 7159) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wordvalidator_is_all_words_valid() != 17704 { + if (uniffi_cove_checksum_method_wordvalidator_is_all_words_valid() != 17704) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wordvalidator_is_valid_word_group() != 6393 { + if (uniffi_cove_checksum_method_wordvalidator_is_valid_word_group() != 6393) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_address_from_string() != 47046 { + if (uniffi_cove_checksum_constructor_address_from_string() != 47046) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_address_preview_new() != 14015 { + if (uniffi_cove_checksum_constructor_address_preview_new() != 14015) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_addresswithnetwork_new() != 36898 { + if (uniffi_cove_checksum_constructor_addresswithnetwork_new() != 36898) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_amount_from_sat() != 58319 { + if (uniffi_cove_checksum_constructor_amount_from_sat() != 58319) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_amount_one_btc() != 59586 { + if (uniffi_cove_checksum_constructor_amount_one_btc() != 59586) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_amount_one_sat() != 58118 { + if (uniffi_cove_checksum_constructor_amount_one_sat() != 58118) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_bip39autocomplete_new() != 41839 { + if (uniffi_cove_checksum_constructor_bip39autocomplete_new() != 41839) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_bip39wordspecificautocomplete_new() != 49814 { + if (uniffi_cove_checksum_constructor_bip39wordspecificautocomplete_new() != 49814) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_bitcointransaction_new() != 54397 { + if (uniffi_cove_checksum_constructor_bitcointransaction_new() != 54397) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_bitcointransaction_tryfromdata() != 16116 { + if (uniffi_cove_checksum_constructor_bitcointransaction_tryfromdata() != 16116) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_boxedroute_new() != 62486 { + if (uniffi_cove_checksum_constructor_boxedroute_new() != 62486) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_confirmdetails_preview_new() != 31485 { + if (uniffi_cove_checksum_constructor_confirmdetails_preview_new() != 31485) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_database_new() != 41458 { + if (uniffi_cove_checksum_constructor_database_new() != 41458) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_feerate_from_sat_per_vb() != 58499 { + if (uniffi_cove_checksum_constructor_feerate_from_sat_per_vb() != 58499) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_feerateoption_new() != 49009 { + if (uniffi_cove_checksum_constructor_feerateoption_new() != 49009) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_feerateoptions_preview_new() != 9368 { + if (uniffi_cove_checksum_constructor_feerateoptions_preview_new() != 9368) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_feerateoptionswithtotalfee_preview_new() != 15548 { + if (uniffi_cove_checksum_constructor_feerateoptionswithtotalfee_preview_new() != 15548) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_ffiapp_new() != 11955 { + if (uniffi_cove_checksum_constructor_ffiapp_new() != 11955) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_ffinfcreader_new() != 27409 { + if (uniffi_cove_checksum_constructor_ffinfcreader_new() != 27409) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_filehandler_new() != 50695 { + if (uniffi_cove_checksum_constructor_filehandler_new() != 50695) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_fingerprint_new() != 20831 { + if (uniffi_cove_checksum_constructor_fingerprint_new() != 20831) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_headericonpresenter_new() != 10425 { + if (uniffi_cove_checksum_constructor_headericonpresenter_new() != 10425) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_keychain_new() != 34449 { + if (uniffi_cove_checksum_constructor_keychain_new() != 34449) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_mnemonic_new() != 56597 { + if (uniffi_cove_checksum_constructor_mnemonic_new() != 56597) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_mnemonic_preview() != 3882 { + if (uniffi_cove_checksum_constructor_mnemonic_preview() != 3882) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_multiqr_new_from_string() != 2028 { + if (uniffi_cove_checksum_constructor_multiqr_new_from_string() != 2028) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_multiqr_try_new() != 18617 { + if (uniffi_cove_checksum_constructor_multiqr_try_new() != 18617) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_multiqr_try_new_from_data() != 36957 { + if (uniffi_cove_checksum_constructor_multiqr_try_new_from_data() != 36957) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_ndefrecordreader_new() != 36791 { + if (uniffi_cove_checksum_constructor_ndefrecordreader_new() != 36791) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_nfcconst_new() != 22455 { + if (uniffi_cove_checksum_constructor_nfcconst_new() != 22455) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_nodeselector_new() != 61659 { + if (uniffi_cove_checksum_constructor_nodeselector_new() != 61659) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_psbt_new() != 25544 { + if (uniffi_cove_checksum_constructor_psbt_new() != 25544) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_routefactory_new() != 4959 { + if (uniffi_cove_checksum_constructor_routefactory_new() != 4959) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustimportwalletviewmodel_new() != 30630 { + if (uniffi_cove_checksum_constructor_rustimportwalletviewmodel_new() != 30630) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustpendingwalletviewmodel_new() != 47075 { + if (uniffi_cove_checksum_constructor_rustpendingwalletviewmodel_new() != 47075) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustwalletviewmodel_new() != 37675 { + if (uniffi_cove_checksum_constructor_rustwalletviewmodel_new() != 37675) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustwalletviewmodel_preview_new_wallet() != 37026 { + if (uniffi_cove_checksum_constructor_rustwalletviewmodel_preview_new_wallet() != 37026) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustwalletviewmodel_try_new_from_xpub() != 6171 { + if (uniffi_cove_checksum_constructor_rustwalletviewmodel_try_new_from_xpub() != 6171) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_seedqr_new_from_data() != 13640 { + if (uniffi_cove_checksum_constructor_seedqr_new_from_data() != 13640) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_seedqr_new_from_str() != 6520 { + if (uniffi_cove_checksum_constructor_seedqr_new_from_str() != 6520) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_received() != 6979 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_received() != 6979) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_sent() != 20500 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_sent() != 20500) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_new_confirmed() != 2385 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_new_confirmed() != 2385) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_pending_received() != 1731 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_pending_received() != 1731) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_pending_sent() != 378 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_pending_sent() != 378) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_unsignedtransaction_preview_new() != 1909 { + if (uniffi_cove_checksum_constructor_unsignedtransaction_preview_new() != 1909) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_wallet_new_from_export() != 11192 { + if (uniffi_cove_checksum_constructor_wallet_new_from_export() != 11192) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_wallet_new_from_xpub() != 31726 { + if (uniffi_cove_checksum_constructor_wallet_new_from_xpub() != 31726) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_wallet_previewnewwallet() != 56877 { + if (uniffi_cove_checksum_constructor_wallet_previewnewwallet() != 56877) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffireconcile_reconcile() != 54238 { + if (uniffi_cove_checksum_method_ffireconcile_reconcile() != 54238) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_importwalletviewmodelreconciler_reconcile() != 63459 { + if (uniffi_cove_checksum_method_importwalletviewmodelreconciler_reconcile() != 63459) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_keychainaccess_save() != 63039 { + if (uniffi_cove_checksum_method_keychainaccess_save() != 63039) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_keychainaccess_get() != 3155 { + if (uniffi_cove_checksum_method_keychainaccess_get() != 3155) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_keychainaccess_delete() != 11466 { + if (uniffi_cove_checksum_method_keychainaccess_delete() != 11466) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_pendingwalletviewmodelreconciler_reconcile() != 37929 { + if (uniffi_cove_checksum_method_pendingwalletviewmodelreconciler_reconcile() != 37929) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_walletviewmodelreconciler_reconcile() != 28159 { + if (uniffi_cove_checksum_method_walletviewmodelreconciler_reconcile() != 28159) { return InitializationResult.apiChecksumMismatch } @@ -19217,4 +21711,4 @@ private func uniffiEnsureInitialized() { } } -// swiftlint:enable all +// swiftlint:enable all \ No newline at end of file diff --git a/ios/Cove/CoveApp.swift b/ios/Cove/CoveApp.swift index 722d0ca4..95afe465 100644 --- a/ios/Cove/CoveApp.swift +++ b/ios/Cove/CoveApp.swift @@ -26,7 +26,9 @@ struct SafeAreaInsetsKey: EnvironmentKey { guard let insets = window?.safeAreaInsets else { return EdgeInsets() } - return EdgeInsets(top: insets.top, leading: insets.left, bottom: insets.bottom, trailing: insets.right) + return EdgeInsets( + top: insets.top, leading: insets.left, bottom: insets.bottom, trailing: insets.right + ) #else return EdgeInsets() #endif @@ -344,7 +346,7 @@ struct CoveApp: App { @ViewBuilder var BodyView: some View { - ZStack { + SidebarContainer { NavigationStack(path: $model.router.routes) { RouteView(model: model) .navigationDestination( @@ -369,9 +371,8 @@ struct CoveApp: App { } } .tint(routeToTint) - - SidebarView(isShowing: $model.isSidebarVisible, currentRoute: model.currentRoute) } + .environment(model) } var routeToTint: Color { diff --git a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletContainer.swift b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletContainer.swift index 7dfa6d7a..76ea9841 100644 --- a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletContainer.swift +++ b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletContainer.swift @@ -32,15 +32,21 @@ struct SelectedWalletContainer: View { if let model { SelectedWalletScreen(model: model) .background( - model.loadState == .loading ? - LinearGradient(colors: [ - .black.opacity(colorScheme == .dark ? 0.9 : 0), - .black.opacity(colorScheme == .dark ? 0.9 : 0), - ], startPoint: .top, endPoint: .bottom) : - LinearGradient(stops: [ - .init(color: .midnightBlue, location: 0.45), - .init(color: colorScheme == .dark ? .black.opacity(0.9) : .clear, location: 0.55), - ], startPoint: .top, endPoint: .bottom) + model.loadState == .loading + ? LinearGradient( + colors: [ + .black.opacity(colorScheme == .dark ? 0.9 : 0), + .black.opacity(colorScheme == .dark ? 0.9 : 0), + ], startPoint: .top, endPoint: .bottom) + : LinearGradient( + stops: [ + .init( + color: .midnightBlue, + location: 0.20), + .init( + color: colorScheme == .dark ? .black.opacity(0.9) : .white, + location: 0.20), + ], startPoint: .top, endPoint: .bottom) ) .background(Color.white) diff --git a/ios/Cove/Flows/SelectedWalletFlow/WalletBalanceHeaderView.swift b/ios/Cove/Flows/SelectedWalletFlow/WalletBalanceHeaderView.swift index 4e9212ec..59a7a399 100644 --- a/ios/Cove/Flows/SelectedWalletFlow/WalletBalanceHeaderView.swift +++ b/ios/Cove/Flows/SelectedWalletFlow/WalletBalanceHeaderView.swift @@ -162,7 +162,7 @@ struct WalletBalanceHeaderView: View { .frame(maxWidth: .infinity) .brightness(0.1) ) - .background(Color.midnightBlue.opacity(0.98)) + .background(Color.midnightBlue) .onTapGesture { model.dispatch(action: .toggleFiatBtcPrimarySecondary) } diff --git a/ios/Cove/SidebarContainer.swift b/ios/Cove/SidebarContainer.swift new file mode 100644 index 00000000..2c656c43 --- /dev/null +++ b/ios/Cove/SidebarContainer.swift @@ -0,0 +1,96 @@ +// +// SidebarContainer.swift +// Cove +// +// Created by Praveen Perera on 11/28/24. +// + +import SwiftUI + +struct SidebarContainer: View { + @Environment(MainViewModel.self) private var app + + @ViewBuilder + let content: Content + + // sidebar + let sideBarWidth: CGFloat = 280 + @State private var offset: CGFloat = 0 + @GestureState private var gestureOffset: CGFloat = 0 + + private func onDragEnded(value: DragGesture.Value) { + let threshhold = 0.5 + let translation = value.translation.width + + if translation < 0, !app.isSidebarVisible { return } + if translation > 0, app.isSidebarVisible { return } + + if translation > 0 { + offset = translation + } + + if translation < 0 { + offset = sideBarWidth + translation + } + + withAnimation { + if translation > sideBarWidth * threshhold { + offset = sideBarWidth + app.isSidebarVisible = true + } else { + offset = 0 + app.isSidebarVisible = false + } + } + } + + var body: some View { + ZStack(alignment: .leading) { + content + .ignoresSafeArea(.all) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .offset(x: offset + gestureOffset) + + SidebarView(currentRoute: app.currentRoute) + .frame(width: sideBarWidth) + .offset(x: -sideBarWidth) + .offset(x: offset + gestureOffset) + } + .gesture( + DragGesture() + .updating($gestureOffset) { value, state, _ in + // closed + if !app.isSidebarVisible, + value.translation.width > 0, + value.translation.width < sideBarWidth + { + state = value.translation.width * 0.90 + } + + // open + if app.isSidebarVisible, + value.translation.width < 0, + abs(value.translation.width) < sideBarWidth + { + state = value.translation.width * 0.90 + } + } + .onEnded(onDragEnded) + ) + .onChange(of: app.isSidebarVisible) { _, isVisible in + withAnimation { + offset = isVisible ? sideBarWidth : 0 + } + } + .ignoresSafeArea(.all) + } +} + +#Preview { + SidebarContainer { + VStack {} + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(LinearGradient(colors: [Color.red, Color.green], startPoint: .leading, endPoint: .trailing)) + } + .environment(MainViewModel()) +} diff --git a/ios/Cove/Views/SidebarView.swift b/ios/Cove/Views/SidebarView.swift index 8681e56d..3581c1ea 100644 --- a/ios/Cove/Views/SidebarView.swift +++ b/ios/Cove/Views/SidebarView.swift @@ -11,14 +11,8 @@ struct SidebarView: View { @Environment(MainViewModel.self) private var app @Environment(\.navigate) private var navigate - @Binding var isShowing: Bool - let currentRoute: Route - @GestureState private var dragState = CGSize.zero - @State private var sidebarOffset = -1 * UIScreen.main.bounds.width - private let screenWidth = UIScreen.main.bounds.width - func setForeground(_ route: Route) -> LinearGradient { if RouteFactory().isSameParentRoute(route: route, routeToCheck: currentRoute) { LinearGradient( @@ -41,109 +35,51 @@ struct SidebarView: View { } var body: some View { - ZStack { - if sidebarOffset == 0 { - Rectangle() - .ignoresSafeArea() - .foregroundColor(.black) - .opacity(0.95) - .onTapGesture { - withAnimation { - isShowing = false - } - } - } + HStack(alignment: .top) { + VStack(spacing: 40) { + Spacer() - HStack(alignment: .top) { - VStack(spacing: 40) { - Spacer() + Button(action: { goTo(RouteFactory().newWalletSelect()) }) { + Label("Add Wallet", systemImage: "wallet.pass.fill") + .foregroundStyle(.white) + .font(.headline) + .background(Color.blue) + .cornerRadius(10) + } - Button(action: { goTo(RouteFactory().newWalletSelect()) }) { - Label("Add Wallet", systemImage: "wallet.pass.fill") + if app.numberOfWallets > 1 { + Button(action: { goTo(Route.listWallets) }) { + Label("Change Wallet", systemImage: "arrow.uturn.right.square.fill") .foregroundStyle(.white) .font(.headline) - .frame(minWidth: screenWidth * 0.55, minHeight: 45) .background(Color.blue) .cornerRadius(10) } - - if app.numberOfWallets > 1 { - Button(action: { goTo(Route.listWallets) }) { - Label("Change Wallet", systemImage: "arrow.uturn.right.square.fill") - .foregroundStyle(.white) - .font(.headline) - .frame(minWidth: screenWidth * 0.55, minHeight: 45) - .background(Color.blue) - .cornerRadius(10) - } - } - - Spacer() - HStack(alignment: .center) { - Button( - action: { goTo(.settings) }, - label: { - HStack { - Image(systemName: "gear") - .foregroundStyle(Color.white.gradient.opacity(0.5)) - - Text("Settings") - .foregroundStyle(Color.white.gradient) - } - } - ) - .frame(maxWidth: screenWidth * 0.75) - } } - .frame(maxWidth: screenWidth * 0.75, maxHeight: .infinity, alignment: .leading) - .background( - LinearGradient( - gradient: - Gradient(colors: [Color.blue.opacity(1), Color.blue.opacity(0.75)]), - startPoint: .bottomTrailing, endPoint: .topLeading - ) - ) - Spacer() - } - .transition(.move(edge: .leading)) - } - .gesture( - DragGesture() - .updating($dragState) { value, state, _ in - state = CGSize(width: value.translation.width, height: 0) - } - .onEnded { gesture in - let dragThreshold: CGFloat = 100 - let draggedRatio = -gesture.translation.width / screenWidth - withAnimation(.spring()) { - if draggedRatio > 0.5 - || gesture.predictedEndTranslation.width < -dragThreshold - { - sidebarOffset = -screenWidth - isShowing = false - } else { - sidebarOffset = 0 - isShowing = true + Spacer() + HStack(alignment: .center) { + Button( + action: { goTo(.settings) }, + label: { + HStack { + Image(systemName: "gear") + .foregroundStyle(Color.white.gradient.opacity(0.5)) + + Text("Settings") + .foregroundStyle(Color.white.gradient) + } } - } + ) } - ) - .onChange(of: isShowing) { _, newValue in - withAnimation { - sidebarOffset = newValue ? 0 : -1 * screenWidth } } - .onAppear { - if isShowing { - sidebarOffset = 0 - } - } - .offset(x: sidebarOffset) + .frame(maxWidth: .infinity) + .background(.blue) } func goTo(_ route: Route) { - isShowing = false + app.isSidebarVisible = false if !app.hasWallets, route == Route.newWallet(.select) { return app.resetRoute(to: RouteFactory().newWalletSelect()) @@ -154,9 +90,7 @@ struct SidebarView: View { } #Preview { - ZStack { - SidebarView(isShowing: Binding.constant(true), currentRoute: Route.listWallets) - } - .environment(MainViewModel()) - .background(Color.white) + SidebarView(currentRoute: Route.listWallets) + .environment(MainViewModel()) + .background(Color.white) } diff --git a/rust/src/wallet/metadata.rs b/rust/src/wallet/metadata.rs index 49590e2e..16ad3635 100644 --- a/rust/src/wallet/metadata.rs +++ b/rust/src/wallet/metadata.rs @@ -138,7 +138,7 @@ impl WalletMetadata { Self { id: WalletId::new(), name: name.into(), - color: WalletColor::Blue, + color: WalletColor::random(), master_fingerprint: Some(fingerprint.into()), verified: false, network, @@ -195,7 +195,7 @@ impl WalletMetadata { id: WalletId::preview_new(), name: "Test Wallet".to_string(), master_fingerprint: Some(Arc::new(Fingerprint::default())), - color: WalletColor::Blue, + color: WalletColor::random(), verified: false, network: Network::Bitcoin, performed_full_scan: false, From 7c325abb624c2935b733760f31ee12ca75fae552 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Thu, 28 Nov 2024 23:33:20 -0600 Subject: [PATCH 02/15] Clamp the total offset to 0 and sidebar width --- ios/Cove/SidebarContainer.swift | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/ios/Cove/SidebarContainer.swift b/ios/Cove/SidebarContainer.swift index 2c656c43..a6b55c49 100644 --- a/ios/Cove/SidebarContainer.swift +++ b/ios/Cove/SidebarContainer.swift @@ -44,17 +44,38 @@ struct SidebarContainer: View { } } + var openPercentage: Double { + (offset + gestureOffset) / sideBarWidth + } + + var totalOffset: CGFloat { + min(max(offset + gestureOffset, 0), sideBarWidth) + } + var body: some View { ZStack(alignment: .leading) { - content - .ignoresSafeArea(.all) - .frame(maxWidth: .infinity, maxHeight: .infinity) - .offset(x: offset + gestureOffset) + ZStack { + content + .ignoresSafeArea(.all) + .frame(maxWidth: .infinity, maxHeight: .infinity) + + if app.isSidebarVisible || gestureOffset > 0 || offset > 0 { + Rectangle() + .fill(Color.black) + .background(.black) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .opacity(openPercentage * 0.45) + .onTapGesture { + app.isSidebarVisible = false + } + } + } + .offset(x: totalOffset) SidebarView(currentRoute: app.currentRoute) .frame(width: sideBarWidth) .offset(x: -sideBarWidth) - .offset(x: offset + gestureOffset) + .offset(x: totalOffset) } .gesture( DragGesture() From 75e0bf5621934a79c7c63cb0b2096910835a02b9 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Thu, 28 Nov 2024 23:38:03 -0600 Subject: [PATCH 03/15] Use predictive end value to open sidebar --- ios/Cove/SidebarContainer.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/Cove/SidebarContainer.swift b/ios/Cove/SidebarContainer.swift index a6b55c49..bf004870 100644 --- a/ios/Cove/SidebarContainer.swift +++ b/ios/Cove/SidebarContainer.swift @@ -19,7 +19,7 @@ struct SidebarContainer: View { @GestureState private var gestureOffset: CGFloat = 0 private func onDragEnded(value: DragGesture.Value) { - let threshhold = 0.5 + let threshold = sideBarWidth * 0.5 let translation = value.translation.width if translation < 0, !app.isSidebarVisible { return } @@ -34,7 +34,7 @@ struct SidebarContainer: View { } withAnimation { - if translation > sideBarWidth * threshhold { + if (translation > threshold) || (value.predictedEndTranslation.width > threshold) { offset = sideBarWidth app.isSidebarVisible = true } else { From 337fff32c1163e7621afa819a7330d6eb85123d3 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 12:14:02 -0600 Subject: [PATCH 04/15] Complete new sidebar --- .../icon.imageset/Contents.json | 23 +++ .../icon.imageset/cove icon flat 1.jpg | Bin 0 -> 470124 bytes .../icon.imageset/cove icon flat 2.jpg | Bin 0 -> 470124 bytes .../icon.imageset/cove icon flat.jpg | Bin 0 -> 470124 bytes ios/Cove/Extention/WalletMetadata+Ext.swift | 8 ++ ios/Cove/SidebarContainer.swift | 14 +- ios/Cove/Views/SidebarView.swift | 136 ++++++++++++++---- rust/src/wallet.rs | 4 +- rust/src/wallet/metadata.rs | 14 +- 9 files changed, 165 insertions(+), 34 deletions(-) create mode 100644 ios/Cove/Assets.xcassets/icon.imageset/Contents.json create mode 100644 ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 1.jpg create mode 100644 ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 2.jpg create mode 100644 ios/Cove/Assets.xcassets/icon.imageset/cove icon flat.jpg diff --git a/ios/Cove/Assets.xcassets/icon.imageset/Contents.json b/ios/Cove/Assets.xcassets/icon.imageset/Contents.json new file mode 100644 index 00000000..e9ff7687 --- /dev/null +++ b/ios/Cove/Assets.xcassets/icon.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "cove icon flat.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "cove icon flat 1.jpg", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "cove icon flat 2.jpg", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 1.jpg b/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc70d52952d65a070a0524bb1111b5ee063dccf8 GIT binary patch literal 470124 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

6qb*F70pmp{= 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�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

>(qO7`eKZi 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

>IBSaIQTnx_znl|UH_n$WG|Z2>kl;dwQ*$k5 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 literal 0 HcmV?d00001 diff --git a/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 2.jpg b/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc70d52952d65a070a0524bb1111b5ee063dccf8 GIT binary patch literal 470124 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

6qb*F70pmp{= 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�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

>(qO7`eKZi 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

>IBSaIQTnx_znl|UH_n$WG|Z2>kl;dwQ*$k5 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 literal 0 HcmV?d00001 diff --git a/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat.jpg b/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc70d52952d65a070a0524bb1111b5ee063dccf8 GIT binary patch literal 470124 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

6qb*F70pmp{= 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�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

>(qO7`eKZi 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

>IBSaIQTnx_znl|UH_n$WG|Z2>kl;dwQ*$k5 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 literal 0 HcmV?d00001 diff --git a/ios/Cove/Extention/WalletMetadata+Ext.swift b/ios/Cove/Extention/WalletMetadata+Ext.swift index d6408b97..2c5c342b 100644 --- a/ios/Cove/Extention/WalletMetadata+Ext.swift +++ b/ios/Cove/Extention/WalletMetadata+Ext.swift @@ -5,4 +5,12 @@ extension WalletMetadata { var swiftColor: Color { Color(color) } + + #if DEBUG + init(_ name: String = "Test Wallet", preview: Bool) { + assert(preview) + self = walletMetadataPreview() + self.name = name + } + #endif } diff --git a/ios/Cove/SidebarContainer.swift b/ios/Cove/SidebarContainer.swift index bf004870..3d90c909 100644 --- a/ios/Cove/SidebarContainer.swift +++ b/ios/Cove/SidebarContainer.swift @@ -56,7 +56,6 @@ struct SidebarContainer: View { ZStack(alignment: .leading) { ZStack { content - .ignoresSafeArea(.all) .frame(maxWidth: .infinity, maxHeight: .infinity) if app.isSidebarVisible || gestureOffset > 0 || offset > 0 { @@ -68,6 +67,7 @@ struct SidebarContainer: View { .onTapGesture { app.isSidebarVisible = false } + .ignoresSafeArea(.all) } } .offset(x: totalOffset) @@ -78,7 +78,8 @@ struct SidebarContainer: View { .offset(x: totalOffset) } .gesture( - DragGesture() + !app.router.routes.isEmpty ? nil : + DragGesture() .updating($gestureOffset) { value, state, _ in // closed if !app.isSidebarVisible, @@ -103,7 +104,6 @@ struct SidebarContainer: View { offset = isVisible ? sideBarWidth : 0 } } - .ignoresSafeArea(.all) } } @@ -111,7 +111,13 @@ struct SidebarContainer: View { SidebarContainer { VStack {} .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(LinearGradient(colors: [Color.red, Color.green], startPoint: .leading, endPoint: .trailing)) + .background( + LinearGradient( + colors: [Color.red, Color.yellow], + startPoint: .leading, + endPoint: .trailing + ) + ) } .environment(MainViewModel()) } diff --git a/ios/Cove/Views/SidebarView.swift b/ios/Cove/Views/SidebarView.swift index 3581c1ea..43e6bbb4 100644 --- a/ios/Cove/Views/SidebarView.swift +++ b/ios/Cove/Views/SidebarView.swift @@ -12,6 +12,23 @@ struct SidebarView: View { @Environment(\.navigate) private var navigate let currentRoute: Route + let wallets: [WalletMetadata] + + init(currentRoute: Route, wallets: [WalletMetadata]? = nil) { + self.currentRoute = currentRoute + if let wallets { + self.wallets = wallets + return + } + + do { + self.wallets = try Database().wallets().all() + Log.debug("wallets: \(self.wallets)") + } catch { + Log.error("Failed to get wallets \(error)") + self.wallets = [] + } + } func setForeground(_ route: Route) -> LinearGradient { if RouteFactory().isSameParentRoute(route: route, routeToCheck: currentRoute) { @@ -37,52 +54,102 @@ struct SidebarView: View { var body: some View { HStack(alignment: .top) { VStack(spacing: 40) { - Spacer() + HStack(alignment: .top) { + Image(.icon) + .resizable() + .frame(width: 65, height: 65) + .clipShape(Circle()) + + Spacer() - Button(action: { goTo(RouteFactory().newWalletSelect()) }) { - Label("Add Wallet", systemImage: "wallet.pass.fill") + Button(action: app.nfcReader.scan) { + Image(systemName: "wave.3.right") + } + .foregroundStyle(.white) + } + + Divider() + .overlay(Color(.systemGray5)) + .opacity(0.50) + + HStack { + Text("My Wallets") + .font(.subheadline) + .fontWeight(.medium) .foregroundStyle(.white) - .font(.headline) - .background(Color.blue) - .cornerRadius(10) + + Spacer() } - if app.numberOfWallets > 1 { - Button(action: { goTo(Route.listWallets) }) { - Label("Change Wallet", systemImage: "arrow.uturn.right.square.fill") - .foregroundStyle(.white) - .font(.headline) - .background(Color.blue) + GeometryReader { proxy in + VStack(spacing: 12) { + ForEach(wallets, id: \.id) { wallet in + Button(action: { + goTo(Route.selectedWallet(wallet.id)) + }) { + HStack(spacing: 20) { + Circle() + .fill(Color(wallet.color)) + .frame(width: 6, height: 6) + + Text(wallet.name) + .font(.footnote) + .fontWeight(.medium) + .foregroundStyle(.white) + .lineLimit(1) + .minimumScaleFactor(0.80) + } + .frame(width: proxy.size.width / 2, alignment: .leading) + } + .frame(maxWidth: .infinity) + .padding() + .background(Color(.systemGray5).opacity(0.06)) .cornerRadius(10) + } } } Spacer() - HStack(alignment: .center) { - Button( - action: { goTo(.settings) }, - label: { - HStack { - Image(systemName: "gear") - .foregroundStyle(Color.white.gradient.opacity(0.5)) - - Text("Settings") - .foregroundStyle(Color.white.gradient) - } + + Divider() + .overlay(Color(.systemGray5)) + .opacity(0.50) + + HStack { + Button(action: { goTo(RouteFactory().newWalletSelect()) }) { + HStack(spacing: 20) { + Image(systemName: "wallet.bifold") + Text("Add Wallet") } - ) + .foregroundColor(.white) + } + + Spacer() + } + + HStack { + Button(action: { goTo(Route.settings) }) { + HStack(spacing: 22) { + Image(systemName: "gear") + Text("Settings") + } + .foregroundColor(.white) + } + + Spacer() } } } + .padding(20) .frame(maxWidth: .infinity) - .background(.blue) + .background(.midnightBtn) } func goTo(_ route: Route) { app.isSidebarVisible = false if !app.hasWallets, route == Route.newWallet(.select) { - return app.resetRoute(to: RouteFactory().newWalletSelect()) + app.resetRoute(to: RouteFactory().newWalletSelect()) } else { navigate(route) } @@ -90,7 +157,22 @@ struct SidebarView: View { } #Preview { - SidebarView(currentRoute: Route.listWallets) + HStack { + SidebarView( + currentRoute: Route.listWallets, + wallets: [ + WalletMetadata("Test Wallet", preview: true), + WalletMetadata("Second Wallet", preview: true), + WalletMetadata("Coldcard Q1", preview: true), +// WalletMetadata("Daily Spending", preview: true), +// WalletMetadata("Coldcard Q1", preview: true), +// WalletMetadata("This is a really long wallet name", preview: true), + ] + ) .environment(MainViewModel()) .background(Color.white) + .frame(width: 280) + + Spacer() + } } diff --git a/rust/src/wallet.rs b/rust/src/wallet.rs index a04ac537..58f07998 100644 --- a/rust/src/wallet.rs +++ b/rust/src/wallet.rs @@ -270,8 +270,8 @@ impl Wallet { .map_err(WalletError::ParseXpubError)?; metadata.name = match fingerprint { - Some(fingerprint) => format!("HWW Import ({})", fingerprint.to_ascii_uppercase()), - None => "HWW Import".to_string(), + Some(fingerprint) => format!("Imported {}", fingerprint.to_ascii_uppercase()), + None => "Imported".to_string(), }; let descriptors: Descriptors = descriptors.into(); diff --git a/rust/src/wallet/metadata.rs b/rust/src/wallet/metadata.rs index 16ad3635..d0ad79f6 100644 --- a/rust/src/wallet/metadata.rs +++ b/rust/src/wallet/metadata.rs @@ -21,6 +21,18 @@ impl WalletId { pub fn preview_new() -> Self { Self("testtesttest".to_string()) } + + pub fn preview_new_random() -> Self { + // random string id + let rng = rand::thread_rng(); + let random_string: String = rng + .sample_iter(&rand::distributions::Alphanumeric) + .take(8) + .map(char::from) + .collect(); + + Self(random_string) + } } #[derive(Debug, Clone, Serialize, Deserialize, Hash, Eq, PartialEq, uniffi::Record)] @@ -192,7 +204,7 @@ impl WalletMetadata { pub fn preview_new() -> Self { Self { - id: WalletId::preview_new(), + id: WalletId::preview_new_random(), name: "Test Wallet".to_string(), master_fingerprint: Some(Arc::new(Fingerprint::default())), color: WalletColor::random(), From be901a3585ac38511a6075dfd16a32c081c0335a Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 12:30:12 -0600 Subject: [PATCH 05/15] Prevent empty wallet names --- ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift | 4 ++++ rust/src/view_model/wallet.rs | 1 + 2 files changed, 5 insertions(+) diff --git a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift index 21bfda19..a361333c 100644 --- a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift +++ b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift @@ -192,6 +192,10 @@ struct SelectedWalletScreen: View { let _ = try? await model.rust.forceUpdateHeight() } .onAppear { + if metadata.name.isEmpty { + model.dispatch(action: .updateName(metadata.masterFingerprint?.asUppercase() ?? "Unnamed Wallet")) + } + UIRefreshControl.appearance().tintColor = UIColor.white } .scrollIndicators(.hidden) diff --git a/rust/src/view_model/wallet.rs b/rust/src/view_model/wallet.rs index 58ddcd64..f198ed6a 100644 --- a/rust/src/view_model/wallet.rs +++ b/rust/src/view_model/wallet.rs @@ -811,6 +811,7 @@ impl RustWalletViewModel { #[uniffi::method] pub fn dispatch(&self, action: WalletViewModelAction) { match action { + WalletViewModelAction::UpdateName(name) if name.is_empty() => {} WalletViewModelAction::UpdateName(name) => { let mut metadata = self.metadata.write(); metadata.name = name; From e3f3097b191d05aa3c36c8dc3380cb8b1ce61b22 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 12:30:29 -0600 Subject: [PATCH 06/15] Fix loading wallet from sidebar and padding --- ios/Cove/LoadAndResetView.swift | 1 + ios/Cove/MainViewModel.swift | 5 +++++ ios/Cove/Views/SidebarView.swift | 17 ++++++++++------- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/ios/Cove/LoadAndResetView.swift b/ios/Cove/LoadAndResetView.swift index 2e690a1e..5cce6c2b 100644 --- a/ios/Cove/LoadAndResetView.swift +++ b/ios/Cove/LoadAndResetView.swift @@ -17,6 +17,7 @@ struct LoadAndResetView: View { try? await Task.sleep(for: .milliseconds(loadingTimeMs)) app.resetRoute(to: nextRoute) } + .tint(.primary) } } diff --git a/ios/Cove/MainViewModel.swift b/ios/Cove/MainViewModel.swift index b3066d9c..bcc39271 100644 --- a/ios/Cove/MainViewModel.swift +++ b/ios/Cove/MainViewModel.swift @@ -110,6 +110,11 @@ import SwiftUI rust.resetDefaultRouteTo(route: route) } + @MainActor + func loadAndReset(to route: Route) { + rust.loadAndResetDefaultRoute(route: route) + } + func reconcile(message: AppStateReconcileMessage) { Task { await MainActor.run { diff --git a/ios/Cove/Views/SidebarView.swift b/ios/Cove/Views/SidebarView.swift index 43e6bbb4..67ea5d99 100644 --- a/ios/Cove/Views/SidebarView.swift +++ b/ios/Cove/Views/SidebarView.swift @@ -53,7 +53,7 @@ struct SidebarView: View { var body: some View { HStack(alignment: .top) { - VStack(spacing: 40) { + VStack { HStack(alignment: .top) { Image(.icon) .resizable() @@ -71,6 +71,7 @@ struct SidebarView: View { Divider() .overlay(Color(.systemGray5)) .opacity(0.50) + .padding(.vertical, 22) HStack { Text("My Wallets") @@ -80,6 +81,7 @@ struct SidebarView: View { Spacer() } + .padding(.bottom, 16) GeometryReader { proxy in VStack(spacing: 12) { @@ -148,11 +150,15 @@ struct SidebarView: View { func goTo(_ route: Route) { app.isSidebarVisible = false + if case Route.selectedWallet = route { + return app.loadAndReset(to: route) + } + if !app.hasWallets, route == Route.newWallet(.select) { - app.resetRoute(to: RouteFactory().newWalletSelect()) - } else { - navigate(route) + return app.resetRoute(to: RouteFactory().newWalletSelect()) } + + navigate(route) } } @@ -164,9 +170,6 @@ struct SidebarView: View { WalletMetadata("Test Wallet", preview: true), WalletMetadata("Second Wallet", preview: true), WalletMetadata("Coldcard Q1", preview: true), -// WalletMetadata("Daily Spending", preview: true), -// WalletMetadata("Coldcard Q1", preview: true), -// WalletMetadata("This is a really long wallet name", preview: true), ] ) .environment(MainViewModel()) From d844ba1ea7a8de250fcfaa9a6bdaf52cde992b63 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 12:39:44 -0600 Subject: [PATCH 07/15] Change wording on "Verify Words" banner --- .../SelectedWalletScreen.swift | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift index a361333c..97bd6dba 100644 --- a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift +++ b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift @@ -193,7 +193,9 @@ struct SelectedWalletScreen: View { } .onAppear { if metadata.name.isEmpty { - model.dispatch(action: .updateName(metadata.masterFingerprint?.asUppercase() ?? "Unnamed Wallet")) + model.dispatch( + action: .updateName( + metadata.masterFingerprint?.asUppercase() ?? "Unnamed Wallet")) } UIRefreshControl.appearance().tintColor = UIColor.white @@ -206,8 +208,9 @@ struct SelectedWalletScreen: View { } } .ignoresSafeArea(edges: .top) - .onChange(of: model.walletMetadata.discoveryState) { _, - newValue in setSheetState(newValue) + .onChange(of: model.walletMetadata.discoveryState) { + _, + newValue in setSheetState(newValue) } .onAppear { setSheetState(model.walletMetadata.discoveryState) } .alert( @@ -226,15 +229,34 @@ struct VerifyReminder: View { var body: some View { Group { if !isVerified { - Text("verify wallet") - .font(.caption) - .foregroundColor(.primary.opacity(0.6)) + Button(action: { + navigate(Route.newWallet(.hotWallet(.verifyWords(walletId)))) + } + ) { + HStack(spacing: 20) { + Image(systemName: "exclamationmark.triangle") + .foregroundStyle(.red.opacity(0.85)) + .fontWeight(.semibold) + + Text("backup wallet") + .fontWeight(.semibold) + .font(.caption) + + Image(systemName: "exclamationmark.triangle") + .foregroundStyle(.red.opacity(0.85)) + .fontWeight(.semibold) + } .padding(.vertical, 10) .frame(maxWidth: .infinity) - .background(Color.yellow.gradient.opacity(0.75)) - .onTapGesture { - navigate(Route.newWallet(.hotWallet(.verifyWords(walletId)))) - } + .background( + LinearGradient( + colors: [.orange.opacity(0.67), .yellow.opacity(0.96)], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + ) + .foregroundStyle(.black.opacity(0.66)) + } } } } From 46eb1fec811cb3d196855402d9e071d256c96bb6 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 12:42:12 -0600 Subject: [PATCH 08/15] Adjust spacing on sidebar bottom buttons --- ios/Cove/Views/SidebarView.swift | 44 +++++++++++++++++--------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/ios/Cove/Views/SidebarView.swift b/ios/Cove/Views/SidebarView.swift index 67ea5d99..afff231a 100644 --- a/ios/Cove/Views/SidebarView.swift +++ b/ios/Cove/Views/SidebarView.swift @@ -113,32 +113,34 @@ struct SidebarView: View { Spacer() - Divider() - .overlay(Color(.systemGray5)) - .opacity(0.50) - - HStack { - Button(action: { goTo(RouteFactory().newWalletSelect()) }) { - HStack(spacing: 20) { - Image(systemName: "wallet.bifold") - Text("Add Wallet") + VStack(spacing: 32) { + Divider() + .overlay(Color(.systemGray5)) + .opacity(0.50) + + HStack { + Button(action: { goTo(RouteFactory().newWalletSelect()) }) { + HStack(spacing: 20) { + Image(systemName: "wallet.bifold") + Text("Add Wallet") + } + .foregroundColor(.white) } - .foregroundColor(.white) - } - Spacer() - } + Spacer() + } - HStack { - Button(action: { goTo(Route.settings) }) { - HStack(spacing: 22) { - Image(systemName: "gear") - Text("Settings") + HStack { + Button(action: { goTo(Route.settings) }) { + HStack(spacing: 22) { + Image(systemName: "gear") + Text("Settings") + } + .foregroundColor(.white) } - .foregroundColor(.white) - } - Spacer() + Spacer() + } } } } From de2b5f090f89ae1f7334ce63386fb533e985a5d5 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 12:44:19 -0600 Subject: [PATCH 09/15] Run format and clippy --- ios/Cove/Cove.swift | 14650 +++++++--------- .../SelectedWalletContainer.swift | 12 +- ios/Cove/WalletSettingsSheet.swift | 38 +- ios/Cove/WalletViewModel.swift | 4 + rust/src/cove_nfc/parser/stream.rs | 2 +- rust/src/database/unsigned_transactions.rs | 12 +- rust/src/redb.rs | 6 +- 7 files changed, 6133 insertions(+), 8591 deletions(-) diff --git a/ios/Cove/Cove.swift b/ios/Cove/Cove.swift index c097f51b..1f79b534 100644 --- a/ios/Cove/Cove.swift +++ b/ios/Cove/Cove.swift @@ -8,10 +8,10 @@ import Foundation // might be in a separate module, or it might be compiled inline into // this module. This is a bit of light hackery to work with both. #if canImport(coveFFI) -import coveFFI + import coveFFI #endif -fileprivate extension RustBuffer { +private extension RustBuffer { // Allocate a new buffer, copying the contents of a `UInt8` array. init(bytes: [UInt8]) { let rbuf = bytes.withUnsafeBufferPointer { ptr in @@ -21,7 +21,7 @@ fileprivate extension RustBuffer { } static func empty() -> RustBuffer { - RustBuffer(capacity: 0, len:0, data: nil) + RustBuffer(capacity: 0, len: 0, data: nil) } static func from(_ ptr: UnsafeBufferPointer) -> RustBuffer { @@ -35,7 +35,7 @@ fileprivate extension RustBuffer { } } -fileprivate extension ForeignBytes { +private extension ForeignBytes { init(bufferPointer: UnsafeBufferPointer) { self.init(len: Int32(bufferPointer.count), data: bufferPointer.baseAddress) } @@ -48,7 +48,7 @@ fileprivate extension ForeignBytes { // Helper classes/extensions that don't change. // Someday, this will be in a library of its own. -fileprivate extension Data { +private extension Data { init(rustBuffer: RustBuffer) { self.init( bytesNoCopy: rustBuffer.data!, @@ -72,15 +72,15 @@ fileprivate extension Data { // // Instead, the read() method and these helper functions input a tuple of data -fileprivate func createReader(data: Data) -> (data: Data, offset: Data.Index) { +private func createReader(data: Data) -> (data: Data, offset: Data.Index) { (data: data, offset: 0) } // Reads an integer at the current offset, in big-endian order, and advances // the offset on success. Throws if reading the integer would move the // offset past the end of the buffer. -fileprivate func readInt(_ reader: inout (data: Data, offset: Data.Index)) throws -> T { - let range = reader.offset...size +private func readInt(_ reader: inout (data: Data, offset: Data.Index)) throws -> T { + let range = reader.offset ..< reader.offset + MemoryLayout.size guard reader.data.count >= range.upperBound else { throw UniffiInternalError.bufferOverflow } @@ -90,50 +90,50 @@ fileprivate func readInt(_ reader: inout (data: Data, offs return value as! T } var value: T = 0 - let _ = withUnsafeMutableBytes(of: &value, { reader.data.copyBytes(to: $0, from: range)}) + let _ = withUnsafeMutableBytes(of: &value) { reader.data.copyBytes(to: $0, from: range) } reader.offset = range.upperBound return value.bigEndian } // Reads an arbitrary number of bytes, to be used to read // raw bytes, this is useful when lifting strings -fileprivate func readBytes(_ reader: inout (data: Data, offset: Data.Index), count: Int) throws -> Array { - let range = reader.offset..<(reader.offset+count) +private func readBytes(_ reader: inout (data: Data, offset: Data.Index), count: Int) throws -> [UInt8] { + let range = reader.offset ..< (reader.offset + count) guard reader.data.count >= range.upperBound else { throw UniffiInternalError.bufferOverflow } var value = [UInt8](repeating: 0, count: count) - value.withUnsafeMutableBufferPointer({ buffer in + value.withUnsafeMutableBufferPointer { buffer in reader.data.copyBytes(to: buffer, from: range) - }) + } reader.offset = range.upperBound return value } // Reads a float at the current offset. -fileprivate func readFloat(_ reader: inout (data: Data, offset: Data.Index)) throws -> Float { - return Float(bitPattern: try readInt(&reader)) +private func readFloat(_ reader: inout (data: Data, offset: Data.Index)) throws -> Float { + try Float(bitPattern: readInt(&reader)) } // Reads a float at the current offset. -fileprivate func readDouble(_ reader: inout (data: Data, offset: Data.Index)) throws -> Double { - return Double(bitPattern: try readInt(&reader)) +private func readDouble(_ reader: inout (data: Data, offset: Data.Index)) throws -> Double { + try Double(bitPattern: readInt(&reader)) } // Indicates if the offset has reached the end of the buffer. -fileprivate func hasRemaining(_ reader: (data: Data, offset: Data.Index)) -> Bool { - return reader.offset < reader.data.count +private func hasRemaining(_ reader: (data: Data, offset: Data.Index)) -> Bool { + reader.offset < reader.data.count } // Define writer functionality. Normally this would be defined in a class or // struct, but we use standalone functions instead in order to make external // types work. See the above discussion on Readers for details. -fileprivate func createWriter() -> [UInt8] { - return [] +private func createWriter() -> [UInt8] { + [] } -fileprivate func writeBytes(_ writer: inout [UInt8], _ byteArr: S) where S: Sequence, S.Element == UInt8 { +private func writeBytes(_ writer: inout [UInt8], _ byteArr: some Sequence) { writer.append(contentsOf: byteArr) } @@ -141,22 +141,22 @@ fileprivate func writeBytes(_ writer: inout [UInt8], _ byteArr: S) where S: S // // Warning: make sure what you are trying to write // is in the correct type! -fileprivate func writeInt(_ writer: inout [UInt8], _ value: T) { +private func writeInt(_ writer: inout [UInt8], _ value: some FixedWidthInteger) { var value = value.bigEndian withUnsafeBytes(of: &value) { writer.append(contentsOf: $0) } } -fileprivate func writeFloat(_ writer: inout [UInt8], _ value: Float) { +private func writeFloat(_ writer: inout [UInt8], _ value: Float) { writeInt(&writer, value.bitPattern) } -fileprivate func writeDouble(_ writer: inout [UInt8], _ value: Double) { +private func writeDouble(_ writer: inout [UInt8], _ value: Double) { writeInt(&writer, value.bitPattern) } // Protocol for types that transfer other types across the FFI. This is // analogous to the Rust trait of the same name. -fileprivate protocol FfiConverter { +private protocol FfiConverter { associatedtype FfiType associatedtype SwiftType @@ -167,32 +167,32 @@ fileprivate protocol FfiConverter { } // Types conforming to `Primitive` pass themselves directly over the FFI. -fileprivate protocol FfiConverterPrimitive: FfiConverter where FfiType == SwiftType { } +private protocol FfiConverterPrimitive: FfiConverter where FfiType == SwiftType {} extension FfiConverterPrimitive { -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lift(_ value: FfiType) throws -> SwiftType { - return value + value } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lower(_ value: SwiftType) -> FfiType { - return value + value } } // Types conforming to `FfiConverterRustBuffer` lift and lower into a `RustBuffer`. // Used for complex types where it's hard to write a custom lift/lower. -fileprivate protocol FfiConverterRustBuffer: FfiConverter where FfiType == RustBuffer {} +private protocol FfiConverterRustBuffer: FfiConverter where FfiType == RustBuffer {} extension FfiConverterRustBuffer { -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lift(_ buf: RustBuffer) throws -> SwiftType { var reader = createReader(data: Data(rustBuffer: buf)) let value = try read(from: &reader) @@ -203,18 +203,19 @@ extension FfiConverterRustBuffer { return value } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lower(_ value: SwiftType) -> RustBuffer { - var writer = createWriter() - write(value, into: &writer) - return RustBuffer(bytes: writer) + var writer = createWriter() + write(value, into: &writer) + return RustBuffer(bytes: writer) } } + // An error type for FFI errors. These errors occur at the UniFFI level, not // the library level. -fileprivate enum UniffiInternalError: LocalizedError { +private enum UniffiInternalError: LocalizedError { case bufferOverflow case incompleteData case unexpectedOptionalTag @@ -227,37 +228,37 @@ fileprivate enum UniffiInternalError: LocalizedError { public var errorDescription: String? { switch self { - case .bufferOverflow: return "Reading the requested value would read past the end of the buffer" - case .incompleteData: return "The buffer still has data after lifting its containing value" - case .unexpectedOptionalTag: return "Unexpected optional tag; should be 0 or 1" - case .unexpectedEnumCase: return "Raw enum value doesn't match any cases" - case .unexpectedNullPointer: return "Raw pointer value was null" - case .unexpectedRustCallStatusCode: return "Unexpected RustCallStatus code" - case .unexpectedRustCallError: return "CALL_ERROR but no errorClass specified" - case .unexpectedStaleHandle: return "The object in the handle map has been dropped already" - case let .rustPanic(message): return message + case .bufferOverflow: "Reading the requested value would read past the end of the buffer" + case .incompleteData: "The buffer still has data after lifting its containing value" + case .unexpectedOptionalTag: "Unexpected optional tag; should be 0 or 1" + case .unexpectedEnumCase: "Raw enum value doesn't match any cases" + case .unexpectedNullPointer: "Raw pointer value was null" + case .unexpectedRustCallStatusCode: "Unexpected RustCallStatus code" + case .unexpectedRustCallError: "CALL_ERROR but no errorClass specified" + case .unexpectedStaleHandle: "The object in the handle map has been dropped already" + case let .rustPanic(message): message } } } -fileprivate extension NSLock { +private extension NSLock { func withLock(f: () throws -> T) rethrows -> T { - self.lock() + lock() defer { self.unlock() } return try f() } } -fileprivate let CALL_SUCCESS: Int8 = 0 -fileprivate let CALL_ERROR: Int8 = 1 -fileprivate let CALL_UNEXPECTED_ERROR: Int8 = 2 -fileprivate let CALL_CANCELLED: Int8 = 3 +private let CALL_SUCCESS: Int8 = 0 +private let CALL_ERROR: Int8 = 1 +private let CALL_UNEXPECTED_ERROR: Int8 = 2 +private let CALL_CANCELLED: Int8 = 3 -fileprivate extension RustCallStatus { +private extension RustCallStatus { init() { self.init( code: CALL_SUCCESS, - errorBuf: RustBuffer.init( + errorBuf: RustBuffer( capacity: 0, len: 0, data: nil @@ -271,66 +272,67 @@ private func rustCall(_ callback: (UnsafeMutablePointer) -> T return try makeRustCall(callback, errorHandler: neverThrow) } -private func rustCallWithError( - _ errorHandler: @escaping (RustBuffer) throws -> E, - _ callback: (UnsafeMutablePointer) -> T) throws -> T { +private func rustCallWithError( + _ errorHandler: @escaping (RustBuffer) throws -> some Swift.Error, + _ callback: (UnsafeMutablePointer) -> T +) throws -> T { try makeRustCall(callback, errorHandler: errorHandler) } -private func makeRustCall( +private func makeRustCall( _ callback: (UnsafeMutablePointer) -> T, - errorHandler: ((RustBuffer) throws -> E)? + errorHandler: ((RustBuffer) throws -> some Swift.Error)? ) throws -> T { uniffiEnsureInitialized() - var callStatus = RustCallStatus.init() + var callStatus = RustCallStatus() let returnedVal = callback(&callStatus) try uniffiCheckCallStatus(callStatus: callStatus, errorHandler: errorHandler) return returnedVal } -private func uniffiCheckCallStatus( +private func uniffiCheckCallStatus( callStatus: RustCallStatus, - errorHandler: ((RustBuffer) throws -> E)? + errorHandler: ((RustBuffer) throws -> some Swift.Error)? ) throws { switch callStatus.code { - case CALL_SUCCESS: - return + case CALL_SUCCESS: + return - case CALL_ERROR: - if let errorHandler = errorHandler { - throw try errorHandler(callStatus.errorBuf) - } else { - callStatus.errorBuf.deallocate() - throw UniffiInternalError.unexpectedRustCallError - } + case CALL_ERROR: + if let errorHandler { + throw try errorHandler(callStatus.errorBuf) + } else { + callStatus.errorBuf.deallocate() + throw UniffiInternalError.unexpectedRustCallError + } - case CALL_UNEXPECTED_ERROR: - // When the rust code sees a panic, it tries to construct a RustBuffer - // with the message. But if that code panics, then it just sends back - // an empty buffer. - if callStatus.errorBuf.len > 0 { - throw UniffiInternalError.rustPanic(try FfiConverterString.lift(callStatus.errorBuf)) - } else { - callStatus.errorBuf.deallocate() - throw UniffiInternalError.rustPanic("Rust panic") - } + case CALL_UNEXPECTED_ERROR: + // When the rust code sees a panic, it tries to construct a RustBuffer + // with the message. But if that code panics, then it just sends back + // an empty buffer. + if callStatus.errorBuf.len > 0 { + throw try UniffiInternalError.rustPanic(FfiConverterString.lift(callStatus.errorBuf)) + } else { + callStatus.errorBuf.deallocate() + throw UniffiInternalError.rustPanic("Rust panic") + } - case CALL_CANCELLED: - fatalError("Cancellation not supported yet") + case CALL_CANCELLED: + fatalError("Cancellation not supported yet") - default: - throw UniffiInternalError.unexpectedRustCallStatusCode + default: + throw UniffiInternalError.unexpectedRustCallStatusCode } } private func uniffiTraitInterfaceCall( callStatus: UnsafeMutablePointer, makeCall: () throws -> T, - writeReturn: (T) -> () + writeReturn: (T) -> Void ) { do { try writeReturn(makeCall()) - } catch let error { + } catch { callStatus.pointee.code = CALL_UNEXPECTED_ERROR callStatus.pointee.errorBuf = FfiConverterString.lower(String(describing: error)) } @@ -339,7 +341,7 @@ private func uniffiTraitInterfaceCall( private func uniffiTraitInterfaceCallWithError( callStatus: UnsafeMutablePointer, makeCall: () throws -> T, - writeReturn: (T) -> (), + writeReturn: (T) -> Void, lowerError: (E) -> RustBuffer ) { do { @@ -352,7 +354,8 @@ private func uniffiTraitInterfaceCallWithError( callStatus.pointee.errorBuf = FfiConverterString.lower(String(describing: error)) } } -fileprivate final class UniffiHandleMap: @unchecked Sendable { + +private final class UniffiHandleMap: @unchecked Sendable { // All mutation happens with this lock held, which is why we implement @unchecked Sendable. private let lock = NSLock() private var map: [UInt64: T] = [:] @@ -367,7 +370,7 @@ fileprivate final class UniffiHandleMap: @unchecked Sendable { } } - func get(handle: UInt64) throws -> T { + func get(handle: UInt64) throws -> T { try lock.withLock { guard let obj = map[handle] else { throw UniffiInternalError.unexpectedStaleHandle @@ -387,25 +390,21 @@ fileprivate final class UniffiHandleMap: @unchecked Sendable { } var count: Int { - get { - map.count - } + map.count } } - // Public interface members begin here. - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterUInt8: FfiConverterPrimitive { +private struct FfiConverterUInt8: FfiConverterPrimitive { typealias FfiType = UInt8 typealias SwiftType = UInt8 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt8 { - return try lift(readInt(&buf)) + try lift(readInt(&buf)) } public static func write(_ value: UInt8, into buf: inout [UInt8]) { @@ -414,14 +413,14 @@ fileprivate struct FfiConverterUInt8: FfiConverterPrimitive { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterUInt16: FfiConverterPrimitive { +private struct FfiConverterUInt16: FfiConverterPrimitive { typealias FfiType = UInt16 typealias SwiftType = UInt16 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt16 { - return try lift(readInt(&buf)) + try lift(readInt(&buf)) } public static func write(_ value: SwiftType, into buf: inout [UInt8]) { @@ -430,14 +429,14 @@ fileprivate struct FfiConverterUInt16: FfiConverterPrimitive { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterUInt32: FfiConverterPrimitive { +private struct FfiConverterUInt32: FfiConverterPrimitive { typealias FfiType = UInt32 typealias SwiftType = UInt32 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt32 { - return try lift(readInt(&buf)) + try lift(readInt(&buf)) } public static func write(_ value: SwiftType, into buf: inout [UInt8]) { @@ -446,14 +445,14 @@ fileprivate struct FfiConverterUInt32: FfiConverterPrimitive { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterInt32: FfiConverterPrimitive { +private struct FfiConverterInt32: FfiConverterPrimitive { typealias FfiType = Int32 typealias SwiftType = Int32 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Int32 { - return try lift(readInt(&buf)) + try lift(readInt(&buf)) } public static func write(_ value: Int32, into buf: inout [UInt8]) { @@ -462,14 +461,14 @@ fileprivate struct FfiConverterInt32: FfiConverterPrimitive { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterUInt64: FfiConverterPrimitive { +private struct FfiConverterUInt64: FfiConverterPrimitive { typealias FfiType = UInt64 typealias SwiftType = UInt64 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt64 { - return try lift(readInt(&buf)) + try lift(readInt(&buf)) } public static func write(_ value: SwiftType, into buf: inout [UInt8]) { @@ -478,14 +477,14 @@ fileprivate struct FfiConverterUInt64: FfiConverterPrimitive { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterDouble: FfiConverterPrimitive { +private struct FfiConverterDouble: FfiConverterPrimitive { typealias FfiType = Double typealias SwiftType = Double public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Double { - return try lift(readDouble(&buf)) + try lift(readDouble(&buf)) } public static func write(_ value: Double, into buf: inout [UInt8]) { @@ -494,22 +493,22 @@ fileprivate struct FfiConverterDouble: FfiConverterPrimitive { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterBool : FfiConverter { +private struct FfiConverterBool: FfiConverter { typealias FfiType = Int8 typealias SwiftType = Bool public static func lift(_ value: Int8) throws -> Bool { - return value != 0 + value != 0 } public static func lower(_ value: Bool) -> Int8 { - return value ? 1 : 0 + value ? 1 : 0 } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bool { - return try lift(readInt(&buf)) + try lift(readInt(&buf)) } public static func write(_ value: Bool, into buf: inout [UInt8]) { @@ -518,9 +517,9 @@ fileprivate struct FfiConverterBool : FfiConverter { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterString: FfiConverter { +private struct FfiConverterString: FfiConverter { typealias SwiftType = String typealias FfiType = RustBuffer @@ -536,7 +535,7 @@ fileprivate struct FfiConverterString: FfiConverter { } public static func lower(_ value: String) -> RustBuffer { - return value.utf8CString.withUnsafeBufferPointer { ptr in + value.utf8CString.withUnsafeBufferPointer { ptr in // The swift string gives us int8_t, we want uint8_t. ptr.withMemoryRebound(to: UInt8.self) { ptr in // The swift string gives us a trailing null byte, we don't want it. @@ -548,7 +547,7 @@ fileprivate struct FfiConverterString: FfiConverter { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> String { let len: Int32 = try readInt(&buf) - return String(bytes: try readBytes(&buf, count: Int(len)), encoding: String.Encoding.utf8)! + return try String(bytes: readBytes(&buf, count: Int(len)), encoding: String.Encoding.utf8)! } public static func write(_ value: String, into buf: inout [UInt8]) { @@ -559,14 +558,14 @@ fileprivate struct FfiConverterString: FfiConverter { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterData: FfiConverterRustBuffer { +private struct FfiConverterData: FfiConverterRustBuffer { typealias SwiftType = Data public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Data { let len: Int32 = try readInt(&buf) - return Data(try readBytes(&buf, count: Int(len))) + return try Data(readBytes(&buf, count: Int(len))) } public static func write(_ value: Data, into buf: inout [UInt8]) { @@ -577,9 +576,9 @@ fileprivate struct FfiConverterData: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterDuration: FfiConverterRustBuffer { +private struct FfiConverterDuration: FfiConverterRustBuffer { typealias SwiftType = TimeInterval public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TimeInterval { @@ -604,25 +603,21 @@ fileprivate struct FfiConverterDuration: FfiConverterRustBuffer { } } +public protocol AddressProtocol: AnyObject { + func spacedOut() -> String - - -public protocol AddressProtocol : AnyObject { - - func spacedOut() -> String - - func string() -> String - + func string() -> String } open class Address: - AddressProtocol { + AddressProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -630,7 +625,7 @@ open class Address: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -639,78 +634,71 @@ open class Address: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_address(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_address(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_address(pointer, $0) } } - -public static func fromString(address: String)throws -> Address { - return try FfiConverterTypeAddress.lift(try rustCallWithError(FfiConverterTypeAddressError.lift) { - uniffi_cove_fn_constructor_address_from_string( - FfiConverterString.lower(address),$0 - ) -}) -} - -public static func previewNew() -> Address { - return try! FfiConverterTypeAddress.lift(try! rustCall() { - uniffi_cove_fn_constructor_address_preview_new($0 - ) -}) -} - + public static func fromString(address: String) throws -> Address { + try FfiConverterTypeAddress.lift(rustCallWithError(FfiConverterTypeAddressError.lift) { + uniffi_cove_fn_constructor_address_from_string( + FfiConverterString.lower(address), $0 + ) + }) + } - -open func spacedOut() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_address_spaced_out(self.uniffiClonePointer(),$0 - ) -}) -} - -open func string() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_address_string(self.uniffiClonePointer(),$0 - ) -}) -} - + public static func previewNew() -> Address { + try! FfiConverterTypeAddress.lift(try! rustCall { + uniffi_cove_fn_constructor_address_preview_new($0 + ) + }) + } + + open func spacedOut() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_address_spaced_out(self.uniffiClonePointer(), $0) + }) + } + open func string() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_address_string(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAddress: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Address public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Address { - return Address(unsafeFromRawPointer: pointer) + Address(unsafeFromRawPointer: pointer) } public static func lower(_ value: Address) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Address { @@ -718,7 +706,7 @@ public struct FfiConverterTypeAddress: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -731,44 +719,37 @@ public struct FfiConverterTypeAddress: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAddress_lift(_ pointer: UnsafeMutableRawPointer) throws -> Address { - return try FfiConverterTypeAddress.lift(pointer) + try FfiConverterTypeAddress.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAddress_lower(_ value: Address) -> UnsafeMutableRawPointer { - return FfiConverterTypeAddress.lower(value) + FfiConverterTypeAddress.lower(value) } +public protocol AddressInfoProtocol: AnyObject { + func address() -> Address + func adressString() -> String - -public protocol AddressInfoProtocol : AnyObject { - - func address() -> Address - - func adressString() -> String - - func index() -> UInt32 - + func index() -> UInt32 } open class AddressInfo: - AddressInfoProtocol { + AddressInfoProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -776,7 +757,7 @@ open class AddressInfo: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -785,70 +766,62 @@ open class AddressInfo: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_addressinfo(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_addressinfo(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_addressinfo(pointer, $0) } } - + open func address() -> Address { + try! FfiConverterTypeAddress.lift(try! rustCall { + uniffi_cove_fn_method_addressinfo_address(self.uniffiClonePointer(), $0) + }) + } - -open func address() -> Address { - return try! FfiConverterTypeAddress.lift(try! rustCall() { - uniffi_cove_fn_method_addressinfo_address(self.uniffiClonePointer(),$0 - ) -}) -} - -open func adressString() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_addressinfo_adress_string(self.uniffiClonePointer(),$0 - ) -}) -} - -open func index() -> UInt32 { - return try! FfiConverterUInt32.lift(try! rustCall() { - uniffi_cove_fn_method_addressinfo_index(self.uniffiClonePointer(),$0 - ) -}) -} - + open func adressString() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_addressinfo_adress_string(self.uniffiClonePointer(), $0) + }) + } + open func index() -> UInt32 { + try! FfiConverterUInt32.lift(try! rustCall { + uniffi_cove_fn_method_addressinfo_index(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAddressInfo: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = AddressInfo public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressInfo { - return AddressInfo(unsafeFromRawPointer: pointer) + AddressInfo(unsafeFromRawPointer: pointer) } public static func lower(_ value: AddressInfo) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressInfo { @@ -856,7 +829,7 @@ public struct FfiConverterTypeAddressInfo: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -869,44 +842,37 @@ public struct FfiConverterTypeAddressInfo: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAddressInfo_lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressInfo { - return try FfiConverterTypeAddressInfo.lift(pointer) + try FfiConverterTypeAddressInfo.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAddressInfo_lower(_ value: AddressInfo) -> UnsafeMutableRawPointer { - return FfiConverterTypeAddressInfo.lower(value) + FfiConverterTypeAddressInfo.lower(value) } +public protocol AddressWithNetworkProtocol: AnyObject { + func address() -> Address + func amount() -> Amount? - -public protocol AddressWithNetworkProtocol : AnyObject { - - func address() -> Address - - func amount() -> Amount? - - func network() -> Network - + func network() -> Network } open class AddressWithNetwork: - AddressWithNetworkProtocol { + AddressWithNetworkProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -914,7 +880,7 @@ open class AddressWithNetwork: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -923,78 +889,70 @@ open class AddressWithNetwork: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_addresswithnetwork(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_addresswithnetwork(self.pointer, $0) } + } + + public convenience init(address: String) throws { + let pointer = + try rustCallWithError(FfiConverterTypeAddressError.lift) { + uniffi_cove_fn_constructor_addresswithnetwork_new( + FfiConverterString.lower(address), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(address: String)throws { - let pointer = - try rustCallWithError(FfiConverterTypeAddressError.lift) { - uniffi_cove_fn_constructor_addresswithnetwork_new( - FfiConverterString.lower(address),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_addresswithnetwork(pointer, $0) } } - + open func address() -> Address { + try! FfiConverterTypeAddress.lift(try! rustCall { + uniffi_cove_fn_method_addresswithnetwork_address(self.uniffiClonePointer(), $0) + }) + } - -open func address() -> Address { - return try! FfiConverterTypeAddress.lift(try! rustCall() { - uniffi_cove_fn_method_addresswithnetwork_address(self.uniffiClonePointer(),$0 - ) -}) -} - -open func amount() -> Amount? { - return try! FfiConverterOptionTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_addresswithnetwork_amount(self.uniffiClonePointer(),$0 - ) -}) -} - -open func network() -> Network { - return try! FfiConverterTypeNetwork.lift(try! rustCall() { - uniffi_cove_fn_method_addresswithnetwork_network(self.uniffiClonePointer(),$0 - ) -}) -} - + open func amount() -> Amount? { + try! FfiConverterOptionTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_addresswithnetwork_amount(self.uniffiClonePointer(), $0) + }) + } + open func network() -> Network { + try! FfiConverterTypeNetwork.lift(try! rustCall { + uniffi_cove_fn_method_addresswithnetwork_network(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAddressWithNetwork: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = AddressWithNetwork public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressWithNetwork { - return AddressWithNetwork(unsafeFromRawPointer: pointer) + AddressWithNetwork(unsafeFromRawPointer: pointer) } public static func lower(_ value: AddressWithNetwork) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressWithNetwork { @@ -1002,7 +960,7 @@ public struct FfiConverterTypeAddressWithNetwork: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1015,52 +973,45 @@ public struct FfiConverterTypeAddressWithNetwork: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAddressWithNetwork_lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressWithNetwork { - return try FfiConverterTypeAddressWithNetwork.lift(pointer) + try FfiConverterTypeAddressWithNetwork.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAddressWithNetwork_lower(_ value: AddressWithNetwork) -> UnsafeMutableRawPointer { - return FfiConverterTypeAddressWithNetwork.lower(value) + FfiConverterTypeAddressWithNetwork.lower(value) } +public protocol AmountProtocol: AnyObject { + func asBtc() -> Double + + func asSats() -> UInt64 + + func btcString() -> String + + func btcStringWithUnit() -> String + func fmtStringWithUnit(unit: Unit) -> String + func satsString() -> String -public protocol AmountProtocol : AnyObject { - - func asBtc() -> Double - - func asSats() -> UInt64 - - func btcString() -> String - - func btcStringWithUnit() -> String - - func fmtStringWithUnit(unit: Unit) -> String - - func satsString() -> String - - func satsStringWithUnit() -> String - + func satsStringWithUnit() -> String } open class Amount: - AmountProtocol { + AmountProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -1068,7 +1019,7 @@ open class Amount: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1077,121 +1028,109 @@ open class Amount: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_amount(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_amount(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_amount(pointer, $0) } } - -public static func fromSat(sats: UInt64) -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_constructor_amount_from_sat( - FfiConverterUInt64.lower(sats),$0 - ) -}) -} - -public static func oneBtc() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_constructor_amount_one_btc($0 - ) -}) -} - -public static func oneSat() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_constructor_amount_one_sat($0 - ) -}) -} - + public static func fromSat(sats: UInt64) -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_constructor_amount_from_sat( + FfiConverterUInt64.lower(sats), $0 + ) + }) + } - -open func asBtc() -> Double { - return try! FfiConverterDouble.lift(try! rustCall() { - uniffi_cove_fn_method_amount_as_btc(self.uniffiClonePointer(),$0 - ) -}) -} - -open func asSats() -> UInt64 { - return try! FfiConverterUInt64.lift(try! rustCall() { - uniffi_cove_fn_method_amount_as_sats(self.uniffiClonePointer(),$0 - ) -}) -} - -open func btcString() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_amount_btc_string(self.uniffiClonePointer(),$0 - ) -}) -} - -open func btcStringWithUnit() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_amount_btc_string_with_unit(self.uniffiClonePointer(),$0 - ) -}) -} - -open func fmtStringWithUnit(unit: Unit) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_amount_fmt_string_with_unit(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit),$0 - ) -}) -} - -open func satsString() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_amount_sats_string(self.uniffiClonePointer(),$0 - ) -}) -} - -open func satsStringWithUnit() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_amount_sats_string_with_unit(self.uniffiClonePointer(),$0 - ) -}) -} - + public static func oneBtc() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_constructor_amount_one_btc($0 + ) + }) + } + + public static func oneSat() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_constructor_amount_one_sat($0 + ) + }) + } + + open func asBtc() -> Double { + try! FfiConverterDouble.lift(try! rustCall { + uniffi_cove_fn_method_amount_as_btc(self.uniffiClonePointer(), $0) + }) + } + + open func asSats() -> UInt64 { + try! FfiConverterUInt64.lift(try! rustCall { + uniffi_cove_fn_method_amount_as_sats(self.uniffiClonePointer(), $0) + }) + } + + open func btcString() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_amount_btc_string(self.uniffiClonePointer(), $0) + }) + } + + open func btcStringWithUnit() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_amount_btc_string_with_unit(self.uniffiClonePointer(), $0) + }) + } + + open func fmtStringWithUnit(unit: Unit) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_amount_fmt_string_with_unit(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit), $0) + }) + } + + open func satsString() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_amount_sats_string(self.uniffiClonePointer(), $0) + }) + } + open func satsStringWithUnit() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_amount_sats_string_with_unit(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAmount: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Amount public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Amount { - return Amount(unsafeFromRawPointer: pointer) + Amount(unsafeFromRawPointer: pointer) } public static func lower(_ value: Amount) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Amount { @@ -1199,7 +1138,7 @@ public struct FfiConverterTypeAmount: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1212,42 +1151,35 @@ public struct FfiConverterTypeAmount: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAmount_lift(_ pointer: UnsafeMutableRawPointer) throws -> Amount { - return try FfiConverterTypeAmount.lift(pointer) + try FfiConverterTypeAmount.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAmount_lower(_ value: Amount) -> UnsafeMutableRawPointer { - return FfiConverterTypeAmount.lower(value) + FfiConverterTypeAmount.lower(value) } +public protocol AutoComplete: AnyObject { + func autocomplete(word: String) -> [String] - - -public protocol AutoComplete : AnyObject { - - func autocomplete(word: String) -> [String] - - func isValidWord(word: String) -> Bool - + func isValidWord(word: String) -> Bool } open class AutoCompleteImpl: - AutoComplete { + AutoComplete +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -1255,7 +1187,7 @@ open class AutoCompleteImpl: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1264,50 +1196,45 @@ open class AutoCompleteImpl: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_autocomplete(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_autocomplete(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_autocomplete(pointer, $0) } } - + open func autocomplete(word: String) -> [String] { + try! FfiConverterSequenceString.lift(try! rustCall { + uniffi_cove_fn_method_autocomplete_autocomplete(self.uniffiClonePointer(), + FfiConverterString.lower(word), $0) + }) + } - -open func autocomplete(word: String) -> [String] { - return try! FfiConverterSequenceString.lift(try! rustCall() { - uniffi_cove_fn_method_autocomplete_autocomplete(self.uniffiClonePointer(), - FfiConverterString.lower(word),$0 - ) -}) -} - -open func isValidWord(word: String) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_autocomplete_is_valid_word(self.uniffiClonePointer(), - FfiConverterString.lower(word),$0 - ) -}) + open func isValidWord(word: String) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_autocomplete_is_valid_word(self.uniffiClonePointer(), + FfiConverterString.lower(word), $0) + }) + } } - -} // Magic number for the Rust proxy to call using the same mechanism as every other method, // to free the callback once it's dropped by Rust. private let IDX_CALLBACK_FREE: Int32 = 0 @@ -1317,8 +1244,7 @@ private let UNIFFI_CALLBACK_ERROR: Int32 = 1 private let UNIFFI_CALLBACK_UNEXPECTED_ERROR: Int32 = 2 // Put the implementation in a struct so we don't pollute the top-level namespace -fileprivate struct UniffiCallbackInterfaceAutoComplete { - +private enum UniffiCallbackInterfaceAutoComplete { // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -1336,12 +1262,11 @@ fileprivate struct UniffiCallbackInterfaceAutoComplete { guard let uniffiObj = try? FfiConverterTypeAutoComplete.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return uniffiObj.autocomplete( - word: try FfiConverterString.lift(word) + return try uniffiObj.autocomplete( + word: FfiConverterString.lift(word) ) } - let writeReturn = { uniffiOutReturn.pointee = FfiConverterSequenceString.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -1360,12 +1285,11 @@ fileprivate struct UniffiCallbackInterfaceAutoComplete { guard let uniffiObj = try? FfiConverterTypeAutoComplete.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return uniffiObj.isValidWord( - word: try FfiConverterString.lift(word) + return try uniffiObj.isValidWord( + word: FfiConverterString.lift(word) ) } - let writeReturn = { uniffiOutReturn.pointee = FfiConverterBool.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -1373,7 +1297,7 @@ fileprivate struct UniffiCallbackInterfaceAutoComplete { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) -> () in + uniffiFree: { (uniffiHandle: UInt64) in let result = try? FfiConverterTypeAutoComplete.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface AutoComplete: handle missing in uniffiFree") @@ -1387,7 +1311,7 @@ private func uniffiCallbackInitAutoComplete() { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAutoComplete: FfiConverter { fileprivate static let handleMap = UniffiHandleMap() @@ -1396,7 +1320,7 @@ public struct FfiConverterTypeAutoComplete: FfiConverter { typealias SwiftType = AutoComplete public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> AutoComplete { - return AutoCompleteImpl(unsafeFromRawPointer: pointer) + AutoCompleteImpl(unsafeFromRawPointer: pointer) } public static func lower(_ value: AutoComplete) -> UnsafeMutableRawPointer { @@ -1411,7 +1335,7 @@ public struct FfiConverterTypeAutoComplete: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1424,44 +1348,37 @@ public struct FfiConverterTypeAutoComplete: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAutoComplete_lift(_ pointer: UnsafeMutableRawPointer) throws -> AutoComplete { - return try FfiConverterTypeAutoComplete.lift(pointer) + try FfiConverterTypeAutoComplete.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAutoComplete_lower(_ value: AutoComplete) -> UnsafeMutableRawPointer { - return FfiConverterTypeAutoComplete.lower(value) + FfiConverterTypeAutoComplete.lower(value) } +public protocol BbqrJoinResultProtocol: AnyObject { + func finalResult() throws -> String + func isComplete() -> Bool - -public protocol BbqrJoinResultProtocol : AnyObject { - - func finalResult() throws -> String - - func isComplete() -> Bool - - func partsLeft() -> UInt32 - + func partsLeft() -> UInt32 } open class BbqrJoinResult: - BbqrJoinResultProtocol { + BbqrJoinResultProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -1469,7 +1386,7 @@ open class BbqrJoinResult: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1478,70 +1395,62 @@ open class BbqrJoinResult: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_bbqrjoinresult(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_bbqrjoinresult(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_bbqrjoinresult(pointer, $0) } } - + open func finalResult() throws -> String { + try FfiConverterString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_bbqrjoinresult_final_result(self.uniffiClonePointer(), $0) + }) + } - -open func finalResult()throws -> String { - return try FfiConverterString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_bbqrjoinresult_final_result(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isComplete() -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_bbqrjoinresult_is_complete(self.uniffiClonePointer(),$0 - ) -}) -} - -open func partsLeft() -> UInt32 { - return try! FfiConverterUInt32.lift(try! rustCall() { - uniffi_cove_fn_method_bbqrjoinresult_parts_left(self.uniffiClonePointer(),$0 - ) -}) -} - + open func isComplete() -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_bbqrjoinresult_is_complete(self.uniffiClonePointer(), $0) + }) + } + open func partsLeft() -> UInt32 { + try! FfiConverterUInt32.lift(try! rustCall { + uniffi_cove_fn_method_bbqrjoinresult_parts_left(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBbqrJoinResult: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BbqrJoinResult public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoinResult { - return BbqrJoinResult(unsafeFromRawPointer: pointer) + BbqrJoinResult(unsafeFromRawPointer: pointer) } public static func lower(_ value: BbqrJoinResult) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BbqrJoinResult { @@ -1549,7 +1458,7 @@ public struct FfiConverterTypeBbqrJoinResult: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1562,42 +1471,35 @@ public struct FfiConverterTypeBbqrJoinResult: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoinResult_lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoinResult { - return try FfiConverterTypeBbqrJoinResult.lift(pointer) + try FfiConverterTypeBbqrJoinResult.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoinResult_lower(_ value: BbqrJoinResult) -> UnsafeMutableRawPointer { - return FfiConverterTypeBbqrJoinResult.lower(value) + FfiConverterTypeBbqrJoinResult.lower(value) } +public protocol BbqrJoinedProtocol: AnyObject { + func getGroupedWords(chunks: UInt8) throws -> [[String]] - - -public protocol BbqrJoinedProtocol : AnyObject { - - func getGroupedWords(chunks: UInt8) throws -> [[String]] - - func getSeedWords() throws -> [String] - + func getSeedWords() throws -> [String] } open class BbqrJoined: - BbqrJoinedProtocol { + BbqrJoinedProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -1605,7 +1507,7 @@ open class BbqrJoined: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1614,64 +1516,57 @@ open class BbqrJoined: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_bbqrjoined(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_bbqrjoined(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_bbqrjoined(pointer, $0) } } - - - -open func getGroupedWords(chunks: UInt8)throws -> [[String]] { - return try FfiConverterSequenceSequenceString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_bbqrjoined_get_grouped_words(self.uniffiClonePointer(), - FfiConverterUInt8.lower(chunks),$0 - ) -}) -} - -open func getSeedWords()throws -> [String] { - return try FfiConverterSequenceString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_bbqrjoined_get_seed_words(self.uniffiClonePointer(),$0 - ) -}) -} - + open func getGroupedWords(chunks: UInt8) throws -> [[String]] { + try FfiConverterSequenceSequenceString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_bbqrjoined_get_grouped_words(self.uniffiClonePointer(), + FfiConverterUInt8.lower(chunks), $0) + }) + } + open func getSeedWords() throws -> [String] { + try FfiConverterSequenceString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_bbqrjoined_get_seed_words(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBbqrJoined: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BbqrJoined public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoined { - return BbqrJoined(unsafeFromRawPointer: pointer) + BbqrJoined(unsafeFromRawPointer: pointer) } public static func lower(_ value: BbqrJoined) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BbqrJoined { @@ -1679,7 +1574,7 @@ public struct FfiConverterTypeBbqrJoined: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1692,42 +1587,35 @@ public struct FfiConverterTypeBbqrJoined: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoined_lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoined { - return try FfiConverterTypeBbqrJoined.lift(pointer) + try FfiConverterTypeBbqrJoined.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoined_lower(_ value: BbqrJoined) -> UnsafeMutableRawPointer { - return FfiConverterTypeBbqrJoined.lower(value) + FfiConverterTypeBbqrJoined.lower(value) } +public protocol Bip39AutoCompleteProtocol: AnyObject { + func autocomplete(word: String) -> [String] - - -public protocol Bip39AutoCompleteProtocol : AnyObject { - - func autocomplete(word: String) -> [String] - - func isValidWord(word: String) -> Bool - + func isValidWord(word: String) -> Bool } open class Bip39AutoComplete: - Bip39AutoCompleteProtocol { + Bip39AutoCompleteProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -1735,7 +1623,7 @@ open class Bip39AutoComplete: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1744,72 +1632,65 @@ open class Bip39AutoComplete: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_bip39autocomplete(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_bip39autocomplete(self.pointer, $0) } + } + + public convenience init() { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_bip39autocomplete_new($0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init() { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_bip39autocomplete_new($0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_bip39autocomplete(pointer, $0) } } - - - -open func autocomplete(word: String) -> [String] { - return try! FfiConverterSequenceString.lift(try! rustCall() { - uniffi_cove_fn_method_bip39autocomplete_autocomplete(self.uniffiClonePointer(), - FfiConverterString.lower(word),$0 - ) -}) -} - -open func isValidWord(word: String) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_bip39autocomplete_is_valid_word(self.uniffiClonePointer(), - FfiConverterString.lower(word),$0 - ) -}) -} - + open func autocomplete(word: String) -> [String] { + try! FfiConverterSequenceString.lift(try! rustCall { + uniffi_cove_fn_method_bip39autocomplete_autocomplete(self.uniffiClonePointer(), + FfiConverterString.lower(word), $0) + }) + } + open func isValidWord(word: String) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_bip39autocomplete_is_valid_word(self.uniffiClonePointer(), + FfiConverterString.lower(word), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBip39AutoComplete: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Bip39AutoComplete public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39AutoComplete { - return Bip39AutoComplete(unsafeFromRawPointer: pointer) + Bip39AutoComplete(unsafeFromRawPointer: pointer) } public static func lower(_ value: Bip39AutoComplete) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bip39AutoComplete { @@ -1817,7 +1698,7 @@ public struct FfiConverterTypeBip39AutoComplete: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1830,44 +1711,37 @@ public struct FfiConverterTypeBip39AutoComplete: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBip39AutoComplete_lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39AutoComplete { - return try FfiConverterTypeBip39AutoComplete.lift(pointer) + try FfiConverterTypeBip39AutoComplete.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBip39AutoComplete_lower(_ value: Bip39AutoComplete) -> UnsafeMutableRawPointer { - return FfiConverterTypeBip39AutoComplete.lower(value) + FfiConverterTypeBip39AutoComplete.lower(value) } +public protocol Bip39WordSpecificAutocompleteProtocol: AnyObject { + func autocomplete(word: String, allWords: [[String]]) -> [String] + func isBip39Word(word: String) -> Bool - -public protocol Bip39WordSpecificAutocompleteProtocol : AnyObject { - - func autocomplete(word: String, allWords: [[String]]) -> [String] - - func isBip39Word(word: String) -> Bool - - func isValidWord(word: String, allWords: [[String]]) -> Bool - + func isValidWord(word: String, allWords: [[String]]) -> Bool } open class Bip39WordSpecificAutocomplete: - Bip39WordSpecificAutocompleteProtocol { + Bip39WordSpecificAutocompleteProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -1875,7 +1749,7 @@ open class Bip39WordSpecificAutocomplete: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1884,84 +1758,76 @@ open class Bip39WordSpecificAutocomplete: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_bip39wordspecificautocomplete(self.pointer, $0) } - } -public convenience init(wordNumber: UInt16, numberOfWords: NumberOfBip39Words) { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_bip39wordspecificautocomplete_new( - FfiConverterUInt16.lower(wordNumber), - FfiConverterTypeNumberOfBip39Words.lower(numberOfWords),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} + try! rustCall { uniffi_cove_fn_clone_bip39wordspecificautocomplete(self.pointer, $0) } + } + + public convenience init(wordNumber: UInt16, numberOfWords: NumberOfBip39Words) { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_bip39wordspecificautocomplete_new( + FfiConverterUInt16.lower(wordNumber), + FfiConverterTypeNumberOfBip39Words.lower(numberOfWords), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) + } deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_bip39wordspecificautocomplete(pointer, $0) } } - + open func autocomplete(word: String, allWords: [[String]]) -> [String] { + try! FfiConverterSequenceString.lift(try! rustCall { + uniffi_cove_fn_method_bip39wordspecificautocomplete_autocomplete(self.uniffiClonePointer(), + FfiConverterString.lower(word), + FfiConverterSequenceSequenceString.lower(allWords), $0) + }) + } - -open func autocomplete(word: String, allWords: [[String]]) -> [String] { - return try! FfiConverterSequenceString.lift(try! rustCall() { - uniffi_cove_fn_method_bip39wordspecificautocomplete_autocomplete(self.uniffiClonePointer(), - FfiConverterString.lower(word), - FfiConverterSequenceSequenceString.lower(allWords),$0 - ) -}) -} - -open func isBip39Word(word: String) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_bip39wordspecificautocomplete_is_bip39_word(self.uniffiClonePointer(), - FfiConverterString.lower(word),$0 - ) -}) -} - -open func isValidWord(word: String, allWords: [[String]]) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_bip39wordspecificautocomplete_is_valid_word(self.uniffiClonePointer(), - FfiConverterString.lower(word), - FfiConverterSequenceSequenceString.lower(allWords),$0 - ) -}) -} - + open func isBip39Word(word: String) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_bip39wordspecificautocomplete_is_bip39_word(self.uniffiClonePointer(), + FfiConverterString.lower(word), $0) + }) + } + open func isValidWord(word: String, allWords: [[String]]) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_bip39wordspecificautocomplete_is_valid_word(self.uniffiClonePointer(), + FfiConverterString.lower(word), + FfiConverterSequenceSequenceString.lower(allWords), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBip39WordSpecificAutocomplete: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Bip39WordSpecificAutocomplete public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39WordSpecificAutocomplete { - return Bip39WordSpecificAutocomplete(unsafeFromRawPointer: pointer) + Bip39WordSpecificAutocomplete(unsafeFromRawPointer: pointer) } public static func lower(_ value: Bip39WordSpecificAutocomplete) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bip39WordSpecificAutocomplete { @@ -1969,7 +1835,7 @@ public struct FfiConverterTypeBip39WordSpecificAutocomplete: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1982,44 +1848,37 @@ public struct FfiConverterTypeBip39WordSpecificAutocomplete: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBip39WordSpecificAutocomplete_lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39WordSpecificAutocomplete { - return try FfiConverterTypeBip39WordSpecificAutocomplete.lift(pointer) + try FfiConverterTypeBip39WordSpecificAutocomplete.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBip39WordSpecificAutocomplete_lower(_ value: Bip39WordSpecificAutocomplete) -> UnsafeMutableRawPointer { - return FfiConverterTypeBip39WordSpecificAutocomplete.lower(value) + FfiConverterTypeBip39WordSpecificAutocomplete.lower(value) } +public protocol BitcoinTransactionProtocol: AnyObject { + func normalizeTxId() -> String + func txId() -> TxId - -public protocol BitcoinTransactionProtocol : AnyObject { - - func normalizeTxId() -> String - - func txId() -> TxId - - func txIdHash() -> String - + func txIdHash() -> String } open class BitcoinTransaction: - BitcoinTransactionProtocol { + BitcoinTransactionProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -2027,7 +1886,7 @@ open class BitcoinTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2036,86 +1895,78 @@ open class BitcoinTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_bitcointransaction(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_bitcointransaction(self.pointer, $0) } + } + + public convenience init(txHex: String) throws { + let pointer = + try rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { + uniffi_cove_fn_constructor_bitcointransaction_new( + FfiConverterString.lower(txHex), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(txHex: String)throws { - let pointer = - try rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { - uniffi_cove_fn_constructor_bitcointransaction_new( - FfiConverterString.lower(txHex),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_bitcointransaction(pointer, $0) } } - -public static func tryFromData(data: Data)throws -> BitcoinTransaction { - return try FfiConverterTypeBitcoinTransaction.lift(try rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { - uniffi_cove_fn_constructor_bitcointransaction_tryfromdata( - FfiConverterData.lower(data),$0 - ) -}) -} - + public static func tryFromData(data: Data) throws -> BitcoinTransaction { + try FfiConverterTypeBitcoinTransaction.lift(rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { + uniffi_cove_fn_constructor_bitcointransaction_tryfromdata( + FfiConverterData.lower(data), $0 + ) + }) + } - -open func normalizeTxId() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_bitcointransaction_normalize_tx_id(self.uniffiClonePointer(),$0 - ) -}) -} - -open func txId() -> TxId { - return try! FfiConverterTypeTxId.lift(try! rustCall() { - uniffi_cove_fn_method_bitcointransaction_tx_id(self.uniffiClonePointer(),$0 - ) -}) -} - -open func txIdHash() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_bitcointransaction_tx_id_hash(self.uniffiClonePointer(),$0 - ) -}) -} - + open func normalizeTxId() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_bitcointransaction_normalize_tx_id(self.uniffiClonePointer(), $0) + }) + } + open func txId() -> TxId { + try! FfiConverterTypeTxId.lift(try! rustCall { + uniffi_cove_fn_method_bitcointransaction_tx_id(self.uniffiClonePointer(), $0) + }) + } + + open func txIdHash() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_bitcointransaction_tx_id_hash(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBitcoinTransaction: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BitcoinTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BitcoinTransaction { - return BitcoinTransaction(unsafeFromRawPointer: pointer) + BitcoinTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: BitcoinTransaction) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BitcoinTransaction { @@ -2123,7 +1974,7 @@ public struct FfiConverterTypeBitcoinTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2136,40 +1987,33 @@ public struct FfiConverterTypeBitcoinTransaction: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBitcoinTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> BitcoinTransaction { - return try FfiConverterTypeBitcoinTransaction.lift(pointer) + try FfiConverterTypeBitcoinTransaction.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBitcoinTransaction_lower(_ value: BitcoinTransaction) -> UnsafeMutableRawPointer { - return FfiConverterTypeBitcoinTransaction.lower(value) + FfiConverterTypeBitcoinTransaction.lower(value) } - - - -public protocol BoxedRouteProtocol : AnyObject { - - func route() -> Route - +public protocol BoxedRouteProtocol: AnyObject { + func route() -> Route } open class BoxedRoute: - BoxedRouteProtocol { + BoxedRouteProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -2177,7 +2021,7 @@ open class BoxedRoute: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2186,64 +2030,58 @@ open class BoxedRoute: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_boxedroute(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_boxedroute(self.pointer, $0) } + } + + public convenience init(route: Route) { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_boxedroute_new( + FfiConverterTypeRoute.lower(route), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(route: Route) { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_boxedroute_new( - FfiConverterTypeRoute.lower(route),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_boxedroute(pointer, $0) } } - - - -open func route() -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_boxedroute_route(self.uniffiClonePointer(),$0 - ) -}) -} - - + open func route() -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_boxedroute_route(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBoxedRoute: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BoxedRoute public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BoxedRoute { - return BoxedRoute(unsafeFromRawPointer: pointer) + BoxedRoute(unsafeFromRawPointer: pointer) } public static func lower(_ value: BoxedRoute) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BoxedRoute { @@ -2251,7 +2089,7 @@ public struct FfiConverterTypeBoxedRoute: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2264,38 +2102,31 @@ public struct FfiConverterTypeBoxedRoute: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBoxedRoute_lift(_ pointer: UnsafeMutableRawPointer) throws -> BoxedRoute { - return try FfiConverterTypeBoxedRoute.lift(pointer) + try FfiConverterTypeBoxedRoute.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBoxedRoute_lower(_ value: BoxedRoute) -> UnsafeMutableRawPointer { - return FfiConverterTypeBoxedRoute.lower(value) + FfiConverterTypeBoxedRoute.lower(value) } - - - -public protocol ChainPositionProtocol : AnyObject { - -} +public protocol ChainPositionProtocol: AnyObject {} open class ChainPosition: - ChainPositionProtocol { + ChainPositionProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -2303,7 +2134,7 @@ open class ChainPosition: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2312,49 +2143,44 @@ open class ChainPosition: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_chainposition(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_chainposition(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_chainposition(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeChainPosition: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = ChainPosition public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> ChainPosition { - return ChainPosition(unsafeFromRawPointer: pointer) + ChainPosition(unsafeFromRawPointer: pointer) } public static func lower(_ value: ChainPosition) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ChainPosition { @@ -2362,7 +2188,7 @@ public struct FfiConverterTypeChainPosition: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2375,62 +2201,55 @@ public struct FfiConverterTypeChainPosition: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeChainPosition_lift(_ pointer: UnsafeMutableRawPointer) throws -> ChainPosition { - return try FfiConverterTypeChainPosition.lift(pointer) + try FfiConverterTypeChainPosition.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeChainPosition_lower(_ value: ChainPosition) -> UnsafeMutableRawPointer { - return FfiConverterTypeChainPosition.lower(value) -} - - - - -public protocol ConfirmDetailsProtocol : AnyObject { - - func feeRate() -> FeeRate - - func feeTotal() -> Amount - - func id() -> TxId - - func idHash() -> String - - func isEqual(rhs: ConfirmDetails) -> Bool - - func normalizedId() -> String - - func psbtBytes() -> Data - - func psbtToBbqr() throws -> [String] - - func psbtToHex() -> String - - func sendingAmount() -> Amount - - func sendingTo() -> Address - - func spendingAmount() -> Amount - + FfiConverterTypeChainPosition.lower(value) +} + +public protocol ConfirmDetailsProtocol: AnyObject { + func feeRate() -> FeeRate + + func feeTotal() -> Amount + + func id() -> TxId + + func idHash() -> String + + func isEqual(rhs: ConfirmDetails) -> Bool + + func normalizedId() -> String + + func psbtBytes() -> Data + + func psbtToBbqr() throws -> [String] + + func psbtToHex() -> String + + func sendingAmount() -> Amount + + func sendingTo() -> Address + + func spendingAmount() -> Amount } open class ConfirmDetails: - ConfirmDetailsProtocol { + ConfirmDetailsProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -2438,7 +2257,7 @@ open class ConfirmDetails: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2447,141 +2266,124 @@ open class ConfirmDetails: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_confirmdetails(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_confirmdetails(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_confirmdetails(pointer, $0) } } - -public static func previewNew() -> ConfirmDetails { - return try! FfiConverterTypeConfirmDetails.lift(try! rustCall() { - uniffi_cove_fn_constructor_confirmdetails_preview_new($0 - ) -}) -} - + public static func previewNew() -> ConfirmDetails { + try! FfiConverterTypeConfirmDetails.lift(try! rustCall { + uniffi_cove_fn_constructor_confirmdetails_preview_new($0 + ) + }) + } - -open func feeRate() -> FeeRate { - return try! FfiConverterTypeFeeRate.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_fee_rate(self.uniffiClonePointer(),$0 - ) -}) -} - -open func feeTotal() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_fee_total(self.uniffiClonePointer(),$0 - ) -}) -} - -open func id() -> TxId { - return try! FfiConverterTypeTxId.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_id(self.uniffiClonePointer(),$0 - ) -}) -} - -open func idHash() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_id_hash(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isEqual(rhs: ConfirmDetails) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_is_equal(self.uniffiClonePointer(), - FfiConverterTypeConfirmDetails.lower(rhs),$0 - ) -}) -} - -open func normalizedId() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_normalized_id(self.uniffiClonePointer(),$0 - ) -}) -} - -open func psbtBytes() -> Data { - return try! FfiConverterData.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_psbt_bytes(self.uniffiClonePointer(),$0 - ) -}) -} - -open func psbtToBbqr()throws -> [String] { - return try FfiConverterSequenceString.lift(try rustCallWithError(FfiConverterTypeConfirmDetailsError.lift) { - uniffi_cove_fn_method_confirmdetails_psbt_to_bbqr(self.uniffiClonePointer(),$0 - ) -}) -} - -open func psbtToHex() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_psbt_to_hex(self.uniffiClonePointer(),$0 - ) -}) -} - -open func sendingAmount() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_sending_amount(self.uniffiClonePointer(),$0 - ) -}) -} - -open func sendingTo() -> Address { - return try! FfiConverterTypeAddress.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_sending_to(self.uniffiClonePointer(),$0 - ) -}) -} - -open func spendingAmount() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_confirmdetails_spending_amount(self.uniffiClonePointer(),$0 - ) -}) -} - + open func feeRate() -> FeeRate { + try! FfiConverterTypeFeeRate.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_fee_rate(self.uniffiClonePointer(), $0) + }) + } + + open func feeTotal() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_fee_total(self.uniffiClonePointer(), $0) + }) + } + + open func id() -> TxId { + try! FfiConverterTypeTxId.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_id(self.uniffiClonePointer(), $0) + }) + } + + open func idHash() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_id_hash(self.uniffiClonePointer(), $0) + }) + } + + open func isEqual(rhs: ConfirmDetails) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_is_equal(self.uniffiClonePointer(), + FfiConverterTypeConfirmDetails.lower(rhs), $0) + }) + } + + open func normalizedId() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_normalized_id(self.uniffiClonePointer(), $0) + }) + } + + open func psbtBytes() -> Data { + try! FfiConverterData.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_psbt_bytes(self.uniffiClonePointer(), $0) + }) + } + + open func psbtToBbqr() throws -> [String] { + try FfiConverterSequenceString.lift(rustCallWithError(FfiConverterTypeConfirmDetailsError.lift) { + uniffi_cove_fn_method_confirmdetails_psbt_to_bbqr(self.uniffiClonePointer(), $0) + }) + } + + open func psbtToHex() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_psbt_to_hex(self.uniffiClonePointer(), $0) + }) + } + + open func sendingAmount() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_sending_amount(self.uniffiClonePointer(), $0) + }) + } + + open func sendingTo() -> Address { + try! FfiConverterTypeAddress.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_sending_to(self.uniffiClonePointer(), $0) + }) + } + open func spendingAmount() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_confirmdetails_spending_amount(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmDetails: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = ConfirmDetails public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmDetails { - return ConfirmDetails(unsafeFromRawPointer: pointer) + ConfirmDetails(unsafeFromRawPointer: pointer) } public static func lower(_ value: ConfirmDetails) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmDetails { @@ -2589,7 +2391,7 @@ public struct FfiConverterTypeConfirmDetails: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2602,56 +2404,49 @@ public struct FfiConverterTypeConfirmDetails: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeConfirmDetails_lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmDetails { - return try FfiConverterTypeConfirmDetails.lift(pointer) + try FfiConverterTypeConfirmDetails.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeConfirmDetails_lower(_ value: ConfirmDetails) -> UnsafeMutableRawPointer { - return FfiConverterTypeConfirmDetails.lower(value) + FfiConverterTypeConfirmDetails.lower(value) } +public protocol ConfirmedTransactionProtocol: AnyObject { + func blockHeight() -> UInt32 + func blockHeightFmt() -> String + func confirmedAt() -> UInt64 -public protocol ConfirmedTransactionProtocol : AnyObject { - - func blockHeight() -> UInt32 - - func blockHeightFmt() -> String - - func confirmedAt() -> UInt64 - - func confirmedAtFmt() -> String - - func confirmedAtFmtWithTime() -> String - - func fiatAmount() -> FiatAmount? - - func id() -> TxId - - func label() -> String - - func sentAndReceived() -> SentAndReceived - -} + func confirmedAtFmt() -> String -open class ConfirmedTransaction: - ConfirmedTransactionProtocol { - fileprivate let pointer: UnsafeMutableRawPointer! + func confirmedAtFmtWithTime() -> String + + func fiatAmount() -> FiatAmount? + + func id() -> TxId + + func label() -> String + + func sentAndReceived() -> SentAndReceived +} + +open class ConfirmedTransaction: + ConfirmedTransactionProtocol +{ + fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -2659,7 +2454,7 @@ open class ConfirmedTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2668,112 +2463,98 @@ open class ConfirmedTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_confirmedtransaction(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_confirmedtransaction(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_confirmedtransaction(pointer, $0) } } - + open func blockHeight() -> UInt32 { + try! FfiConverterUInt32.lift(try! rustCall { + uniffi_cove_fn_method_confirmedtransaction_block_height(self.uniffiClonePointer(), $0) + }) + } - -open func blockHeight() -> UInt32 { - return try! FfiConverterUInt32.lift(try! rustCall() { - uniffi_cove_fn_method_confirmedtransaction_block_height(self.uniffiClonePointer(),$0 - ) -}) -} - -open func blockHeightFmt() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_confirmedtransaction_block_height_fmt(self.uniffiClonePointer(),$0 - ) -}) -} - -open func confirmedAt() -> UInt64 { - return try! FfiConverterUInt64.lift(try! rustCall() { - uniffi_cove_fn_method_confirmedtransaction_confirmed_at(self.uniffiClonePointer(),$0 - ) -}) -} - -open func confirmedAtFmt() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt(self.uniffiClonePointer(),$0 - ) -}) -} - -open func confirmedAtFmtWithTime() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt_with_time(self.uniffiClonePointer(),$0 - ) -}) -} - -open func fiatAmount() -> FiatAmount? { - return try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall() { - uniffi_cove_fn_method_confirmedtransaction_fiat_amount(self.uniffiClonePointer(),$0 - ) -}) -} - -open func id() -> TxId { - return try! FfiConverterTypeTxId.lift(try! rustCall() { - uniffi_cove_fn_method_confirmedtransaction_id(self.uniffiClonePointer(),$0 - ) -}) -} - -open func label() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_confirmedtransaction_label(self.uniffiClonePointer(),$0 - ) -}) -} - -open func sentAndReceived() -> SentAndReceived { - return try! FfiConverterTypeSentAndReceived.lift(try! rustCall() { - uniffi_cove_fn_method_confirmedtransaction_sent_and_received(self.uniffiClonePointer(),$0 - ) -}) -} - + open func blockHeightFmt() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_confirmedtransaction_block_height_fmt(self.uniffiClonePointer(), $0) + }) + } + + open func confirmedAt() -> UInt64 { + try! FfiConverterUInt64.lift(try! rustCall { + uniffi_cove_fn_method_confirmedtransaction_confirmed_at(self.uniffiClonePointer(), $0) + }) + } + + open func confirmedAtFmt() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt(self.uniffiClonePointer(), $0) + }) + } + + open func confirmedAtFmtWithTime() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt_with_time(self.uniffiClonePointer(), $0) + }) + } + + open func fiatAmount() -> FiatAmount? { + try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall { + uniffi_cove_fn_method_confirmedtransaction_fiat_amount(self.uniffiClonePointer(), $0) + }) + } + + open func id() -> TxId { + try! FfiConverterTypeTxId.lift(try! rustCall { + uniffi_cove_fn_method_confirmedtransaction_id(self.uniffiClonePointer(), $0) + }) + } + open func label() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_confirmedtransaction_label(self.uniffiClonePointer(), $0) + }) + } + + open func sentAndReceived() -> SentAndReceived { + try! FfiConverterTypeSentAndReceived.lift(try! rustCall { + uniffi_cove_fn_method_confirmedtransaction_sent_and_received(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmedTransaction: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = ConfirmedTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmedTransaction { - return ConfirmedTransaction(unsafeFromRawPointer: pointer) + ConfirmedTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: ConfirmedTransaction) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmedTransaction { @@ -2781,7 +2562,7 @@ public struct FfiConverterTypeConfirmedTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2794,44 +2575,37 @@ public struct FfiConverterTypeConfirmedTransaction: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmedTransaction { - return try FfiConverterTypeConfirmedTransaction.lift(pointer) + try FfiConverterTypeConfirmedTransaction.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedTransaction_lower(_ value: ConfirmedTransaction) -> UnsafeMutableRawPointer { - return FfiConverterTypeConfirmedTransaction.lower(value) + FfiConverterTypeConfirmedTransaction.lower(value) } +public protocol DatabaseProtocol: AnyObject { + func globalConfig() -> GlobalConfigTable + func unsignedTransactions() -> UnsignedTransactionsTable - -public protocol DatabaseProtocol : AnyObject { - - func globalConfig() -> GlobalConfigTable - - func unsignedTransactions() -> UnsignedTransactionsTable - - func wallets() -> WalletsTable - + func wallets() -> WalletsTable } open class Database: - DatabaseProtocol { + DatabaseProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -2839,7 +2613,7 @@ open class Database: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2848,77 +2622,69 @@ open class Database: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_database(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_database(self.pointer, $0) } + } + + public convenience init() { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_database_new($0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init() { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_database_new($0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_database(pointer, $0) } } - + open func globalConfig() -> GlobalConfigTable { + try! FfiConverterTypeGlobalConfigTable.lift(try! rustCall { + uniffi_cove_fn_method_database_global_config(self.uniffiClonePointer(), $0) + }) + } - -open func globalConfig() -> GlobalConfigTable { - return try! FfiConverterTypeGlobalConfigTable.lift(try! rustCall() { - uniffi_cove_fn_method_database_global_config(self.uniffiClonePointer(),$0 - ) -}) -} - -open func unsignedTransactions() -> UnsignedTransactionsTable { - return try! FfiConverterTypeUnsignedTransactionsTable.lift(try! rustCall() { - uniffi_cove_fn_method_database_unsigned_transactions(self.uniffiClonePointer(),$0 - ) -}) -} - -open func wallets() -> WalletsTable { - return try! FfiConverterTypeWalletsTable.lift(try! rustCall() { - uniffi_cove_fn_method_database_wallets(self.uniffiClonePointer(),$0 - ) -}) -} - + open func unsignedTransactions() -> UnsignedTransactionsTable { + try! FfiConverterTypeUnsignedTransactionsTable.lift(try! rustCall { + uniffi_cove_fn_method_database_unsigned_transactions(self.uniffiClonePointer(), $0) + }) + } + open func wallets() -> WalletsTable { + try! FfiConverterTypeWalletsTable.lift(try! rustCall { + uniffi_cove_fn_method_database_wallets(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeDatabase: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Database public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Database { - return Database(unsafeFromRawPointer: pointer) + Database(unsafeFromRawPointer: pointer) } public static func lower(_ value: Database) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Database { @@ -2926,7 +2692,7 @@ public struct FfiConverterTypeDatabase: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2939,40 +2705,33 @@ public struct FfiConverterTypeDatabase: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeDatabase_lift(_ pointer: UnsafeMutableRawPointer) throws -> Database { - return try FfiConverterTypeDatabase.lift(pointer) + try FfiConverterTypeDatabase.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeDatabase_lower(_ value: Database) -> UnsafeMutableRawPointer { - return FfiConverterTypeDatabase.lower(value) + FfiConverterTypeDatabase.lower(value) } - - - -public protocol FeeRateProtocol : AnyObject { - - func satPerVb() -> Double - +public protocol FeeRateProtocol: AnyObject { + func satPerVb() -> Double } open class FeeRate: - FeeRateProtocol { + FeeRateProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -2980,7 +2739,7 @@ open class FeeRate: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2989,64 +2748,58 @@ open class FeeRate: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_feerate(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_feerate(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_feerate(pointer, $0) } } - -public static func fromSatPerVb(satPerVb: UInt64) -> FeeRate { - return try! FfiConverterTypeFeeRate.lift(try! rustCall() { - uniffi_cove_fn_constructor_feerate_from_sat_per_vb( - FfiConverterUInt64.lower(satPerVb),$0 - ) -}) -} - - - -open func satPerVb() -> Double { - return try! FfiConverterDouble.lift(try! rustCall() { - uniffi_cove_fn_method_feerate_sat_per_vb(self.uniffiClonePointer(),$0 - ) -}) -} - + public static func fromSatPerVb(satPerVb: UInt64) -> FeeRate { + try! FfiConverterTypeFeeRate.lift(try! rustCall { + uniffi_cove_fn_constructor_feerate_from_sat_per_vb( + FfiConverterUInt64.lower(satPerVb), $0 + ) + }) + } + open func satPerVb() -> Double { + try! FfiConverterDouble.lift(try! rustCall { + uniffi_cove_fn_method_feerate_sat_per_vb(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRate: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRate public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRate { - return FeeRate(unsafeFromRawPointer: pointer) + FeeRate(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRate) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRate { @@ -3054,7 +2807,7 @@ public struct FfiConverterTypeFeeRate: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3067,48 +2820,41 @@ public struct FfiConverterTypeFeeRate: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRate_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRate { - return try FfiConverterTypeFeeRate.lift(pointer) + try FfiConverterTypeFeeRate.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRate_lower(_ value: FeeRate) -> UnsafeMutableRawPointer { - return FfiConverterTypeFeeRate.lower(value) + FfiConverterTypeFeeRate.lower(value) } +public protocol FeeRateOptionProtocol: AnyObject { + func duration() -> String + + func feeRate() -> FeeRate + func feeSpeed() -> FeeSpeed + func isEqual(rhs: FeeRateOption) -> Bool -public protocol FeeRateOptionProtocol : AnyObject { - - func duration() -> String - - func feeRate() -> FeeRate - - func feeSpeed() -> FeeSpeed - - func isEqual(rhs: FeeRateOption) -> Bool - - func satPerVb() -> Double - + func satPerVb() -> Double } open class FeeRateOption: - FeeRateOptionProtocol { + FeeRateOptionProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -3116,7 +2862,7 @@ open class FeeRateOption: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3125,94 +2871,84 @@ open class FeeRateOption: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_feerateoption(self.pointer, $0) } - } -public convenience init(feeSpeed: FeeSpeed, feeRate: UInt64) { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_feerateoption_new( - FfiConverterTypeFeeSpeed.lower(feeSpeed), - FfiConverterUInt64.lower(feeRate),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} + try! rustCall { uniffi_cove_fn_clone_feerateoption(self.pointer, $0) } + } + + public convenience init(feeSpeed: FeeSpeed, feeRate: UInt64) { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_feerateoption_new( + FfiConverterTypeFeeSpeed.lower(feeSpeed), + FfiConverterUInt64.lower(feeRate), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) + } deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoption(pointer, $0) } } - + open func duration() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_feerateoption_duration(self.uniffiClonePointer(), $0) + }) + } - -open func duration() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoption_duration(self.uniffiClonePointer(),$0 - ) -}) -} - -open func feeRate() -> FeeRate { - return try! FfiConverterTypeFeeRate.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoption_fee_rate(self.uniffiClonePointer(),$0 - ) -}) -} - -open func feeSpeed() -> FeeSpeed { - return try! FfiConverterTypeFeeSpeed.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoption_fee_speed(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isEqual(rhs: FeeRateOption) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoption_is_equal(self.uniffiClonePointer(), - FfiConverterTypeFeeRateOption.lower(rhs),$0 - ) -}) -} - -open func satPerVb() -> Double { - return try! FfiConverterDouble.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoption_sat_per_vb(self.uniffiClonePointer(),$0 - ) -}) -} - + open func feeRate() -> FeeRate { + try! FfiConverterTypeFeeRate.lift(try! rustCall { + uniffi_cove_fn_method_feerateoption_fee_rate(self.uniffiClonePointer(), $0) + }) + } + + open func feeSpeed() -> FeeSpeed { + try! FfiConverterTypeFeeSpeed.lift(try! rustCall { + uniffi_cove_fn_method_feerateoption_fee_speed(self.uniffiClonePointer(), $0) + }) + } + + open func isEqual(rhs: FeeRateOption) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_feerateoption_is_equal(self.uniffiClonePointer(), + FfiConverterTypeFeeRateOption.lower(rhs), $0) + }) + } + open func satPerVb() -> Double { + try! FfiConverterDouble.lift(try! rustCall { + uniffi_cove_fn_method_feerateoption_sat_per_vb(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOption: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOption public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOption { - return FeeRateOption(unsafeFromRawPointer: pointer) + FeeRateOption(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOption) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOption { @@ -3220,7 +2956,7 @@ public struct FfiConverterTypeFeeRateOption: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3233,52 +2969,45 @@ public struct FfiConverterTypeFeeRateOption: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOption_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOption { - return try FfiConverterTypeFeeRateOption.lift(pointer) + try FfiConverterTypeFeeRateOption.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOption_lower(_ value: FeeRateOption) -> UnsafeMutableRawPointer { - return FfiConverterTypeFeeRateOption.lower(value) + FfiConverterTypeFeeRateOption.lower(value) } +public protocol FeeRateOptionWithTotalFeeProtocol: AnyObject { + func duration() -> String + + func feeRate() -> FeeRate + + func feeRateOptions() -> FeeRateOption + + func feeSpeed() -> FeeSpeed + func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool + func satPerVb() -> Double -public protocol FeeRateOptionWithTotalFeeProtocol : AnyObject { - - func duration() -> String - - func feeRate() -> FeeRate - - func feeRateOptions() -> FeeRateOption - - func feeSpeed() -> FeeSpeed - - func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool - - func satPerVb() -> Double - - func totalFee() -> Amount - + func totalFee() -> Amount } open class FeeRateOptionWithTotalFee: - FeeRateOptionWithTotalFeeProtocol { + FeeRateOptionWithTotalFeeProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -3286,7 +3015,7 @@ open class FeeRateOptionWithTotalFee: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3295,99 +3024,87 @@ open class FeeRateOptionWithTotalFee: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_feerateoptionwithtotalfee(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_feerateoptionwithtotalfee(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoptionwithtotalfee(pointer, $0) } } - + open func duration() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionwithtotalfee_duration(self.uniffiClonePointer(), $0) + }) + } - -open func duration() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionwithtotalfee_duration(self.uniffiClonePointer(),$0 - ) -}) -} - -open func feeRate() -> FeeRate { - return try! FfiConverterTypeFeeRate.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate(self.uniffiClonePointer(),$0 - ) -}) -} - -open func feeRateOptions() -> FeeRateOption { - return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate_options(self.uniffiClonePointer(),$0 - ) -}) -} - -open func feeSpeed() -> FeeSpeed { - return try! FfiConverterTypeFeeSpeed.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_speed(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionwithtotalfee_is_equal(self.uniffiClonePointer(), - FfiConverterTypeFeeRateOptionWithTotalFee.lower(rhs),$0 - ) -}) -} - -open func satPerVb() -> Double { - return try! FfiConverterDouble.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionwithtotalfee_sat_per_vb(self.uniffiClonePointer(),$0 - ) -}) -} - -open func totalFee() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionwithtotalfee_total_fee(self.uniffiClonePointer(),$0 - ) -}) -} - + open func feeRate() -> FeeRate { + try! FfiConverterTypeFeeRate.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate(self.uniffiClonePointer(), $0) + }) + } + + open func feeRateOptions() -> FeeRateOption { + try! FfiConverterTypeFeeRateOption.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate_options(self.uniffiClonePointer(), $0) + }) + } + open func feeSpeed() -> FeeSpeed { + try! FfiConverterTypeFeeSpeed.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_speed(self.uniffiClonePointer(), $0) + }) + } + + open func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionwithtotalfee_is_equal(self.uniffiClonePointer(), + FfiConverterTypeFeeRateOptionWithTotalFee.lower(rhs), $0) + }) + } + + open func satPerVb() -> Double { + try! FfiConverterDouble.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionwithtotalfee_sat_per_vb(self.uniffiClonePointer(), $0) + }) + } + + open func totalFee() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionwithtotalfee_total_fee(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOptionWithTotalFee: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOptionWithTotalFee public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionWithTotalFee { - return FeeRateOptionWithTotalFee(unsafeFromRawPointer: pointer) + FeeRateOptionWithTotalFee(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOptionWithTotalFee) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOptionWithTotalFee { @@ -3395,7 +3112,7 @@ public struct FfiConverterTypeFeeRateOptionWithTotalFee: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3408,44 +3125,37 @@ public struct FfiConverterTypeFeeRateOptionWithTotalFee: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionWithTotalFee_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionWithTotalFee { - return try FfiConverterTypeFeeRateOptionWithTotalFee.lift(pointer) + try FfiConverterTypeFeeRateOptionWithTotalFee.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionWithTotalFee_lower(_ value: FeeRateOptionWithTotalFee) -> UnsafeMutableRawPointer { - return FfiConverterTypeFeeRateOptionWithTotalFee.lower(value) + FfiConverterTypeFeeRateOptionWithTotalFee.lower(value) } +public protocol FeeRateOptionsProtocol: AnyObject { + func fast() -> FeeRateOption + func medium() -> FeeRateOption - -public protocol FeeRateOptionsProtocol : AnyObject { - - func fast() -> FeeRateOption - - func medium() -> FeeRateOption - - func slow() -> FeeRateOption - + func slow() -> FeeRateOption } open class FeeRateOptions: - FeeRateOptionsProtocol { + FeeRateOptionsProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -3453,7 +3163,7 @@ open class FeeRateOptions: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3462,77 +3172,69 @@ open class FeeRateOptions: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_feerateoptions(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_feerateoptions(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoptions(pointer, $0) } } - -public static func previewNew() -> FeeRateOptions { - return try! FfiConverterTypeFeeRateOptions.lift(try! rustCall() { - uniffi_cove_fn_constructor_feerateoptions_preview_new($0 - ) -}) -} - + public static func previewNew() -> FeeRateOptions { + try! FfiConverterTypeFeeRateOptions.lift(try! rustCall { + uniffi_cove_fn_constructor_feerateoptions_preview_new($0 + ) + }) + } - -open func fast() -> FeeRateOption { - return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptions_fast(self.uniffiClonePointer(),$0 - ) -}) -} - -open func medium() -> FeeRateOption { - return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptions_medium(self.uniffiClonePointer(),$0 - ) -}) -} - -open func slow() -> FeeRateOption { - return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptions_slow(self.uniffiClonePointer(),$0 - ) -}) -} - + open func fast() -> FeeRateOption { + try! FfiConverterTypeFeeRateOption.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptions_fast(self.uniffiClonePointer(), $0) + }) + } + open func medium() -> FeeRateOption { + try! FfiConverterTypeFeeRateOption.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptions_medium(self.uniffiClonePointer(), $0) + }) + } + + open func slow() -> FeeRateOption { + try! FfiConverterTypeFeeRateOption.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptions_slow(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOptions: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOptions public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptions { - return FeeRateOptions(unsafeFromRawPointer: pointer) + FeeRateOptions(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOptions) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOptions { @@ -3540,7 +3242,7 @@ public struct FfiConverterTypeFeeRateOptions: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3553,46 +3255,39 @@ public struct FfiConverterTypeFeeRateOptions: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptions_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptions { - return try FfiConverterTypeFeeRateOptions.lift(pointer) + try FfiConverterTypeFeeRateOptions.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptions_lower(_ value: FeeRateOptions) -> UnsafeMutableRawPointer { - return FfiConverterTypeFeeRateOptions.lower(value) + FfiConverterTypeFeeRateOptions.lower(value) } +public protocol FeeRateOptionsWithTotalFeeProtocol: AnyObject { + func fast() -> FeeRateOptionWithTotalFee + func feeRateOptions() -> FeeRateOptions + func medium() -> FeeRateOptionWithTotalFee -public protocol FeeRateOptionsWithTotalFeeProtocol : AnyObject { - - func fast() -> FeeRateOptionWithTotalFee - - func feeRateOptions() -> FeeRateOptions - - func medium() -> FeeRateOptionWithTotalFee - - func slow() -> FeeRateOptionWithTotalFee - + func slow() -> FeeRateOptionWithTotalFee } open class FeeRateOptionsWithTotalFee: - FeeRateOptionsWithTotalFeeProtocol { + FeeRateOptionsWithTotalFeeProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -3600,7 +3295,7 @@ open class FeeRateOptionsWithTotalFee: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3609,84 +3304,75 @@ open class FeeRateOptionsWithTotalFee: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_feerateoptionswithtotalfee(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_feerateoptionswithtotalfee(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoptionswithtotalfee(pointer, $0) } } - -public static func previewNew() -> FeeRateOptionsWithTotalFee { - return try! FfiConverterTypeFeeRateOptionsWithTotalFee.lift(try! rustCall() { - uniffi_cove_fn_constructor_feerateoptionswithtotalfee_preview_new($0 - ) -}) -} - + public static func previewNew() -> FeeRateOptionsWithTotalFee { + try! FfiConverterTypeFeeRateOptionsWithTotalFee.lift(try! rustCall { + uniffi_cove_fn_constructor_feerateoptionswithtotalfee_preview_new($0 + ) + }) + } - -open func fast() -> FeeRateOptionWithTotalFee { - return try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionswithtotalfee_fast(self.uniffiClonePointer(),$0 - ) -}) -} - -open func feeRateOptions() -> FeeRateOptions { - return try! FfiConverterTypeFeeRateOptions.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionswithtotalfee_fee_rate_options(self.uniffiClonePointer(),$0 - ) -}) -} - -open func medium() -> FeeRateOptionWithTotalFee { - return try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionswithtotalfee_medium(self.uniffiClonePointer(),$0 - ) -}) -} - -open func slow() -> FeeRateOptionWithTotalFee { - return try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall() { - uniffi_cove_fn_method_feerateoptionswithtotalfee_slow(self.uniffiClonePointer(),$0 - ) -}) -} - + open func fast() -> FeeRateOptionWithTotalFee { + try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionswithtotalfee_fast(self.uniffiClonePointer(), $0) + }) + } + + open func feeRateOptions() -> FeeRateOptions { + try! FfiConverterTypeFeeRateOptions.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionswithtotalfee_fee_rate_options(self.uniffiClonePointer(), $0) + }) + } + + open func medium() -> FeeRateOptionWithTotalFee { + try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionswithtotalfee_medium(self.uniffiClonePointer(), $0) + }) + } + open func slow() -> FeeRateOptionWithTotalFee { + try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall { + uniffi_cove_fn_method_feerateoptionswithtotalfee_slow(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOptionsWithTotalFee: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOptionsWithTotalFee public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionsWithTotalFee { - return FeeRateOptionsWithTotalFee(unsafeFromRawPointer: pointer) + FeeRateOptionsWithTotalFee(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOptionsWithTotalFee) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOptionsWithTotalFee { @@ -3694,7 +3380,7 @@ public struct FfiConverterTypeFeeRateOptionsWithTotalFee: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3707,100 +3393,93 @@ public struct FfiConverterTypeFeeRateOptionsWithTotalFee: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionsWithTotalFee_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionsWithTotalFee { - return try FfiConverterTypeFeeRateOptionsWithTotalFee.lift(pointer) + try FfiConverterTypeFeeRateOptionsWithTotalFee.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionsWithTotalFee_lower(_ value: FeeRateOptionsWithTotalFee) -> UnsafeMutableRawPointer { - return FfiConverterTypeFeeRateOptionsWithTotalFee.lower(value) + FfiConverterTypeFeeRateOptionsWithTotalFee.lower(value) } - - - /** * Representation of our app over FFI. Essentially a wrapper of [`App`]. */ -public protocol FfiAppProtocol : AnyObject { - +public protocol FfiAppProtocol: AnyObject { /** * Frontend calls this method to send events to the rust application logic */ - func dispatch(action: AppAction) - - func fees() async throws -> FeeResponse - + func dispatch(action: AppAction) + + func fees() async throws -> FeeResponse + /** * Get the selected wallet */ - func goToSelectedWallet() -> WalletId? - + func goToSelectedWallet() -> WalletId? + /** * Check if there's any wallets */ - func hasWallets() -> Bool - + func hasWallets() -> Bool + /** * run all initialization tasks here, only called once */ - func initOnStart() async - - func listenForUpdates(updater: FfiReconcile) - + func initOnStart() async + + func listenForUpdates(updater: FfiReconcile) + /** * Load and reset the default route after 800ms delay */ - func loadAndResetDefaultRoute(route: Route) - + func loadAndResetDefaultRoute(route: Route) + /** * Load and reset the default route * Shows a laoding screen, and then resets the default route */ - func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) - - func network() -> Network - + func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) + + func network() -> Network + /** * Number of wallets */ - func numWallets() -> UInt16 - - func prices() async throws -> PriceResponse - + func numWallets() -> UInt16 + + func prices() async throws -> PriceResponse + /** * Change the default route, and reset the routes */ - func resetDefaultRouteTo(route: Route) - + func resetDefaultRouteTo(route: Route) + /** * Select a wallet */ - func selectWallet(id: WalletId) throws - - func state() -> AppState - + func selectWallet(id: WalletId) throws + + func state() -> AppState } /** * Representation of our app over FFI. Essentially a wrapper of [`App`]. */ open class FfiApp: - FfiAppProtocol { + FfiAppProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -3808,7 +3487,7 @@ open class FfiApp: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3817,59 +3496,54 @@ open class FfiApp: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_ffiapp(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_ffiapp(self.pointer, $0) } } + /** * FFI constructor which wraps in an Arc */ -public convenience init() { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_ffiapp_new($0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} + public convenience init() { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_ffiapp_new($0 + ) + } + self.init(unsafeFromRawPointer: pointer) + } deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_ffiapp(pointer, $0) } } - - - /** * Frontend calls this method to send events to the rust application logic */ -open func dispatch(action: AppAction) {try! rustCall() { - uniffi_cove_fn_method_ffiapp_dispatch(self.uniffiClonePointer(), - FfiConverterTypeAppAction.lower(action),$0 - ) -} -} - -open func fees()async throws -> FeeResponse { - return - try await uniffiRustCallAsync( + open func dispatch(action: AppAction) { try! rustCall { + uniffi_cove_fn_method_ffiapp_dispatch(self.uniffiClonePointer(), + FfiConverterTypeAppAction.lower(action), $0) + } + } + + open func fees() async throws -> FeeResponse { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_ffiapp_fees( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -3878,38 +3552,34 @@ open func fees()async throws -> FeeResponse { liftFunc: FfiConverterTypeFeeResponse.lift, errorHandler: FfiConverterTypeAppError.lift ) -} - + } + /** * Get the selected wallet */ -open func goToSelectedWallet() -> WalletId? { - return try! FfiConverterOptionTypeWalletId.lift(try! rustCall() { - uniffi_cove_fn_method_ffiapp_go_to_selected_wallet(self.uniffiClonePointer(),$0 - ) -}) -} - + open func goToSelectedWallet() -> WalletId? { + try! FfiConverterOptionTypeWalletId.lift(try! rustCall { + uniffi_cove_fn_method_ffiapp_go_to_selected_wallet(self.uniffiClonePointer(), $0) + }) + } + /** * Check if there's any wallets */ -open func hasWallets() -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_ffiapp_has_wallets(self.uniffiClonePointer(),$0 - ) -}) -} - + open func hasWallets() -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_ffiapp_has_wallets(self.uniffiClonePointer(), $0) + }) + } + /** * run all initialization tasks here, only called once */ -open func initOnStart()async { - return - try! await uniffiRustCallAsync( + open func initOnStart() async { + try! await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_ffiapp_init_on_start( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_void, @@ -3917,63 +3587,55 @@ open func initOnStart()async { freeFunc: ffi_cove_rust_future_free_void, liftFunc: { $0 }, errorHandler: nil - ) -} - -open func listenForUpdates(updater: FfiReconcile) {try! rustCall() { - uniffi_cove_fn_method_ffiapp_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfaceFfiReconcile.lower(updater),$0 - ) -} -} - + } + + open func listenForUpdates(updater: FfiReconcile) { try! rustCall { + uniffi_cove_fn_method_ffiapp_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfaceFfiReconcile.lower(updater), $0) + } + } + /** * Load and reset the default route after 800ms delay */ -open func loadAndResetDefaultRoute(route: Route) {try! rustCall() { - uniffi_cove_fn_method_ffiapp_load_and_reset_default_route(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route),$0 - ) -} -} - + open func loadAndResetDefaultRoute(route: Route) { try! rustCall { + uniffi_cove_fn_method_ffiapp_load_and_reset_default_route(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route), $0) + } + } + /** * Load and reset the default route * Shows a laoding screen, and then resets the default route */ -open func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) {try! rustCall() { - uniffi_cove_fn_method_ffiapp_load_and_reset_default_route_after(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), - FfiConverterUInt32.lower(afterMillis),$0 - ) -} -} - -open func network() -> Network { - return try! FfiConverterTypeNetwork.lift(try! rustCall() { - uniffi_cove_fn_method_ffiapp_network(self.uniffiClonePointer(),$0 - ) -}) -} - + open func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) { try! rustCall { + uniffi_cove_fn_method_ffiapp_load_and_reset_default_route_after(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route), + FfiConverterUInt32.lower(afterMillis), $0) + } + } + + open func network() -> Network { + try! FfiConverterTypeNetwork.lift(try! rustCall { + uniffi_cove_fn_method_ffiapp_network(self.uniffiClonePointer(), $0) + }) + } + /** * Number of wallets */ -open func numWallets() -> UInt16 { - return try! FfiConverterUInt16.lift(try! rustCall() { - uniffi_cove_fn_method_ffiapp_num_wallets(self.uniffiClonePointer(),$0 - ) -}) -} - -open func prices()async throws -> PriceResponse { - return - try await uniffiRustCallAsync( + open func numWallets() -> UInt16 { + try! FfiConverterUInt16.lift(try! rustCall { + uniffi_cove_fn_method_ffiapp_num_wallets(self.uniffiClonePointer(), $0) + }) + } + + open func prices() async throws -> PriceResponse { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_ffiapp_prices( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -3982,52 +3644,46 @@ open func prices()async throws -> PriceResponse { liftFunc: FfiConverterTypePriceResponse.lift, errorHandler: FfiConverterTypeAppError.lift ) -} - + } + /** * Change the default route, and reset the routes */ -open func resetDefaultRouteTo(route: Route) {try! rustCall() { - uniffi_cove_fn_method_ffiapp_reset_default_route_to(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route),$0 - ) -} -} - + open func resetDefaultRouteTo(route: Route) { try! rustCall { + uniffi_cove_fn_method_ffiapp_reset_default_route_to(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route), $0) + } + } + /** * Select a wallet */ -open func selectWallet(id: WalletId)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_ffiapp_select_wallet(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id),$0 - ) -} -} - -open func state() -> AppState { - return try! FfiConverterTypeAppState.lift(try! rustCall() { - uniffi_cove_fn_method_ffiapp_state(self.uniffiClonePointer(),$0 - ) -}) -} - + open func selectWallet(id: WalletId) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_ffiapp_select_wallet(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), $0) + } + } + open func state() -> AppState { + try! FfiConverterTypeAppState.lift(try! rustCall { + uniffi_cove_fn_method_ffiapp_state(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFfiApp: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FfiApp public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiApp { - return FfiApp(unsafeFromRawPointer: pointer) + FfiApp(unsafeFromRawPointer: pointer) } public static func lower(_ value: FfiApp) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiApp { @@ -4035,7 +3691,7 @@ public struct FfiConverterTypeFfiApp: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4048,50 +3704,43 @@ public struct FfiConverterTypeFfiApp: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiApp_lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiApp { - return try FfiConverterTypeFfiApp.lift(pointer) + try FfiConverterTypeFfiApp.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiApp_lower(_ value: FfiApp) -> UnsafeMutableRawPointer { - return FfiConverterTypeFfiApp.lower(value) + FfiConverterTypeFfiApp.lower(value) } +public protocol FfiNfcReaderProtocol: AnyObject { + func dataFromRecords(records: [NdefRecord]) -> Data + func isResumeable(data: Data) throws + func isStarted() -> Bool -public protocol FfiNfcReaderProtocol : AnyObject { - - func dataFromRecords(records: [NdefRecord]) -> Data - - func isResumeable(data: Data) throws - - func isStarted() -> Bool - - func messageInfo() -> MessageInfo? - - func parse(data: Data) throws -> ParseResult - - func stringFromRecord(record: NdefRecord) -> String? - + func messageInfo() -> MessageInfo? + + func parse(data: Data) throws -> ParseResult + + func stringFromRecord(record: NdefRecord) -> String? } open class FfiNfcReader: - FfiNfcReaderProtocol { + FfiNfcReaderProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -4099,7 +3748,7 @@ open class FfiNfcReader: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4108,101 +3757,90 @@ open class FfiNfcReader: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_ffinfcreader(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_ffinfcreader(self.pointer, $0) } + } + + public convenience init() { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_ffinfcreader_new($0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init() { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_ffinfcreader_new($0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_ffinfcreader(pointer, $0) } } - + open func dataFromRecords(records: [NdefRecord]) -> Data { + try! FfiConverterData.lift(try! rustCall { + uniffi_cove_fn_method_ffinfcreader_data_from_records(self.uniffiClonePointer(), + FfiConverterSequenceTypeNdefRecord.lower(records), $0) + }) + } - -open func dataFromRecords(records: [NdefRecord]) -> Data { - return try! FfiConverterData.lift(try! rustCall() { - uniffi_cove_fn_method_ffinfcreader_data_from_records(self.uniffiClonePointer(), - FfiConverterSequenceTypeNdefRecord.lower(records),$0 - ) -}) -} - -open func isResumeable(data: Data)throws {try rustCallWithError(FfiConverterTypeResumeError.lift) { - uniffi_cove_fn_method_ffinfcreader_is_resumeable(self.uniffiClonePointer(), - FfiConverterData.lower(data),$0 - ) -} -} - -open func isStarted() -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_ffinfcreader_is_started(self.uniffiClonePointer(),$0 - ) -}) -} - -open func messageInfo() -> MessageInfo? { - return try! FfiConverterOptionTypeMessageInfo.lift(try! rustCall() { - uniffi_cove_fn_method_ffinfcreader_message_info(self.uniffiClonePointer(),$0 - ) -}) -} - -open func parse(data: Data)throws -> ParseResult { - return try FfiConverterTypeParseResult.lift(try rustCallWithError(FfiConverterTypeNfcReaderError.lift) { - uniffi_cove_fn_method_ffinfcreader_parse(self.uniffiClonePointer(), - FfiConverterData.lower(data),$0 - ) -}) -} - -open func stringFromRecord(record: NdefRecord) -> String? { - return try! FfiConverterOptionString.lift(try! rustCall() { - uniffi_cove_fn_method_ffinfcreader_string_from_record(self.uniffiClonePointer(), - FfiConverterTypeNdefRecord.lower(record),$0 - ) -}) -} - + open func isResumeable(data: Data) throws { try rustCallWithError(FfiConverterTypeResumeError.lift) { + uniffi_cove_fn_method_ffinfcreader_is_resumeable(self.uniffiClonePointer(), + FfiConverterData.lower(data), $0) + } + } + + open func isStarted() -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_ffinfcreader_is_started(self.uniffiClonePointer(), $0) + }) + } + + open func messageInfo() -> MessageInfo? { + try! FfiConverterOptionTypeMessageInfo.lift(try! rustCall { + uniffi_cove_fn_method_ffinfcreader_message_info(self.uniffiClonePointer(), $0) + }) + } + + open func parse(data: Data) throws -> ParseResult { + try FfiConverterTypeParseResult.lift(rustCallWithError(FfiConverterTypeNfcReaderError.lift) { + uniffi_cove_fn_method_ffinfcreader_parse(self.uniffiClonePointer(), + FfiConverterData.lower(data), $0) + }) + } + open func stringFromRecord(record: NdefRecord) -> String? { + try! FfiConverterOptionString.lift(try! rustCall { + uniffi_cove_fn_method_ffinfcreader_string_from_record(self.uniffiClonePointer(), + FfiConverterTypeNdefRecord.lower(record), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFfiNfcReader: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FfiNfcReader public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiNfcReader { - return FfiNfcReader(unsafeFromRawPointer: pointer) + FfiNfcReader(unsafeFromRawPointer: pointer) } public static func lower(_ value: FfiNfcReader) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiNfcReader { @@ -4210,7 +3848,7 @@ public struct FfiConverterTypeFfiNfcReader: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4223,38 +3861,31 @@ public struct FfiConverterTypeFfiNfcReader: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiNfcReader_lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiNfcReader { - return try FfiConverterTypeFfiNfcReader.lift(pointer) + try FfiConverterTypeFfiNfcReader.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiNfcReader_lower(_ value: FfiNfcReader) -> UnsafeMutableRawPointer { - return FfiConverterTypeFfiNfcReader.lower(value) + FfiConverterTypeFfiNfcReader.lower(value) } - - - -public protocol FiatClientProtocol : AnyObject { - -} +public protocol FiatClientProtocol: AnyObject {} open class FiatClient: - FiatClientProtocol { + FiatClientProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -4262,7 +3893,7 @@ open class FiatClient: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4271,49 +3902,44 @@ open class FiatClient: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_fiatclient(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_fiatclient(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_fiatclient(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFiatClient: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FiatClient public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FiatClient { - return FiatClient(unsafeFromRawPointer: pointer) + FiatClient(unsafeFromRawPointer: pointer) } public static func lower(_ value: FiatClient) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatClient { @@ -4321,7 +3947,7 @@ public struct FfiConverterTypeFiatClient: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4334,40 +3960,33 @@ public struct FfiConverterTypeFiatClient: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFiatClient_lift(_ pointer: UnsafeMutableRawPointer) throws -> FiatClient { - return try FfiConverterTypeFiatClient.lift(pointer) + try FfiConverterTypeFiatClient.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFiatClient_lower(_ value: FiatClient) -> UnsafeMutableRawPointer { - return FfiConverterTypeFiatClient.lower(value) + FfiConverterTypeFiatClient.lower(value) } - - - -public protocol FileHandlerProtocol : AnyObject { - - func read() throws -> MultiFormat - +public protocol FileHandlerProtocol: AnyObject { + func read() throws -> MultiFormat } open class FileHandler: - FileHandlerProtocol { + FileHandlerProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -4375,7 +3994,7 @@ open class FileHandler: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4384,64 +4003,58 @@ open class FileHandler: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_filehandler(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_filehandler(self.pointer, $0) } + } + + public convenience init(filePath: String) { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_filehandler_new( + FfiConverterString.lower(filePath), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(filePath: String) { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_filehandler_new( - FfiConverterString.lower(filePath),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_filehandler(pointer, $0) } } - - - -open func read()throws -> MultiFormat { - return try FfiConverterTypeMultiFormat.lift(try rustCallWithError(FfiConverterTypeFileHandlerError.lift) { - uniffi_cove_fn_method_filehandler_read(self.uniffiClonePointer(),$0 - ) -}) -} - - + open func read() throws -> MultiFormat { + try FfiConverterTypeMultiFormat.lift(rustCallWithError(FfiConverterTypeFileHandlerError.lift) { + uniffi_cove_fn_method_filehandler_read(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFileHandler: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FileHandler public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FileHandler { - return FileHandler(unsafeFromRawPointer: pointer) + FileHandler(unsafeFromRawPointer: pointer) } public static func lower(_ value: FileHandler) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FileHandler { @@ -4449,7 +4062,7 @@ public struct FfiConverterTypeFileHandler: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4462,42 +4075,35 @@ public struct FfiConverterTypeFileHandler: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFileHandler_lift(_ pointer: UnsafeMutableRawPointer) throws -> FileHandler { - return try FfiConverterTypeFileHandler.lift(pointer) + try FfiConverterTypeFileHandler.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFileHandler_lower(_ value: FileHandler) -> UnsafeMutableRawPointer { - return FfiConverterTypeFileHandler.lower(value) + FfiConverterTypeFileHandler.lower(value) } +public protocol FingerprintProtocol: AnyObject { + func asLowercase() -> String - - -public protocol FingerprintProtocol : AnyObject { - - func asLowercase() -> String - - func asUppercase() -> String - + func asUppercase() -> String } open class Fingerprint: - FingerprintProtocol { + FingerprintProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -4505,7 +4111,7 @@ open class Fingerprint: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4514,71 +4120,64 @@ open class Fingerprint: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_fingerprint(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_fingerprint(self.pointer, $0) } + } + + public convenience init(id: WalletId) throws { + let pointer = + try rustCallWithError(FfiConverterTypeFingerprintError.lift) { + uniffi_cove_fn_constructor_fingerprint_new( + FfiConverterTypeWalletId.lower(id), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(id: WalletId)throws { - let pointer = - try rustCallWithError(FfiConverterTypeFingerprintError.lift) { - uniffi_cove_fn_constructor_fingerprint_new( - FfiConverterTypeWalletId.lower(id),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_fingerprint(pointer, $0) } } - - - -open func asLowercase() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_fingerprint_as_lowercase(self.uniffiClonePointer(),$0 - ) -}) -} - -open func asUppercase() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_fingerprint_as_uppercase(self.uniffiClonePointer(),$0 - ) -}) -} - + open func asLowercase() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_fingerprint_as_lowercase(self.uniffiClonePointer(), $0) + }) + } + open func asUppercase() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_fingerprint_as_uppercase(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFingerprint: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Fingerprint public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Fingerprint { - return Fingerprint(unsafeFromRawPointer: pointer) + Fingerprint(unsafeFromRawPointer: pointer) } public static func lower(_ value: Fingerprint) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Fingerprint { @@ -4586,7 +4185,7 @@ public struct FfiConverterTypeFingerprint: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4599,38 +4198,31 @@ public struct FfiConverterTypeFingerprint: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFingerprint_lift(_ pointer: UnsafeMutableRawPointer) throws -> Fingerprint { - return try FfiConverterTypeFingerprint.lift(pointer) + try FfiConverterTypeFingerprint.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFingerprint_lower(_ value: Fingerprint) -> UnsafeMutableRawPointer { - return FfiConverterTypeFingerprint.lower(value) + FfiConverterTypeFingerprint.lower(value) } - - - -public protocol FoundJsonProtocol : AnyObject { - -} +public protocol FoundJsonProtocol: AnyObject {} open class FoundJson: - FoundJsonProtocol { + FoundJsonProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -4638,7 +4230,7 @@ open class FoundJson: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4647,49 +4239,44 @@ open class FoundJson: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_foundjson(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_foundjson(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_foundjson(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFoundJson: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FoundJson public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FoundJson { - return FoundJson(unsafeFromRawPointer: pointer) + FoundJson(unsafeFromRawPointer: pointer) } public static func lower(_ value: FoundJson) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FoundJson { @@ -4697,7 +4284,7 @@ public struct FfiConverterTypeFoundJson: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4710,62 +4297,55 @@ public struct FfiConverterTypeFoundJson: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFoundJson_lift(_ pointer: UnsafeMutableRawPointer) throws -> FoundJson { - return try FfiConverterTypeFoundJson.lift(pointer) + try FfiConverterTypeFoundJson.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFoundJson_lower(_ value: FoundJson) -> UnsafeMutableRawPointer { - return FfiConverterTypeFoundJson.lower(value) -} - - - - -public protocol GlobalConfigTableProtocol : AnyObject { - - func clearSelectedWallet() throws - - func colorScheme() -> ColorSchemeSelection - - func delete(key: GlobalConfigKey) throws - - func get(key: GlobalConfigKey) throws -> String? - - func selectWallet(id: WalletId) throws - - func selectedNetwork() -> Network - - func selectedNode() -> Node - - func selectedWallet() -> WalletId? - - func set(key: GlobalConfigKey, value: String) throws - - func setColorScheme(colorScheme: ColorSchemeSelection) throws - - func setSelectedNetwork(network: Network) throws - - func setSelectedNode(node: Node) throws - + FfiConverterTypeFoundJson.lower(value) +} + +public protocol GlobalConfigTableProtocol: AnyObject { + func clearSelectedWallet() throws + + func colorScheme() -> ColorSchemeSelection + + func delete(key: GlobalConfigKey) throws + + func get(key: GlobalConfigKey) throws -> String? + + func selectWallet(id: WalletId) throws + + func selectedNetwork() -> Network + + func selectedNode() -> Node + + func selectedWallet() -> WalletId? + + func set(key: GlobalConfigKey, value: String) throws + + func setColorScheme(colorScheme: ColorSchemeSelection) throws + + func setSelectedNetwork(network: Network) throws + + func setSelectedNode(node: Node) throws } open class GlobalConfigTable: - GlobalConfigTableProtocol { + GlobalConfigTableProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -4773,7 +4353,7 @@ open class GlobalConfigTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4782,134 +4362,117 @@ open class GlobalConfigTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_globalconfigtable(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_globalconfigtable(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_globalconfigtable(pointer, $0) } } - + open func clearSelectedWallet() throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_clear_selected_wallet(self.uniffiClonePointer(), $0) + } + } - -open func clearSelectedWallet()throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_clear_selected_wallet(self.uniffiClonePointer(),$0 - ) -} -} - -open func colorScheme() -> ColorSchemeSelection { - return try! FfiConverterTypeColorSchemeSelection.lift(try! rustCall() { - uniffi_cove_fn_method_globalconfigtable_color_scheme(self.uniffiClonePointer(),$0 - ) -}) -} - -open func delete(key: GlobalConfigKey)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_delete(self.uniffiClonePointer(), - FfiConverterTypeGlobalConfigKey.lower(key),$0 - ) -} -} - -open func get(key: GlobalConfigKey)throws -> String? { - return try FfiConverterOptionString.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_get(self.uniffiClonePointer(), - FfiConverterTypeGlobalConfigKey.lower(key),$0 - ) -}) -} - -open func selectWallet(id: WalletId)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_select_wallet(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id),$0 - ) -} -} - -open func selectedNetwork() -> Network { - return try! FfiConverterTypeNetwork.lift(try! rustCall() { - uniffi_cove_fn_method_globalconfigtable_selected_network(self.uniffiClonePointer(),$0 - ) -}) -} - -open func selectedNode() -> Node { - return try! FfiConverterTypeNode.lift(try! rustCall() { - uniffi_cove_fn_method_globalconfigtable_selected_node(self.uniffiClonePointer(),$0 - ) -}) -} - -open func selectedWallet() -> WalletId? { - return try! FfiConverterOptionTypeWalletId.lift(try! rustCall() { - uniffi_cove_fn_method_globalconfigtable_selected_wallet(self.uniffiClonePointer(),$0 - ) -}) -} - -open func set(key: GlobalConfigKey, value: String)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set(self.uniffiClonePointer(), - FfiConverterTypeGlobalConfigKey.lower(key), - FfiConverterString.lower(value),$0 - ) -} -} - -open func setColorScheme(colorScheme: ColorSchemeSelection)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set_color_scheme(self.uniffiClonePointer(), - FfiConverterTypeColorSchemeSelection.lower(colorScheme),$0 - ) -} -} - -open func setSelectedNetwork(network: Network)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set_selected_network(self.uniffiClonePointer(), - FfiConverterTypeNetwork.lower(network),$0 - ) -} -} - -open func setSelectedNode(node: Node)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set_selected_node(self.uniffiClonePointer(), - FfiConverterTypeNode.lower(node),$0 - ) -} -} - + open func colorScheme() -> ColorSchemeSelection { + try! FfiConverterTypeColorSchemeSelection.lift(try! rustCall { + uniffi_cove_fn_method_globalconfigtable_color_scheme(self.uniffiClonePointer(), $0) + }) + } + + open func delete(key: GlobalConfigKey) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_delete(self.uniffiClonePointer(), + FfiConverterTypeGlobalConfigKey.lower(key), $0) + } + } + + open func get(key: GlobalConfigKey) throws -> String? { + try FfiConverterOptionString.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_get(self.uniffiClonePointer(), + FfiConverterTypeGlobalConfigKey.lower(key), $0) + }) + } + + open func selectWallet(id: WalletId) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_select_wallet(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), $0) + } + } + + open func selectedNetwork() -> Network { + try! FfiConverterTypeNetwork.lift(try! rustCall { + uniffi_cove_fn_method_globalconfigtable_selected_network(self.uniffiClonePointer(), $0) + }) + } + + open func selectedNode() -> Node { + try! FfiConverterTypeNode.lift(try! rustCall { + uniffi_cove_fn_method_globalconfigtable_selected_node(self.uniffiClonePointer(), $0) + }) + } + + open func selectedWallet() -> WalletId? { + try! FfiConverterOptionTypeWalletId.lift(try! rustCall { + uniffi_cove_fn_method_globalconfigtable_selected_wallet(self.uniffiClonePointer(), $0) + }) + } + + open func set(key: GlobalConfigKey, value: String) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set(self.uniffiClonePointer(), + FfiConverterTypeGlobalConfigKey.lower(key), + FfiConverterString.lower(value), $0) + } + } + + open func setColorScheme(colorScheme: ColorSchemeSelection) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set_color_scheme(self.uniffiClonePointer(), + FfiConverterTypeColorSchemeSelection.lower(colorScheme), $0) + } + } + open func setSelectedNetwork(network: Network) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set_selected_network(self.uniffiClonePointer(), + FfiConverterTypeNetwork.lower(network), $0) + } + } + + open func setSelectedNode(node: Node) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set_selected_node(self.uniffiClonePointer(), + FfiConverterTypeNode.lower(node), $0) + } + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalConfigTable: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = GlobalConfigTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalConfigTable { - return GlobalConfigTable(unsafeFromRawPointer: pointer) + GlobalConfigTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: GlobalConfigTable) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalConfigTable { @@ -4917,7 +4480,7 @@ public struct FfiConverterTypeGlobalConfigTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4930,44 +4493,37 @@ public struct FfiConverterTypeGlobalConfigTable: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalConfigTable { - return try FfiConverterTypeGlobalConfigTable.lift(pointer) + try FfiConverterTypeGlobalConfigTable.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigTable_lower(_ value: GlobalConfigTable) -> UnsafeMutableRawPointer { - return FfiConverterTypeGlobalConfigTable.lower(value) + FfiConverterTypeGlobalConfigTable.lower(value) } +public protocol GlobalFlagTableProtocol: AnyObject { + func get(key: GlobalFlagKey) throws -> Bool + func set(key: GlobalFlagKey, value: Bool) throws - -public protocol GlobalFlagTableProtocol : AnyObject { - - func get(key: GlobalFlagKey) throws -> Bool - - func set(key: GlobalFlagKey, value: Bool) throws - - func toggleBoolConfig(key: GlobalFlagKey) throws - + func toggleBoolConfig(key: GlobalFlagKey) throws } open class GlobalFlagTable: - GlobalFlagTableProtocol { + GlobalFlagTableProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -4975,7 +4531,7 @@ open class GlobalFlagTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4984,72 +4540,64 @@ open class GlobalFlagTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_globalflagtable(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_globalflagtable(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_globalflagtable(pointer, $0) } } - + open func get(key: GlobalFlagKey) throws -> Bool { + try FfiConverterBool.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalflagtable_get(self.uniffiClonePointer(), + FfiConverterTypeGlobalFlagKey.lower(key), $0) + }) + } - -open func get(key: GlobalFlagKey)throws -> Bool { - return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalflagtable_get(self.uniffiClonePointer(), - FfiConverterTypeGlobalFlagKey.lower(key),$0 - ) -}) -} - -open func set(key: GlobalFlagKey, value: Bool)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalflagtable_set(self.uniffiClonePointer(), - FfiConverterTypeGlobalFlagKey.lower(key), - FfiConverterBool.lower(value),$0 - ) -} -} - -open func toggleBoolConfig(key: GlobalFlagKey)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalflagtable_toggle_bool_config(self.uniffiClonePointer(), - FfiConverterTypeGlobalFlagKey.lower(key),$0 - ) -} -} - + open func set(key: GlobalFlagKey, value: Bool) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalflagtable_set(self.uniffiClonePointer(), + FfiConverterTypeGlobalFlagKey.lower(key), + FfiConverterBool.lower(value), $0) + } + } + open func toggleBoolConfig(key: GlobalFlagKey) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalflagtable_toggle_bool_config(self.uniffiClonePointer(), + FfiConverterTypeGlobalFlagKey.lower(key), $0) + } + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalFlagTable: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = GlobalFlagTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalFlagTable { - return GlobalFlagTable(unsafeFromRawPointer: pointer) + GlobalFlagTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: GlobalFlagTable) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalFlagTable { @@ -5057,7 +4605,7 @@ public struct FfiConverterTypeGlobalFlagTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5070,38 +4618,31 @@ public struct FfiConverterTypeGlobalFlagTable: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalFlagTable { - return try FfiConverterTypeGlobalFlagTable.lift(pointer) + try FfiConverterTypeGlobalFlagTable.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagTable_lower(_ value: GlobalFlagTable) -> UnsafeMutableRawPointer { - return FfiConverterTypeGlobalFlagTable.lower(value) + FfiConverterTypeGlobalFlagTable.lower(value) } - - - -public protocol HardwareExportProtocol : AnyObject { - -} +public protocol HardwareExportProtocol: AnyObject {} open class HardwareExport: - HardwareExportProtocol { + HardwareExportProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -5109,7 +4650,7 @@ open class HardwareExport: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5118,49 +4659,44 @@ open class HardwareExport: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_hardwareexport(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_hardwareexport(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_hardwareexport(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeHardwareExport: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = HardwareExport public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> HardwareExport { - return HardwareExport(unsafeFromRawPointer: pointer) + HardwareExport(unsafeFromRawPointer: pointer) } public static func lower(_ value: HardwareExport) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> HardwareExport { @@ -5168,7 +4704,7 @@ public struct FfiConverterTypeHardwareExport: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5181,44 +4717,37 @@ public struct FfiConverterTypeHardwareExport: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeHardwareExport_lift(_ pointer: UnsafeMutableRawPointer) throws -> HardwareExport { - return try FfiConverterTypeHardwareExport.lift(pointer) + try FfiConverterTypeHardwareExport.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeHardwareExport_lower(_ value: HardwareExport) -> UnsafeMutableRawPointer { - return FfiConverterTypeHardwareExport.lower(value) + FfiConverterTypeHardwareExport.lower(value) } +public protocol HeaderIconPresenterProtocol: AnyObject { + func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor + func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor - -public protocol HeaderIconPresenterProtocol : AnyObject { - - func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor - - func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor - - func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor - + func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor } open class HeaderIconPresenter: - HeaderIconPresenterProtocol { + HeaderIconPresenterProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -5226,7 +4755,7 @@ open class HeaderIconPresenter: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5235,90 +4764,82 @@ open class HeaderIconPresenter: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_headericonpresenter(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_headericonpresenter(self.pointer, $0) } + } + + public convenience init() { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_headericonpresenter_new($0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init() { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_headericonpresenter_new($0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_headericonpresenter(pointer, $0) } } - + open func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { + try! FfiConverterTypeFfiColor.lift(try! rustCall { + uniffi_cove_fn_method_headericonpresenter_background_color(self.uniffiClonePointer(), + FfiConverterTypeTransactionState.lower(state), + FfiConverterTypeTransactionDirection.lower(direction), + FfiConverterTypeFfiColorScheme.lower(colorScheme), + FfiConverterInt32.lower(confirmationCount), $0) + }) + } - -open func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { - return try! FfiConverterTypeFfiColor.lift(try! rustCall() { - uniffi_cove_fn_method_headericonpresenter_background_color(self.uniffiClonePointer(), - FfiConverterTypeTransactionState.lower(state), - FfiConverterTypeTransactionDirection.lower(direction), - FfiConverterTypeFfiColorScheme.lower(colorScheme), - FfiConverterInt32.lower(confirmationCount),$0 - ) -}) -} - -open func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { - return try! FfiConverterTypeFfiColor.lift(try! rustCall() { - uniffi_cove_fn_method_headericonpresenter_icon_color(self.uniffiClonePointer(), - FfiConverterTypeTransactionState.lower(state), - FfiConverterTypeTransactionDirection.lower(direction), - FfiConverterTypeFfiColorScheme.lower(colorScheme), - FfiConverterInt32.lower(confirmationCount),$0 - ) -}) -} - -open func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor { - return try! FfiConverterTypeFfiColor.lift(try! rustCall() { - uniffi_cove_fn_method_headericonpresenter_ring_color(self.uniffiClonePointer(), - FfiConverterTypeTransactionState.lower(state), - FfiConverterTypeFfiColorScheme.lower(colorScheme), - FfiConverterTypeTransactionDirection.lower(direction), - FfiConverterInt32.lower(confirmations), - FfiConverterInt32.lower(ringNumber),$0 - ) -}) -} - + open func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { + try! FfiConverterTypeFfiColor.lift(try! rustCall { + uniffi_cove_fn_method_headericonpresenter_icon_color(self.uniffiClonePointer(), + FfiConverterTypeTransactionState.lower(state), + FfiConverterTypeTransactionDirection.lower(direction), + FfiConverterTypeFfiColorScheme.lower(colorScheme), + FfiConverterInt32.lower(confirmationCount), $0) + }) + } + open func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor { + try! FfiConverterTypeFfiColor.lift(try! rustCall { + uniffi_cove_fn_method_headericonpresenter_ring_color(self.uniffiClonePointer(), + FfiConverterTypeTransactionState.lower(state), + FfiConverterTypeFfiColorScheme.lower(colorScheme), + FfiConverterTypeTransactionDirection.lower(direction), + FfiConverterInt32.lower(confirmations), + FfiConverterInt32.lower(ringNumber), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeHeaderIconPresenter: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = HeaderIconPresenter public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> HeaderIconPresenter { - return HeaderIconPresenter(unsafeFromRawPointer: pointer) + HeaderIconPresenter(unsafeFromRawPointer: pointer) } public static func lower(_ value: HeaderIconPresenter) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> HeaderIconPresenter { @@ -5326,7 +4847,7 @@ public struct FfiConverterTypeHeaderIconPresenter: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5339,38 +4860,31 @@ public struct FfiConverterTypeHeaderIconPresenter: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeHeaderIconPresenter_lift(_ pointer: UnsafeMutableRawPointer) throws -> HeaderIconPresenter { - return try FfiConverterTypeHeaderIconPresenter.lift(pointer) + try FfiConverterTypeHeaderIconPresenter.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeHeaderIconPresenter_lower(_ value: HeaderIconPresenter) -> UnsafeMutableRawPointer { - return FfiConverterTypeHeaderIconPresenter.lower(value) + FfiConverterTypeHeaderIconPresenter.lower(value) } - - - -public protocol KeychainProtocol : AnyObject { - -} +public protocol KeychainProtocol: AnyObject {} open class Keychain: - KeychainProtocol { + KeychainProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -5378,7 +4892,7 @@ open class Keychain: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5387,57 +4901,52 @@ open class Keychain: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_keychain(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_keychain(self.pointer, $0) } + } + + public convenience init(keychain: KeychainAccess) { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_keychain_new( + FfiConverterCallbackInterfaceKeychainAccess.lower(keychain), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(keychain: KeychainAccess) { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_keychain_new( - FfiConverterCallbackInterfaceKeychainAccess.lower(keychain),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_keychain(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeKeychain: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Keychain public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Keychain { - return Keychain(unsafeFromRawPointer: pointer) + Keychain(unsafeFromRawPointer: pointer) } public static func lower(_ value: Keychain) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Keychain { @@ -5445,7 +4954,7 @@ public struct FfiConverterTypeKeychain: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5458,42 +4967,35 @@ public struct FfiConverterTypeKeychain: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeKeychain_lift(_ pointer: UnsafeMutableRawPointer) throws -> Keychain { - return try FfiConverterTypeKeychain.lift(pointer) + try FfiConverterTypeKeychain.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeKeychain_lower(_ value: Keychain) -> UnsafeMutableRawPointer { - return FfiConverterTypeKeychain.lower(value) + FfiConverterTypeKeychain.lower(value) } +public protocol MnemonicProtocol: AnyObject { + func allWords() -> [GroupedWord] - - -public protocol MnemonicProtocol : AnyObject { - - func allWords() -> [GroupedWord] - - func words() -> [String] - + func words() -> [String] } open class Mnemonic: - MnemonicProtocol { + MnemonicProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -5501,7 +5003,7 @@ open class Mnemonic: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5510,79 +5012,72 @@ open class Mnemonic: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_mnemonic(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_mnemonic(self.pointer, $0) } + } + + public convenience init(id: WalletId) throws { + let pointer = + try rustCallWithError(FfiConverterTypeMnemonicError.lift) { + uniffi_cove_fn_constructor_mnemonic_new( + FfiConverterTypeWalletId.lower(id), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(id: WalletId)throws { - let pointer = - try rustCallWithError(FfiConverterTypeMnemonicError.lift) { - uniffi_cove_fn_constructor_mnemonic_new( - FfiConverterTypeWalletId.lower(id),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_mnemonic(pointer, $0) } } - -public static func preview(numberOfBip39Words: NumberOfBip39Words) -> Mnemonic { - return try! FfiConverterTypeMnemonic.lift(try! rustCall() { - uniffi_cove_fn_constructor_mnemonic_preview( - FfiConverterTypeNumberOfBip39Words.lower(numberOfBip39Words),$0 - ) -}) -} - + public static func preview(numberOfBip39Words: NumberOfBip39Words) -> Mnemonic { + try! FfiConverterTypeMnemonic.lift(try! rustCall { + uniffi_cove_fn_constructor_mnemonic_preview( + FfiConverterTypeNumberOfBip39Words.lower(numberOfBip39Words), $0 + ) + }) + } - -open func allWords() -> [GroupedWord] { - return try! FfiConverterSequenceTypeGroupedWord.lift(try! rustCall() { - uniffi_cove_fn_method_mnemonic_all_words(self.uniffiClonePointer(),$0 - ) -}) -} - -open func words() -> [String] { - return try! FfiConverterSequenceString.lift(try! rustCall() { - uniffi_cove_fn_method_mnemonic_words(self.uniffiClonePointer(),$0 - ) -}) -} - + open func allWords() -> [GroupedWord] { + try! FfiConverterSequenceTypeGroupedWord.lift(try! rustCall { + uniffi_cove_fn_method_mnemonic_all_words(self.uniffiClonePointer(), $0) + }) + } + open func words() -> [String] { + try! FfiConverterSequenceString.lift(try! rustCall { + uniffi_cove_fn_method_mnemonic_words(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeMnemonic: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Mnemonic public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Mnemonic { - return Mnemonic(unsafeFromRawPointer: pointer) + Mnemonic(unsafeFromRawPointer: pointer) } public static func lower(_ value: Mnemonic) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Mnemonic { @@ -5590,7 +5085,7 @@ public struct FfiConverterTypeMnemonic: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5603,50 +5098,43 @@ public struct FfiConverterTypeMnemonic: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMnemonic_lift(_ pointer: UnsafeMutableRawPointer) throws -> Mnemonic { - return try FfiConverterTypeMnemonic.lift(pointer) + try FfiConverterTypeMnemonic.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMnemonic_lower(_ value: Mnemonic) -> UnsafeMutableRawPointer { - return FfiConverterTypeMnemonic.lower(value) + FfiConverterTypeMnemonic.lower(value) } +public protocol MultiQrProtocol: AnyObject { + func addPart(qr: String) throws -> BbqrJoinResult + + func getGroupedWords(qr: StringOrData, groupsOf: UInt8) throws -> [[String]]? + func handleScanResult(qr: StringOrData) throws -> MultiQrScanResult + func isBbqr() -> Bool -public protocol MultiQrProtocol : AnyObject { - - func addPart(qr: String) throws -> BbqrJoinResult - - func getGroupedWords(qr: StringOrData, groupsOf: UInt8) throws -> [[String]]? - - func handleScanResult(qr: StringOrData) throws -> MultiQrScanResult - - func isBbqr() -> Bool - - func isSeedQr() -> Bool - - func totalParts() -> UInt32 - + func isSeedQr() -> Bool + + func totalParts() -> UInt32 } open class MultiQr: - MultiQrProtocol { + MultiQrProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -5654,7 +5142,7 @@ open class MultiQr: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5663,119 +5151,108 @@ open class MultiQr: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_multiqr(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_multiqr(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_multiqr(pointer, $0) } } - -public static func newFromString(qr: String) -> MultiQr { - return try! FfiConverterTypeMultiQr.lift(try! rustCall() { - uniffi_cove_fn_constructor_multiqr_new_from_string( - FfiConverterString.lower(qr),$0 - ) -}) -} - -public static func tryNew(qr: StringOrData)throws -> MultiQr { - return try FfiConverterTypeMultiQr.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_constructor_multiqr_try_new( - FfiConverterTypeStringOrData.lower(qr),$0 - ) -}) -} - -public static func tryNewFromData(data: Data)throws -> MultiQr { - return try FfiConverterTypeMultiQr.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_constructor_multiqr_try_new_from_data( - FfiConverterData.lower(data),$0 - ) -}) -} - + public static func newFromString(qr: String) -> MultiQr { + try! FfiConverterTypeMultiQr.lift(try! rustCall { + uniffi_cove_fn_constructor_multiqr_new_from_string( + FfiConverterString.lower(qr), $0 + ) + }) + } - -open func addPart(qr: String)throws -> BbqrJoinResult { - return try FfiConverterTypeBbqrJoinResult.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_multiqr_add_part(self.uniffiClonePointer(), - FfiConverterString.lower(qr),$0 - ) -}) -} - -open func getGroupedWords(qr: StringOrData, groupsOf: UInt8)throws -> [[String]]? { - return try FfiConverterOptionSequenceSequenceString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_multiqr_get_grouped_words(self.uniffiClonePointer(), - FfiConverterTypeStringOrData.lower(qr), - FfiConverterUInt8.lower(groupsOf),$0 - ) -}) -} - -open func handleScanResult(qr: StringOrData)throws -> MultiQrScanResult { - return try FfiConverterTypeMultiQrScanResult.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_multiqr_handle_scan_result(self.uniffiClonePointer(), - FfiConverterTypeStringOrData.lower(qr),$0 - ) -}) -} - -open func isBbqr() -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_multiqr_is_bbqr(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isSeedQr() -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_multiqr_is_seed_qr(self.uniffiClonePointer(),$0 - ) -}) -} - -open func totalParts() -> UInt32 { - return try! FfiConverterUInt32.lift(try! rustCall() { - uniffi_cove_fn_method_multiqr_total_parts(self.uniffiClonePointer(),$0 - ) -}) -} - + public static func tryNew(qr: StringOrData) throws -> MultiQr { + try FfiConverterTypeMultiQr.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_constructor_multiqr_try_new( + FfiConverterTypeStringOrData.lower(qr), $0 + ) + }) + } + + public static func tryNewFromData(data: Data) throws -> MultiQr { + try FfiConverterTypeMultiQr.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_constructor_multiqr_try_new_from_data( + FfiConverterData.lower(data), $0 + ) + }) + } + + open func addPart(qr: String) throws -> BbqrJoinResult { + try FfiConverterTypeBbqrJoinResult.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_multiqr_add_part(self.uniffiClonePointer(), + FfiConverterString.lower(qr), $0) + }) + } + + open func getGroupedWords(qr: StringOrData, groupsOf: UInt8) throws -> [[String]]? { + try FfiConverterOptionSequenceSequenceString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_multiqr_get_grouped_words(self.uniffiClonePointer(), + FfiConverterTypeStringOrData.lower(qr), + FfiConverterUInt8.lower(groupsOf), $0) + }) + } + + open func handleScanResult(qr: StringOrData) throws -> MultiQrScanResult { + try FfiConverterTypeMultiQrScanResult.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_multiqr_handle_scan_result(self.uniffiClonePointer(), + FfiConverterTypeStringOrData.lower(qr), $0) + }) + } + + open func isBbqr() -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_multiqr_is_bbqr(self.uniffiClonePointer(), $0) + }) + } + + open func isSeedQr() -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_multiqr_is_seed_qr(self.uniffiClonePointer(), $0) + }) + } + open func totalParts() -> UInt32 { + try! FfiConverterUInt32.lift(try! rustCall { + uniffi_cove_fn_method_multiqr_total_parts(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeMultiQr: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = MultiQr public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> MultiQr { - return MultiQr(unsafeFromRawPointer: pointer) + MultiQr(unsafeFromRawPointer: pointer) } public static func lower(_ value: MultiQr) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiQr { @@ -5783,7 +5260,7 @@ public struct FfiConverterTypeMultiQr: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5796,42 +5273,35 @@ public struct FfiConverterTypeMultiQr: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMultiQr_lift(_ pointer: UnsafeMutableRawPointer) throws -> MultiQr { - return try FfiConverterTypeMultiQr.lift(pointer) + try FfiConverterTypeMultiQr.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMultiQr_lower(_ value: MultiQr) -> UnsafeMutableRawPointer { - return FfiConverterTypeMultiQr.lower(value) + FfiConverterTypeMultiQr.lower(value) } +public protocol NdefRecordReaderProtocol: AnyObject { + func id() -> String? - - -public protocol NdefRecordReaderProtocol : AnyObject { - - func id() -> String? - - func type() -> String? - + func type() -> String? } open class NdefRecordReader: - NdefRecordReaderProtocol { + NdefRecordReaderProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -5839,7 +5309,7 @@ open class NdefRecordReader: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5848,71 +5318,64 @@ open class NdefRecordReader: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_ndefrecordreader(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_ndefrecordreader(self.pointer, $0) } + } + + public convenience init(record: NdefRecord) { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_ndefrecordreader_new( + FfiConverterTypeNdefRecord.lower(record), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(record: NdefRecord) { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_ndefrecordreader_new( - FfiConverterTypeNdefRecord.lower(record),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_ndefrecordreader(pointer, $0) } } - - - -open func id() -> String? { - return try! FfiConverterOptionString.lift(try! rustCall() { - uniffi_cove_fn_method_ndefrecordreader_id(self.uniffiClonePointer(),$0 - ) -}) -} - -open func type() -> String? { - return try! FfiConverterOptionString.lift(try! rustCall() { - uniffi_cove_fn_method_ndefrecordreader_type_(self.uniffiClonePointer(),$0 - ) -}) -} - + open func id() -> String? { + try! FfiConverterOptionString.lift(try! rustCall { + uniffi_cove_fn_method_ndefrecordreader_id(self.uniffiClonePointer(), $0) + }) + } + open func type() -> String? { + try! FfiConverterOptionString.lift(try! rustCall { + uniffi_cove_fn_method_ndefrecordreader_type_(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNdefRecordReader: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = NdefRecordReader public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> NdefRecordReader { - return NdefRecordReader(unsafeFromRawPointer: pointer) + NdefRecordReader(unsafeFromRawPointer: pointer) } public static func lower(_ value: NdefRecordReader) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefRecordReader { @@ -5920,7 +5383,7 @@ public struct FfiConverterTypeNdefRecordReader: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5933,44 +5396,37 @@ public struct FfiConverterTypeNdefRecordReader: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecordReader_lift(_ pointer: UnsafeMutableRawPointer) throws -> NdefRecordReader { - return try FfiConverterTypeNdefRecordReader.lift(pointer) + try FfiConverterTypeNdefRecordReader.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecordReader_lower(_ value: NdefRecordReader) -> UnsafeMutableRawPointer { - return FfiConverterTypeNdefRecordReader.lower(value) + FfiConverterTypeNdefRecordReader.lower(value) } +public protocol NfcConstProtocol: AnyObject { + func bytesPerBlock() -> UInt16 + func numberOfBlocksPerChunk() -> UInt16 - -public protocol NfcConstProtocol : AnyObject { - - func bytesPerBlock() -> UInt16 - - func numberOfBlocksPerChunk() -> UInt16 - - func totalBytesPerChunk() -> UInt16 - + func totalBytesPerChunk() -> UInt16 } open class NfcConst: - NfcConstProtocol { + NfcConstProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -5978,7 +5434,7 @@ open class NfcConst: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5987,77 +5443,69 @@ open class NfcConst: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_nfcconst(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_nfcconst(self.pointer, $0) } + } + + public convenience init() { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_nfcconst_new($0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init() { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_nfcconst_new($0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_nfcconst(pointer, $0) } } - + open func bytesPerBlock() -> UInt16 { + try! FfiConverterUInt16.lift(try! rustCall { + uniffi_cove_fn_method_nfcconst_bytes_per_block(self.uniffiClonePointer(), $0) + }) + } - -open func bytesPerBlock() -> UInt16 { - return try! FfiConverterUInt16.lift(try! rustCall() { - uniffi_cove_fn_method_nfcconst_bytes_per_block(self.uniffiClonePointer(),$0 - ) -}) -} - -open func numberOfBlocksPerChunk() -> UInt16 { - return try! FfiConverterUInt16.lift(try! rustCall() { - uniffi_cove_fn_method_nfcconst_number_of_blocks_per_chunk(self.uniffiClonePointer(),$0 - ) -}) -} - -open func totalBytesPerChunk() -> UInt16 { - return try! FfiConverterUInt16.lift(try! rustCall() { - uniffi_cove_fn_method_nfcconst_total_bytes_per_chunk(self.uniffiClonePointer(),$0 - ) -}) -} - + open func numberOfBlocksPerChunk() -> UInt16 { + try! FfiConverterUInt16.lift(try! rustCall { + uniffi_cove_fn_method_nfcconst_number_of_blocks_per_chunk(self.uniffiClonePointer(), $0) + }) + } + open func totalBytesPerChunk() -> UInt16 { + try! FfiConverterUInt16.lift(try! rustCall { + uniffi_cove_fn_method_nfcconst_total_bytes_per_chunk(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNfcConst: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = NfcConst public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> NfcConst { - return NfcConst(unsafeFromRawPointer: pointer) + NfcConst(unsafeFromRawPointer: pointer) } public static func lower(_ value: NfcConst) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NfcConst { @@ -6065,7 +5513,7 @@ public struct FfiConverterTypeNfcConst: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6078,56 +5526,49 @@ public struct FfiConverterTypeNfcConst: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNfcConst_lift(_ pointer: UnsafeMutableRawPointer) throws -> NfcConst { - return try FfiConverterTypeNfcConst.lift(pointer) + try FfiConverterTypeNfcConst.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNfcConst_lower(_ value: NfcConst) -> UnsafeMutableRawPointer { - return FfiConverterTypeNfcConst.lower(value) + FfiConverterTypeNfcConst.lower(value) } - - - -public protocol NodeSelectorProtocol : AnyObject { - +public protocol NodeSelectorProtocol: AnyObject { /** * Check the node url and set it as selected node if it is valid */ - func checkAndSaveNode(node: Node) async throws - - func checkSelectedNode(node: Node) async throws - - func nodeList() -> [NodeSelection] - + func checkAndSaveNode(node: Node) async throws + + func checkSelectedNode(node: Node) async throws + + func nodeList() -> [NodeSelection] + /** * Use the url and name of the custom node to set it as the selected node */ - func parseCustomNode(url: String, name: String, enteredName: String) throws -> Node - - func selectPresetNode(name: String) throws -> Node - - func selectedNode() -> NodeSelection - + func parseCustomNode(url: String, name: String, enteredName: String) throws -> Node + + func selectPresetNode(name: String) throws -> Node + + func selectedNode() -> NodeSelection } open class NodeSelector: - NodeSelectorProtocol { + NodeSelectorProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -6135,7 +5576,7 @@ open class NodeSelector: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6144,45 +5585,42 @@ open class NodeSelector: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_nodeselector(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_nodeselector(self.pointer, $0) } + } + + public convenience init() { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_nodeselector_new($0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init() { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_nodeselector_new($0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_nodeselector(pointer, $0) } } - - - /** * Check the node url and set it as selected node if it is valid */ -open func checkAndSaveNode(node: Node)async throws { - return - try await uniffiRustCallAsync( + open func checkAndSaveNode(node: Node) async throws { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_nodeselector_check_and_save_node( self.uniffiClonePointer(), @@ -6195,11 +5633,10 @@ open func checkAndSaveNode(node: Node)async throws { liftFunc: { $0 }, errorHandler: FfiConverterTypeNodeSelectorError.lift ) -} - -open func checkSelectedNode(node: Node)async throws { - return - try await uniffiRustCallAsync( + } + + open func checkSelectedNode(node: Node) async throws { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_nodeselector_check_selected_node( self.uniffiClonePointer(), @@ -6212,60 +5649,53 @@ open func checkSelectedNode(node: Node)async throws { liftFunc: { $0 }, errorHandler: FfiConverterTypeNodeSelectorError.lift ) -} - -open func nodeList() -> [NodeSelection] { - return try! FfiConverterSequenceTypeNodeSelection.lift(try! rustCall() { - uniffi_cove_fn_method_nodeselector_node_list(self.uniffiClonePointer(),$0 - ) -}) -} - + } + + open func nodeList() -> [NodeSelection] { + try! FfiConverterSequenceTypeNodeSelection.lift(try! rustCall { + uniffi_cove_fn_method_nodeselector_node_list(self.uniffiClonePointer(), $0) + }) + } + /** * Use the url and name of the custom node to set it as the selected node */ -open func parseCustomNode(url: String, name: String, enteredName: String)throws -> Node { - return try FfiConverterTypeNode.lift(try rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { - uniffi_cove_fn_method_nodeselector_parse_custom_node(self.uniffiClonePointer(), - FfiConverterString.lower(url), - FfiConverterString.lower(name), - FfiConverterString.lower(enteredName),$0 - ) -}) -} - -open func selectPresetNode(name: String)throws -> Node { - return try FfiConverterTypeNode.lift(try rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { - uniffi_cove_fn_method_nodeselector_select_preset_node(self.uniffiClonePointer(), - FfiConverterString.lower(name),$0 - ) -}) -} - -open func selectedNode() -> NodeSelection { - return try! FfiConverterTypeNodeSelection.lift(try! rustCall() { - uniffi_cove_fn_method_nodeselector_selected_node(self.uniffiClonePointer(),$0 - ) -}) -} - + open func parseCustomNode(url: String, name: String, enteredName: String) throws -> Node { + try FfiConverterTypeNode.lift(rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { + uniffi_cove_fn_method_nodeselector_parse_custom_node(self.uniffiClonePointer(), + FfiConverterString.lower(url), + FfiConverterString.lower(name), + FfiConverterString.lower(enteredName), $0) + }) + } + open func selectPresetNode(name: String) throws -> Node { + try FfiConverterTypeNode.lift(rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { + uniffi_cove_fn_method_nodeselector_select_preset_node(self.uniffiClonePointer(), + FfiConverterString.lower(name), $0) + }) + } + + open func selectedNode() -> NodeSelection { + try! FfiConverterTypeNodeSelection.lift(try! rustCall { + uniffi_cove_fn_method_nodeselector_selected_node(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNodeSelector: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = NodeSelector public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> NodeSelector { - return NodeSelector(unsafeFromRawPointer: pointer) + NodeSelector(unsafeFromRawPointer: pointer) } public static func lower(_ value: NodeSelector) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NodeSelector { @@ -6273,7 +5703,7 @@ public struct FfiConverterTypeNodeSelector: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6286,38 +5716,31 @@ public struct FfiConverterTypeNodeSelector: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelector_lift(_ pointer: UnsafeMutableRawPointer) throws -> NodeSelector { - return try FfiConverterTypeNodeSelector.lift(pointer) + try FfiConverterTypeNodeSelector.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelector_lower(_ value: NodeSelector) -> UnsafeMutableRawPointer { - return FfiConverterTypeNodeSelector.lower(value) + FfiConverterTypeNodeSelector.lower(value) } - - - -public protocol OutPointProtocol : AnyObject { - -} +public protocol OutPointProtocol: AnyObject {} open class OutPoint: - OutPointProtocol { + OutPointProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -6325,7 +5748,7 @@ open class OutPoint: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6334,49 +5757,44 @@ open class OutPoint: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_outpoint(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_outpoint(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_outpoint(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeOutPoint: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = OutPoint public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> OutPoint { - return OutPoint(unsafeFromRawPointer: pointer) + OutPoint(unsafeFromRawPointer: pointer) } public static func lower(_ value: OutPoint) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> OutPoint { @@ -6384,7 +5802,7 @@ public struct FfiConverterTypeOutPoint: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6397,38 +5815,31 @@ public struct FfiConverterTypeOutPoint: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeOutPoint_lift(_ pointer: UnsafeMutableRawPointer) throws -> OutPoint { - return try FfiConverterTypeOutPoint.lift(pointer) + try FfiConverterTypeOutPoint.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeOutPoint_lower(_ value: OutPoint) -> UnsafeMutableRawPointer { - return FfiConverterTypeOutPoint.lower(value) + FfiConverterTypeOutPoint.lower(value) } - - - -public protocol PendingWalletProtocol : AnyObject { - -} +public protocol PendingWalletProtocol: AnyObject {} open class PendingWallet: - PendingWalletProtocol { + PendingWalletProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -6436,7 +5847,7 @@ open class PendingWallet: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6445,49 +5856,44 @@ open class PendingWallet: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_pendingwallet(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_pendingwallet(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_pendingwallet(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePendingWallet: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = PendingWallet public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> PendingWallet { - return PendingWallet(unsafeFromRawPointer: pointer) + PendingWallet(unsafeFromRawPointer: pointer) } public static func lower(_ value: PendingWallet) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWallet { @@ -6495,7 +5901,7 @@ public struct FfiConverterTypePendingWallet: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6508,53 +5914,46 @@ public struct FfiConverterTypePendingWallet: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingWallet_lift(_ pointer: UnsafeMutableRawPointer) throws -> PendingWallet { - return try FfiConverterTypePendingWallet.lift(pointer) + try FfiConverterTypePendingWallet.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingWallet_lower(_ value: PendingWallet) -> UnsafeMutableRawPointer { - return FfiConverterTypePendingWallet.lower(value) + FfiConverterTypePendingWallet.lower(value) } - - - -public protocol PsbtProtocol : AnyObject { - +public protocol PsbtProtocol: AnyObject { /** * Total fee in sats. */ - func fee() throws -> Amount - + func fee() throws -> Amount + /** * Get the transaction id of the unsigned transaction */ - func txId() -> TxId - + func txId() -> TxId + /** * The virtual size of the transaction. */ - func weight() -> UInt64 - + func weight() -> UInt64 } open class Psbt: - PsbtProtocol { + PsbtProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -6562,7 +5961,7 @@ open class Psbt: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6571,87 +5970,79 @@ open class Psbt: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_psbt(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_psbt(self.pointer, $0) } + } + + public convenience init(data: Data) throws { + let pointer = + try rustCallWithError(FfiConverterTypePsbtError.lift) { + uniffi_cove_fn_constructor_psbt_new( + FfiConverterData.lower(data), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(data: Data)throws { - let pointer = - try rustCallWithError(FfiConverterTypePsbtError.lift) { - uniffi_cove_fn_constructor_psbt_new( - FfiConverterData.lower(data),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_psbt(pointer, $0) } } - - - /** * Total fee in sats. */ -open func fee()throws -> Amount { - return try FfiConverterTypeAmount.lift(try rustCallWithError(FfiConverterTypePsbtError.lift) { - uniffi_cove_fn_method_psbt_fee(self.uniffiClonePointer(),$0 - ) -}) -} - + open func fee() throws -> Amount { + try FfiConverterTypeAmount.lift(rustCallWithError(FfiConverterTypePsbtError.lift) { + uniffi_cove_fn_method_psbt_fee(self.uniffiClonePointer(), $0) + }) + } + /** * Get the transaction id of the unsigned transaction */ -open func txId() -> TxId { - return try! FfiConverterTypeTxId.lift(try! rustCall() { - uniffi_cove_fn_method_psbt_tx_id(self.uniffiClonePointer(),$0 - ) -}) -} - + open func txId() -> TxId { + try! FfiConverterTypeTxId.lift(try! rustCall { + uniffi_cove_fn_method_psbt_tx_id(self.uniffiClonePointer(), $0) + }) + } + /** * The virtual size of the transaction. */ -open func weight() -> UInt64 { - return try! FfiConverterUInt64.lift(try! rustCall() { - uniffi_cove_fn_method_psbt_weight(self.uniffiClonePointer(),$0 - ) -}) -} - - + open func weight() -> UInt64 { + try! FfiConverterUInt64.lift(try! rustCall { + uniffi_cove_fn_method_psbt_weight(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePsbt: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Psbt public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Psbt { - return Psbt(unsafeFromRawPointer: pointer) + Psbt(unsafeFromRawPointer: pointer) } public static func lower(_ value: Psbt) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Psbt { @@ -6659,7 +6050,7 @@ public struct FfiConverterTypePsbt: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6672,66 +6063,59 @@ public struct FfiConverterTypePsbt: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePsbt_lift(_ pointer: UnsafeMutableRawPointer) throws -> Psbt { - return try FfiConverterTypePsbt.lift(pointer) + try FfiConverterTypePsbt.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePsbt_lower(_ value: Psbt) -> UnsafeMutableRawPointer { - return FfiConverterTypePsbt.lower(value) -} - - - - -public protocol RouteFactoryProtocol : AnyObject { - - func coldWalletImport(route: ColdWalletRoute) -> Route - - func hotWallet(route: HotWalletRoute) -> Route - - func hotWalletImportFromScan() -> Route - - func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool - - func loadAndResetTo(resetTo: Route) -> Route - - func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route - - func newHotWallet() -> Route - - func newWalletSelect() -> Route - - func qrImport() -> Route - - func secretWords(walletId: WalletId) -> Route - - func send(send: SendRoute) -> Route - - func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route - - func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route - - func sendSetAmount(id: WalletId, address: Address?, amount: Amount?) -> Route - + FfiConverterTypePsbt.lower(value) +} + +public protocol RouteFactoryProtocol: AnyObject { + func coldWalletImport(route: ColdWalletRoute) -> Route + + func hotWallet(route: HotWalletRoute) -> Route + + func hotWalletImportFromScan() -> Route + + func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool + + func loadAndResetTo(resetTo: Route) -> Route + + func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route + + func newHotWallet() -> Route + + func newWalletSelect() -> Route + + func qrImport() -> Route + + func secretWords(walletId: WalletId) -> Route + + func send(send: SendRoute) -> Route + + func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route + + func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route + + func sendSetAmount(id: WalletId, address: Address?, amount: Amount?) -> Route } open class RouteFactory: - RouteFactoryProtocol { + RouteFactoryProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -6739,7 +6123,7 @@ open class RouteFactory: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6748,170 +6132,151 @@ open class RouteFactory: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_routefactory(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_routefactory(self.pointer, $0) } + } + + public convenience init() { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_routefactory_new($0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init() { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_routefactory_new($0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_routefactory(pointer, $0) } } - + open func coldWalletImport(route: ColdWalletRoute) -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_cold_wallet_import(self.uniffiClonePointer(), + FfiConverterTypeColdWalletRoute.lower(route), $0) + }) + } - -open func coldWalletImport(route: ColdWalletRoute) -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_cold_wallet_import(self.uniffiClonePointer(), - FfiConverterTypeColdWalletRoute.lower(route),$0 - ) -}) -} - -open func hotWallet(route: HotWalletRoute) -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_hot_wallet(self.uniffiClonePointer(), - FfiConverterTypeHotWalletRoute.lower(route),$0 - ) -}) -} - -open func hotWalletImportFromScan() -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_hot_wallet_import_from_scan(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_is_same_parent_route(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), - FfiConverterTypeRoute.lower(routeToCheck),$0 - ) -}) -} - -open func loadAndResetTo(resetTo: Route) -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_load_and_reset_to(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(resetTo),$0 - ) -}) -} - -open func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_load_and_reset_to_after(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(resetTo), - FfiConverterUInt32.lower(time),$0 - ) -}) -} - -open func newHotWallet() -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_new_hot_wallet(self.uniffiClonePointer(),$0 - ) -}) -} - -open func newWalletSelect() -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_new_wallet_select(self.uniffiClonePointer(),$0 - ) -}) -} - -open func qrImport() -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_qr_import(self.uniffiClonePointer(),$0 - ) -}) -} - -open func secretWords(walletId: WalletId) -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_secret_words(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(walletId),$0 - ) -}) -} - -open func send(send: SendRoute) -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_send(self.uniffiClonePointer(), - FfiConverterTypeSendRoute.lower(send),$0 - ) -}) -} - -open func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_send_confirm(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), - FfiConverterTypeConfirmDetails.lower(details),$0 - ) -}) -} - -open func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_send_hardware_export(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), - FfiConverterTypeConfirmDetails.lower(details),$0 - ) -}) -} - -open func sendSetAmount(id: WalletId, address: Address? = nil, amount: Amount? = nil) -> Route { - return try! FfiConverterTypeRoute.lift(try! rustCall() { - uniffi_cove_fn_method_routefactory_send_set_amount(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), - FfiConverterOptionTypeAddress.lower(address), - FfiConverterOptionTypeAmount.lower(amount),$0 - ) -}) -} - + open func hotWallet(route: HotWalletRoute) -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_hot_wallet(self.uniffiClonePointer(), + FfiConverterTypeHotWalletRoute.lower(route), $0) + }) + } + + open func hotWalletImportFromScan() -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_hot_wallet_import_from_scan(self.uniffiClonePointer(), $0) + }) + } + + open func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_is_same_parent_route(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route), + FfiConverterTypeRoute.lower(routeToCheck), $0) + }) + } + + open func loadAndResetTo(resetTo: Route) -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_load_and_reset_to(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(resetTo), $0) + }) + } + open func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_load_and_reset_to_after(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(resetTo), + FfiConverterUInt32.lower(time), $0) + }) + } + + open func newHotWallet() -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_new_hot_wallet(self.uniffiClonePointer(), $0) + }) + } + + open func newWalletSelect() -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_new_wallet_select(self.uniffiClonePointer(), $0) + }) + } + + open func qrImport() -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_qr_import(self.uniffiClonePointer(), $0) + }) + } + + open func secretWords(walletId: WalletId) -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_secret_words(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(walletId), $0) + }) + } + + open func send(send: SendRoute) -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_send(self.uniffiClonePointer(), + FfiConverterTypeSendRoute.lower(send), $0) + }) + } + + open func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_send_confirm(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), + FfiConverterTypeConfirmDetails.lower(details), $0) + }) + } + + open func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_send_hardware_export(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), + FfiConverterTypeConfirmDetails.lower(details), $0) + }) + } + + open func sendSetAmount(id: WalletId, address: Address? = nil, amount: Amount? = nil) -> Route { + try! FfiConverterTypeRoute.lift(try! rustCall { + uniffi_cove_fn_method_routefactory_send_set_amount(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), + FfiConverterOptionTypeAddress.lower(address), + FfiConverterOptionTypeAmount.lower(amount), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeRouteFactory: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RouteFactory public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RouteFactory { - return RouteFactory(unsafeFromRawPointer: pointer) + RouteFactory(unsafeFromRawPointer: pointer) } public static func lower(_ value: RouteFactory) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RouteFactory { @@ -6919,7 +6284,7 @@ public struct FfiConverterTypeRouteFactory: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6932,50 +6297,43 @@ public struct FfiConverterTypeRouteFactory: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRouteFactory_lift(_ pointer: UnsafeMutableRawPointer) throws -> RouteFactory { - return try FfiConverterTypeRouteFactory.lift(pointer) + try FfiConverterTypeRouteFactory.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRouteFactory_lower(_ value: RouteFactory) -> UnsafeMutableRawPointer { - return FfiConverterTypeRouteFactory.lower(value) + FfiConverterTypeRouteFactory.lower(value) } - - - -public protocol RustImportWalletViewModelProtocol : AnyObject { - +public protocol RustImportWalletViewModelProtocol: AnyObject { /** * Action from the frontend to change the state of the view model */ - func dispatch(action: ImportWalletViewModelAction) - + func dispatch(action: ImportWalletViewModelAction) + /** * Import wallet view from entered words */ - func importWallet(enteredWords: [[String]]) throws -> WalletMetadata - - func listenForUpdates(reconciler: ImportWalletViewModelReconciler) - + func importWallet(enteredWords: [[String]]) throws -> WalletMetadata + + func listenForUpdates(reconciler: ImportWalletViewModelReconciler) } open class RustImportWalletViewModel: - RustImportWalletViewModelProtocol { + RustImportWalletViewModelProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -6983,7 +6341,7 @@ open class RustImportWalletViewModel: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6992,84 +6350,76 @@ open class RustImportWalletViewModel: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_rustimportwalletviewmodel(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_rustimportwalletviewmodel(self.pointer, $0) } + } + + public convenience init() { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_rustimportwalletviewmodel_new($0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init() { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_rustimportwalletviewmodel_new($0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_rustimportwalletviewmodel(pointer, $0) } } - - - /** * Action from the frontend to change the state of the view model */ -open func dispatch(action: ImportWalletViewModelAction) {try! rustCall() { - uniffi_cove_fn_method_rustimportwalletviewmodel_dispatch(self.uniffiClonePointer(), - FfiConverterTypeImportWalletViewModelAction.lower(action),$0 - ) -} -} - + open func dispatch(action: ImportWalletViewModelAction) { try! rustCall { + uniffi_cove_fn_method_rustimportwalletviewmodel_dispatch(self.uniffiClonePointer(), + FfiConverterTypeImportWalletViewModelAction.lower(action), $0) + } + } + /** * Import wallet view from entered words */ -open func importWallet(enteredWords: [[String]])throws -> WalletMetadata { - return try FfiConverterTypeWalletMetadata.lift(try rustCallWithError(FfiConverterTypeImportWalletError.lift) { - uniffi_cove_fn_method_rustimportwalletviewmodel_import_wallet(self.uniffiClonePointer(), - FfiConverterSequenceSequenceString.lower(enteredWords),$0 - ) -}) -} - -open func listenForUpdates(reconciler: ImportWalletViewModelReconciler) {try! rustCall() { - uniffi_cove_fn_method_rustimportwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfaceImportWalletViewModelReconciler.lower(reconciler),$0 - ) -} -} - + open func importWallet(enteredWords: [[String]]) throws -> WalletMetadata { + try FfiConverterTypeWalletMetadata.lift(rustCallWithError(FfiConverterTypeImportWalletError.lift) { + uniffi_cove_fn_method_rustimportwalletviewmodel_import_wallet(self.uniffiClonePointer(), + FfiConverterSequenceSequenceString.lower(enteredWords), $0) + }) + } + open func listenForUpdates(reconciler: ImportWalletViewModelReconciler) { try! rustCall { + uniffi_cove_fn_method_rustimportwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfaceImportWalletViewModelReconciler.lower(reconciler), $0) + } + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeRustImportWalletViewModel: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RustImportWalletViewModel public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RustImportWalletViewModel { - return RustImportWalletViewModel(unsafeFromRawPointer: pointer) + RustImportWalletViewModel(unsafeFromRawPointer: pointer) } public static func lower(_ value: RustImportWalletViewModel) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RustImportWalletViewModel { @@ -7077,7 +6427,7 @@ public struct FfiConverterTypeRustImportWalletViewModel: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7090,57 +6440,50 @@ public struct FfiConverterTypeRustImportWalletViewModel: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRustImportWalletViewModel_lift(_ pointer: UnsafeMutableRawPointer) throws -> RustImportWalletViewModel { - return try FfiConverterTypeRustImportWalletViewModel.lift(pointer) + try FfiConverterTypeRustImportWalletViewModel.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRustImportWalletViewModel_lower(_ value: RustImportWalletViewModel) -> UnsafeMutableRawPointer { - return FfiConverterTypeRustImportWalletViewModel.lower(value) + FfiConverterTypeRustImportWalletViewModel.lower(value) } +public protocol RustPendingWalletViewModelProtocol: AnyObject { + func bip39Words() -> [String] + func bip39WordsGrouped() -> [[GroupedWord]] + func cardIndexes() -> UInt8 -public protocol RustPendingWalletViewModelProtocol : AnyObject { - - func bip39Words() -> [String] - - func bip39WordsGrouped() -> [[GroupedWord]] - - func cardIndexes() -> UInt8 - /** * Action from the frontend to change the state of the view model */ - func dispatch(action: PendingWalletViewModelAction) - - func getState() -> PendingWalletViewModelState - - func listenForUpdates(reconciler: PendingWalletViewModelReconciler) - - func numberOfWordsCount() -> UInt8 - - func saveWallet() throws -> WalletMetadata - + func dispatch(action: PendingWalletViewModelAction) + + func getState() -> PendingWalletViewModelState + + func listenForUpdates(reconciler: PendingWalletViewModelReconciler) + + func numberOfWordsCount() -> UInt8 + + func saveWallet() throws -> WalletMetadata } open class RustPendingWalletViewModel: - RustPendingWalletViewModelProtocol { + RustPendingWalletViewModelProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -7148,7 +6491,7 @@ open class RustPendingWalletViewModel: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7157,116 +6500,103 @@ open class RustPendingWalletViewModel: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_rustpendingwalletviewmodel(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_rustpendingwalletviewmodel(self.pointer, $0) } + } + + public convenience init(numberOfWords: NumberOfBip39Words) { + let pointer = + try! rustCall { + uniffi_cove_fn_constructor_rustpendingwalletviewmodel_new( + FfiConverterTypeNumberOfBip39Words.lower(numberOfWords), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(numberOfWords: NumberOfBip39Words) { - let pointer = - try! rustCall() { - uniffi_cove_fn_constructor_rustpendingwalletviewmodel_new( - FfiConverterTypeNumberOfBip39Words.lower(numberOfWords),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_rustpendingwalletviewmodel(pointer, $0) } } - + open func bip39Words() -> [String] { + try! FfiConverterSequenceString.lift(try! rustCall { + uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words(self.uniffiClonePointer(), $0) + }) + } + + open func bip39WordsGrouped() -> [[GroupedWord]] { + try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall { + uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words_grouped(self.uniffiClonePointer(), $0) + }) + } + + open func cardIndexes() -> UInt8 { + try! FfiConverterUInt8.lift(try! rustCall { + uniffi_cove_fn_method_rustpendingwalletviewmodel_card_indexes(self.uniffiClonePointer(), $0) + }) + } - -open func bip39Words() -> [String] { - return try! FfiConverterSequenceString.lift(try! rustCall() { - uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words(self.uniffiClonePointer(),$0 - ) -}) -} - -open func bip39WordsGrouped() -> [[GroupedWord]] { - return try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall() { - uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words_grouped(self.uniffiClonePointer(),$0 - ) -}) -} - -open func cardIndexes() -> UInt8 { - return try! FfiConverterUInt8.lift(try! rustCall() { - uniffi_cove_fn_method_rustpendingwalletviewmodel_card_indexes(self.uniffiClonePointer(),$0 - ) -}) -} - /** * Action from the frontend to change the state of the view model */ -open func dispatch(action: PendingWalletViewModelAction) {try! rustCall() { - uniffi_cove_fn_method_rustpendingwalletviewmodel_dispatch(self.uniffiClonePointer(), - FfiConverterTypePendingWalletViewModelAction.lower(action),$0 - ) -} -} - -open func getState() -> PendingWalletViewModelState { - return try! FfiConverterTypePendingWalletViewModelState.lift(try! rustCall() { - uniffi_cove_fn_method_rustpendingwalletviewmodel_get_state(self.uniffiClonePointer(),$0 - ) -}) -} - -open func listenForUpdates(reconciler: PendingWalletViewModelReconciler) {try! rustCall() { - uniffi_cove_fn_method_rustpendingwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfacePendingWalletViewModelReconciler.lower(reconciler),$0 - ) -} -} - -open func numberOfWordsCount() -> UInt8 { - return try! FfiConverterUInt8.lift(try! rustCall() { - uniffi_cove_fn_method_rustpendingwalletviewmodel_number_of_words_count(self.uniffiClonePointer(),$0 - ) -}) -} - -open func saveWallet()throws -> WalletMetadata { - return try FfiConverterTypeWalletMetadata.lift(try rustCallWithError(FfiConverterTypePendingWalletViewModelError.lift) { - uniffi_cove_fn_method_rustpendingwalletviewmodel_save_wallet(self.uniffiClonePointer(),$0 - ) -}) -} - + open func dispatch(action: PendingWalletViewModelAction) { try! rustCall { + uniffi_cove_fn_method_rustpendingwalletviewmodel_dispatch(self.uniffiClonePointer(), + FfiConverterTypePendingWalletViewModelAction.lower(action), $0) + } + } + + open func getState() -> PendingWalletViewModelState { + try! FfiConverterTypePendingWalletViewModelState.lift(try! rustCall { + uniffi_cove_fn_method_rustpendingwalletviewmodel_get_state(self.uniffiClonePointer(), $0) + }) + } + + open func listenForUpdates(reconciler: PendingWalletViewModelReconciler) { try! rustCall { + uniffi_cove_fn_method_rustpendingwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfacePendingWalletViewModelReconciler.lower(reconciler), $0) + } + } + + open func numberOfWordsCount() -> UInt8 { + try! FfiConverterUInt8.lift(try! rustCall { + uniffi_cove_fn_method_rustpendingwalletviewmodel_number_of_words_count(self.uniffiClonePointer(), $0) + }) + } + open func saveWallet() throws -> WalletMetadata { + try FfiConverterTypeWalletMetadata.lift(rustCallWithError(FfiConverterTypePendingWalletViewModelError.lift) { + uniffi_cove_fn_method_rustpendingwalletviewmodel_save_wallet(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeRustPendingWalletViewModel: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RustPendingWalletViewModel public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RustPendingWalletViewModel { - return RustPendingWalletViewModel(unsafeFromRawPointer: pointer) + RustPendingWalletViewModel(unsafeFromRawPointer: pointer) } public static func lower(_ value: RustPendingWalletViewModel) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RustPendingWalletViewModel { @@ -7274,7 +6604,7 @@ public struct FfiConverterTypeRustPendingWalletViewModel: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7287,119 +6617,114 @@ public struct FfiConverterTypeRustPendingWalletViewModel: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRustPendingWalletViewModel_lift(_ pointer: UnsafeMutableRawPointer) throws -> RustPendingWalletViewModel { - return try FfiConverterTypeRustPendingWalletViewModel.lift(pointer) + try FfiConverterTypeRustPendingWalletViewModel.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRustPendingWalletViewModel_lower(_ value: RustPendingWalletViewModel) -> UnsafeMutableRawPointer { - return FfiConverterTypeRustPendingWalletViewModel.lower(value) + FfiConverterTypeRustPendingWalletViewModel.lower(value) } - - - -public protocol RustWalletViewModelProtocol : AnyObject { - +public protocol RustWalletViewModelProtocol: AnyObject { /** * Get address at the given index */ - func addressAt(index: UInt32) async throws -> AddressInfo - - func amountInFiat(amount: Amount, currency: FiatCurrency) async throws -> Double - - func balance() async -> Balance - - func balanceInFiat() async throws -> Double - - func buildTransaction(amount: Amount, address: Address) async throws -> Psbt - - func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate) async throws -> Psbt - - func currentBlockHeight() async throws -> UInt32 - - func deleteUnsignedTransaction(txId: TxId) throws - - func deleteWallet() throws - + func addressAt(index: UInt32) async throws -> AddressInfo + + func amountInFiat(amount: Amount, currency: FiatCurrency) async throws -> Double + + func balance() async -> Balance + + func balanceInFiat() async throws -> Double + + func buildTransaction(amount: Amount, address: Address) async throws -> Psbt + + func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate) async throws -> Psbt + + func currentBlockHeight() async throws -> UInt32 + + func deleteUnsignedTransaction(txId: TxId) throws + + func deleteWallet() throws + /** * Action from the frontend to change the state of the view model */ - func dispatch(action: WalletViewModelAction) - - func displayAmount(amount: Amount) -> String - - func displayFiatAmount(amount: Double) -> String - - func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String - - func feeRateOptions() async throws -> FeeRateOptions - - func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address) async throws -> FeeRateOptionsWithTotalFee - - func fees() -> FeeResponse? - - func fingerprint() -> String - - func forceUpdateHeight() async throws -> UInt32 - - func forceWalletScan() async throws - - func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate) async throws -> ConfirmDetails - - func getFeeOptions() async throws -> FeeRateOptions - - func getMaxSendAmount(fee: FeeRateOptionWithTotalFee) async throws -> Amount - - func getUnsignedTransactions() throws -> [UnsignedTransaction] - - func listenForUpdates(reconciler: WalletViewModelReconciler) - - func markWalletAsVerified() throws - + func dispatch(action: WalletViewModelAction) + + func displayAmount(amount: Amount) -> String + + func displayFiatAmount(amount: Double) -> String + + func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String + + func feeRateOptions() async throws -> FeeRateOptions + + func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address) async throws -> FeeRateOptionsWithTotalFee + + func fees() -> FeeResponse? + + func fingerprint() -> String + + func forceUpdateHeight() async throws -> UInt32 + + func forceWalletScan() async throws + + func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate) async throws -> ConfirmDetails + + func getFeeOptions() async throws -> FeeRateOptions + + func getMaxSendAmount(fee: FeeRateOptionWithTotalFee) async throws -> Amount + + func getUnsignedTransactions() throws -> [UnsignedTransaction] + + func listenForUpdates(reconciler: WalletViewModelReconciler) + + func markWalletAsVerified() throws + /** * Get the next address for the wallet */ - func nextAddress() async throws -> AddressInfo - - func numberOfConfirmations(blockHeight: UInt32) async throws -> UInt32 - - func numberOfConfirmationsFmt(blockHeight: UInt32) async throws -> String - - func saveUnsignedTransaction(details: ConfirmDetails) throws - - func sentAndReceivedFiat(sentAndReceived: SentAndReceived) async throws -> Double - - func setWalletMetadata(metadata: WalletMetadata) - - func startWalletScan() async throws - - func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType) async throws - - func transactionDetails(txId: TxId) async throws -> TransactionDetails - - func walletMetadata() -> WalletMetadata - - func wordValidator() throws -> WordValidator - + func nextAddress() async throws -> AddressInfo + + func numberOfConfirmations(blockHeight: UInt32) async throws -> UInt32 + + func numberOfConfirmationsFmt(blockHeight: UInt32) async throws -> String + + func saveUnsignedTransaction(details: ConfirmDetails) throws + + func sentAndReceivedFiat(sentAndReceived: SentAndReceived) async throws -> Double + + func setWalletMetadata(metadata: WalletMetadata) + + func startWalletScan() async throws + + func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType) async throws + + func transactionDetails(txId: TxId) async throws -> TransactionDetails + + func validateMetadata() + + func walletMetadata() -> WalletMetadata + + func wordValidator() throws -> WordValidator } open class RustWalletViewModel: - RustWalletViewModelProtocol { + RustWalletViewModelProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -7407,7 +6732,7 @@ open class RustWalletViewModel: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7416,61 +6741,58 @@ open class RustWalletViewModel: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_rustwalletviewmodel(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_rustwalletviewmodel(self.pointer, $0) } + } + + public convenience init(id: WalletId) throws { + let pointer = + try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_constructor_rustwalletviewmodel_new( + FfiConverterTypeWalletId.lower(id), $0 + ) + } + self.init(unsafeFromRawPointer: pointer) } -public convenience init(id: WalletId)throws { - let pointer = - try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_constructor_rustwalletviewmodel_new( - FfiConverterTypeWalletId.lower(id),$0 - ) -} - self.init(unsafeFromRawPointer: pointer) -} deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_rustwalletviewmodel(pointer, $0) } } - -public static func previewNewWallet() -> RustWalletViewModel { - return try! FfiConverterTypeRustWalletViewModel.lift(try! rustCall() { - uniffi_cove_fn_constructor_rustwalletviewmodel_preview_new_wallet($0 - ) -}) -} - -public static func tryNewFromXpub(xpub: String)throws -> RustWalletViewModel { - return try FfiConverterTypeRustWalletViewModel.lift(try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_constructor_rustwalletviewmodel_try_new_from_xpub( - FfiConverterString.lower(xpub),$0 - ) -}) -} - + public static func previewNewWallet() -> RustWalletViewModel { + try! FfiConverterTypeRustWalletViewModel.lift(try! rustCall { + uniffi_cove_fn_constructor_rustwalletviewmodel_preview_new_wallet($0 + ) + }) + } + + public static func tryNewFromXpub(xpub: String) throws -> RustWalletViewModel { + try FfiConverterTypeRustWalletViewModel.lift(rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_constructor_rustwalletviewmodel_try_new_from_xpub( + FfiConverterString.lower(xpub), $0 + ) + }) + } - /** * Get address at the given index */ -open func addressAt(index: UInt32)async throws -> AddressInfo { - return - try await uniffiRustCallAsync( + open func addressAt(index: UInt32) async throws -> AddressInfo { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_address_at( self.uniffiClonePointer(), @@ -7483,15 +6805,14 @@ open func addressAt(index: UInt32)async throws -> AddressInfo { liftFunc: FfiConverterTypeAddressInfo.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func amountInFiat(amount: Amount, currency: FiatCurrency)async throws -> Double { - return - try await uniffiRustCallAsync( + } + + open func amountInFiat(amount: Amount, currency: FiatCurrency) async throws -> Double { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_amount_in_fiat( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount),FfiConverterTypeFiatCurrency.lower(currency) + FfiConverterTypeAmount.lower(amount), FfiConverterTypeFiatCurrency.lower(currency) ) }, pollFunc: ffi_cove_rust_future_poll_f64, @@ -7500,15 +6821,13 @@ open func amountInFiat(amount: Amount, currency: FiatCurrency)async throws -> D liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func balance()async -> Balance { - return - try! await uniffiRustCallAsync( + } + + open func balance() async -> Balance { + try! await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_balance( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -7516,17 +6835,14 @@ open func balance()async -> Balance { freeFunc: ffi_cove_rust_future_free_rust_buffer, liftFunc: FfiConverterTypeBalance.lift, errorHandler: nil - ) -} - -open func balanceInFiat()async throws -> Double { - return - try await uniffiRustCallAsync( + } + + open func balanceInFiat() async throws -> Double { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_balance_in_fiat( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_f64, @@ -7535,15 +6851,14 @@ open func balanceInFiat()async throws -> Double { liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func buildTransaction(amount: Amount, address: Address)async throws -> Psbt { - return - try await uniffiRustCallAsync( + } + + open func buildTransaction(amount: Amount, address: Address) async throws -> Psbt { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_build_transaction( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address) + FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7552,15 +6867,14 @@ open func buildTransaction(amount: Amount, address: Address)async throws -> Psb liftFunc: FfiConverterTypePsbt.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate)async throws -> Psbt { - return - try await uniffiRustCallAsync( + } + + open func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate) async throws -> Psbt { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_build_transaction_with_fee_rate( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address),FfiConverterTypeFeeRate.lower(feeRate) + FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address), FfiConverterTypeFeeRate.lower(feeRate) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7569,15 +6883,13 @@ open func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: liftFunc: FfiConverterTypePsbt.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func currentBlockHeight()async throws -> UInt32 { - return - try await uniffiRustCallAsync( + } + + open func currentBlockHeight() async throws -> UInt32 { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_current_block_height( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_u32, @@ -7586,62 +6898,54 @@ open func currentBlockHeight()async throws -> UInt32 { liftFunc: FfiConverterUInt32.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func deleteUnsignedTransaction(txId: TxId)throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_delete_unsigned_transaction(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(txId),$0 - ) -} -} - -open func deleteWallet()throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_delete_wallet(self.uniffiClonePointer(),$0 - ) -} -} - + } + + open func deleteUnsignedTransaction(txId: TxId) throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_delete_unsigned_transaction(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(txId), $0) + } + } + + open func deleteWallet() throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_delete_wallet(self.uniffiClonePointer(), $0) + } + } + /** * Action from the frontend to change the state of the view model */ -open func dispatch(action: WalletViewModelAction) {try! rustCall() { - uniffi_cove_fn_method_rustwalletviewmodel_dispatch(self.uniffiClonePointer(), - FfiConverterTypeWalletViewModelAction.lower(action),$0 - ) -} -} - -open func displayAmount(amount: Amount) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_rustwalletviewmodel_display_amount(self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount),$0 - ) -}) -} - -open func displayFiatAmount(amount: Double) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_rustwalletviewmodel_display_fiat_amount(self.uniffiClonePointer(), - FfiConverterDouble.lower(amount),$0 - ) -}) -} - -open func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_rustwalletviewmodel_display_sent_and_received_amount(self.uniffiClonePointer(), - FfiConverterTypeSentAndReceived.lower(sentAndReceived),$0 - ) -}) -} - -open func feeRateOptions()async throws -> FeeRateOptions { - return - try await uniffiRustCallAsync( + open func dispatch(action: WalletViewModelAction) { try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_dispatch(self.uniffiClonePointer(), + FfiConverterTypeWalletViewModelAction.lower(action), $0) + } + } + + open func displayAmount(amount: Amount) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_display_amount(self.uniffiClonePointer(), + FfiConverterTypeAmount.lower(amount), $0) + }) + } + + open func displayFiatAmount(amount: Double) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_display_fiat_amount(self.uniffiClonePointer(), + FfiConverterDouble.lower(amount), $0) + }) + } + + open func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_display_sent_and_received_amount(self.uniffiClonePointer(), + FfiConverterTypeSentAndReceived.lower(sentAndReceived), $0) + }) + } + + open func feeRateOptions() async throws -> FeeRateOptions { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_fee_rate_options( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7650,15 +6954,14 @@ open func feeRateOptions()async throws -> FeeRateOptions { liftFunc: FfiConverterTypeFeeRateOptions.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address)async throws -> FeeRateOptionsWithTotalFee { - return - try await uniffiRustCallAsync( + } + + open func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address) async throws -> FeeRateOptionsWithTotalFee { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_fee_rate_options_with_total_fee( self.uniffiClonePointer(), - FfiConverterOptionTypeFeeRateOptions.lower(feeRateOptions),FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address) + FfiConverterOptionTypeFeeRateOptions.lower(feeRateOptions), FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7667,29 +6970,25 @@ open func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Am liftFunc: FfiConverterTypeFeeRateOptionsWithTotalFee.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func fees() -> FeeResponse? { - return try! FfiConverterOptionTypeFeeResponse.lift(try! rustCall() { - uniffi_cove_fn_method_rustwalletviewmodel_fees(self.uniffiClonePointer(),$0 - ) -}) -} - -open func fingerprint() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_rustwalletviewmodel_fingerprint(self.uniffiClonePointer(),$0 - ) -}) -} - -open func forceUpdateHeight()async throws -> UInt32 { - return - try await uniffiRustCallAsync( + } + + open func fees() -> FeeResponse? { + try! FfiConverterOptionTypeFeeResponse.lift(try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_fees(self.uniffiClonePointer(), $0) + }) + } + + open func fingerprint() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_fingerprint(self.uniffiClonePointer(), $0) + }) + } + + open func forceUpdateHeight() async throws -> UInt32 { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_force_update_height( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_u32, @@ -7698,15 +6997,13 @@ open func forceUpdateHeight()async throws -> UInt32 { liftFunc: FfiConverterUInt32.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func forceWalletScan()async throws { - return - try await uniffiRustCallAsync( + } + + open func forceWalletScan() async throws { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_force_wallet_scan( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_void, @@ -7715,15 +7012,14 @@ open func forceWalletScan()async throws { liftFunc: { $0 }, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate)async throws -> ConfirmDetails { - return - try await uniffiRustCallAsync( + } + + open func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate) async throws -> ConfirmDetails { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_get_confirm_details( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address),FfiConverterTypeFeeRate.lower(feeRate) + FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address), FfiConverterTypeFeeRate.lower(feeRate) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7732,15 +7028,13 @@ open func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate)a liftFunc: FfiConverterTypeConfirmDetails.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func getFeeOptions()async throws -> FeeRateOptions { - return - try await uniffiRustCallAsync( + } + + open func getFeeOptions() async throws -> FeeRateOptions { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_get_fee_options( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7749,11 +7043,10 @@ open func getFeeOptions()async throws -> FeeRateOptions { liftFunc: FfiConverterTypeFeeRateOptions.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func getMaxSendAmount(fee: FeeRateOptionWithTotalFee)async throws -> Amount { - return - try await uniffiRustCallAsync( + } + + open func getMaxSendAmount(fee: FeeRateOptionWithTotalFee) async throws -> Amount { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_get_max_send_amount( self.uniffiClonePointer(), @@ -7766,38 +7059,33 @@ open func getMaxSendAmount(fee: FeeRateOptionWithTotalFee)async throws -> Amoun liftFunc: FfiConverterTypeAmount.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func getUnsignedTransactions()throws -> [UnsignedTransaction] { - return try FfiConverterSequenceTypeUnsignedTransaction.lift(try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_get_unsigned_transactions(self.uniffiClonePointer(),$0 - ) -}) -} - -open func listenForUpdates(reconciler: WalletViewModelReconciler) {try! rustCall() { - uniffi_cove_fn_method_rustwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfaceWalletViewModelReconciler.lower(reconciler),$0 - ) -} -} - -open func markWalletAsVerified()throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_mark_wallet_as_verified(self.uniffiClonePointer(),$0 - ) -} -} - + } + + open func getUnsignedTransactions() throws -> [UnsignedTransaction] { + try FfiConverterSequenceTypeUnsignedTransaction.lift(rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_get_unsigned_transactions(self.uniffiClonePointer(), $0) + }) + } + + open func listenForUpdates(reconciler: WalletViewModelReconciler) { try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfaceWalletViewModelReconciler.lower(reconciler), $0) + } + } + + open func markWalletAsVerified() throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_mark_wallet_as_verified(self.uniffiClonePointer(), $0) + } + } + /** * Get the next address for the wallet */ -open func nextAddress()async throws -> AddressInfo { - return - try await uniffiRustCallAsync( + open func nextAddress() async throws -> AddressInfo { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_next_address( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7806,11 +7094,10 @@ open func nextAddress()async throws -> AddressInfo { liftFunc: FfiConverterTypeAddressInfo.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func numberOfConfirmations(blockHeight: UInt32)async throws -> UInt32 { - return - try await uniffiRustCallAsync( + } + + open func numberOfConfirmations(blockHeight: UInt32) async throws -> UInt32 { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_number_of_confirmations( self.uniffiClonePointer(), @@ -7823,11 +7110,10 @@ open func numberOfConfirmations(blockHeight: UInt32)async throws -> UInt32 { liftFunc: FfiConverterUInt32.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func numberOfConfirmationsFmt(blockHeight: UInt32)async throws -> String { - return - try await uniffiRustCallAsync( + } + + open func numberOfConfirmationsFmt(blockHeight: UInt32) async throws -> String { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_number_of_confirmations_fmt( self.uniffiClonePointer(), @@ -7840,18 +7126,16 @@ open func numberOfConfirmationsFmt(blockHeight: UInt32)async throws -> String liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func saveUnsignedTransaction(details: ConfirmDetails)throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_save_unsigned_transaction(self.uniffiClonePointer(), - FfiConverterTypeConfirmDetails.lower(details),$0 - ) -} -} - -open func sentAndReceivedFiat(sentAndReceived: SentAndReceived)async throws -> Double { - return - try await uniffiRustCallAsync( + } + + open func saveUnsignedTransaction(details: ConfirmDetails) throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_save_unsigned_transaction(self.uniffiClonePointer(), + FfiConverterTypeConfirmDetails.lower(details), $0) + } + } + + open func sentAndReceivedFiat(sentAndReceived: SentAndReceived) async throws -> Double { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_sent_and_received_fiat( self.uniffiClonePointer(), @@ -7864,22 +7148,19 @@ open func sentAndReceivedFiat(sentAndReceived: SentAndReceived)async throws -> liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func setWalletMetadata(metadata: WalletMetadata) {try! rustCall() { - uniffi_cove_fn_method_rustwalletviewmodel_set_wallet_metadata(self.uniffiClonePointer(), - FfiConverterTypeWalletMetadata.lower(metadata),$0 - ) -} -} - -open func startWalletScan()async throws { - return - try await uniffiRustCallAsync( + } + + open func setWalletMetadata(metadata: WalletMetadata) { try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_set_wallet_metadata(self.uniffiClonePointer(), + FfiConverterTypeWalletMetadata.lower(metadata), $0) + } + } + + open func startWalletScan() async throws { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_start_wallet_scan( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_void, @@ -7888,11 +7169,10 @@ open func startWalletScan()async throws { liftFunc: { $0 }, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType)async throws { - return - try await uniffiRustCallAsync( + } + + open func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType) async throws { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_switch_to_different_wallet_address_type( self.uniffiClonePointer(), @@ -7905,11 +7185,10 @@ open func switchToDifferentWalletAddressType(walletAddressType: WalletAddressTyp liftFunc: { $0 }, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func transactionDetails(txId: TxId)async throws -> TransactionDetails { - return - try await uniffiRustCallAsync( + } + + open func transactionDetails(txId: TxId) async throws -> TransactionDetails { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_transaction_details( self.uniffiClonePointer(), @@ -7922,39 +7201,39 @@ open func transactionDetails(txId: TxId)async throws -> TransactionDetails { liftFunc: FfiConverterTypeTransactionDetails.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) -} - -open func walletMetadata() -> WalletMetadata { - return try! FfiConverterTypeWalletMetadata.lift(try! rustCall() { - uniffi_cove_fn_method_rustwalletviewmodel_wallet_metadata(self.uniffiClonePointer(),$0 - ) -}) -} - -open func wordValidator()throws -> WordValidator { - return try FfiConverterTypeWordValidator.lift(try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_word_validator(self.uniffiClonePointer(),$0 - ) -}) -} - + } + + open func validateMetadata() { try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_validate_metadata(self.uniffiClonePointer(), $0) + } + } + open func walletMetadata() -> WalletMetadata { + try! FfiConverterTypeWalletMetadata.lift(try! rustCall { + uniffi_cove_fn_method_rustwalletviewmodel_wallet_metadata(self.uniffiClonePointer(), $0) + }) + } + + open func wordValidator() throws -> WordValidator { + try FfiConverterTypeWordValidator.lift(rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_word_validator(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeRustWalletViewModel: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RustWalletViewModel public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RustWalletViewModel { - return RustWalletViewModel(unsafeFromRawPointer: pointer) + RustWalletViewModel(unsafeFromRawPointer: pointer) } public static func lower(_ value: RustWalletViewModel) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RustWalletViewModel { @@ -7962,7 +7241,7 @@ public struct FfiConverterTypeRustWalletViewModel: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7975,42 +7254,35 @@ public struct FfiConverterTypeRustWalletViewModel: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRustWalletViewModel_lift(_ pointer: UnsafeMutableRawPointer) throws -> RustWalletViewModel { - return try FfiConverterTypeRustWalletViewModel.lift(pointer) + try FfiConverterTypeRustWalletViewModel.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRustWalletViewModel_lower(_ value: RustWalletViewModel) -> UnsafeMutableRawPointer { - return FfiConverterTypeRustWalletViewModel.lower(value) + FfiConverterTypeRustWalletViewModel.lower(value) } +public protocol SeedQrProtocol: AnyObject { + func getWords() -> [String] - - -public protocol SeedQrProtocol : AnyObject { - - func getWords() -> [String] - - func groupedPlainWords() -> [[String]] - + func groupedPlainWords() -> [[String]] } open class SeedQr: - SeedQrProtocol { + SeedQrProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -8018,7 +7290,7 @@ open class SeedQr: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8027,79 +7299,72 @@ open class SeedQr: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_seedqr(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_seedqr(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_seedqr(pointer, $0) } } - -public static func newFromData(data: Data)throws -> SeedQr { - return try FfiConverterTypeSeedQr.lift(try rustCallWithError(FfiConverterTypeSeedQrError.lift) { - uniffi_cove_fn_constructor_seedqr_new_from_data( - FfiConverterData.lower(data),$0 - ) -}) -} - -public static func newFromStr(qr: String)throws -> SeedQr { - return try FfiConverterTypeSeedQr.lift(try rustCallWithError(FfiConverterTypeSeedQrError.lift) { - uniffi_cove_fn_constructor_seedqr_new_from_str( - FfiConverterString.lower(qr),$0 - ) -}) -} - + public static func newFromData(data: Data) throws -> SeedQr { + try FfiConverterTypeSeedQr.lift(rustCallWithError(FfiConverterTypeSeedQrError.lift) { + uniffi_cove_fn_constructor_seedqr_new_from_data( + FfiConverterData.lower(data), $0 + ) + }) + } - -open func getWords() -> [String] { - return try! FfiConverterSequenceString.lift(try! rustCall() { - uniffi_cove_fn_method_seedqr_get_words(self.uniffiClonePointer(),$0 - ) -}) -} - -open func groupedPlainWords() -> [[String]] { - return try! FfiConverterSequenceSequenceString.lift(try! rustCall() { - uniffi_cove_fn_method_seedqr_grouped_plain_words(self.uniffiClonePointer(),$0 - ) -}) -} - + public static func newFromStr(qr: String) throws -> SeedQr { + try FfiConverterTypeSeedQr.lift(rustCallWithError(FfiConverterTypeSeedQrError.lift) { + uniffi_cove_fn_constructor_seedqr_new_from_str( + FfiConverterString.lower(qr), $0 + ) + }) + } + + open func getWords() -> [String] { + try! FfiConverterSequenceString.lift(try! rustCall { + uniffi_cove_fn_method_seedqr_get_words(self.uniffiClonePointer(), $0) + }) + } + open func groupedPlainWords() -> [[String]] { + try! FfiConverterSequenceSequenceString.lift(try! rustCall { + uniffi_cove_fn_method_seedqr_grouped_plain_words(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeSeedQr: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = SeedQr public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> SeedQr { - return SeedQr(unsafeFromRawPointer: pointer) + SeedQr(unsafeFromRawPointer: pointer) } public static func lower(_ value: SeedQr) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SeedQr { @@ -8107,7 +7372,7 @@ public struct FfiConverterTypeSeedQr: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8120,50 +7385,43 @@ public struct FfiConverterTypeSeedQr: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeSeedQr_lift(_ pointer: UnsafeMutableRawPointer) throws -> SeedQr { - return try FfiConverterTypeSeedQr.lift(pointer) + try FfiConverterTypeSeedQr.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeSeedQr_lower(_ value: SeedQr) -> UnsafeMutableRawPointer { - return FfiConverterTypeSeedQr.lower(value) + FfiConverterTypeSeedQr.lower(value) } +public protocol SentAndReceivedProtocol: AnyObject { + func amount() -> Amount + func amountFmt(unit: Unit) -> String + func direction() -> TransactionDirection -public protocol SentAndReceivedProtocol : AnyObject { - - func amount() -> Amount - - func amountFmt(unit: Unit) -> String - - func direction() -> TransactionDirection - - func label() -> String - - func received() -> Amount - - func sent() -> Amount - + func label() -> String + + func received() -> Amount + + func sent() -> Amount } open class SentAndReceived: - SentAndReceivedProtocol { + SentAndReceivedProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -8171,7 +7429,7 @@ open class SentAndReceived: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8180,92 +7438,81 @@ open class SentAndReceived: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_sentandreceived(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_sentandreceived(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_sentandreceived(pointer, $0) } } - + open func amount() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_sentandreceived_amount(self.uniffiClonePointer(), $0) + }) + } - -open func amount() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_sentandreceived_amount(self.uniffiClonePointer(),$0 - ) -}) -} - -open func amountFmt(unit: Unit) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_sentandreceived_amount_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit),$0 - ) -}) -} - -open func direction() -> TransactionDirection { - return try! FfiConverterTypeTransactionDirection.lift(try! rustCall() { - uniffi_cove_fn_method_sentandreceived_direction(self.uniffiClonePointer(),$0 - ) -}) -} - -open func label() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_sentandreceived_label(self.uniffiClonePointer(),$0 - ) -}) -} - -open func received() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_sentandreceived_received(self.uniffiClonePointer(),$0 - ) -}) -} - -open func sent() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_sentandreceived_sent(self.uniffiClonePointer(),$0 - ) -}) -} - + open func amountFmt(unit: Unit) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_sentandreceived_amount_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit), $0) + }) + } + + open func direction() -> TransactionDirection { + try! FfiConverterTypeTransactionDirection.lift(try! rustCall { + uniffi_cove_fn_method_sentandreceived_direction(self.uniffiClonePointer(), $0) + }) + } + + open func label() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_sentandreceived_label(self.uniffiClonePointer(), $0) + }) + } + + open func received() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_sentandreceived_received(self.uniffiClonePointer(), $0) + }) + } + open func sent() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_sentandreceived_sent(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeSentAndReceived: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = SentAndReceived public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> SentAndReceived { - return SentAndReceived(unsafeFromRawPointer: pointer) + SentAndReceived(unsafeFromRawPointer: pointer) } public static func lower(_ value: SentAndReceived) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SentAndReceived { @@ -8273,7 +7520,7 @@ public struct FfiConverterTypeSentAndReceived: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8286,72 +7533,65 @@ public struct FfiConverterTypeSentAndReceived: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeSentAndReceived_lift(_ pointer: UnsafeMutableRawPointer) throws -> SentAndReceived { - return try FfiConverterTypeSentAndReceived.lift(pointer) + try FfiConverterTypeSentAndReceived.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeSentAndReceived_lower(_ value: SentAndReceived) -> UnsafeMutableRawPointer { - return FfiConverterTypeSentAndReceived.lower(value) -} - - - - -public protocol TransactionDetailsProtocol : AnyObject { - - func address() -> Address - - func addressSpacedOut() -> String - - func amount() -> Amount - - func amountFiat() async throws -> Double - - func amountFiatFmt() async throws -> String - - func amountFmt(unit: Unit) -> String - - func blockNumber() -> UInt32? - - func blockNumberFmt() -> String? - - func confirmationDateTime() -> String? - - func feeFiatFmt() async throws -> String - - func feeFmt(unit: Unit) -> String? - - func isConfirmed() -> Bool - - func isReceived() -> Bool - - func isSent() -> Bool - - func sentSansFeeFiatFmt() async throws -> String - - func sentSansFeeFmt(unit: Unit) -> String? - - func transactionUrl() -> String - + FfiConverterTypeSentAndReceived.lower(value) +} + +public protocol TransactionDetailsProtocol: AnyObject { + func address() -> Address + + func addressSpacedOut() -> String + + func amount() -> Amount + + func amountFiat() async throws -> Double + + func amountFiatFmt() async throws -> String + + func amountFmt(unit: Unit) -> String + + func blockNumber() -> UInt32? + + func blockNumberFmt() -> String? + + func confirmationDateTime() -> String? + + func feeFiatFmt() async throws -> String + + func feeFmt(unit: Unit) -> String? + + func isConfirmed() -> Bool + + func isReceived() -> Bool + + func isSent() -> Bool + + func sentSansFeeFiatFmt() async throws -> String + + func sentSansFeeFmt(unit: Unit) -> String? + + func transactionUrl() -> String } open class TransactionDetails: - TransactionDetailsProtocol { + TransactionDetailsProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -8359,7 +7599,7 @@ open class TransactionDetails: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8368,95 +7608,88 @@ open class TransactionDetails: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_transactiondetails(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_transactiondetails(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_transactiondetails(pointer, $0) } } - -public static func previewConfirmedReceived() -> TransactionDetails { - return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { - uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_received($0 - ) -}) -} - -public static func previewConfirmedSent() -> TransactionDetails { - return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { - uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_sent($0 - ) -}) -} - -public static func previewNewConfirmed() -> TransactionDetails { - return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { - uniffi_cove_fn_constructor_transactiondetails_preview_new_confirmed($0 - ) -}) -} - -public static func previewPendingReceived() -> TransactionDetails { - return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { - uniffi_cove_fn_constructor_transactiondetails_preview_pending_received($0 - ) -}) -} - -public static func previewPendingSent() -> TransactionDetails { - return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { - uniffi_cove_fn_constructor_transactiondetails_preview_pending_sent($0 - ) -}) -} - + public static func previewConfirmedReceived() -> TransactionDetails { + try! FfiConverterTypeTransactionDetails.lift(try! rustCall { + uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_received($0 + ) + }) + } - -open func address() -> Address { - return try! FfiConverterTypeAddress.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_address(self.uniffiClonePointer(),$0 - ) -}) -} - -open func addressSpacedOut() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_address_spaced_out(self.uniffiClonePointer(),$0 - ) -}) -} - -open func amount() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_amount(self.uniffiClonePointer(),$0 - ) -}) -} - -open func amountFiat()async throws -> Double { - return - try await uniffiRustCallAsync( + public static func previewConfirmedSent() -> TransactionDetails { + try! FfiConverterTypeTransactionDetails.lift(try! rustCall { + uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_sent($0 + ) + }) + } + + public static func previewNewConfirmed() -> TransactionDetails { + try! FfiConverterTypeTransactionDetails.lift(try! rustCall { + uniffi_cove_fn_constructor_transactiondetails_preview_new_confirmed($0 + ) + }) + } + + public static func previewPendingReceived() -> TransactionDetails { + try! FfiConverterTypeTransactionDetails.lift(try! rustCall { + uniffi_cove_fn_constructor_transactiondetails_preview_pending_received($0 + ) + }) + } + + public static func previewPendingSent() -> TransactionDetails { + try! FfiConverterTypeTransactionDetails.lift(try! rustCall { + uniffi_cove_fn_constructor_transactiondetails_preview_pending_sent($0 + ) + }) + } + + open func address() -> Address { + try! FfiConverterTypeAddress.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_address(self.uniffiClonePointer(), $0) + }) + } + + open func addressSpacedOut() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_address_spaced_out(self.uniffiClonePointer(), $0) + }) + } + + open func amount() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_amount(self.uniffiClonePointer(), $0) + }) + } + + open func amountFiat() async throws -> Double { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_amount_fiat( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_f64, @@ -8465,15 +7698,13 @@ open func amountFiat()async throws -> Double { liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) -} - -open func amountFiatFmt()async throws -> String { - return - try await uniffiRustCallAsync( + } + + open func amountFiatFmt() async throws -> String { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_amount_fiat_fmt( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -8482,44 +7713,38 @@ open func amountFiatFmt()async throws -> String { liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) -} - -open func amountFmt(unit: Unit) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_amount_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit),$0 - ) -}) -} - -open func blockNumber() -> UInt32? { - return try! FfiConverterOptionUInt32.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_block_number(self.uniffiClonePointer(),$0 - ) -}) -} - -open func blockNumberFmt() -> String? { - return try! FfiConverterOptionString.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_block_number_fmt(self.uniffiClonePointer(),$0 - ) -}) -} - -open func confirmationDateTime() -> String? { - return try! FfiConverterOptionString.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_confirmation_date_time(self.uniffiClonePointer(),$0 - ) -}) -} - -open func feeFiatFmt()async throws -> String { - return - try await uniffiRustCallAsync( + } + + open func amountFmt(unit: Unit) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_amount_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit), $0) + }) + } + + open func blockNumber() -> UInt32? { + try! FfiConverterOptionUInt32.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_block_number(self.uniffiClonePointer(), $0) + }) + } + + open func blockNumberFmt() -> String? { + try! FfiConverterOptionString.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_block_number_fmt(self.uniffiClonePointer(), $0) + }) + } + + open func confirmationDateTime() -> String? { + try! FfiConverterOptionString.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_confirmation_date_time(self.uniffiClonePointer(), $0) + }) + } + + open func feeFiatFmt() async throws -> String { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_fee_fiat_fmt( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -8528,44 +7753,38 @@ open func feeFiatFmt()async throws -> String { liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) -} - -open func feeFmt(unit: Unit) -> String? { - return try! FfiConverterOptionString.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_fee_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit),$0 - ) -}) -} - -open func isConfirmed() -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_is_confirmed(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isReceived() -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_is_received(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isSent() -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_is_sent(self.uniffiClonePointer(),$0 - ) -}) -} - -open func sentSansFeeFiatFmt()async throws -> String { - return - try await uniffiRustCallAsync( + } + + open func feeFmt(unit: Unit) -> String? { + try! FfiConverterOptionString.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_fee_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit), $0) + }) + } + + open func isConfirmed() -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_is_confirmed(self.uniffiClonePointer(), $0) + }) + } + + open func isReceived() -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_is_received(self.uniffiClonePointer(), $0) + }) + } + + open func isSent() -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_is_sent(self.uniffiClonePointer(), $0) + }) + } + + open func sentSansFeeFiatFmt() async throws -> String { + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_sent_sans_fee_fiat_fmt( self.uniffiClonePointer() - ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -8574,40 +7793,35 @@ open func sentSansFeeFiatFmt()async throws -> String { liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) -} - -open func sentSansFeeFmt(unit: Unit) -> String? { - return try! FfiConverterOptionString.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_sent_sans_fee_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit),$0 - ) -}) -} - -open func transactionUrl() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_transactiondetails_transaction_url(self.uniffiClonePointer(),$0 - ) -}) -} - + } + + open func sentSansFeeFmt(unit: Unit) -> String? { + try! FfiConverterOptionString.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_sent_sans_fee_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit), $0) + }) + } + open func transactionUrl() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_transactiondetails_transaction_url(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionDetails: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TransactionDetails public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TransactionDetails { - return TransactionDetails(unsafeFromRawPointer: pointer) + TransactionDetails(unsafeFromRawPointer: pointer) } public static func lower(_ value: TransactionDetails) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionDetails { @@ -8615,7 +7829,7 @@ public struct FfiConverterTypeTransactionDetails: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8628,42 +7842,35 @@ public struct FfiConverterTypeTransactionDetails: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDetails_lift(_ pointer: UnsafeMutableRawPointer) throws -> TransactionDetails { - return try FfiConverterTypeTransactionDetails.lift(pointer) + try FfiConverterTypeTransactionDetails.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDetails_lower(_ value: TransactionDetails) -> UnsafeMutableRawPointer { - return FfiConverterTypeTransactionDetails.lower(value) + FfiConverterTypeTransactionDetails.lower(value) } +public protocol TxIdProtocol: AnyObject { + func asHashString() -> String - - -public protocol TxIdProtocol : AnyObject { - - func asHashString() -> String - - func isEqual(other: TxId) -> Bool - + func isEqual(other: TxId) -> Bool } open class TxId: - TxIdProtocol { + TxIdProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -8671,7 +7878,7 @@ open class TxId: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8680,64 +7887,57 @@ open class TxId: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_txid(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_txid(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_txid(pointer, $0) } } - - - -open func asHashString() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_txid_as_hash_string(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isEqual(other: TxId) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_txid_is_equal(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(other),$0 - ) -}) -} - + open func asHashString() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_txid_as_hash_string(self.uniffiClonePointer(), $0) + }) + } + open func isEqual(other: TxId) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_txid_is_equal(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(other), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTxId: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TxId public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TxId { - return TxId(unsafeFromRawPointer: pointer) + TxId(unsafeFromRawPointer: pointer) } public static func lower(_ value: TxId) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TxId { @@ -8745,7 +7945,7 @@ public struct FfiConverterTypeTxId: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8758,38 +7958,31 @@ public struct FfiConverterTypeTxId: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTxId_lift(_ pointer: UnsafeMutableRawPointer) throws -> TxId { - return try FfiConverterTypeTxId.lift(pointer) + try FfiConverterTypeTxId.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTxId_lower(_ value: TxId) -> UnsafeMutableRawPointer { - return FfiConverterTypeTxId.lower(value) + FfiConverterTypeTxId.lower(value) } - - - -public protocol TxInProtocol : AnyObject { - -} +public protocol TxInProtocol: AnyObject {} open class TxIn: - TxInProtocol { + TxInProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -8797,7 +7990,7 @@ open class TxIn: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8806,49 +7999,44 @@ open class TxIn: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_txin(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_txin(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_txin(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTxIn: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TxIn public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TxIn { - return TxIn(unsafeFromRawPointer: pointer) + TxIn(unsafeFromRawPointer: pointer) } public static func lower(_ value: TxIn) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TxIn { @@ -8856,7 +8044,7 @@ public struct FfiConverterTypeTxIn: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8869,38 +8057,31 @@ public struct FfiConverterTypeTxIn: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTxIn_lift(_ pointer: UnsafeMutableRawPointer) throws -> TxIn { - return try FfiConverterTypeTxIn.lift(pointer) + try FfiConverterTypeTxIn.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTxIn_lower(_ value: TxIn) -> UnsafeMutableRawPointer { - return FfiConverterTypeTxIn.lower(value) + FfiConverterTypeTxIn.lower(value) } - - - -public protocol TxOutProtocol : AnyObject { - -} +public protocol TxOutProtocol: AnyObject {} open class TxOut: - TxOutProtocol { + TxOutProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -8908,7 +8089,7 @@ open class TxOut: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8917,49 +8098,44 @@ open class TxOut: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_txout(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_txout(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_txout(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTxOut: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TxOut public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TxOut { - return TxOut(unsafeFromRawPointer: pointer) + TxOut(unsafeFromRawPointer: pointer) } public static func lower(_ value: TxOut) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TxOut { @@ -8967,7 +8143,7 @@ public struct FfiConverterTypeTxOut: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8980,48 +8156,41 @@ public struct FfiConverterTypeTxOut: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTxOut_lift(_ pointer: UnsafeMutableRawPointer) throws -> TxOut { - return try FfiConverterTypeTxOut.lift(pointer) + try FfiConverterTypeTxOut.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTxOut_lower(_ value: TxOut) -> UnsafeMutableRawPointer { - return FfiConverterTypeTxOut.lower(value) + FfiConverterTypeTxOut.lower(value) } +public protocol UnconfirmedTransactionProtocol: AnyObject { + func fiatAmount() -> FiatAmount? + + func id() -> TxId + func label() -> String + func lastSeen() -> UInt64 -public protocol UnconfirmedTransactionProtocol : AnyObject { - - func fiatAmount() -> FiatAmount? - - func id() -> TxId - - func label() -> String - - func lastSeen() -> UInt64 - - func sentAndReceived() -> SentAndReceived - + func sentAndReceived() -> SentAndReceived } open class UnconfirmedTransaction: - UnconfirmedTransactionProtocol { + UnconfirmedTransactionProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -9029,7 +8198,7 @@ open class UnconfirmedTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9038,84 +8207,74 @@ open class UnconfirmedTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_unconfirmedtransaction(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_unconfirmedtransaction(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_unconfirmedtransaction(pointer, $0) } } - + open func fiatAmount() -> FiatAmount? { + try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall { + uniffi_cove_fn_method_unconfirmedtransaction_fiat_amount(self.uniffiClonePointer(), $0) + }) + } - -open func fiatAmount() -> FiatAmount? { - return try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall() { - uniffi_cove_fn_method_unconfirmedtransaction_fiat_amount(self.uniffiClonePointer(),$0 - ) -}) -} - -open func id() -> TxId { - return try! FfiConverterTypeTxId.lift(try! rustCall() { - uniffi_cove_fn_method_unconfirmedtransaction_id(self.uniffiClonePointer(),$0 - ) -}) -} - -open func label() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_unconfirmedtransaction_label(self.uniffiClonePointer(),$0 - ) -}) -} - -open func lastSeen() -> UInt64 { - return try! FfiConverterUInt64.lift(try! rustCall() { - uniffi_cove_fn_method_unconfirmedtransaction_last_seen(self.uniffiClonePointer(),$0 - ) -}) -} - -open func sentAndReceived() -> SentAndReceived { - return try! FfiConverterTypeSentAndReceived.lift(try! rustCall() { - uniffi_cove_fn_method_unconfirmedtransaction_sent_and_received(self.uniffiClonePointer(),$0 - ) -}) -} - + open func id() -> TxId { + try! FfiConverterTypeTxId.lift(try! rustCall { + uniffi_cove_fn_method_unconfirmedtransaction_id(self.uniffiClonePointer(), $0) + }) + } + + open func label() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_unconfirmedtransaction_label(self.uniffiClonePointer(), $0) + }) + } + open func lastSeen() -> UInt64 { + try! FfiConverterUInt64.lift(try! rustCall { + uniffi_cove_fn_method_unconfirmedtransaction_last_seen(self.uniffiClonePointer(), $0) + }) + } + + open func sentAndReceived() -> SentAndReceived { + try! FfiConverterTypeSentAndReceived.lift(try! rustCall { + uniffi_cove_fn_method_unconfirmedtransaction_sent_and_received(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeUnconfirmedTransaction: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnconfirmedTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnconfirmedTransaction { - return UnconfirmedTransaction(unsafeFromRawPointer: pointer) + UnconfirmedTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnconfirmedTransaction) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnconfirmedTransaction { @@ -9123,7 +8282,7 @@ public struct FfiConverterTypeUnconfirmedTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9136,48 +8295,41 @@ public struct FfiConverterTypeUnconfirmedTransaction: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnconfirmedTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnconfirmedTransaction { - return try FfiConverterTypeUnconfirmedTransaction.lift(pointer) + try FfiConverterTypeUnconfirmedTransaction.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnconfirmedTransaction_lower(_ value: UnconfirmedTransaction) -> UnsafeMutableRawPointer { - return FfiConverterTypeUnconfirmedTransaction.lower(value) + FfiConverterTypeUnconfirmedTransaction.lower(value) } +public protocol UnsignedTransactionProtocol: AnyObject { + func details() -> ConfirmDetails + func id() -> TxId + func label() -> String -public protocol UnsignedTransactionProtocol : AnyObject { - - func details() -> ConfirmDetails - - func id() -> TxId - - func label() -> String - - func sendingAmount() -> Amount - - func spendingAmount() -> Amount - + func sendingAmount() -> Amount + + func spendingAmount() -> Amount } open class UnsignedTransaction: - UnsignedTransactionProtocol { + UnsignedTransactionProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -9185,7 +8337,7 @@ open class UnsignedTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9194,91 +8346,81 @@ open class UnsignedTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_unsignedtransaction(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_unsignedtransaction(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_unsignedtransaction(pointer, $0) } } - -public static func previewNew() -> UnsignedTransaction { - return try! FfiConverterTypeUnsignedTransaction.lift(try! rustCall() { - uniffi_cove_fn_constructor_unsignedtransaction_preview_new($0 - ) -}) -} - + public static func previewNew() -> UnsignedTransaction { + try! FfiConverterTypeUnsignedTransaction.lift(try! rustCall { + uniffi_cove_fn_constructor_unsignedtransaction_preview_new($0 + ) + }) + } - -open func details() -> ConfirmDetails { - return try! FfiConverterTypeConfirmDetails.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransaction_details(self.uniffiClonePointer(),$0 - ) -}) -} - -open func id() -> TxId { - return try! FfiConverterTypeTxId.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransaction_id(self.uniffiClonePointer(),$0 - ) -}) -} - -open func label() -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransaction_label(self.uniffiClonePointer(),$0 - ) -}) -} - -open func sendingAmount() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransaction_sending_amount(self.uniffiClonePointer(),$0 - ) -}) -} - -open func spendingAmount() -> Amount { - return try! FfiConverterTypeAmount.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransaction_spending_amount(self.uniffiClonePointer(),$0 - ) -}) -} - + open func details() -> ConfirmDetails { + try! FfiConverterTypeConfirmDetails.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransaction_details(self.uniffiClonePointer(), $0) + }) + } + open func id() -> TxId { + try! FfiConverterTypeTxId.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransaction_id(self.uniffiClonePointer(), $0) + }) + } + + open func label() -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransaction_label(self.uniffiClonePointer(), $0) + }) + } + + open func sendingAmount() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransaction_sending_amount(self.uniffiClonePointer(), $0) + }) + } + + open func spendingAmount() -> Amount { + try! FfiConverterTypeAmount.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransaction_spending_amount(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransaction: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnsignedTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransaction { - return UnsignedTransaction(unsafeFromRawPointer: pointer) + UnsignedTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnsignedTransaction) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransaction { @@ -9286,7 +8428,7 @@ public struct FfiConverterTypeUnsignedTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9299,46 +8441,39 @@ public struct FfiConverterTypeUnsignedTransaction: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransaction { - return try FfiConverterTypeUnsignedTransaction.lift(pointer) + try FfiConverterTypeUnsignedTransaction.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransaction_lower(_ value: UnsignedTransaction) -> UnsafeMutableRawPointer { - return FfiConverterTypeUnsignedTransaction.lower(value) + FfiConverterTypeUnsignedTransaction.lower(value) } +public protocol UnsignedTransactionRecordProtocol: AnyObject { + func confirmDetails() -> ConfirmDetails + func createdAt() -> UInt64 + func txId() -> TxId -public protocol UnsignedTransactionRecordProtocol : AnyObject { - - func confirmDetails() -> ConfirmDetails - - func createdAt() -> UInt64 - - func txId() -> TxId - - func walletId() -> WalletId - + func walletId() -> WalletId } open class UnsignedTransactionRecord: - UnsignedTransactionRecordProtocol { + UnsignedTransactionRecordProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -9346,7 +8481,7 @@ open class UnsignedTransactionRecord: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9355,77 +8490,68 @@ open class UnsignedTransactionRecord: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_unsignedtransactionrecord(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_unsignedtransactionrecord(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_unsignedtransactionrecord(pointer, $0) } } - + open func confirmDetails() -> ConfirmDetails { + try! FfiConverterTypeConfirmDetails.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransactionrecord_confirm_details(self.uniffiClonePointer(), $0) + }) + } - -open func confirmDetails() -> ConfirmDetails { - return try! FfiConverterTypeConfirmDetails.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransactionrecord_confirm_details(self.uniffiClonePointer(),$0 - ) -}) -} - -open func createdAt() -> UInt64 { - return try! FfiConverterUInt64.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransactionrecord_created_at(self.uniffiClonePointer(),$0 - ) -}) -} - -open func txId() -> TxId { - return try! FfiConverterTypeTxId.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransactionrecord_tx_id(self.uniffiClonePointer(),$0 - ) -}) -} - -open func walletId() -> WalletId { - return try! FfiConverterTypeWalletId.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransactionrecord_wallet_id(self.uniffiClonePointer(),$0 - ) -}) -} - + open func createdAt() -> UInt64 { + try! FfiConverterUInt64.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransactionrecord_created_at(self.uniffiClonePointer(), $0) + }) + } + + open func txId() -> TxId { + try! FfiConverterTypeTxId.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransactionrecord_tx_id(self.uniffiClonePointer(), $0) + }) + } + open func walletId() -> WalletId { + try! FfiConverterTypeWalletId.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransactionrecord_wallet_id(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransactionRecord: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnsignedTransactionRecord public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionRecord { - return UnsignedTransactionRecord(unsafeFromRawPointer: pointer) + UnsignedTransactionRecord(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnsignedTransactionRecord) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransactionRecord { @@ -9433,7 +8559,7 @@ public struct FfiConverterTypeUnsignedTransactionRecord: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9446,42 +8572,35 @@ public struct FfiConverterTypeUnsignedTransactionRecord: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionRecord_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionRecord { - return try FfiConverterTypeUnsignedTransactionRecord.lift(pointer) + try FfiConverterTypeUnsignedTransactionRecord.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionRecord_lower(_ value: UnsignedTransactionRecord) -> UnsafeMutableRawPointer { - return FfiConverterTypeUnsignedTransactionRecord.lower(value) + FfiConverterTypeUnsignedTransactionRecord.lower(value) } +public protocol UnsignedTransactionsTableProtocol: AnyObject { + func getTx(txId: TxId) -> UnsignedTransactionRecord? - - -public protocol UnsignedTransactionsTableProtocol : AnyObject { - - func getTx(txId: TxId) -> UnsignedTransactionRecord? - - func getTxThrow(txId: TxId) throws -> UnsignedTransactionRecord - + func getTxThrow(txId: TxId) throws -> UnsignedTransactionRecord } open class UnsignedTransactionsTable: - UnsignedTransactionsTableProtocol { + UnsignedTransactionsTableProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -9489,7 +8608,7 @@ open class UnsignedTransactionsTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9498,65 +8617,58 @@ open class UnsignedTransactionsTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_unsignedtransactionstable(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_unsignedtransactionstable(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_unsignedtransactionstable(pointer, $0) } } - - - -open func getTx(txId: TxId) -> UnsignedTransactionRecord? { - return try! FfiConverterOptionTypeUnsignedTransactionRecord.lift(try! rustCall() { - uniffi_cove_fn_method_unsignedtransactionstable_gettx(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(txId),$0 - ) -}) -} - -open func getTxThrow(txId: TxId)throws -> UnsignedTransactionRecord { - return try FfiConverterTypeUnsignedTransactionRecord.lift(try rustCallWithError(FfiConverterTypeUnsignedTransactionsTableError.lift) { - uniffi_cove_fn_method_unsignedtransactionstable_gettxthrow(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(txId),$0 - ) -}) -} - + open func getTx(txId: TxId) -> UnsignedTransactionRecord? { + try! FfiConverterOptionTypeUnsignedTransactionRecord.lift(try! rustCall { + uniffi_cove_fn_method_unsignedtransactionstable_gettx(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(txId), $0) + }) + } + open func getTxThrow(txId: TxId) throws -> UnsignedTransactionRecord { + try FfiConverterTypeUnsignedTransactionRecord.lift(rustCallWithError(FfiConverterTypeUnsignedTransactionsTableError.lift) { + uniffi_cove_fn_method_unsignedtransactionstable_gettxthrow(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(txId), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransactionsTable: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnsignedTransactionsTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionsTable { - return UnsignedTransactionsTable(unsafeFromRawPointer: pointer) + UnsignedTransactionsTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnsignedTransactionsTable) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransactionsTable { @@ -9564,7 +8676,7 @@ public struct FfiConverterTypeUnsignedTransactionsTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9577,40 +8689,33 @@ public struct FfiConverterTypeUnsignedTransactionsTable: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionsTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionsTable { - return try FfiConverterTypeUnsignedTransactionsTable.lift(pointer) + try FfiConverterTypeUnsignedTransactionsTable.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionsTable_lower(_ value: UnsignedTransactionsTable) -> UnsafeMutableRawPointer { - return FfiConverterTypeUnsignedTransactionsTable.lower(value) + FfiConverterTypeUnsignedTransactionsTable.lower(value) } - - - -public protocol WalletProtocol : AnyObject { - - func id() -> WalletId - +public protocol WalletProtocol: AnyObject { + func id() -> WalletId } open class Wallet: - WalletProtocol { + WalletProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -9618,7 +8723,7 @@ open class Wallet: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9627,79 +8732,73 @@ open class Wallet: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_wallet(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_wallet(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_wallet(pointer, $0) } } - -public static func newFromExport(export: HardwareExport)throws -> Wallet { - return try FfiConverterTypeWallet.lift(try rustCallWithError(FfiConverterTypeWalletError.lift) { - uniffi_cove_fn_constructor_wallet_new_from_export( - FfiConverterTypeHardwareExport.lower(export),$0 - ) -}) -} - -public static func newFromXpub(xpub: String)throws -> Wallet { - return try FfiConverterTypeWallet.lift(try rustCallWithError(FfiConverterTypeWalletError.lift) { - uniffi_cove_fn_constructor_wallet_new_from_xpub( - FfiConverterString.lower(xpub),$0 - ) -}) -} - -public static func previewNewWallet() -> Wallet { - return try! FfiConverterTypeWallet.lift(try! rustCall() { - uniffi_cove_fn_constructor_wallet_previewnewwallet($0 - ) -}) -} - + public static func newFromExport(export: HardwareExport) throws -> Wallet { + try FfiConverterTypeWallet.lift(rustCallWithError(FfiConverterTypeWalletError.lift) { + uniffi_cove_fn_constructor_wallet_new_from_export( + FfiConverterTypeHardwareExport.lower(export), $0 + ) + }) + } - -open func id() -> WalletId { - return try! FfiConverterTypeWalletId.lift(try! rustCall() { - uniffi_cove_fn_method_wallet_id(self.uniffiClonePointer(),$0 - ) -}) -} - + public static func newFromXpub(xpub: String) throws -> Wallet { + try FfiConverterTypeWallet.lift(rustCallWithError(FfiConverterTypeWalletError.lift) { + uniffi_cove_fn_constructor_wallet_new_from_xpub( + FfiConverterString.lower(xpub), $0 + ) + }) + } + + public static func previewNewWallet() -> Wallet { + try! FfiConverterTypeWallet.lift(try! rustCall { + uniffi_cove_fn_constructor_wallet_previewnewwallet($0 + ) + }) + } + open func id() -> WalletId { + try! FfiConverterTypeWalletId.lift(try! rustCall { + uniffi_cove_fn_method_wallet_id(self.uniffiClonePointer(), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWallet: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Wallet public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Wallet { - return Wallet(unsafeFromRawPointer: pointer) + Wallet(unsafeFromRawPointer: pointer) } public static func lower(_ value: Wallet) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Wallet { @@ -9707,7 +8806,7 @@ public struct FfiConverterTypeWallet: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9720,38 +8819,31 @@ public struct FfiConverterTypeWallet: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWallet_lift(_ pointer: UnsafeMutableRawPointer) throws -> Wallet { - return try FfiConverterTypeWallet.lift(pointer) + try FfiConverterTypeWallet.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWallet_lower(_ value: Wallet) -> UnsafeMutableRawPointer { - return FfiConverterTypeWallet.lower(value) + FfiConverterTypeWallet.lower(value) } - - - -public protocol WalletDataDbProtocol : AnyObject { - -} +public protocol WalletDataDbProtocol: AnyObject {} open class WalletDataDb: - WalletDataDbProtocol { + WalletDataDbProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -9759,7 +8851,7 @@ open class WalletDataDb: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9768,49 +8860,44 @@ open class WalletDataDb: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_walletdatadb(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_walletdatadb(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_walletdatadb(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletDataDb: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WalletDataDb public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletDataDb { - return WalletDataDb(unsafeFromRawPointer: pointer) + WalletDataDb(unsafeFromRawPointer: pointer) } public static func lower(_ value: WalletDataDb) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletDataDb { @@ -9818,7 +8905,7 @@ public struct FfiConverterTypeWalletDataDb: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9831,38 +8918,31 @@ public struct FfiConverterTypeWalletDataDb: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataDb_lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletDataDb { - return try FfiConverterTypeWalletDataDb.lift(pointer) + try FfiConverterTypeWalletDataDb.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataDb_lower(_ value: WalletDataDb) -> UnsafeMutableRawPointer { - return FfiConverterTypeWalletDataDb.lower(value) + FfiConverterTypeWalletDataDb.lower(value) } - - - -public protocol WalletKeyProtocol : AnyObject { - -} +public protocol WalletKeyProtocol: AnyObject {} open class WalletKey: - WalletKeyProtocol { + WalletKeyProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -9870,7 +8950,7 @@ open class WalletKey: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9879,49 +8959,44 @@ open class WalletKey: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_walletkey(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_walletkey(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_walletkey(pointer, $0) } } - - - - - } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletKey: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WalletKey public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletKey { - return WalletKey(unsafeFromRawPointer: pointer) + WalletKey(unsafeFromRawPointer: pointer) } public static func lower(_ value: WalletKey) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletKey { @@ -9929,7 +9004,7 @@ public struct FfiConverterTypeWalletKey: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9942,44 +9017,37 @@ public struct FfiConverterTypeWalletKey: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletKey_lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletKey { - return try FfiConverterTypeWalletKey.lift(pointer) + try FfiConverterTypeWalletKey.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletKey_lower(_ value: WalletKey) -> UnsafeMutableRawPointer { - return FfiConverterTypeWalletKey.lower(value) + FfiConverterTypeWalletKey.lower(value) } +public protocol WalletsTableProtocol: AnyObject { + func all() throws -> [WalletMetadata] + func isEmpty() throws -> Bool - -public protocol WalletsTableProtocol : AnyObject { - - func all() throws -> [WalletMetadata] - - func isEmpty() throws -> Bool - - func len(network: Network) throws -> UInt16 - + func len(network: Network) throws -> UInt16 } open class WalletsTable: - WalletsTableProtocol { + WalletsTableProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -9987,7 +9055,7 @@ open class WalletsTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9996,71 +9064,63 @@ open class WalletsTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_walletstable(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_walletstable(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_walletstable(pointer, $0) } } - + open func all() throws -> [WalletMetadata] { + try FfiConverterSequenceTypeWalletMetadata.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_walletstable_all(self.uniffiClonePointer(), $0) + }) + } - -open func all()throws -> [WalletMetadata] { - return try FfiConverterSequenceTypeWalletMetadata.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_walletstable_all(self.uniffiClonePointer(),$0 - ) -}) -} - -open func isEmpty()throws -> Bool { - return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_walletstable_is_empty(self.uniffiClonePointer(),$0 - ) -}) -} - -open func len(network: Network)throws -> UInt16 { - return try FfiConverterUInt16.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_walletstable_len(self.uniffiClonePointer(), - FfiConverterTypeNetwork.lower(network),$0 - ) -}) -} - + open func isEmpty() throws -> Bool { + try FfiConverterBool.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_walletstable_is_empty(self.uniffiClonePointer(), $0) + }) + } + open func len(network: Network) throws -> UInt16 { + try FfiConverterUInt16.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_walletstable_len(self.uniffiClonePointer(), + FfiConverterTypeNetwork.lower(network), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletsTable: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WalletsTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletsTable { - return WalletsTable(unsafeFromRawPointer: pointer) + WalletsTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: WalletsTable) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletsTable { @@ -10068,7 +9128,7 @@ public struct FfiConverterTypeWalletsTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -10081,46 +9141,39 @@ public struct FfiConverterTypeWalletsTable: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletsTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletsTable { - return try FfiConverterTypeWalletsTable.lift(pointer) + try FfiConverterTypeWalletsTable.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletsTable_lower(_ value: WalletsTable) -> UnsafeMutableRawPointer { - return FfiConverterTypeWalletsTable.lower(value) + FfiConverterTypeWalletsTable.lower(value) } +public protocol WordValidatorProtocol: AnyObject { + func groupedWords() -> [[GroupedWord]] + func invalidWordsString(enteredWords: [[String]]) -> String + func isAllWordsValid(enteredWords: [[String]]) -> Bool -public protocol WordValidatorProtocol : AnyObject { - - func groupedWords() -> [[GroupedWord]] - - func invalidWordsString(enteredWords: [[String]]) -> String - - func isAllWordsValid(enteredWords: [[String]]) -> Bool - - func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool - + func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool } open class WordValidator: - WordValidatorProtocol { + WordValidatorProtocol +{ fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public struct NoPointer { public init() {} } @@ -10128,7 +9181,7 @@ open class WordValidator: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -10137,81 +9190,72 @@ open class WordValidator: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. -#if swift(>=5.8) - @_documentation(visibility: private) -#endif - public init(noPointer: NoPointer) { - self.pointer = nil + #if swift(>=5.8) + @_documentation(visibility: private) + #endif + public init(noPointer _: NoPointer) { + pointer = nil } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - return try! rustCall { uniffi_cove_fn_clone_wordvalidator(self.pointer, $0) } + try! rustCall { uniffi_cove_fn_clone_wordvalidator(self.pointer, $0) } } + // No primary constructor declared for this class. deinit { - guard let pointer = pointer else { + guard let pointer else { return } try! rustCall { uniffi_cove_fn_free_wordvalidator(pointer, $0) } } - + open func groupedWords() -> [[GroupedWord]] { + try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall { + uniffi_cove_fn_method_wordvalidator_grouped_words(self.uniffiClonePointer(), $0) + }) + } + + open func invalidWordsString(enteredWords: [[String]]) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_method_wordvalidator_invalid_words_string(self.uniffiClonePointer(), + FfiConverterSequenceSequenceString.lower(enteredWords), $0) + }) + } - -open func groupedWords() -> [[GroupedWord]] { - return try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall() { - uniffi_cove_fn_method_wordvalidator_grouped_words(self.uniffiClonePointer(),$0 - ) -}) -} - -open func invalidWordsString(enteredWords: [[String]]) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_method_wordvalidator_invalid_words_string(self.uniffiClonePointer(), - FfiConverterSequenceSequenceString.lower(enteredWords),$0 - ) -}) -} - -open func isAllWordsValid(enteredWords: [[String]]) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_wordvalidator_is_all_words_valid(self.uniffiClonePointer(), - FfiConverterSequenceSequenceString.lower(enteredWords),$0 - ) -}) -} - -open func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_method_wordvalidator_is_valid_word_group(self.uniffiClonePointer(), - FfiConverterUInt8.lower(groupNumber), - FfiConverterSequenceString.lower(enteredWords),$0 - ) -}) -} - + open func isAllWordsValid(enteredWords: [[String]]) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_wordvalidator_is_all_words_valid(self.uniffiClonePointer(), + FfiConverterSequenceSequenceString.lower(enteredWords), $0) + }) + } + open func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_method_wordvalidator_is_valid_word_group(self.uniffiClonePointer(), + FfiConverterUInt8.lower(groupNumber), + FfiConverterSequenceString.lower(enteredWords), $0) + }) + } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWordValidator: FfiConverter { - typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WordValidator public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WordValidator { - return WordValidator(unsafeFromRawPointer: pointer) + WordValidator(unsafeFromRawPointer: pointer) } public static func lower(_ value: WordValidator) -> UnsafeMutableRawPointer { - return value.uniffiClonePointer() + value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WordValidator { @@ -10219,7 +9263,7 @@ public struct FfiConverterTypeWordValidator: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if (ptr == nil) { + if ptr == nil { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -10232,24 +9276,20 @@ public struct FfiConverterTypeWordValidator: FfiConverter { } } - - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWordValidator_lift(_ pointer: UnsafeMutableRawPointer) throws -> WordValidator { - return try FfiConverterTypeWordValidator.lift(pointer) + try FfiConverterTypeWordValidator.lift(pointer) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWordValidator_lower(_ value: WordValidator) -> UnsafeMutableRawPointer { - return FfiConverterTypeWordValidator.lower(value) + FfiConverterTypeWordValidator.lower(value) } - public struct AddressIndex { public var lastSeenIndex: UInt8 public var addressListHash: UInt64 @@ -10262,10 +9302,8 @@ public struct AddressIndex { } } - - extension AddressIndex: Equatable, Hashable { - public static func ==(lhs: AddressIndex, rhs: AddressIndex) -> Bool { + public static func == (lhs: AddressIndex, rhs: AddressIndex) -> Bool { if lhs.lastSeenIndex != rhs.lastSeenIndex { return false } @@ -10281,16 +9319,14 @@ extension AddressIndex: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAddressIndex: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressIndex { - return - try AddressIndex( - lastSeenIndex: FfiConverterUInt8.read(from: &buf), - addressListHash: FfiConverterUInt64.read(from: &buf) + try AddressIndex( + lastSeenIndex: FfiConverterUInt8.read(from: &buf), + addressListHash: FfiConverterUInt64.read(from: &buf) ) } @@ -10300,22 +9336,20 @@ public struct FfiConverterTypeAddressIndex: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAddressIndex_lift(_ buf: RustBuffer) throws -> AddressIndex { - return try FfiConverterTypeAddressIndex.lift(buf) + try FfiConverterTypeAddressIndex.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAddressIndex_lower(_ value: AddressIndex) -> RustBuffer { - return FfiConverterTypeAddressIndex.lower(value) + FfiConverterTypeAddressIndex.lower(value) } - public struct AppState { public var router: Router @@ -10326,16 +9360,13 @@ public struct AppState { } } - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAppState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppState { - return - try AppState( - router: FfiConverterTypeRouter.read(from: &buf) + try AppState( + router: FfiConverterTypeRouter.read(from: &buf) ) } @@ -10344,22 +9375,20 @@ public struct FfiConverterTypeAppState: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAppState_lift(_ buf: RustBuffer) throws -> AppState { - return try FfiConverterTypeAppState.lift(buf) + try FfiConverterTypeAppState.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAppState_lower(_ value: AppState) -> RustBuffer { - return FfiConverterTypeAppState.lower(value) + FfiConverterTypeAppState.lower(value) } - public struct Balance { public var immature: Amount public var trustedPending: Amount @@ -10376,19 +9405,16 @@ public struct Balance { } } - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBalance: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Balance { - return - try Balance( - immature: FfiConverterTypeAmount.read(from: &buf), - trustedPending: FfiConverterTypeAmount.read(from: &buf), - untrustedPending: FfiConverterTypeAmount.read(from: &buf), - confirmed: FfiConverterTypeAmount.read(from: &buf) + try Balance( + immature: FfiConverterTypeAmount.read(from: &buf), + trustedPending: FfiConverterTypeAmount.read(from: &buf), + untrustedPending: FfiConverterTypeAmount.read(from: &buf), + confirmed: FfiConverterTypeAmount.read(from: &buf) ) } @@ -10400,22 +9426,20 @@ public struct FfiConverterTypeBalance: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBalance_lift(_ buf: RustBuffer) throws -> Balance { - return try FfiConverterTypeBalance.lift(buf) + try FfiConverterTypeBalance.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBalance_lower(_ value: Balance) -> RustBuffer { - return FfiConverterTypeBalance.lower(value) + FfiConverterTypeBalance.lower(value) } - public struct BlockSizeLast { public var blockHeight: UInt64 public var lastSeen: TimeInterval @@ -10428,10 +9452,8 @@ public struct BlockSizeLast { } } - - extension BlockSizeLast: Equatable, Hashable { - public static func ==(lhs: BlockSizeLast, rhs: BlockSizeLast) -> Bool { + public static func == (lhs: BlockSizeLast, rhs: BlockSizeLast) -> Bool { if lhs.blockHeight != rhs.blockHeight { return false } @@ -10447,16 +9469,14 @@ extension BlockSizeLast: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBlockSizeLast: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BlockSizeLast { - return - try BlockSizeLast( - blockHeight: FfiConverterUInt64.read(from: &buf), - lastSeen: FfiConverterDuration.read(from: &buf) + try BlockSizeLast( + blockHeight: FfiConverterUInt64.read(from: &buf), + lastSeen: FfiConverterDuration.read(from: &buf) ) } @@ -10466,22 +9486,20 @@ public struct FfiConverterTypeBlockSizeLast: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBlockSizeLast_lift(_ buf: RustBuffer) throws -> BlockSizeLast { - return try FfiConverterTypeBlockSizeLast.lift(buf) + try FfiConverterTypeBlockSizeLast.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeBlockSizeLast_lower(_ value: BlockSizeLast) -> RustBuffer { - return FfiConverterTypeBlockSizeLast.lower(value) + FfiConverterTypeBlockSizeLast.lower(value) } - public struct ConfirmedDetails { public var blockNumber: UInt32 public var confirmationTime: UInt64 @@ -10494,10 +9512,8 @@ public struct ConfirmedDetails { } } - - extension ConfirmedDetails: Equatable, Hashable { - public static func ==(lhs: ConfirmedDetails, rhs: ConfirmedDetails) -> Bool { + public static func == (lhs: ConfirmedDetails, rhs: ConfirmedDetails) -> Bool { if lhs.blockNumber != rhs.blockNumber { return false } @@ -10513,16 +9529,14 @@ extension ConfirmedDetails: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmedDetails: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmedDetails { - return - try ConfirmedDetails( - blockNumber: FfiConverterUInt32.read(from: &buf), - confirmationTime: FfiConverterUInt64.read(from: &buf) + try ConfirmedDetails( + blockNumber: FfiConverterUInt32.read(from: &buf), + confirmationTime: FfiConverterUInt64.read(from: &buf) ) } @@ -10532,22 +9546,20 @@ public struct FfiConverterTypeConfirmedDetails: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedDetails_lift(_ buf: RustBuffer) throws -> ConfirmedDetails { - return try FfiConverterTypeConfirmedDetails.lift(buf) + try FfiConverterTypeConfirmedDetails.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedDetails_lower(_ value: ConfirmedDetails) -> RustBuffer { - return FfiConverterTypeConfirmedDetails.lower(value) + FfiConverterTypeConfirmedDetails.lower(value) } - public struct FeeResponse { public var fastestFee: UInt64 public var halfHourFee: UInt64 @@ -10566,10 +9578,8 @@ public struct FeeResponse { } } - - extension FeeResponse: Equatable, Hashable { - public static func ==(lhs: FeeResponse, rhs: FeeResponse) -> Bool { + public static func == (lhs: FeeResponse, rhs: FeeResponse) -> Bool { if lhs.fastestFee != rhs.fastestFee { return false } @@ -10597,19 +9607,17 @@ extension FeeResponse: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFeeResponse: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeResponse { - return - try FeeResponse( - fastestFee: FfiConverterUInt64.read(from: &buf), - halfHourFee: FfiConverterUInt64.read(from: &buf), - hourFee: FfiConverterUInt64.read(from: &buf), - economyFee: FfiConverterUInt64.read(from: &buf), - minimumFee: FfiConverterUInt64.read(from: &buf) + try FeeResponse( + fastestFee: FfiConverterUInt64.read(from: &buf), + halfHourFee: FfiConverterUInt64.read(from: &buf), + hourFee: FfiConverterUInt64.read(from: &buf), + economyFee: FfiConverterUInt64.read(from: &buf), + minimumFee: FfiConverterUInt64.read(from: &buf) ) } @@ -10622,22 +9630,20 @@ public struct FfiConverterTypeFeeResponse: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeResponse_lift(_ buf: RustBuffer) throws -> FeeResponse { - return try FfiConverterTypeFeeResponse.lift(buf) + try FfiConverterTypeFeeResponse.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeResponse_lower(_ value: FeeResponse) -> RustBuffer { - return FfiConverterTypeFeeResponse.lower(value) + FfiConverterTypeFeeResponse.lower(value) } - public struct FiatAmount { public var amount: Double public var currency: FiatCurrency @@ -10650,10 +9656,8 @@ public struct FiatAmount { } } - - extension FiatAmount: Equatable, Hashable { - public static func ==(lhs: FiatAmount, rhs: FiatAmount) -> Bool { + public static func == (lhs: FiatAmount, rhs: FiatAmount) -> Bool { if lhs.amount != rhs.amount { return false } @@ -10669,16 +9673,14 @@ extension FiatAmount: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFiatAmount: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatAmount { - return - try FiatAmount( - amount: FfiConverterDouble.read(from: &buf), - currency: FfiConverterTypeFiatCurrency.read(from: &buf) + try FiatAmount( + amount: FfiConverterDouble.read(from: &buf), + currency: FfiConverterTypeFiatCurrency.read(from: &buf) ) } @@ -10688,22 +9690,20 @@ public struct FfiConverterTypeFiatAmount: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFiatAmount_lift(_ buf: RustBuffer) throws -> FiatAmount { - return try FfiConverterTypeFiatAmount.lift(buf) + try FfiConverterTypeFiatAmount.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFiatAmount_lower(_ value: FiatAmount) -> RustBuffer { - return FfiConverterTypeFiatAmount.lower(value) + FfiConverterTypeFiatAmount.lower(value) } - public struct FoundAddress { public var type: WalletAddressType public var firstAddress: String @@ -10716,10 +9716,8 @@ public struct FoundAddress { } } - - extension FoundAddress: Equatable, Hashable { - public static func ==(lhs: FoundAddress, rhs: FoundAddress) -> Bool { + public static func == (lhs: FoundAddress, rhs: FoundAddress) -> Bool { if lhs.type != rhs.type { return false } @@ -10735,16 +9733,14 @@ extension FoundAddress: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFoundAddress: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FoundAddress { - return - try FoundAddress( - type: FfiConverterTypeWalletAddressType.read(from: &buf), - firstAddress: FfiConverterString.read(from: &buf) + try FoundAddress( + type: FfiConverterTypeWalletAddressType.read(from: &buf), + firstAddress: FfiConverterString.read(from: &buf) ) } @@ -10754,22 +9750,20 @@ public struct FfiConverterTypeFoundAddress: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFoundAddress_lift(_ buf: RustBuffer) throws -> FoundAddress { - return try FfiConverterTypeFoundAddress.lift(buf) + try FfiConverterTypeFoundAddress.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFoundAddress_lower(_ value: FoundAddress) -> RustBuffer { - return FfiConverterTypeFoundAddress.lower(value) + FfiConverterTypeFoundAddress.lower(value) } - public struct GroupedWord { public var number: UInt8 public var word: String @@ -10782,10 +9776,8 @@ public struct GroupedWord { } } - - extension GroupedWord: Equatable, Hashable { - public static func ==(lhs: GroupedWord, rhs: GroupedWord) -> Bool { + public static func == (lhs: GroupedWord, rhs: GroupedWord) -> Bool { if lhs.number != rhs.number { return false } @@ -10801,16 +9793,14 @@ extension GroupedWord: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeGroupedWord: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GroupedWord { - return - try GroupedWord( - number: FfiConverterUInt8.read(from: &buf), - word: FfiConverterString.read(from: &buf) + try GroupedWord( + number: FfiConverterUInt8.read(from: &buf), + word: FfiConverterString.read(from: &buf) ) } @@ -10820,71 +9810,59 @@ public struct FfiConverterTypeGroupedWord: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGroupedWord_lift(_ buf: RustBuffer) throws -> GroupedWord { - return try FfiConverterTypeGroupedWord.lift(buf) + try FfiConverterTypeGroupedWord.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGroupedWord_lower(_ value: GroupedWord) -> RustBuffer { - return FfiConverterTypeGroupedWord.lower(value) + FfiConverterTypeGroupedWord.lower(value) } - public struct ImportWalletViewModelState { - // Default memberwise initializers are never public by default, so we // declare one manually. - public init() { - } + public init() {} } - - extension ImportWalletViewModelState: Equatable, Hashable { - public static func ==(lhs: ImportWalletViewModelState, rhs: ImportWalletViewModelState) -> Bool { - return true + public static func == (_: ImportWalletViewModelState, _: ImportWalletViewModelState) -> Bool { + true } - public func hash(into hasher: inout Hasher) { - } + public func hash(into _: inout Hasher) {} } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletViewModelState: FfiConverterRustBuffer { - public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelState { - return - ImportWalletViewModelState() + public static func read(from _: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelState { + ImportWalletViewModelState() } - public static func write(_ value: ImportWalletViewModelState, into buf: inout [UInt8]) { - } + public static func write(_: ImportWalletViewModelState, into _: inout [UInt8]) {} } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelState_lift(_ buf: RustBuffer) throws -> ImportWalletViewModelState { - return try FfiConverterTypeImportWalletViewModelState.lift(buf) + try FfiConverterTypeImportWalletViewModelState.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelState_lower(_ value: ImportWalletViewModelState) -> RustBuffer { - return FfiConverterTypeImportWalletViewModelState.lower(value) + FfiConverterTypeImportWalletViewModelState.lower(value) } - public struct InternalOnlyMetadata { public var addressIndex: AddressIndex? public var lastScanFinished: TimeInterval? @@ -10899,10 +9877,8 @@ public struct InternalOnlyMetadata { } } - - extension InternalOnlyMetadata: Equatable, Hashable { - public static func ==(lhs: InternalOnlyMetadata, rhs: InternalOnlyMetadata) -> Bool { + public static func == (lhs: InternalOnlyMetadata, rhs: InternalOnlyMetadata) -> Bool { if lhs.addressIndex != rhs.addressIndex { return false } @@ -10922,17 +9898,15 @@ extension InternalOnlyMetadata: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeInternalOnlyMetadata: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> InternalOnlyMetadata { - return - try InternalOnlyMetadata( - addressIndex: FfiConverterOptionTypeAddressIndex.read(from: &buf), - lastScanFinished: FfiConverterOptionDuration.read(from: &buf), - lastHeightFetched: FfiConverterOptionTypeBlockSizeLast.read(from: &buf) + try InternalOnlyMetadata( + addressIndex: FfiConverterOptionTypeAddressIndex.read(from: &buf), + lastScanFinished: FfiConverterOptionDuration.read(from: &buf), + lastHeightFetched: FfiConverterOptionTypeBlockSizeLast.read(from: &buf) ) } @@ -10943,22 +9917,20 @@ public struct FfiConverterTypeInternalOnlyMetadata: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeInternalOnlyMetadata_lift(_ buf: RustBuffer) throws -> InternalOnlyMetadata { - return try FfiConverterTypeInternalOnlyMetadata.lift(buf) + try FfiConverterTypeInternalOnlyMetadata.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeInternalOnlyMetadata_lower(_ value: InternalOnlyMetadata) -> RustBuffer { - return FfiConverterTypeInternalOnlyMetadata.lower(value) + FfiConverterTypeInternalOnlyMetadata.lower(value) } - public struct MessageInfo { /** * The payload length of the message, including the header info @@ -10975,20 +9947,19 @@ public struct MessageInfo { public init( /** * The payload length of the message, including the header info - */fullMessageLength: UInt16, + */ fullMessageLength: UInt16, /** - * The payload length of the message, reported in the info header - * This is the length of the payload, without the header info - */payloadLength: UInt16) { + * The payload length of the message, reported in the info header + * This is the length of the payload, without the header info + */ payloadLength: UInt16 + ) { self.fullMessageLength = fullMessageLength self.payloadLength = payloadLength } } - - extension MessageInfo: Equatable, Hashable { - public static func ==(lhs: MessageInfo, rhs: MessageInfo) -> Bool { + public static func == (lhs: MessageInfo, rhs: MessageInfo) -> Bool { if lhs.fullMessageLength != rhs.fullMessageLength { return false } @@ -11004,16 +9975,14 @@ extension MessageInfo: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeMessageInfo: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MessageInfo { - return - try MessageInfo( - fullMessageLength: FfiConverterUInt16.read(from: &buf), - payloadLength: FfiConverterUInt16.read(from: &buf) + try MessageInfo( + fullMessageLength: FfiConverterUInt16.read(from: &buf), + payloadLength: FfiConverterUInt16.read(from: &buf) ) } @@ -11023,22 +9992,20 @@ public struct FfiConverterTypeMessageInfo: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMessageInfo_lift(_ buf: RustBuffer) throws -> MessageInfo { - return try FfiConverterTypeMessageInfo.lift(buf) + try FfiConverterTypeMessageInfo.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMessageInfo_lower(_ value: MessageInfo) -> RustBuffer { - return FfiConverterTypeMessageInfo.lower(value) + FfiConverterTypeMessageInfo.lower(value) } - public struct NdefHeader { public var messageBegin: Bool public var messageEnd: Bool @@ -11065,10 +10032,8 @@ public struct NdefHeader { } } - - extension NdefHeader: Equatable, Hashable { - public static func ==(lhs: NdefHeader, rhs: NdefHeader) -> Bool { + public static func == (lhs: NdefHeader, rhs: NdefHeader) -> Bool { if lhs.messageBegin != rhs.messageBegin { return false } @@ -11112,23 +10077,21 @@ extension NdefHeader: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNdefHeader: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefHeader { - return - try NdefHeader( - messageBegin: FfiConverterBool.read(from: &buf), - messageEnd: FfiConverterBool.read(from: &buf), - chunked: FfiConverterBool.read(from: &buf), - shortRecord: FfiConverterBool.read(from: &buf), - hasIdLength: FfiConverterBool.read(from: &buf), - typeNameFormat: FfiConverterTypeNdefType.read(from: &buf), - typeLength: FfiConverterUInt8.read(from: &buf), - payloadLength: FfiConverterUInt32.read(from: &buf), - idLength: FfiConverterOptionUInt8.read(from: &buf) + try NdefHeader( + messageBegin: FfiConverterBool.read(from: &buf), + messageEnd: FfiConverterBool.read(from: &buf), + chunked: FfiConverterBool.read(from: &buf), + shortRecord: FfiConverterBool.read(from: &buf), + hasIdLength: FfiConverterBool.read(from: &buf), + typeNameFormat: FfiConverterTypeNdefType.read(from: &buf), + typeLength: FfiConverterUInt8.read(from: &buf), + payloadLength: FfiConverterUInt32.read(from: &buf), + idLength: FfiConverterOptionUInt8.read(from: &buf) ) } @@ -11145,22 +10108,20 @@ public struct FfiConverterTypeNdefHeader: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefHeader_lift(_ buf: RustBuffer) throws -> NdefHeader { - return try FfiConverterTypeNdefHeader.lift(buf) + try FfiConverterTypeNdefHeader.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefHeader_lower(_ value: NdefHeader) -> RustBuffer { - return FfiConverterTypeNdefHeader.lower(value) + FfiConverterTypeNdefHeader.lower(value) } - public struct NdefRecord { public var header: NdefHeader public var type: Data @@ -11177,10 +10138,8 @@ public struct NdefRecord { } } - - extension NdefRecord: Equatable, Hashable { - public static func ==(lhs: NdefRecord, rhs: NdefRecord) -> Bool { + public static func == (lhs: NdefRecord, rhs: NdefRecord) -> Bool { if lhs.header != rhs.header { return false } @@ -11204,18 +10163,16 @@ extension NdefRecord: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNdefRecord: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefRecord { - return - try NdefRecord( - header: FfiConverterTypeNdefHeader.read(from: &buf), - type: FfiConverterData.read(from: &buf), - id: FfiConverterOptionData.read(from: &buf), - payload: FfiConverterTypeNdefPayload.read(from: &buf) + try NdefRecord( + header: FfiConverterTypeNdefHeader.read(from: &buf), + type: FfiConverterData.read(from: &buf), + id: FfiConverterOptionData.read(from: &buf), + payload: FfiConverterTypeNdefPayload.read(from: &buf) ) } @@ -11227,22 +10184,20 @@ public struct FfiConverterTypeNdefRecord: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecord_lift(_ buf: RustBuffer) throws -> NdefRecord { - return try FfiConverterTypeNdefRecord.lift(buf) + try FfiConverterTypeNdefRecord.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecord_lower(_ value: NdefRecord) -> RustBuffer { - return FfiConverterTypeNdefRecord.lower(value) + FfiConverterTypeNdefRecord.lower(value) } - public struct Node { public var name: String public var network: Network @@ -11259,10 +10214,8 @@ public struct Node { } } - - extension Node: Equatable, Hashable { - public static func ==(lhs: Node, rhs: Node) -> Bool { + public static func == (lhs: Node, rhs: Node) -> Bool { if lhs.name != rhs.name { return false } @@ -11286,18 +10239,16 @@ extension Node: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNode: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Node { - return - try Node( - name: FfiConverterString.read(from: &buf), - network: FfiConverterTypeNetwork.read(from: &buf), - apiType: FfiConverterTypeApiType.read(from: &buf), - url: FfiConverterString.read(from: &buf) + try Node( + name: FfiConverterString.read(from: &buf), + network: FfiConverterTypeNetwork.read(from: &buf), + apiType: FfiConverterTypeApiType.read(from: &buf), + url: FfiConverterString.read(from: &buf) ) } @@ -11309,22 +10260,20 @@ public struct FfiConverterTypeNode: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNode_lift(_ buf: RustBuffer) throws -> Node { - return try FfiConverterTypeNode.lift(buf) + try FfiConverterTypeNode.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNode_lower(_ value: Node) -> RustBuffer { - return FfiConverterTypeNode.lower(value) + FfiConverterTypeNode.lower(value) } - public struct ParsingContext { public var messageInfo: MessageInfo public var needed: UInt16 @@ -11339,10 +10288,8 @@ public struct ParsingContext { } } - - extension ParsingContext: Equatable, Hashable { - public static func ==(lhs: ParsingContext, rhs: ParsingContext) -> Bool { + public static func == (lhs: ParsingContext, rhs: ParsingContext) -> Bool { if lhs.messageInfo != rhs.messageInfo { return false } @@ -11362,17 +10309,15 @@ extension ParsingContext: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeParsingContext: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParsingContext { - return - try ParsingContext( - messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), - needed: FfiConverterUInt16.read(from: &buf), - firstBlockHash: FfiConverterOptionString.read(from: &buf) + try ParsingContext( + messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), + needed: FfiConverterUInt16.read(from: &buf), + firstBlockHash: FfiConverterOptionString.read(from: &buf) ) } @@ -11383,22 +10328,20 @@ public struct FfiConverterTypeParsingContext: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeParsingContext_lift(_ buf: RustBuffer) throws -> ParsingContext { - return try FfiConverterTypeParsingContext.lift(buf) + try FfiConverterTypeParsingContext.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeParsingContext_lower(_ value: ParsingContext) -> RustBuffer { - return FfiConverterTypeParsingContext.lower(value) + FfiConverterTypeParsingContext.lower(value) } - public struct ParsingMessage { public var messageInfo: MessageInfo public var leftOverBytes: Data @@ -11411,10 +10354,8 @@ public struct ParsingMessage { } } - - extension ParsingMessage: Equatable, Hashable { - public static func ==(lhs: ParsingMessage, rhs: ParsingMessage) -> Bool { + public static func == (lhs: ParsingMessage, rhs: ParsingMessage) -> Bool { if lhs.messageInfo != rhs.messageInfo { return false } @@ -11430,16 +10371,14 @@ extension ParsingMessage: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeParsingMessage: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParsingMessage { - return - try ParsingMessage( - messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), - leftOverBytes: FfiConverterData.read(from: &buf) + try ParsingMessage( + messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), + leftOverBytes: FfiConverterData.read(from: &buf) ) } @@ -11449,22 +10388,20 @@ public struct FfiConverterTypeParsingMessage: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeParsingMessage_lift(_ buf: RustBuffer) throws -> ParsingMessage { - return try FfiConverterTypeParsingMessage.lift(buf) + try FfiConverterTypeParsingMessage.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeParsingMessage_lower(_ value: ParsingMessage) -> RustBuffer { - return FfiConverterTypeParsingMessage.lower(value) + FfiConverterTypeParsingMessage.lower(value) } - public struct PendingDetails { public var lastSeen: UInt64 @@ -11475,10 +10412,8 @@ public struct PendingDetails { } } - - extension PendingDetails: Equatable, Hashable { - public static func ==(lhs: PendingDetails, rhs: PendingDetails) -> Bool { + public static func == (lhs: PendingDetails, rhs: PendingDetails) -> Bool { if lhs.lastSeen != rhs.lastSeen { return false } @@ -11490,15 +10425,13 @@ extension PendingDetails: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePendingDetails: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingDetails { - return - try PendingDetails( - lastSeen: FfiConverterUInt64.read(from: &buf) + try PendingDetails( + lastSeen: FfiConverterUInt64.read(from: &buf) ) } @@ -11507,22 +10440,20 @@ public struct FfiConverterTypePendingDetails: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingDetails_lift(_ buf: RustBuffer) throws -> PendingDetails { - return try FfiConverterTypePendingDetails.lift(buf) + try FfiConverterTypePendingDetails.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingDetails_lower(_ value: PendingDetails) -> RustBuffer { - return FfiConverterTypePendingDetails.lower(value) + FfiConverterTypePendingDetails.lower(value) } - public struct PendingWalletViewModelState { public var numberOfWords: NumberOfBip39Words public var wallet: PendingWallet @@ -11535,17 +10466,14 @@ public struct PendingWalletViewModelState { } } - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelState { - return - try PendingWalletViewModelState( - numberOfWords: FfiConverterTypeNumberOfBip39Words.read(from: &buf), - wallet: FfiConverterTypePendingWallet.read(from: &buf) + try PendingWalletViewModelState( + numberOfWords: FfiConverterTypeNumberOfBip39Words.read(from: &buf), + wallet: FfiConverterTypePendingWallet.read(from: &buf) ) } @@ -11555,22 +10483,20 @@ public struct FfiConverterTypePendingWalletViewModelState: FfiConverterRustBuffe } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelState_lift(_ buf: RustBuffer) throws -> PendingWalletViewModelState { - return try FfiConverterTypePendingWalletViewModelState.lift(buf) + try FfiConverterTypePendingWalletViewModelState.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelState_lower(_ value: PendingWalletViewModelState) -> RustBuffer { - return FfiConverterTypePendingWalletViewModelState.lower(value) + FfiConverterTypePendingWalletViewModelState.lower(value) } - public struct PriceResponse { public var time: UInt64 public var usd: UInt64 @@ -11595,10 +10521,8 @@ public struct PriceResponse { } } - - extension PriceResponse: Equatable, Hashable { - public static func ==(lhs: PriceResponse, rhs: PriceResponse) -> Bool { + public static func == (lhs: PriceResponse, rhs: PriceResponse) -> Bool { if lhs.time != rhs.time { return false } @@ -11638,22 +10562,20 @@ extension PriceResponse: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePriceResponse: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PriceResponse { - return - try PriceResponse( - time: FfiConverterUInt64.read(from: &buf), - usd: FfiConverterUInt64.read(from: &buf), - eur: FfiConverterUInt64.read(from: &buf), - gbp: FfiConverterUInt64.read(from: &buf), - cad: FfiConverterUInt64.read(from: &buf), - chf: FfiConverterUInt64.read(from: &buf), - aud: FfiConverterUInt64.read(from: &buf), - jpy: FfiConverterUInt64.read(from: &buf) + try PriceResponse( + time: FfiConverterUInt64.read(from: &buf), + usd: FfiConverterUInt64.read(from: &buf), + eur: FfiConverterUInt64.read(from: &buf), + gbp: FfiConverterUInt64.read(from: &buf), + cad: FfiConverterUInt64.read(from: &buf), + chf: FfiConverterUInt64.read(from: &buf), + aud: FfiConverterUInt64.read(from: &buf), + jpy: FfiConverterUInt64.read(from: &buf) ) } @@ -11669,22 +10591,20 @@ public struct FfiConverterTypePriceResponse: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePriceResponse_lift(_ buf: RustBuffer) throws -> PriceResponse { - return try FfiConverterTypePriceResponse.lift(buf) + try FfiConverterTypePriceResponse.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePriceResponse_lower(_ value: PriceResponse) -> RustBuffer { - return FfiConverterTypePriceResponse.lower(value) + FfiConverterTypePriceResponse.lower(value) } - public struct Rgb { public var r: UInt8 public var g: UInt8 @@ -11699,10 +10619,8 @@ public struct Rgb { } } - - extension Rgb: Equatable, Hashable { - public static func ==(lhs: Rgb, rhs: Rgb) -> Bool { + public static func == (lhs: Rgb, rhs: Rgb) -> Bool { if lhs.r != rhs.r { return false } @@ -11722,17 +10640,15 @@ extension Rgb: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeRgb: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Rgb { - return - try Rgb( - r: FfiConverterUInt8.read(from: &buf), - g: FfiConverterUInt8.read(from: &buf), - b: FfiConverterUInt8.read(from: &buf) + try Rgb( + r: FfiConverterUInt8.read(from: &buf), + g: FfiConverterUInt8.read(from: &buf), + b: FfiConverterUInt8.read(from: &buf) ) } @@ -11743,22 +10659,20 @@ public struct FfiConverterTypeRgb: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRgb_lift(_ buf: RustBuffer) throws -> Rgb { - return try FfiConverterTypeRgb.lift(buf) + try FfiConverterTypeRgb.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRgb_lower(_ value: Rgb) -> RustBuffer { - return FfiConverterTypeRgb.lower(value) + FfiConverterTypeRgb.lower(value) } - public struct Router { public var app: FfiApp public var `default`: Route @@ -11766,51 +10680,46 @@ public struct Router { // Default memberwise initializers are never public by default, so we // declare one manually. - public init(app: FfiApp, `default`: Route, routes: [Route]) { + public init(app: FfiApp, default: Route, routes: [Route]) { self.app = app - self.`default` = `default` + self.default = `default` self.routes = routes } } - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeRouter: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Router { - return - try Router( - app: FfiConverterTypeFfiApp.read(from: &buf), - default: FfiConverterTypeRoute.read(from: &buf), - routes: FfiConverterSequenceTypeRoute.read(from: &buf) + try Router( + app: FfiConverterTypeFfiApp.read(from: &buf), + default: FfiConverterTypeRoute.read(from: &buf), + routes: FfiConverterSequenceTypeRoute.read(from: &buf) ) } public static func write(_ value: Router, into buf: inout [UInt8]) { FfiConverterTypeFfiApp.write(value.app, into: &buf) - FfiConverterTypeRoute.write(value.`default`, into: &buf) + FfiConverterTypeRoute.write(value.default, into: &buf) FfiConverterSequenceTypeRoute.write(value.routes, into: &buf) } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRouter_lift(_ buf: RustBuffer) throws -> Router { - return try FfiConverterTypeRouter.lift(buf) + try FfiConverterTypeRouter.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRouter_lower(_ value: Router) -> RustBuffer { - return FfiConverterTypeRouter.lower(value) + FfiConverterTypeRouter.lower(value) } - public struct ScanningInfo { public var addressType: WalletAddressType public var count: UInt32 @@ -11823,10 +10732,8 @@ public struct ScanningInfo { } } - - extension ScanningInfo: Equatable, Hashable { - public static func ==(lhs: ScanningInfo, rhs: ScanningInfo) -> Bool { + public static func == (lhs: ScanningInfo, rhs: ScanningInfo) -> Bool { if lhs.addressType != rhs.addressType { return false } @@ -11842,16 +10749,14 @@ extension ScanningInfo: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeScanningInfo: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ScanningInfo { - return - try ScanningInfo( - addressType: FfiConverterTypeWalletAddressType.read(from: &buf), - count: FfiConverterUInt32.read(from: &buf) + try ScanningInfo( + addressType: FfiConverterTypeWalletAddressType.read(from: &buf), + count: FfiConverterUInt32.read(from: &buf) ) } @@ -11861,22 +10766,20 @@ public struct FfiConverterTypeScanningInfo: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeScanningInfo_lift(_ buf: RustBuffer) throws -> ScanningInfo { - return try FfiConverterTypeScanningInfo.lift(buf) + try FfiConverterTypeScanningInfo.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeScanningInfo_lower(_ value: ScanningInfo) -> RustBuffer { - return FfiConverterTypeScanningInfo.lower(value) + FfiConverterTypeScanningInfo.lower(value) } - public struct TextPayload { public var format: TextPayloadFormat public var language: String @@ -11891,10 +10794,8 @@ public struct TextPayload { } } - - extension TextPayload: Equatable, Hashable { - public static func ==(lhs: TextPayload, rhs: TextPayload) -> Bool { + public static func == (lhs: TextPayload, rhs: TextPayload) -> Bool { if lhs.format != rhs.format { return false } @@ -11914,17 +10815,15 @@ extension TextPayload: Equatable, Hashable { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTextPayload: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TextPayload { - return - try TextPayload( - format: FfiConverterTypeTextPayloadFormat.read(from: &buf), - language: FfiConverterString.read(from: &buf), - text: FfiConverterString.read(from: &buf) + try TextPayload( + format: FfiConverterTypeTextPayloadFormat.read(from: &buf), + language: FfiConverterString.read(from: &buf), + text: FfiConverterString.read(from: &buf) ) } @@ -11935,22 +10834,20 @@ public struct FfiConverterTypeTextPayload: FfiConverterRustBuffer { } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTextPayload_lift(_ buf: RustBuffer) throws -> TextPayload { - return try FfiConverterTypeTextPayload.lift(buf) + try FfiConverterTypeTextPayload.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTextPayload_lower(_ value: TextPayload) -> RustBuffer { - return FfiConverterTypeTextPayload.lower(value) + FfiConverterTypeTextPayload.lower(value) } - public struct WalletMetadata { public var id: WalletId public var name: String @@ -11971,7 +10868,7 @@ public struct WalletMetadata { // Default memberwise initializers are never public by default, so we // declare one manually. - public init(id: WalletId, name: String, color: WalletColor, verified: Bool, network: Network, performedFullScan: Bool, masterFingerprint: Fingerprint?, selectedUnit: Unit, selectedFiatCurrency: FiatCurrency, sensitiveVisible: Bool, detailsExpanded: Bool, walletType: WalletType, discoveryState: DiscoveryState, addressType: WalletAddressType, fiatOrBtc: FiatOrBtc, `internal`: InternalOnlyMetadata) { + public init(id: WalletId, name: String, color: WalletColor, verified: Bool, network: Network, performedFullScan: Bool, masterFingerprint: Fingerprint?, selectedUnit: Unit, selectedFiatCurrency: FiatCurrency, sensitiveVisible: Bool, detailsExpanded: Bool, walletType: WalletType, discoveryState: DiscoveryState, addressType: WalletAddressType, fiatOrBtc: FiatOrBtc, internal: InternalOnlyMetadata) { self.id = id self.name = name self.color = color @@ -11987,35 +10884,32 @@ public struct WalletMetadata { self.discoveryState = discoveryState self.addressType = addressType self.fiatOrBtc = fiatOrBtc - self.`internal` = `internal` + self.internal = `internal` } } - - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletMetadata: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletMetadata { - return - try WalletMetadata( - id: FfiConverterTypeWalletId.read(from: &buf), - name: FfiConverterString.read(from: &buf), - color: FfiConverterTypeWalletColor.read(from: &buf), - verified: FfiConverterBool.read(from: &buf), - network: FfiConverterTypeNetwork.read(from: &buf), - performedFullScan: FfiConverterBool.read(from: &buf), - masterFingerprint: FfiConverterOptionTypeFingerprint.read(from: &buf), - selectedUnit: FfiConverterTypeUnit.read(from: &buf), - selectedFiatCurrency: FfiConverterTypeFiatCurrency.read(from: &buf), - sensitiveVisible: FfiConverterBool.read(from: &buf), - detailsExpanded: FfiConverterBool.read(from: &buf), - walletType: FfiConverterTypeWalletType.read(from: &buf), - discoveryState: FfiConverterTypeDiscoveryState.read(from: &buf), - addressType: FfiConverterTypeWalletAddressType.read(from: &buf), - fiatOrBtc: FfiConverterTypeFiatOrBtc.read(from: &buf), - internal: FfiConverterTypeInternalOnlyMetadata.read(from: &buf) + try WalletMetadata( + id: FfiConverterTypeWalletId.read(from: &buf), + name: FfiConverterString.read(from: &buf), + color: FfiConverterTypeWalletColor.read(from: &buf), + verified: FfiConverterBool.read(from: &buf), + network: FfiConverterTypeNetwork.read(from: &buf), + performedFullScan: FfiConverterBool.read(from: &buf), + masterFingerprint: FfiConverterOptionTypeFingerprint.read(from: &buf), + selectedUnit: FfiConverterTypeUnit.read(from: &buf), + selectedFiatCurrency: FfiConverterTypeFiatCurrency.read(from: &buf), + sensitiveVisible: FfiConverterBool.read(from: &buf), + detailsExpanded: FfiConverterBool.read(from: &buf), + walletType: FfiConverterTypeWalletType.read(from: &buf), + discoveryState: FfiConverterTypeDiscoveryState.read(from: &buf), + addressType: FfiConverterTypeWalletAddressType.read(from: &buf), + fiatOrBtc: FfiConverterTypeFiatOrBtc.read(from: &buf), + internal: FfiConverterTypeInternalOnlyMetadata.read(from: &buf) ) } @@ -12035,30 +10929,25 @@ public struct FfiConverterTypeWalletMetadata: FfiConverterRustBuffer { FfiConverterTypeDiscoveryState.write(value.discoveryState, into: &buf) FfiConverterTypeWalletAddressType.write(value.addressType, into: &buf) FfiConverterTypeFiatOrBtc.write(value.fiatOrBtc, into: &buf) - FfiConverterTypeInternalOnlyMetadata.write(value.`internal`, into: &buf) + FfiConverterTypeInternalOnlyMetadata.write(value.internal, into: &buf) } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletMetadata_lift(_ buf: RustBuffer) throws -> WalletMetadata { - return try FfiConverterTypeWalletMetadata.lift(buf) + try FfiConverterTypeWalletMetadata.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletMetadata_lower(_ value: WalletMetadata) -> RustBuffer { - return FfiConverterTypeWalletMetadata.lower(value) + FfiConverterTypeWalletMetadata.lower(value) } - public enum AddressError { - - - case NoOutputs case ScriptError(String ) @@ -12069,9 +10958,8 @@ public enum AddressError { case EmptyAddress } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAddressError: FfiConverterRustBuffer { typealias SwiftType = AddressError @@ -12079,62 +10967,45 @@ public struct FfiConverterTypeAddressError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressError { let variant: Int32 = try readInt(&buf) switch variant { - - - - case 1: return .NoOutputs - case 2: return .ScriptError( - try FfiConverterString.read(from: &buf) + case 2: return try .ScriptError( + FfiConverterString.read(from: &buf) ) case 3: return .InvalidAddress case 4: return .UnsupportedNetwork - case 5: return .WrongNetwork( - current: try FfiConverterTypeNetwork.read(from: &buf) + case 5: return try .WrongNetwork( + current: FfiConverterTypeNetwork.read(from: &buf) ) case 6: return .EmptyAddress - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AddressError, into buf: inout [UInt8]) { switch value { - - - - - case .NoOutputs: writeInt(&buf, Int32(1)) - - + case let .ScriptError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case .InvalidAddress: writeInt(&buf, Int32(3)) - - + case .UnsupportedNetwork: writeInt(&buf, Int32(4)) - - + case let .WrongNetwork(current): writeInt(&buf, Int32(5)) FfiConverterTypeNetwork.write(current, into: &buf) - - + case .EmptyAddress: writeInt(&buf, Int32(6)) - } } } - extension AddressError: Equatable, Hashable {} extension AddressError: Foundation.LocalizedError { @@ -12147,15 +11018,13 @@ extension AddressError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ApiType { - case esplora case electrum case rpc } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeApiType: FfiConverterRustBuffer { typealias SwiftType = ApiType @@ -12163,62 +11032,50 @@ public struct FfiConverterTypeApiType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ApiType { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .esplora - + case 2: return .electrum - + case 3: return .rpc - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ApiType, into buf: inout [UInt8]) { switch value { - - case .esplora: writeInt(&buf, Int32(1)) - - + case .electrum: writeInt(&buf, Int32(2)) - - + case .rpc: writeInt(&buf, Int32(3)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeApiType_lift(_ buf: RustBuffer) throws -> ApiType { - return try FfiConverterTypeApiType.lift(buf) + try FfiConverterTypeApiType.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeApiType_lower(_ value: ApiType) -> RustBuffer { - return FfiConverterTypeApiType.lower(value) + FfiConverterTypeApiType.lower(value) } - - extension ApiType: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum AppAction { - case updateRoute(routes: [Route] ) case changeNetwork(network: Network @@ -12231,9 +11088,8 @@ public enum AppAction { case updateFees } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAppAction: FfiConverterRustBuffer { typealias SwiftType = AppAction @@ -12241,94 +11097,76 @@ public struct FfiConverterTypeAppAction: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppAction { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .updateRoute(routes: try FfiConverterSequenceTypeRoute.read(from: &buf) - ) - - case 2: return .changeNetwork(network: try FfiConverterTypeNetwork.read(from: &buf) - ) - - case 3: return .changeColorScheme(try FfiConverterTypeColorSchemeSelection.read(from: &buf) - ) - - case 4: return .setSelectedNode(try FfiConverterTypeNode.read(from: &buf) - ) - + case 1: return try .updateRoute(routes: FfiConverterSequenceTypeRoute.read(from: &buf) + ) + + case 2: return try .changeNetwork(network: FfiConverterTypeNetwork.read(from: &buf) + ) + + case 3: return try .changeColorScheme(FfiConverterTypeColorSchemeSelection.read(from: &buf) + ) + + case 4: return try .setSelectedNode(FfiConverterTypeNode.read(from: &buf) + ) + case 5: return .updateFiatPrices - + case 6: return .updateFees - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AppAction, into buf: inout [UInt8]) { switch value { - - case let .updateRoute(routes): writeInt(&buf, Int32(1)) FfiConverterSequenceTypeRoute.write(routes, into: &buf) - - + case let .changeNetwork(network): writeInt(&buf, Int32(2)) FfiConverterTypeNetwork.write(network, into: &buf) - - + case let .changeColorScheme(v1): writeInt(&buf, Int32(3)) FfiConverterTypeColorSchemeSelection.write(v1, into: &buf) - - + case let .setSelectedNode(v1): writeInt(&buf, Int32(4)) FfiConverterTypeNode.write(v1, into: &buf) - - + case .updateFiatPrices: writeInt(&buf, Int32(5)) - - + case .updateFees: writeInt(&buf, Int32(6)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAppAction_lift(_ buf: RustBuffer) throws -> AppAction { - return try FfiConverterTypeAppAction.lift(buf) + try FfiConverterTypeAppAction.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAppAction_lower(_ value: AppAction) -> RustBuffer { - return FfiConverterTypeAppAction.lower(value) + FfiConverterTypeAppAction.lower(value) } - - - - public enum AppError { - - - case PricesError(String ) case FeesError(String ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAppError: FfiConverterRustBuffer { typealias SwiftType = AppError @@ -12336,42 +11174,31 @@ public struct FfiConverterTypeAppError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .PricesError( - try FfiConverterString.read(from: &buf) + case 1: return try .PricesError( + FfiConverterString.read(from: &buf) ) - case 2: return .FeesError( - try FfiConverterString.read(from: &buf) + + case 2: return try .FeesError( + FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AppError, into buf: inout [UInt8]) { switch value { - - - - - case let .PricesError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .FeesError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - } } } - extension AppError: Equatable, Hashable {} extension AppError: Foundation.LocalizedError { @@ -12384,7 +11211,6 @@ extension AppError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum AppStateReconcileMessage { - case defaultRouteChanged(Route ) case routeUpdated([Route] @@ -12400,9 +11226,8 @@ public enum AppStateReconcileMessage { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeAppStateReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = AppStateReconcileMessage @@ -12410,95 +11235,77 @@ public struct FfiConverterTypeAppStateReconcileMessage: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppStateReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .defaultRouteChanged(try FfiConverterTypeRoute.read(from: &buf) - ) - - case 2: return .routeUpdated(try FfiConverterSequenceTypeRoute.read(from: &buf) - ) - + case 1: return try .defaultRouteChanged(FfiConverterTypeRoute.read(from: &buf) + ) + + case 2: return try .routeUpdated(FfiConverterSequenceTypeRoute.read(from: &buf) + ) + case 3: return .databaseUpdated - - case 4: return .colorSchemeChanged(try FfiConverterTypeColorSchemeSelection.read(from: &buf) - ) - - case 5: return .selectedNodeChanged(try FfiConverterTypeNode.read(from: &buf) - ) - - case 6: return .fiatPricesChanged(try FfiConverterTypePriceResponse.read(from: &buf) - ) - - case 7: return .feesChanged(try FfiConverterTypeFeeResponse.read(from: &buf) - ) - + + case 4: return try .colorSchemeChanged(FfiConverterTypeColorSchemeSelection.read(from: &buf) + ) + + case 5: return try .selectedNodeChanged(FfiConverterTypeNode.read(from: &buf) + ) + + case 6: return try .fiatPricesChanged(FfiConverterTypePriceResponse.read(from: &buf) + ) + + case 7: return try .feesChanged(FfiConverterTypeFeeResponse.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AppStateReconcileMessage, into buf: inout [UInt8]) { switch value { - - case let .defaultRouteChanged(v1): writeInt(&buf, Int32(1)) FfiConverterTypeRoute.write(v1, into: &buf) - - + case let .routeUpdated(v1): writeInt(&buf, Int32(2)) FfiConverterSequenceTypeRoute.write(v1, into: &buf) - - + case .databaseUpdated: writeInt(&buf, Int32(3)) - - + case let .colorSchemeChanged(v1): writeInt(&buf, Int32(4)) FfiConverterTypeColorSchemeSelection.write(v1, into: &buf) - - + case let .selectedNodeChanged(v1): writeInt(&buf, Int32(5)) FfiConverterTypeNode.write(v1, into: &buf) - - + case let .fiatPricesChanged(v1): writeInt(&buf, Int32(6)) FfiConverterTypePriceResponse.write(v1, into: &buf) - - + case let .feesChanged(v1): writeInt(&buf, Int32(7)) FfiConverterTypeFeeResponse.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAppStateReconcileMessage_lift(_ buf: RustBuffer) throws -> AppStateReconcileMessage { - return try FfiConverterTypeAppStateReconcileMessage.lift(buf) + try FfiConverterTypeAppStateReconcileMessage.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeAppStateReconcileMessage_lower(_ value: AppStateReconcileMessage) -> RustBuffer { - return FfiConverterTypeAppStateReconcileMessage.lower(value) + FfiConverterTypeAppStateReconcileMessage.lower(value) } - - - - public enum Bip39Error { - - - /** * Mnemonic has a word count that is not a multiple of 6, found {0}. */ @@ -12526,9 +11333,8 @@ public enum Bip39Error { case AmbiguousLanguages } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBip39Error: FfiConverterRustBuffer { typealias SwiftType = Bip39Error @@ -12536,60 +11342,44 @@ public struct FfiConverterTypeBip39Error: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bip39Error { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .BadWordCount( - try FfiConverterUInt32.read(from: &buf) + case 1: return try .BadWordCount( + FfiConverterUInt32.read(from: &buf) ) - case 2: return .UnknownWord( - try FfiConverterUInt32.read(from: &buf) + case 2: return try .UnknownWord( + FfiConverterUInt32.read(from: &buf) ) - case 3: return .BadEntropyBitCount( - try FfiConverterUInt32.read(from: &buf) + case 3: return try .BadEntropyBitCount( + FfiConverterUInt32.read(from: &buf) ) case 4: return .InvalidChecksum case 5: return .AmbiguousLanguages - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Bip39Error, into buf: inout [UInt8]) { switch value { - - - - - case let .BadWordCount(v1): writeInt(&buf, Int32(1)) FfiConverterUInt32.write(v1, into: &buf) - - + case let .UnknownWord(v1): writeInt(&buf, Int32(2)) FfiConverterUInt32.write(v1, into: &buf) - - + case let .BadEntropyBitCount(v1): writeInt(&buf, Int32(3)) FfiConverterUInt32.write(v1, into: &buf) - - + case .InvalidChecksum: writeInt(&buf, Int32(4)) - - + case .AmbiguousLanguages: writeInt(&buf, Int32(5)) - } } } - extension Bip39Error: Equatable, Hashable {} extension Bip39Error: Foundation.LocalizedError { @@ -12598,20 +11388,15 @@ extension Bip39Error: Foundation.LocalizedError { } } - public enum BitcoinTransactionError { - - - case HexDecodeError(String ) case ParseTransactionError(String ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeBitcoinTransactionError: FfiConverterRustBuffer { typealias SwiftType = BitcoinTransactionError @@ -12619,42 +11404,31 @@ public struct FfiConverterTypeBitcoinTransactionError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BitcoinTransactionError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .HexDecodeError( - try FfiConverterString.read(from: &buf) + case 1: return try .HexDecodeError( + FfiConverterString.read(from: &buf) ) - case 2: return .ParseTransactionError( - try FfiConverterString.read(from: &buf) + + case 2: return try .ParseTransactionError( + FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: BitcoinTransactionError, into buf: inout [UInt8]) { switch value { - - - - - case let .HexDecodeError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .ParseTransactionError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - } } } - extension BitcoinTransactionError: Equatable, Hashable {} extension BitcoinTransactionError: Foundation.LocalizedError { @@ -12667,13 +11441,11 @@ extension BitcoinTransactionError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ColdWalletRoute { - case qrCode } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeColdWalletRoute: FfiConverterRustBuffer { typealias SwiftType = ColdWalletRoute @@ -12681,58 +11453,47 @@ public struct FfiConverterTypeColdWalletRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ColdWalletRoute { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .qrCode - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ColdWalletRoute, into buf: inout [UInt8]) { switch value { - - case .qrCode: writeInt(&buf, Int32(1)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeColdWalletRoute_lift(_ buf: RustBuffer) throws -> ColdWalletRoute { - return try FfiConverterTypeColdWalletRoute.lift(buf) + try FfiConverterTypeColdWalletRoute.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeColdWalletRoute_lower(_ value: ColdWalletRoute) -> RustBuffer { - return FfiConverterTypeColdWalletRoute.lower(value) + FfiConverterTypeColdWalletRoute.lower(value) } - - -extension ColdWalletRoute: Equatable, Hashable {} - - +extension ColdWalletRoute: Equatable, Hashable {} // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ColorSchemeSelection { - case light case dark case system } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeColorSchemeSelection: FfiConverterRustBuffer { typealias SwiftType = ColorSchemeSelection @@ -12740,69 +11501,53 @@ public struct FfiConverterTypeColorSchemeSelection: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ColorSchemeSelection { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .light - + case 2: return .dark - + case 3: return .system - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ColorSchemeSelection, into buf: inout [UInt8]) { switch value { - - case .light: writeInt(&buf, Int32(1)) - - + case .dark: writeInt(&buf, Int32(2)) - - + case .system: writeInt(&buf, Int32(3)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeColorSchemeSelection_lift(_ buf: RustBuffer) throws -> ColorSchemeSelection { - return try FfiConverterTypeColorSchemeSelection.lift(buf) + try FfiConverterTypeColorSchemeSelection.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeColorSchemeSelection_lower(_ value: ColorSchemeSelection) -> RustBuffer { - return FfiConverterTypeColorSchemeSelection.lower(value) + FfiConverterTypeColorSchemeSelection.lower(value) } - - extension ColorSchemeSelection: Equatable, Hashable {} - - - public enum ConfirmDetailsError { - - - case QrCodeCreation(String ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmDetailsError: FfiConverterRustBuffer { typealias SwiftType = ConfirmDetailsError @@ -12810,34 +11555,23 @@ public struct FfiConverterTypeConfirmDetailsError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmDetailsError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .QrCodeCreation( - try FfiConverterString.read(from: &buf) + case 1: return try .QrCodeCreation( + FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ConfirmDetailsError, into buf: inout [UInt8]) { switch value { - - - - - case let .QrCodeCreation(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - } } } - extension ConfirmDetailsError: Equatable, Hashable {} extension ConfirmDetailsError: Foundation.LocalizedError { @@ -12846,11 +11580,7 @@ extension ConfirmDetailsError: Foundation.LocalizedError { } } - public enum DatabaseError { - - - case DatabaseAccess(String ) case TableAccess(String @@ -12869,9 +11599,8 @@ public enum DatabaseError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeDatabaseError: FfiConverterRustBuffer { typealias SwiftType = DatabaseError @@ -12879,90 +11608,71 @@ public struct FfiConverterTypeDatabaseError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DatabaseError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .DatabaseAccess( - try FfiConverterString.read(from: &buf) + case 1: return try .DatabaseAccess( + FfiConverterString.read(from: &buf) ) - case 2: return .TableAccess( - try FfiConverterString.read(from: &buf) + case 2: return try .TableAccess( + FfiConverterString.read(from: &buf) ) - case 3: return .Wallets( - try FfiConverterTypeWalletTableError.read(from: &buf) + case 3: return try .Wallets( + FfiConverterTypeWalletTableError.read(from: &buf) ) - case 4: return .GlobalFlag( - try FfiConverterTypeGlobalFlagTableError.read(from: &buf) + case 4: return try .GlobalFlag( + FfiConverterTypeGlobalFlagTableError.read(from: &buf) ) - case 5: return .GlobalConfig( - try FfiConverterTypeGlobalConfigTableError.read(from: &buf) + case 5: return try .GlobalConfig( + FfiConverterTypeGlobalConfigTableError.read(from: &buf) ) - case 6: return .GlobalCache( - try FfiConverterTypeGlobalCacheTableError.read(from: &buf) + case 6: return try .GlobalCache( + FfiConverterTypeGlobalCacheTableError.read(from: &buf) ) - case 7: return .UnsignedTransactions( - try FfiConverterTypeUnsignedTransactionsTableError.read(from: &buf) + case 7: return try .UnsignedTransactions( + FfiConverterTypeUnsignedTransactionsTableError.read(from: &buf) ) - case 8: return .Serialization( - try FfiConverterTypeSerdeError.read(from: &buf) + case 8: return try .Serialization( + FfiConverterTypeSerdeError.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: DatabaseError, into buf: inout [UInt8]) { switch value { - - - - - case let .DatabaseAccess(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .TableAccess(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case let .Wallets(v1): writeInt(&buf, Int32(3)) FfiConverterTypeWalletTableError.write(v1, into: &buf) - - + case let .GlobalFlag(v1): writeInt(&buf, Int32(4)) FfiConverterTypeGlobalFlagTableError.write(v1, into: &buf) - - + case let .GlobalConfig(v1): writeInt(&buf, Int32(5)) FfiConverterTypeGlobalConfigTableError.write(v1, into: &buf) - - + case let .GlobalCache(v1): writeInt(&buf, Int32(6)) FfiConverterTypeGlobalCacheTableError.write(v1, into: &buf) - - + case let .UnsignedTransactions(v1): writeInt(&buf, Int32(7)) FfiConverterTypeUnsignedTransactionsTableError.write(v1, into: &buf) - - + case let .Serialization(v1): writeInt(&buf, Int32(8)) FfiConverterTypeSerdeError.write(v1, into: &buf) - } } } - extension DatabaseError: Equatable, Hashable {} extension DatabaseError: Foundation.LocalizedError { @@ -12971,11 +11681,7 @@ extension DatabaseError: Foundation.LocalizedError { } } - public enum DescriptorError { - - - case InvalidDescriptor(String ) case MissingKeys @@ -12996,9 +11702,8 @@ public enum DescriptorError { case SinglePubkeyNotSupported } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeDescriptorError: FfiConverterRustBuffer { typealias SwiftType = DescriptorError @@ -13006,106 +11711,82 @@ public struct FfiConverterTypeDescriptorError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DescriptorError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .InvalidDescriptor( - try FfiConverterString.read(from: &buf) + case 1: return try .InvalidDescriptor( + FfiConverterString.read(from: &buf) ) case 2: return .MissingKeys - case 3: return .TooManyKeys( - try FfiConverterUInt32.read(from: &buf) + case 3: return try .TooManyKeys( + FfiConverterUInt32.read(from: &buf) ) - case 4: return .InvalidDescriptorParse( - try FfiConverterString.read(from: &buf) + case 4: return try .InvalidDescriptorParse( + FfiConverterString.read(from: &buf) ) case 5: return .MissingDescriptor case 6: return .MissingXpub case 7: return .MissingDerivationPath case 8: return .MissingScriptType case 9: return .MissingFingerprint - case 10: return .InvalidXpub( - try FfiConverterString.read(from: &buf) + case 10: return try .InvalidXpub( + FfiConverterString.read(from: &buf) ) - case 11: return .UnableToParseXpub( - try FfiConverterString.read(from: &buf) + case 11: return try .UnableToParseXpub( + FfiConverterString.read(from: &buf) ) case 12: return .NoXpubInDescriptor case 13: return .SinglePubkeyNotSupported - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: DescriptorError, into buf: inout [UInt8]) { switch value { - - - - - case let .InvalidDescriptor(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case .MissingKeys: writeInt(&buf, Int32(2)) - - + case let .TooManyKeys(v1): writeInt(&buf, Int32(3)) FfiConverterUInt32.write(v1, into: &buf) - - + case let .InvalidDescriptorParse(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - - + case .MissingDescriptor: writeInt(&buf, Int32(5)) - - + case .MissingXpub: writeInt(&buf, Int32(6)) - - + case .MissingDerivationPath: writeInt(&buf, Int32(7)) - - + case .MissingScriptType: writeInt(&buf, Int32(8)) - - + case .MissingFingerprint: writeInt(&buf, Int32(9)) - - + case let .InvalidXpub(v1): writeInt(&buf, Int32(10)) FfiConverterString.write(v1, into: &buf) - - + case let .UnableToParseXpub(v1): writeInt(&buf, Int32(11)) FfiConverterString.write(v1, into: &buf) - - + case .NoXpubInDescriptor: writeInt(&buf, Int32(12)) - - + case .SinglePubkeyNotSupported: writeInt(&buf, Int32(13)) - } } } - extension DescriptorError: Equatable, Hashable {} extension DescriptorError: Foundation.LocalizedError { @@ -13118,22 +11799,19 @@ extension DescriptorError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum DiscoveryState { - case single case startedJson(FoundJson ) case startedMnemonic - case foundAddressesFromJson([FoundAddress],FoundJson - ) + case foundAddressesFromJson([FoundAddress], FoundJson) case foundAddressesFromMnemonic([FoundAddress] ) case noneFound case choseAdressType } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeDiscoveryState: FfiConverterRustBuffer { typealias SwiftType = DiscoveryState @@ -13141,98 +11819,81 @@ public struct FfiConverterTypeDiscoveryState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DiscoveryState { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .single - - case 2: return .startedJson(try FfiConverterTypeFoundJson.read(from: &buf) - ) - + + case 2: return try .startedJson(FfiConverterTypeFoundJson.read(from: &buf) + ) + case 3: return .startedMnemonic - - case 4: return .foundAddressesFromJson(try FfiConverterSequenceTypeFoundAddress.read(from: &buf), try FfiConverterTypeFoundJson.read(from: &buf) - ) - - case 5: return .foundAddressesFromMnemonic(try FfiConverterSequenceTypeFoundAddress.read(from: &buf) - ) - + + case 4: return try .foundAddressesFromJson(FfiConverterSequenceTypeFoundAddress.read(from: &buf), FfiConverterTypeFoundJson.read(from: &buf)) + + case 5: return try .foundAddressesFromMnemonic(FfiConverterSequenceTypeFoundAddress.read(from: &buf) + ) + case 6: return .noneFound - + case 7: return .choseAdressType - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: DiscoveryState, into buf: inout [UInt8]) { switch value { - - case .single: writeInt(&buf, Int32(1)) - - + case let .startedJson(v1): writeInt(&buf, Int32(2)) FfiConverterTypeFoundJson.write(v1, into: &buf) - - + case .startedMnemonic: writeInt(&buf, Int32(3)) - - - case let .foundAddressesFromJson(v1,v2): + + case let .foundAddressesFromJson(v1, v2): writeInt(&buf, Int32(4)) FfiConverterSequenceTypeFoundAddress.write(v1, into: &buf) FfiConverterTypeFoundJson.write(v2, into: &buf) - - + case let .foundAddressesFromMnemonic(v1): writeInt(&buf, Int32(5)) FfiConverterSequenceTypeFoundAddress.write(v1, into: &buf) - - + case .noneFound: writeInt(&buf, Int32(6)) - - + case .choseAdressType: writeInt(&buf, Int32(7)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeDiscoveryState_lift(_ buf: RustBuffer) throws -> DiscoveryState { - return try FfiConverterTypeDiscoveryState.lift(buf) + try FfiConverterTypeDiscoveryState.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeDiscoveryState_lower(_ value: DiscoveryState) -> RustBuffer { - return FfiConverterTypeDiscoveryState.lower(value) + FfiConverterTypeDiscoveryState.lower(value) } - - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FeeSpeed { - case fast case medium case slow } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFeeSpeed: FfiConverterRustBuffer { typealias SwiftType = FeeSpeed @@ -13240,62 +11901,50 @@ public struct FfiConverterTypeFeeSpeed: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeSpeed { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .fast - + case 2: return .medium - + case 3: return .slow - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FeeSpeed, into buf: inout [UInt8]) { switch value { - - case .fast: writeInt(&buf, Int32(1)) - - + case .medium: writeInt(&buf, Int32(2)) - - + case .slow: writeInt(&buf, Int32(3)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeSpeed_lift(_ buf: RustBuffer) throws -> FeeSpeed { - return try FfiConverterTypeFeeSpeed.lift(buf) + try FfiConverterTypeFeeSpeed.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFeeSpeed_lower(_ value: FeeSpeed) -> RustBuffer { - return FfiConverterTypeFeeSpeed.lower(value) + FfiConverterTypeFeeSpeed.lower(value) } - - extension FeeSpeed: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FfiColor { - case red(FfiOpacity ) case blue(FfiOpacity @@ -13318,13 +11967,11 @@ public enum FfiColor { ) case coolGray(FfiOpacity ) - case custom(Rgb,FfiOpacity - ) + case custom(Rgb, FfiOpacity) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFfiColor: FfiConverterRustBuffer { typealias SwiftType = FfiColor @@ -13332,148 +11979,125 @@ public struct FfiConverterTypeFfiColor: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiColor { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .red(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 2: return .blue(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 3: return .green(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 4: return .yellow(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 5: return .orange(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 6: return .purple(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 7: return .pink(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 8: return .white(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 9: return .black(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 10: return .gray(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 11: return .coolGray(try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 12: return .custom(try FfiConverterTypeRgb.read(from: &buf), try FfiConverterTypeFfiOpacity.read(from: &buf) - ) - + case 1: return try .red(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 2: return try .blue(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 3: return try .green(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 4: return try .yellow(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 5: return try .orange(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 6: return try .purple(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 7: return try .pink(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 8: return try .white(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 9: return try .black(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 10: return try .gray(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 11: return try .coolGray(FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 12: return try .custom(FfiConverterTypeRgb.read(from: &buf), FfiConverterTypeFfiOpacity.read(from: &buf)) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FfiColor, into buf: inout [UInt8]) { switch value { - - case let .red(v1): writeInt(&buf, Int32(1)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .blue(v1): writeInt(&buf, Int32(2)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .green(v1): writeInt(&buf, Int32(3)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .yellow(v1): writeInt(&buf, Int32(4)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .orange(v1): writeInt(&buf, Int32(5)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .purple(v1): writeInt(&buf, Int32(6)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .pink(v1): writeInt(&buf, Int32(7)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .white(v1): writeInt(&buf, Int32(8)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .black(v1): writeInt(&buf, Int32(9)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .gray(v1): writeInt(&buf, Int32(10)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - + case let .coolGray(v1): writeInt(&buf, Int32(11)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - - case let .custom(v1,v2): + + case let .custom(v1, v2): writeInt(&buf, Int32(12)) FfiConverterTypeRgb.write(v1, into: &buf) FfiConverterTypeFfiOpacity.write(v2, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiColor_lift(_ buf: RustBuffer) throws -> FfiColor { - return try FfiConverterTypeFfiColor.lift(buf) + try FfiConverterTypeFfiColor.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiColor_lower(_ value: FfiColor) -> RustBuffer { - return FfiConverterTypeFfiColor.lower(value) + FfiConverterTypeFfiColor.lower(value) } - - extension FfiColor: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FfiColorScheme { - case light case dark } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFfiColorScheme: FfiConverterRustBuffer { typealias SwiftType = FfiColorScheme @@ -13481,56 +12105,42 @@ public struct FfiConverterTypeFfiColorScheme: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiColorScheme { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .light - + case 2: return .dark - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FfiColorScheme, into buf: inout [UInt8]) { switch value { - - case .light: writeInt(&buf, Int32(1)) - - + case .dark: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiColorScheme_lift(_ buf: RustBuffer) throws -> FfiColorScheme { - return try FfiConverterTypeFfiColorScheme.lift(buf) + try FfiConverterTypeFfiColorScheme.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiColorScheme_lower(_ value: FfiColorScheme) -> RustBuffer { - return FfiConverterTypeFfiColorScheme.lower(value) + FfiConverterTypeFfiColorScheme.lower(value) } - - extension FfiColorScheme: Equatable, Hashable {} - - - public enum FiatAmountError { - - - /** * Unable to convert to fiat amount, prices client unavailable {0} */ @@ -13538,9 +12148,8 @@ public enum FiatAmountError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFiatAmountError: FfiConverterRustBuffer { typealias SwiftType = FiatAmountError @@ -13548,34 +12157,23 @@ public struct FfiConverterTypeFiatAmountError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatAmountError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .PricesUnavailable( - try FfiConverterString.read(from: &buf) + case 1: return try .PricesUnavailable( + FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FiatAmountError, into buf: inout [UInt8]) { switch value { - - - - - case let .PricesUnavailable(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - } } } - extension FiatAmountError: Equatable, Hashable {} extension FiatAmountError: Foundation.LocalizedError { @@ -13588,7 +12186,6 @@ extension FiatAmountError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FiatCurrency { - case usd case eur case gbp @@ -13598,9 +12195,8 @@ public enum FiatCurrency { case jpy } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFiatCurrency: FfiConverterRustBuffer { typealias SwiftType = FiatCurrency @@ -13608,93 +12204,76 @@ public struct FfiConverterTypeFiatCurrency: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatCurrency { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .usd - + case 2: return .eur - + case 3: return .gbp - + case 4: return .cad - + case 5: return .chf - + case 6: return .aud - + case 7: return .jpy - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FiatCurrency, into buf: inout [UInt8]) { switch value { - - case .usd: writeInt(&buf, Int32(1)) - - + case .eur: writeInt(&buf, Int32(2)) - - + case .gbp: writeInt(&buf, Int32(3)) - - + case .cad: writeInt(&buf, Int32(4)) - - + case .chf: writeInt(&buf, Int32(5)) - - + case .aud: writeInt(&buf, Int32(6)) - - + case .jpy: writeInt(&buf, Int32(7)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFiatCurrency_lift(_ buf: RustBuffer) throws -> FiatCurrency { - return try FfiConverterTypeFiatCurrency.lift(buf) + try FfiConverterTypeFiatCurrency.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFiatCurrency_lower(_ value: FiatCurrency) -> RustBuffer { - return FfiConverterTypeFiatCurrency.lower(value) + FfiConverterTypeFiatCurrency.lower(value) } - - extension FiatCurrency: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FiatOrBtc { - case btc case fiat } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFiatOrBtc: FfiConverterRustBuffer { typealias SwiftType = FiatOrBtc @@ -13702,56 +12281,42 @@ public struct FfiConverterTypeFiatOrBtc: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatOrBtc { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .btc - + case 2: return .fiat - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FiatOrBtc, into buf: inout [UInt8]) { switch value { - - case .btc: writeInt(&buf, Int32(1)) - - + case .fiat: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFiatOrBtc_lift(_ buf: RustBuffer) throws -> FiatOrBtc { - return try FfiConverterTypeFiatOrBtc.lift(buf) + try FfiConverterTypeFiatOrBtc.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFiatOrBtc_lower(_ value: FiatOrBtc) -> RustBuffer { - return FfiConverterTypeFiatOrBtc.lower(value) + FfiConverterTypeFiatOrBtc.lower(value) } - - extension FiatOrBtc: Equatable, Hashable {} - - - public enum FileHandlerError { - - - /** * File not found */ @@ -13773,9 +12338,8 @@ public enum FileHandlerError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFileHandlerError: FfiConverterRustBuffer { typealias SwiftType = FileHandlerError @@ -13783,55 +12347,40 @@ public struct FfiConverterTypeFileHandlerError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FileHandlerError { let variant: Int32 = try readInt(&buf) switch variant { - - - - case 1: return .FileNotFound - case 2: return .OpenFile( - try FfiConverterString.read(from: &buf) + case 2: return try .OpenFile( + FfiConverterString.read(from: &buf) ) - case 3: return .ReadFile( - try FfiConverterString.read(from: &buf) + case 3: return try .ReadFile( + FfiConverterString.read(from: &buf) ) - case 4: return .NotRecognizedFormat( - try FfiConverterTypeMultiFormatError.read(from: &buf) + case 4: return try .NotRecognizedFormat( + FfiConverterTypeMultiFormatError.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FileHandlerError, into buf: inout [UInt8]) { switch value { - - - - - case .FileNotFound: writeInt(&buf, Int32(1)) - - + case let .OpenFile(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case let .ReadFile(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - - + case let .NotRecognizedFormat(v1): writeInt(&buf, Int32(4)) FfiConverterTypeMultiFormatError.write(v1, into: &buf) - } } } - extension FileHandlerError: Equatable, Hashable {} extension FileHandlerError: Foundation.LocalizedError { @@ -13840,17 +12389,12 @@ extension FileHandlerError: Foundation.LocalizedError { } } - public enum FingerprintError { - - - case WalletNotFound } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFingerprintError: FfiConverterRustBuffer { typealias SwiftType = FingerprintError @@ -13858,31 +12402,20 @@ public struct FfiConverterTypeFingerprintError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FingerprintError { let variant: Int32 = try readInt(&buf) switch variant { - - - - case 1: return .WalletNotFound - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FingerprintError, into buf: inout [UInt8]) { switch value { - - - - - case .WalletNotFound: writeInt(&buf, Int32(1)) - } } } - extension FingerprintError: Equatable, Hashable {} extension FingerprintError: Foundation.LocalizedError { @@ -13891,20 +12424,15 @@ extension FingerprintError: Foundation.LocalizedError { } } - public enum GlobalCacheTableError { - - - case Save(String ) case Read(String ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalCacheTableError: FfiConverterRustBuffer { typealias SwiftType = GlobalCacheTableError @@ -13912,42 +12440,31 @@ public struct FfiConverterTypeGlobalCacheTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalCacheTableError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .Save( - try FfiConverterString.read(from: &buf) + case 1: return try .Save( + FfiConverterString.read(from: &buf) ) - case 2: return .Read( - try FfiConverterString.read(from: &buf) + + case 2: return try .Read( + FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalCacheTableError, into buf: inout [UInt8]) { switch value { - - - - - case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - } } } - extension GlobalCacheTableError: Equatable, Hashable {} extension GlobalCacheTableError: Foundation.LocalizedError { @@ -13960,7 +12477,6 @@ extension GlobalCacheTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum GlobalConfigKey { - case selectedWalletId case selectedNetwork case selectedNode(Network @@ -13968,9 +12484,8 @@ public enum GlobalConfigKey { case colorScheme } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalConfigKey: FfiConverterRustBuffer { typealias SwiftType = GlobalConfigKey @@ -13978,79 +12493,62 @@ public struct FfiConverterTypeGlobalConfigKey: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalConfigKey { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .selectedWalletId - + case 2: return .selectedNetwork - - case 3: return .selectedNode(try FfiConverterTypeNetwork.read(from: &buf) - ) - + + case 3: return try .selectedNode(FfiConverterTypeNetwork.read(from: &buf) + ) + case 4: return .colorScheme - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalConfigKey, into buf: inout [UInt8]) { switch value { - - case .selectedWalletId: writeInt(&buf, Int32(1)) - - + case .selectedNetwork: writeInt(&buf, Int32(2)) - - + case let .selectedNode(v1): writeInt(&buf, Int32(3)) FfiConverterTypeNetwork.write(v1, into: &buf) - - + case .colorScheme: writeInt(&buf, Int32(4)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigKey_lift(_ buf: RustBuffer) throws -> GlobalConfigKey { - return try FfiConverterTypeGlobalConfigKey.lift(buf) + try FfiConverterTypeGlobalConfigKey.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigKey_lower(_ value: GlobalConfigKey) -> RustBuffer { - return FfiConverterTypeGlobalConfigKey.lower(value) + FfiConverterTypeGlobalConfigKey.lower(value) } - - extension GlobalConfigKey: Equatable, Hashable {} - - - public enum GlobalConfigTableError { - - - case Save(String ) case Read(String ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalConfigTableError: FfiConverterRustBuffer { typealias SwiftType = GlobalConfigTableError @@ -14058,42 +12556,31 @@ public struct FfiConverterTypeGlobalConfigTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalConfigTableError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .Save( - try FfiConverterString.read(from: &buf) + case 1: return try .Save( + FfiConverterString.read(from: &buf) ) - case 2: return .Read( - try FfiConverterString.read(from: &buf) + + case 2: return try .Read( + FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalConfigTableError, into buf: inout [UInt8]) { switch value { - - - - - case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - } } } - extension GlobalConfigTableError: Equatable, Hashable {} extension GlobalConfigTableError: Foundation.LocalizedError { @@ -14106,13 +12593,11 @@ extension GlobalConfigTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum GlobalFlagKey { - case completedOnboarding } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalFlagKey: FfiConverterRustBuffer { typealias SwiftType = GlobalFlagKey @@ -14120,59 +12605,45 @@ public struct FfiConverterTypeGlobalFlagKey: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalFlagKey { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .completedOnboarding - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalFlagKey, into buf: inout [UInt8]) { switch value { - - case .completedOnboarding: writeInt(&buf, Int32(1)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagKey_lift(_ buf: RustBuffer) throws -> GlobalFlagKey { - return try FfiConverterTypeGlobalFlagKey.lift(buf) + try FfiConverterTypeGlobalFlagKey.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagKey_lower(_ value: GlobalFlagKey) -> RustBuffer { - return FfiConverterTypeGlobalFlagKey.lower(value) + FfiConverterTypeGlobalFlagKey.lower(value) } - - extension GlobalFlagKey: Equatable, Hashable {} - - - public enum GlobalFlagTableError { - - - case Save(String ) case Read(String ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalFlagTableError: FfiConverterRustBuffer { typealias SwiftType = GlobalFlagTableError @@ -14180,42 +12651,31 @@ public struct FfiConverterTypeGlobalFlagTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalFlagTableError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .Save( - try FfiConverterString.read(from: &buf) + case 1: return try .Save( + FfiConverterString.read(from: &buf) ) - case 2: return .Read( - try FfiConverterString.read(from: &buf) + + case 2: return try .Read( + FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalFlagTableError, into buf: inout [UInt8]) { switch value { - - - - - case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - } } } - extension GlobalFlagTableError: Equatable, Hashable {} extension GlobalFlagTableError: Foundation.LocalizedError { @@ -14228,19 +12688,16 @@ extension GlobalFlagTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum HotWalletRoute { - case select case create(NumberOfBip39Words ) - case `import`(NumberOfBip39Words,ImportType - ) + case `import`(NumberOfBip39Words, ImportType) case verifyWords(WalletId ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeHotWalletRoute: FfiConverterRustBuffer { typealias SwiftType = HotWalletRoute @@ -14248,83 +12705,68 @@ public struct FfiConverterTypeHotWalletRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> HotWalletRoute { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .select - - case 2: return .create(try FfiConverterTypeNumberOfBip39Words.read(from: &buf) - ) - - case 3: return .`import`(try FfiConverterTypeNumberOfBip39Words.read(from: &buf), try FfiConverterTypeImportType.read(from: &buf) - ) - - case 4: return .verifyWords(try FfiConverterTypeWalletId.read(from: &buf) - ) - + + case 2: return try .create(FfiConverterTypeNumberOfBip39Words.read(from: &buf) + ) + + case 3: return try .import(FfiConverterTypeNumberOfBip39Words.read(from: &buf), FfiConverterTypeImportType.read(from: &buf)) + + case 4: return try .verifyWords(FfiConverterTypeWalletId.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: HotWalletRoute, into buf: inout [UInt8]) { switch value { - - case .select: writeInt(&buf, Int32(1)) - - + case let .create(v1): writeInt(&buf, Int32(2)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) - - - case let .`import`(v1,v2): + + case let .import(v1, v2): writeInt(&buf, Int32(3)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) FfiConverterTypeImportType.write(v2, into: &buf) - - + case let .verifyWords(v1): writeInt(&buf, Int32(4)) FfiConverterTypeWalletId.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeHotWalletRoute_lift(_ buf: RustBuffer) throws -> HotWalletRoute { - return try FfiConverterTypeHotWalletRoute.lift(buf) + try FfiConverterTypeHotWalletRoute.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeHotWalletRoute_lower(_ value: HotWalletRoute) -> RustBuffer { - return FfiConverterTypeHotWalletRoute.lower(value) + FfiConverterTypeHotWalletRoute.lower(value) } - - extension HotWalletRoute: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ImportType { - case manual case nfc case qr } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeImportType: FfiConverterRustBuffer { typealias SwiftType = ImportType @@ -14332,62 +12774,47 @@ public struct FfiConverterTypeImportType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportType { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .manual - + case 2: return .nfc - + case 3: return .qr - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportType, into buf: inout [UInt8]) { switch value { - - case .manual: writeInt(&buf, Int32(1)) - - + case .nfc: writeInt(&buf, Int32(2)) - - + case .qr: writeInt(&buf, Int32(3)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeImportType_lift(_ buf: RustBuffer) throws -> ImportType { - return try FfiConverterTypeImportType.lift(buf) + try FfiConverterTypeImportType.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeImportType_lower(_ value: ImportType) -> RustBuffer { - return FfiConverterTypeImportType.lower(value) + FfiConverterTypeImportType.lower(value) } - - extension ImportType: Equatable, Hashable {} - - - public enum ImportWalletError { - - - case WalletImportError(String ) case InvalidWordGroup(String @@ -14402,9 +12829,8 @@ public enum ImportWalletError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletError: FfiConverterRustBuffer { typealias SwiftType = ImportWalletError @@ -14412,74 +12838,57 @@ public struct FfiConverterTypeImportWalletError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .WalletImportError( - try FfiConverterString.read(from: &buf) + case 1: return try .WalletImportError( + FfiConverterString.read(from: &buf) ) - case 2: return .InvalidWordGroup( - try FfiConverterString.read(from: &buf) + case 2: return try .InvalidWordGroup( + FfiConverterString.read(from: &buf) ) - case 3: return .KeychainError( - try FfiConverterTypeKeychainError.read(from: &buf) + case 3: return try .KeychainError( + FfiConverterTypeKeychainError.read(from: &buf) ) - case 4: return .WalletAlreadyExists( - try FfiConverterTypeWalletId.read(from: &buf) + case 4: return try .WalletAlreadyExists( + FfiConverterTypeWalletId.read(from: &buf) ) - case 5: return .DatabaseError( - try FfiConverterTypeDatabaseError.read(from: &buf) + case 5: return try .DatabaseError( + FfiConverterTypeDatabaseError.read(from: &buf) ) - case 6: return .BdkError( - try FfiConverterString.read(from: &buf) + case 6: return try .BdkError( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportWalletError, into buf: inout [UInt8]) { switch value { - - - - - case let .WalletImportError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .InvalidWordGroup(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case let .KeychainError(v1): writeInt(&buf, Int32(3)) FfiConverterTypeKeychainError.write(v1, into: &buf) - - + case let .WalletAlreadyExists(v1): writeInt(&buf, Int32(4)) FfiConverterTypeWalletId.write(v1, into: &buf) - - + case let .DatabaseError(v1): writeInt(&buf, Int32(5)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - - + case let .BdkError(v1): writeInt(&buf, Int32(6)) FfiConverterString.write(v1, into: &buf) - } } } - extension ImportWalletError: Equatable, Hashable {} extension ImportWalletError: Foundation.LocalizedError { @@ -14492,13 +12901,11 @@ extension ImportWalletError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ImportWalletViewModelAction { - case noOp } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletViewModelAction: FfiConverterRustBuffer { typealias SwiftType = ImportWalletViewModelAction @@ -14506,56 +12913,45 @@ public struct FfiConverterTypeImportWalletViewModelAction: FfiConverterRustBuffe public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelAction { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .noOp - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportWalletViewModelAction, into buf: inout [UInt8]) { switch value { - - case .noOp: writeInt(&buf, Int32(1)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelAction_lift(_ buf: RustBuffer) throws -> ImportWalletViewModelAction { - return try FfiConverterTypeImportWalletViewModelAction.lift(buf) + try FfiConverterTypeImportWalletViewModelAction.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelAction_lower(_ value: ImportWalletViewModelAction) -> RustBuffer { - return FfiConverterTypeImportWalletViewModelAction.lower(value) + FfiConverterTypeImportWalletViewModelAction.lower(value) } - - extension ImportWalletViewModelAction: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ImportWalletViewModelReconcileMessage { - case noOp } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletViewModelReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = ImportWalletViewModelReconcileMessage @@ -14563,50 +12959,37 @@ public struct FfiConverterTypeImportWalletViewModelReconcileMessage: FfiConverte public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .noOp - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportWalletViewModelReconcileMessage, into buf: inout [UInt8]) { switch value { - - case .noOp: writeInt(&buf, Int32(1)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelReconcileMessage_lift(_ buf: RustBuffer) throws -> ImportWalletViewModelReconcileMessage { - return try FfiConverterTypeImportWalletViewModelReconcileMessage.lift(buf) + try FfiConverterTypeImportWalletViewModelReconcileMessage.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelReconcileMessage_lower(_ value: ImportWalletViewModelReconcileMessage) -> RustBuffer { - return FfiConverterTypeImportWalletViewModelReconcileMessage.lower(value) + FfiConverterTypeImportWalletViewModelReconcileMessage.lower(value) } - - extension ImportWalletViewModelReconcileMessage: Equatable, Hashable {} - - - public enum KeychainError { - - - case Save case Delete case ParseSavedValue(String @@ -14617,9 +13000,8 @@ public enum KeychainError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeKeychainError: FfiConverterRustBuffer { typealias SwiftType = KeychainError @@ -14627,60 +13009,44 @@ public struct FfiConverterTypeKeychainError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> KeychainError { let variant: Int32 = try readInt(&buf) switch variant { - - - - case 1: return .Save case 2: return .Delete - case 3: return .ParseSavedValue( - try FfiConverterString.read(from: &buf) + case 3: return try .ParseSavedValue( + FfiConverterString.read(from: &buf) ) - case 4: return .Encrypt( - try FfiConverterString.read(from: &buf) + case 4: return try .Encrypt( + FfiConverterString.read(from: &buf) ) - case 5: return .Decrypt( - try FfiConverterString.read(from: &buf) + case 5: return try .Decrypt( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: KeychainError, into buf: inout [UInt8]) { switch value { - - - - - case .Save: writeInt(&buf, Int32(1)) - - + case .Delete: writeInt(&buf, Int32(2)) - - + case let .ParseSavedValue(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - - + case let .Encrypt(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - - + case let .Decrypt(v1): writeInt(&buf, Int32(5)) FfiConverterString.write(v1, into: &buf) - } } } - extension KeychainError: Equatable, Hashable {} extension KeychainError: Foundation.LocalizedError { @@ -14689,20 +13055,15 @@ extension KeychainError: Foundation.LocalizedError { } } - public enum MnemonicError { - - - case GetWalletKeychain(KeychainError ) case NotAvailable(WalletId ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeMnemonicError: FfiConverterRustBuffer { typealias SwiftType = MnemonicError @@ -14710,42 +13071,31 @@ public struct FfiConverterTypeMnemonicError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MnemonicError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .GetWalletKeychain( - try FfiConverterTypeKeychainError.read(from: &buf) + case 1: return try .GetWalletKeychain( + FfiConverterTypeKeychainError.read(from: &buf) ) - case 2: return .NotAvailable( - try FfiConverterTypeWalletId.read(from: &buf) + + case 2: return try .NotAvailable( + FfiConverterTypeWalletId.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MnemonicError, into buf: inout [UInt8]) { switch value { - - - - - case let .GetWalletKeychain(v1): writeInt(&buf, Int32(1)) FfiConverterTypeKeychainError.write(v1, into: &buf) - - + case let .NotAvailable(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletId.write(v1, into: &buf) - } } } - extension MnemonicError: Equatable, Hashable {} extension MnemonicError: Foundation.LocalizedError { @@ -14754,18 +13104,12 @@ extension MnemonicError: Foundation.LocalizedError { } } - public enum MnemonicParseError { - - - - case InvalidMnemonic(String,String - ) + case InvalidMnemonic(String, String) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeMnemonicParseError: FfiConverterRustBuffer { typealias SwiftType = MnemonicParseError @@ -14773,36 +13117,25 @@ public struct FfiConverterTypeMnemonicParseError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MnemonicParseError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .InvalidMnemonic( - try FfiConverterString.read(from: &buf), - try FfiConverterString.read(from: &buf) + case 1: return try .InvalidMnemonic( + FfiConverterString.read(from: &buf), + FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MnemonicParseError, into buf: inout [UInt8]) { switch value { - - - - - - case let .InvalidMnemonic(v1,v2): + case let .InvalidMnemonic(v1, v2): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) FfiConverterString.write(v2, into: &buf) - } } } - extension MnemonicParseError: Equatable, Hashable {} extension MnemonicParseError: Foundation.LocalizedError { @@ -14815,7 +13148,6 @@ extension MnemonicParseError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum MultiFormat { - case address(AddressWithNetwork ) case hardwareExport(HardwareExport @@ -14826,9 +13158,8 @@ public enum MultiFormat { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeMultiFormat: FfiConverterRustBuffer { typealias SwiftType = MultiFormat @@ -14836,73 +13167,58 @@ public struct FfiConverterTypeMultiFormat: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiFormat { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .address(try FfiConverterTypeAddressWithNetwork.read(from: &buf) - ) - - case 2: return .hardwareExport(try FfiConverterTypeHardwareExport.read(from: &buf) - ) - - case 3: return .mnemonic(try FfiConverterTypeMnemonic.read(from: &buf) - ) - - case 4: return .transaction(try FfiConverterTypeBitcoinTransaction.read(from: &buf) - ) - + case 1: return try .address(FfiConverterTypeAddressWithNetwork.read(from: &buf) + ) + + case 2: return try .hardwareExport(FfiConverterTypeHardwareExport.read(from: &buf) + ) + + case 3: return try .mnemonic(FfiConverterTypeMnemonic.read(from: &buf) + ) + + case 4: return try .transaction(FfiConverterTypeBitcoinTransaction.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiFormat, into buf: inout [UInt8]) { switch value { - - case let .address(v1): writeInt(&buf, Int32(1)) FfiConverterTypeAddressWithNetwork.write(v1, into: &buf) - - + case let .hardwareExport(v1): writeInt(&buf, Int32(2)) FfiConverterTypeHardwareExport.write(v1, into: &buf) - - + case let .mnemonic(v1): writeInt(&buf, Int32(3)) FfiConverterTypeMnemonic.write(v1, into: &buf) - - + case let .transaction(v1): writeInt(&buf, Int32(4)) FfiConverterTypeBitcoinTransaction.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMultiFormat_lift(_ buf: RustBuffer) throws -> MultiFormat { - return try FfiConverterTypeMultiFormat.lift(buf) + try FfiConverterTypeMultiFormat.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMultiFormat_lower(_ value: MultiFormat) -> RustBuffer { - return FfiConverterTypeMultiFormat.lower(value) + FfiConverterTypeMultiFormat.lower(value) } - - - - public enum MultiFormatError { - - - case InvalidSeedQr(SeedQrError ) /** @@ -14915,9 +13231,8 @@ public enum MultiFormatError { case UnrecognizedFormat } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeMultiFormatError: FfiConverterRustBuffer { typealias SwiftType = MultiFormatError @@ -14925,44 +13240,30 @@ public struct FfiConverterTypeMultiFormatError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiFormatError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .InvalidSeedQr( - try FfiConverterTypeSeedQrError.read(from: &buf) + case 1: return try .InvalidSeedQr( + FfiConverterTypeSeedQrError.read(from: &buf) ) case 2: return .UnsupportedNetworkAddress case 3: return .UnrecognizedFormat - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiFormatError, into buf: inout [UInt8]) { switch value { - - - - - case let .InvalidSeedQr(v1): writeInt(&buf, Int32(1)) FfiConverterTypeSeedQrError.write(v1, into: &buf) - - + case .UnsupportedNetworkAddress: writeInt(&buf, Int32(2)) - - + case .UnrecognizedFormat: writeInt(&buf, Int32(3)) - } } } - extension MultiFormatError: Equatable, Hashable {} extension MultiFormatError: Foundation.LocalizedError { @@ -14971,11 +13272,7 @@ extension MultiFormatError: Foundation.LocalizedError { } } - public enum MultiQrError { - - - case CannotAddPartToSingleQr case CannotAddPartToSeedQr case ParseError(String @@ -14991,9 +13288,8 @@ public enum MultiQrError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeMultiQrError: FfiConverterRustBuffer { typealias SwiftType = MultiQrError @@ -15001,83 +13297,63 @@ public struct FfiConverterTypeMultiQrError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiQrError { let variant: Int32 = try readInt(&buf) switch variant { - - - - case 1: return .CannotAddPartToSingleQr case 2: return .CannotAddPartToSeedQr - case 3: return .ParseError( - try FfiConverterString.read(from: &buf) + case 3: return try .ParseError( + FfiConverterString.read(from: &buf) ) case 4: return .InvalidUtf8 case 5: return .NotYetAvailable case 6: return .CannotAddBinaryDataToBbqr - case 7: return .BbqrDidNotContainSeedWords( - try FfiConverterString.read(from: &buf) + case 7: return try .BbqrDidNotContainSeedWords( + FfiConverterString.read(from: &buf) ) - case 8: return .InvalidSeedQr( - try FfiConverterTypeSeedQrError.read(from: &buf) + case 8: return try .InvalidSeedQr( + FfiConverterTypeSeedQrError.read(from: &buf) ) - case 9: return .InvalidPlainTextQr( - try FfiConverterString.read(from: &buf) + case 9: return try .InvalidPlainTextQr( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiQrError, into buf: inout [UInt8]) { switch value { - - - - - case .CannotAddPartToSingleQr: writeInt(&buf, Int32(1)) - - + case .CannotAddPartToSeedQr: writeInt(&buf, Int32(2)) - - + case let .ParseError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - - + case .InvalidUtf8: writeInt(&buf, Int32(4)) - - + case .NotYetAvailable: writeInt(&buf, Int32(5)) - - + case .CannotAddBinaryDataToBbqr: writeInt(&buf, Int32(6)) - - + case let .BbqrDidNotContainSeedWords(v1): writeInt(&buf, Int32(7)) FfiConverterString.write(v1, into: &buf) - - + case let .InvalidSeedQr(v1): writeInt(&buf, Int32(8)) FfiConverterTypeSeedQrError.write(v1, into: &buf) - - + case let .InvalidPlainTextQr(v1): writeInt(&buf, Int32(9)) FfiConverterString.write(v1, into: &buf) - } } } - extension MultiQrError: Equatable, Hashable {} extension MultiQrError: Foundation.LocalizedError { @@ -15090,7 +13366,6 @@ extension MultiQrError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum MultiQrScanResult { - case seedQr(SeedQr ) case single(String @@ -15101,9 +13376,8 @@ public enum MultiQrScanResult { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeMultiQrScanResult: FfiConverterRustBuffer { typealias SwiftType = MultiQrScanResult @@ -15111,82 +13385,69 @@ public struct FfiConverterTypeMultiQrScanResult: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiQrScanResult { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .seedQr(try FfiConverterTypeSeedQr.read(from: &buf) - ) - - case 2: return .single(try FfiConverterString.read(from: &buf) - ) - - case 3: return .completedBBqr(try FfiConverterTypeBbqrJoined.read(from: &buf) - ) - - case 4: return .inProgressBBqr(try FfiConverterUInt32.read(from: &buf) - ) - + case 1: return try .seedQr(FfiConverterTypeSeedQr.read(from: &buf) + ) + + case 2: return try .single(FfiConverterString.read(from: &buf) + ) + + case 3: return try .completedBBqr(FfiConverterTypeBbqrJoined.read(from: &buf) + ) + + case 4: return try .inProgressBBqr(FfiConverterUInt32.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiQrScanResult, into buf: inout [UInt8]) { switch value { - - case let .seedQr(v1): writeInt(&buf, Int32(1)) FfiConverterTypeSeedQr.write(v1, into: &buf) - - + case let .single(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case let .completedBBqr(v1): writeInt(&buf, Int32(3)) FfiConverterTypeBbqrJoined.write(v1, into: &buf) - - + case let .inProgressBBqr(v1): writeInt(&buf, Int32(4)) FfiConverterUInt32.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMultiQrScanResult_lift(_ buf: RustBuffer) throws -> MultiQrScanResult { - return try FfiConverterTypeMultiQrScanResult.lift(buf) + try FfiConverterTypeMultiQrScanResult.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeMultiQrScanResult_lower(_ value: MultiQrScanResult) -> RustBuffer { - return FfiConverterTypeMultiQrScanResult.lower(value) + FfiConverterTypeMultiQrScanResult.lower(value) } - - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NdefPayload { - case text(TextPayload ) case data(Data ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNdefPayload: FfiConverterRustBuffer { typealias SwiftType = NdefPayload @@ -15194,60 +13455,49 @@ public struct FfiConverterTypeNdefPayload: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefPayload { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .text(try FfiConverterTypeTextPayload.read(from: &buf) - ) - - case 2: return .data(try FfiConverterData.read(from: &buf) - ) - + case 1: return try .text(FfiConverterTypeTextPayload.read(from: &buf) + ) + + case 2: return try .data(FfiConverterData.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NdefPayload, into buf: inout [UInt8]) { switch value { - - case let .text(v1): writeInt(&buf, Int32(1)) FfiConverterTypeTextPayload.write(v1, into: &buf) - - + case let .data(v1): writeInt(&buf, Int32(2)) FfiConverterData.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefPayload_lift(_ buf: RustBuffer) throws -> NdefPayload { - return try FfiConverterTypeNdefPayload.lift(buf) + try FfiConverterTypeNdefPayload.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefPayload_lower(_ value: NdefPayload) -> RustBuffer { - return FfiConverterTypeNdefPayload.lower(value) + FfiConverterTypeNdefPayload.lower(value) } - - -extension NdefPayload: Equatable, Hashable {} - - +extension NdefPayload: Equatable, Hashable {} // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NdefType { - case empty case wellKnown case mime @@ -15258,9 +13508,8 @@ public enum NdefType { case reserved } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNdefType: FfiConverterRustBuffer { typealias SwiftType = NdefType @@ -15268,99 +13517,81 @@ public struct FfiConverterTypeNdefType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefType { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .empty - + case 2: return .wellKnown - + case 3: return .mime - + case 4: return .absoluteUri - + case 5: return .external - + case 6: return .unknown - + case 7: return .unchanged - + case 8: return .reserved - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NdefType, into buf: inout [UInt8]) { switch value { - - case .empty: writeInt(&buf, Int32(1)) - - + case .wellKnown: writeInt(&buf, Int32(2)) - - + case .mime: writeInt(&buf, Int32(3)) - - + case .absoluteUri: writeInt(&buf, Int32(4)) - - + case .external: writeInt(&buf, Int32(5)) - - + case .unknown: writeInt(&buf, Int32(6)) - - + case .unchanged: writeInt(&buf, Int32(7)) - - + case .reserved: writeInt(&buf, Int32(8)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefType_lift(_ buf: RustBuffer) throws -> NdefType { - return try FfiConverterTypeNdefType.lift(buf) + try FfiConverterTypeNdefType.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNdefType_lower(_ value: NdefType) -> RustBuffer { - return FfiConverterTypeNdefType.lower(value) + FfiConverterTypeNdefType.lower(value) } - - extension NdefType: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Network { - case bitcoin case testnet } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNetwork: FfiConverterRustBuffer { typealias SwiftType = Network @@ -15368,56 +13599,45 @@ public struct FfiConverterTypeNetwork: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Network { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .bitcoin - + case 2: return .testnet - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Network, into buf: inout [UInt8]) { switch value { - - case .bitcoin: writeInt(&buf, Int32(1)) - - + case .testnet: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNetwork_lift(_ buf: RustBuffer) throws -> Network { - return try FfiConverterTypeNetwork.lift(buf) + try FfiConverterTypeNetwork.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNetwork_lower(_ value: Network) -> RustBuffer { - return FfiConverterTypeNetwork.lower(value) + FfiConverterTypeNetwork.lower(value) } - - extension Network: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NewWalletRoute { - case select case hotWallet(HotWalletRoute ) @@ -15425,9 +13645,8 @@ public enum NewWalletRoute { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNewWalletRoute: FfiConverterRustBuffer { typealias SwiftType = NewWalletRoute @@ -15435,66 +13654,51 @@ public struct FfiConverterTypeNewWalletRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NewWalletRoute { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .select - - case 2: return .hotWallet(try FfiConverterTypeHotWalletRoute.read(from: &buf) - ) - - case 3: return .coldWallet(try FfiConverterTypeColdWalletRoute.read(from: &buf) - ) - + + case 2: return try .hotWallet(FfiConverterTypeHotWalletRoute.read(from: &buf) + ) + + case 3: return try .coldWallet(FfiConverterTypeColdWalletRoute.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NewWalletRoute, into buf: inout [UInt8]) { switch value { - - case .select: writeInt(&buf, Int32(1)) - - + case let .hotWallet(v1): writeInt(&buf, Int32(2)) FfiConverterTypeHotWalletRoute.write(v1, into: &buf) - - + case let .coldWallet(v1): writeInt(&buf, Int32(3)) FfiConverterTypeColdWalletRoute.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNewWalletRoute_lift(_ buf: RustBuffer) throws -> NewWalletRoute { - return try FfiConverterTypeNewWalletRoute.lift(buf) + try FfiConverterTypeNewWalletRoute.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNewWalletRoute_lower(_ value: NewWalletRoute) -> RustBuffer { - return FfiConverterTypeNewWalletRoute.lower(value) + FfiConverterTypeNewWalletRoute.lower(value) } - - extension NewWalletRoute: Equatable, Hashable {} - - - public enum NfcReaderError { - - - /** * Error parsing the NDEF message */ @@ -15510,9 +13714,8 @@ public enum NfcReaderError { case AlreadyParsed } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNfcReaderError: FfiConverterRustBuffer { typealias SwiftType = NfcReaderError @@ -15520,44 +13723,30 @@ public struct FfiConverterTypeNfcReaderError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NfcReaderError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .ParsingError( - try FfiConverterString.read(from: &buf) + case 1: return try .ParsingError( + FfiConverterString.read(from: &buf) ) case 2: return .NotEnoughData case 3: return .AlreadyParsed - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NfcReaderError, into buf: inout [UInt8]) { switch value { - - - - - case let .ParsingError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case .NotEnoughData: writeInt(&buf, Int32(2)) - - + case .AlreadyParsed: writeInt(&buf, Int32(3)) - } } } - extension NfcReaderError: Equatable, Hashable {} extension NfcReaderError: Foundation.LocalizedError { @@ -15570,16 +13759,14 @@ extension NfcReaderError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NodeSelection { - case preset(Node ) case custom(Node ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNodeSelection: FfiConverterRustBuffer { typealias SwiftType = NodeSelection @@ -15587,60 +13774,46 @@ public struct FfiConverterTypeNodeSelection: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NodeSelection { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .preset(try FfiConverterTypeNode.read(from: &buf) - ) - - case 2: return .custom(try FfiConverterTypeNode.read(from: &buf) - ) - + case 1: return try .preset(FfiConverterTypeNode.read(from: &buf) + ) + + case 2: return try .custom(FfiConverterTypeNode.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NodeSelection, into buf: inout [UInt8]) { switch value { - - case let .preset(v1): writeInt(&buf, Int32(1)) FfiConverterTypeNode.write(v1, into: &buf) - - + case let .custom(v1): writeInt(&buf, Int32(2)) FfiConverterTypeNode.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelection_lift(_ buf: RustBuffer) throws -> NodeSelection { - return try FfiConverterTypeNodeSelection.lift(buf) + try FfiConverterTypeNodeSelection.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelection_lower(_ value: NodeSelection) -> RustBuffer { - return FfiConverterTypeNodeSelection.lower(value) + FfiConverterTypeNodeSelection.lower(value) } - - extension NodeSelection: Equatable, Hashable {} - - - public enum NodeSelectorError { - - - case NodeNotFound(String ) case SetSelectedNodeError(String @@ -15651,9 +13824,8 @@ public enum NodeSelectorError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNodeSelectorError: FfiConverterRustBuffer { typealias SwiftType = NodeSelectorError @@ -15661,58 +13833,43 @@ public struct FfiConverterTypeNodeSelectorError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NodeSelectorError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .NodeNotFound( - try FfiConverterString.read(from: &buf) + case 1: return try .NodeNotFound( + FfiConverterString.read(from: &buf) ) - case 2: return .SetSelectedNodeError( - try FfiConverterString.read(from: &buf) + case 2: return try .SetSelectedNodeError( + FfiConverterString.read(from: &buf) ) - case 3: return .NodeAccessError( - try FfiConverterString.read(from: &buf) + case 3: return try .NodeAccessError( + FfiConverterString.read(from: &buf) ) - case 4: return .ParseNodeUrlError( - try FfiConverterString.read(from: &buf) + case 4: return try .ParseNodeUrlError( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NodeSelectorError, into buf: inout [UInt8]) { switch value { - - - - - case let .NodeNotFound(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .SetSelectedNodeError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case let .NodeAccessError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - - + case let .ParseNodeUrlError(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - } } } - extension NodeSelectorError: Equatable, Hashable {} extension NodeSelectorError: Foundation.LocalizedError { @@ -15725,14 +13882,12 @@ extension NodeSelectorError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NumberOfBip39Words { - case twelve case twentyFour } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeNumberOfBip39Words: FfiConverterRustBuffer { typealias SwiftType = NumberOfBip39Words @@ -15740,61 +13895,49 @@ public struct FfiConverterTypeNumberOfBip39Words: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NumberOfBip39Words { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .twelve - + case 2: return .twentyFour - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NumberOfBip39Words, into buf: inout [UInt8]) { switch value { - - case .twelve: writeInt(&buf, Int32(1)) - - + case .twentyFour: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNumberOfBip39Words_lift(_ buf: RustBuffer) throws -> NumberOfBip39Words { - return try FfiConverterTypeNumberOfBip39Words.lift(buf) + try FfiConverterTypeNumberOfBip39Words.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeNumberOfBip39Words_lower(_ value: NumberOfBip39Words) -> RustBuffer { - return FfiConverterTypeNumberOfBip39Words.lower(value) + FfiConverterTypeNumberOfBip39Words.lower(value) } - - extension NumberOfBip39Words: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ParseResult { - /** * Completed The message is a NDEF message */ - case complete(MessageInfo,[NdefRecord] - ) + case complete(MessageInfo, [NdefRecord]) /** * Incomplete, need more data to parse the message */ @@ -15802,9 +13945,8 @@ public enum ParseResult { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeParseResult: FfiConverterRustBuffer { typealias SwiftType = ParseResult @@ -15812,70 +13954,57 @@ public struct FfiConverterTypeParseResult: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParseResult { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .complete(try FfiConverterTypeMessageInfo.read(from: &buf), try FfiConverterSequenceTypeNdefRecord.read(from: &buf) - ) - - case 2: return .incomplete(try FfiConverterTypeParsingMessage.read(from: &buf) - ) - + case 1: return try .complete(FfiConverterTypeMessageInfo.read(from: &buf), FfiConverterSequenceTypeNdefRecord.read(from: &buf)) + + case 2: return try .incomplete(FfiConverterTypeParsingMessage.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ParseResult, into buf: inout [UInt8]) { switch value { - - - case let .complete(v1,v2): + case let .complete(v1, v2): writeInt(&buf, Int32(1)) FfiConverterTypeMessageInfo.write(v1, into: &buf) FfiConverterSequenceTypeNdefRecord.write(v2, into: &buf) - - + case let .incomplete(v1): writeInt(&buf, Int32(2)) FfiConverterTypeParsingMessage.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeParseResult_lift(_ buf: RustBuffer) throws -> ParseResult { - return try FfiConverterTypeParseResult.lift(buf) + try FfiConverterTypeParseResult.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeParseResult_lower(_ value: ParseResult) -> RustBuffer { - return FfiConverterTypeParseResult.lower(value) + FfiConverterTypeParseResult.lower(value) } - - extension ParseResult: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ParserState { - case notStarted case parsing(ParsingContext ) case complete } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeParserState: FfiConverterRustBuffer { typealias SwiftType = ParserState @@ -15883,73 +14012,60 @@ public struct FfiConverterTypeParserState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParserState { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .notStarted - - case 2: return .parsing(try FfiConverterTypeParsingContext.read(from: &buf) - ) - + + case 2: return try .parsing(FfiConverterTypeParsingContext.read(from: &buf) + ) + case 3: return .complete - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ParserState, into buf: inout [UInt8]) { switch value { - - case .notStarted: writeInt(&buf, Int32(1)) - - + case let .parsing(v1): writeInt(&buf, Int32(2)) FfiConverterTypeParsingContext.write(v1, into: &buf) - - + case .complete: writeInt(&buf, Int32(3)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeParserState_lift(_ buf: RustBuffer) throws -> ParserState { - return try FfiConverterTypeParserState.lift(buf) + try FfiConverterTypeParserState.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeParserState_lower(_ value: ParserState) -> RustBuffer { - return FfiConverterTypeParserState.lower(value) + FfiConverterTypeParserState.lower(value) } - - extension ParserState: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum PendingOrConfirmed { - case pending(PendingDetails ) case confirmed(ConfirmedDetails ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePendingOrConfirmed: FfiConverterRustBuffer { typealias SwiftType = PendingOrConfirmed @@ -15957,67 +14073,55 @@ public struct FfiConverterTypePendingOrConfirmed: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingOrConfirmed { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .pending(try FfiConverterTypePendingDetails.read(from: &buf) - ) - - case 2: return .confirmed(try FfiConverterTypeConfirmedDetails.read(from: &buf) - ) - + case 1: return try .pending(FfiConverterTypePendingDetails.read(from: &buf) + ) + + case 2: return try .confirmed(FfiConverterTypeConfirmedDetails.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingOrConfirmed, into buf: inout [UInt8]) { switch value { - - case let .pending(v1): writeInt(&buf, Int32(1)) FfiConverterTypePendingDetails.write(v1, into: &buf) - - + case let .confirmed(v1): writeInt(&buf, Int32(2)) FfiConverterTypeConfirmedDetails.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingOrConfirmed_lift(_ buf: RustBuffer) throws -> PendingOrConfirmed { - return try FfiConverterTypePendingOrConfirmed.lift(buf) + try FfiConverterTypePendingOrConfirmed.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingOrConfirmed_lower(_ value: PendingOrConfirmed) -> RustBuffer { - return FfiConverterTypePendingOrConfirmed.lower(value) + FfiConverterTypePendingOrConfirmed.lower(value) } - - extension PendingOrConfirmed: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum PendingWalletViewModelAction { - case updateWords(NumberOfBip39Words ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelAction: FfiConverterRustBuffer { typealias SwiftType = PendingWalletViewModelAction @@ -16025,61 +14129,47 @@ public struct FfiConverterTypePendingWalletViewModelAction: FfiConverterRustBuff public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelAction { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .updateWords(try FfiConverterTypeNumberOfBip39Words.read(from: &buf) - ) - + case 1: return try .updateWords(FfiConverterTypeNumberOfBip39Words.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingWalletViewModelAction, into buf: inout [UInt8]) { switch value { - - case let .updateWords(v1): writeInt(&buf, Int32(1)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelAction_lift(_ buf: RustBuffer) throws -> PendingWalletViewModelAction { - return try FfiConverterTypePendingWalletViewModelAction.lift(buf) + try FfiConverterTypePendingWalletViewModelAction.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelAction_lower(_ value: PendingWalletViewModelAction) -> RustBuffer { - return FfiConverterTypePendingWalletViewModelAction.lower(value) + FfiConverterTypePendingWalletViewModelAction.lower(value) } - - extension PendingWalletViewModelAction: Equatable, Hashable {} - - - public enum PendingWalletViewModelError { - - - case BdkError(String ) case WalletCreationError(WalletCreationError ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelError: FfiConverterRustBuffer { typealias SwiftType = PendingWalletViewModelError @@ -16087,42 +14177,31 @@ public struct FfiConverterTypePendingWalletViewModelError: FfiConverterRustBuffe public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .BdkError( - try FfiConverterString.read(from: &buf) + case 1: return try .BdkError( + FfiConverterString.read(from: &buf) ) - case 2: return .WalletCreationError( - try FfiConverterTypeWalletCreationError.read(from: &buf) + + case 2: return try .WalletCreationError( + FfiConverterTypeWalletCreationError.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingWalletViewModelError, into buf: inout [UInt8]) { switch value { - - - - - case let .BdkError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .WalletCreationError(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletCreationError.write(v1, into: &buf) - } } } - extension PendingWalletViewModelError: Equatable, Hashable {} extension PendingWalletViewModelError: Foundation.LocalizedError { @@ -16135,14 +14214,12 @@ extension PendingWalletViewModelError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum PendingWalletViewModelReconcileMessage { - case words(NumberOfBip39Words ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = PendingWalletViewModelReconcileMessage @@ -16150,52 +14227,39 @@ public struct FfiConverterTypePendingWalletViewModelReconcileMessage: FfiConvert public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .words(try FfiConverterTypeNumberOfBip39Words.read(from: &buf) - ) - + case 1: return try .words(FfiConverterTypeNumberOfBip39Words.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingWalletViewModelReconcileMessage, into buf: inout [UInt8]) { switch value { - - case let .words(v1): writeInt(&buf, Int32(1)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelReconcileMessage_lift(_ buf: RustBuffer) throws -> PendingWalletViewModelReconcileMessage { - return try FfiConverterTypePendingWalletViewModelReconcileMessage.lift(buf) + try FfiConverterTypePendingWalletViewModelReconcileMessage.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelReconcileMessage_lower(_ value: PendingWalletViewModelReconcileMessage) -> RustBuffer { - return FfiConverterTypePendingWalletViewModelReconcileMessage.lower(value) + FfiConverterTypePendingWalletViewModelReconcileMessage.lower(value) } - - extension PendingWalletViewModelReconcileMessage: Equatable, Hashable {} - - - public enum PsbtError { - - - /** * Missing UTXO */ @@ -16215,9 +14279,8 @@ public enum PsbtError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypePsbtError: FfiConverterRustBuffer { typealias SwiftType = PsbtError @@ -16225,49 +14288,34 @@ public struct FfiConverterTypePsbtError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PsbtError { let variant: Int32 = try readInt(&buf) switch variant { - - - - case 1: return .MissingUtxo case 2: return .NegativeFee case 3: return .FeeOverflow - case 4: return .Other( - try FfiConverterString.read(from: &buf) + case 4: return try .Other( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PsbtError, into buf: inout [UInt8]) { switch value { - - - - - case .MissingUtxo: writeInt(&buf, Int32(1)) - - + case .NegativeFee: writeInt(&buf, Int32(2)) - - + case .FeeOverflow: writeInt(&buf, Int32(3)) - - + case let .Other(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - } } } - extension PsbtError: Equatable, Hashable {} extension PsbtError: Foundation.LocalizedError { @@ -16276,11 +14324,7 @@ extension PsbtError: Foundation.LocalizedError { } } - public enum ResumeError { - - - /** * Blocks do not match * @@ -16302,17 +14346,15 @@ public enum ResumeError { * The bytes passed in needs to be a multiple of crate::cove_nfc::BYTES_PER_BLOCK * The bytes passed in needs to be the same size as the bytes in the old message (NUMBER_OF_BLOCKS_PER_CHUNK * BYTES_PER_BLOCK) */ - case BlockSizeMismatch(expected: UInt16, actual: UInt16 - ) + case BlockSizeMismatch(expected: UInt16, actual: UInt16) /** * Unable to get first block hash */ case UnableToGetFirstBlockHash } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeResumeError: FfiConverterRustBuffer { typealias SwiftType = ResumeError @@ -16320,59 +14362,43 @@ public struct FfiConverterTypeResumeError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ResumeError { let variant: Int32 = try readInt(&buf) switch variant { - - - - case 1: return .BlocksDoNotMatch case 2: return .AlreadyParsed - case 3: return .ParsingError( - try FfiConverterString.read(from: &buf) + case 3: return try .ParsingError( + FfiConverterString.read(from: &buf) ) - case 4: return .BlockSizeMismatch( - expected: try FfiConverterUInt16.read(from: &buf), - actual: try FfiConverterUInt16.read(from: &buf) + case 4: return try .BlockSizeMismatch( + expected: FfiConverterUInt16.read(from: &buf), + actual: FfiConverterUInt16.read(from: &buf) ) case 5: return .UnableToGetFirstBlockHash - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ResumeError, into buf: inout [UInt8]) { switch value { - - - - - case .BlocksDoNotMatch: writeInt(&buf, Int32(1)) - - + case .AlreadyParsed: writeInt(&buf, Int32(2)) - - + case let .ParsingError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - - - case let .BlockSizeMismatch(expected,actual): + + case let .BlockSizeMismatch(expected, actual): writeInt(&buf, Int32(4)) FfiConverterUInt16.write(expected, into: &buf) FfiConverterUInt16.write(actual, into: &buf) - - + case .UnableToGetFirstBlockHash: writeInt(&buf, Int32(5)) - } } } - extension ResumeError: Equatable, Hashable {} extension ResumeError: Foundation.LocalizedError { @@ -16385,9 +14411,7 @@ extension ResumeError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Route { - - case loadAndReset(resetTo: BoxedRoute, afterMillis: UInt32 - ) + case loadAndReset(resetTo: BoxedRoute, afterMillis: UInt32) case listWallets case selectedWallet(WalletId ) @@ -16396,15 +14420,13 @@ public enum Route { case settings case secretWords(WalletId ) - case transactionDetails(id: WalletId, details: TransactionDetails - ) + case transactionDetails(id: WalletId, details: TransactionDetails) case send(SendRoute ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeRoute: FfiConverterRustBuffer { typealias SwiftType = Route @@ -16412,112 +14434,93 @@ public struct FfiConverterTypeRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Route { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .loadAndReset(resetTo: try FfiConverterTypeBoxedRoute.read(from: &buf), afterMillis: try FfiConverterUInt32.read(from: &buf) - ) - + case 1: return try .loadAndReset(resetTo: FfiConverterTypeBoxedRoute.read(from: &buf), afterMillis: FfiConverterUInt32.read(from: &buf)) + case 2: return .listWallets - - case 3: return .selectedWallet(try FfiConverterTypeWalletId.read(from: &buf) - ) - - case 4: return .newWallet(try FfiConverterTypeNewWalletRoute.read(from: &buf) - ) - + + case 3: return try .selectedWallet(FfiConverterTypeWalletId.read(from: &buf) + ) + + case 4: return try .newWallet(FfiConverterTypeNewWalletRoute.read(from: &buf) + ) + case 5: return .settings - - case 6: return .secretWords(try FfiConverterTypeWalletId.read(from: &buf) - ) - - case 7: return .transactionDetails(id: try FfiConverterTypeWalletId.read(from: &buf), details: try FfiConverterTypeTransactionDetails.read(from: &buf) - ) - - case 8: return .send(try FfiConverterTypeSendRoute.read(from: &buf) - ) - + + case 6: return try .secretWords(FfiConverterTypeWalletId.read(from: &buf) + ) + + case 7: return try .transactionDetails(id: FfiConverterTypeWalletId.read(from: &buf), details: FfiConverterTypeTransactionDetails.read(from: &buf)) + + case 8: return try .send(FfiConverterTypeSendRoute.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Route, into buf: inout [UInt8]) { switch value { - - - case let .loadAndReset(resetTo,afterMillis): + case let .loadAndReset(resetTo, afterMillis): writeInt(&buf, Int32(1)) FfiConverterTypeBoxedRoute.write(resetTo, into: &buf) FfiConverterUInt32.write(afterMillis, into: &buf) - - + case .listWallets: writeInt(&buf, Int32(2)) - - + case let .selectedWallet(v1): writeInt(&buf, Int32(3)) FfiConverterTypeWalletId.write(v1, into: &buf) - - + case let .newWallet(v1): writeInt(&buf, Int32(4)) FfiConverterTypeNewWalletRoute.write(v1, into: &buf) - - + case .settings: writeInt(&buf, Int32(5)) - - + case let .secretWords(v1): writeInt(&buf, Int32(6)) FfiConverterTypeWalletId.write(v1, into: &buf) - - - case let .transactionDetails(id,details): + + case let .transactionDetails(id, details): writeInt(&buf, Int32(7)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterTypeTransactionDetails.write(details, into: &buf) - - + case let .send(v1): writeInt(&buf, Int32(8)) FfiConverterTypeSendRoute.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRoute_lift(_ buf: RustBuffer) throws -> Route { - return try FfiConverterTypeRoute.lift(buf) + try FfiConverterTypeRoute.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeRoute_lower(_ value: Route) -> RustBuffer { - return FfiConverterTypeRoute.lower(value) + FfiConverterTypeRoute.lower(value) } - - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ScanState { - case notStarted case scanning(ScanningInfo ) case completed } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeScanState: FfiConverterRustBuffer { typealias SwiftType = ScanState @@ -16525,72 +14528,59 @@ public struct FfiConverterTypeScanState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ScanState { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .notStarted - - case 2: return .scanning(try FfiConverterTypeScanningInfo.read(from: &buf) - ) - + + case 2: return try .scanning(FfiConverterTypeScanningInfo.read(from: &buf) + ) + case 3: return .completed - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ScanState, into buf: inout [UInt8]) { switch value { - - case .notStarted: writeInt(&buf, Int32(1)) - - + case let .scanning(v1): writeInt(&buf, Int32(2)) FfiConverterTypeScanningInfo.write(v1, into: &buf) - - + case .completed: writeInt(&buf, Int32(3)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeScanState_lift(_ buf: RustBuffer) throws -> ScanState { - return try FfiConverterTypeScanState.lift(buf) + try FfiConverterTypeScanState.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeScanState_lower(_ value: ScanState) -> RustBuffer { - return FfiConverterTypeScanState.lower(value) + FfiConverterTypeScanState.lower(value) } - - extension ScanState: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ScannerResponse { - case foundAddresses([FoundAddress] ) case noneFound } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeScannerResponse: FfiConverterRustBuffer { typealias SwiftType = ScannerResponse @@ -16598,58 +14588,44 @@ public struct FfiConverterTypeScannerResponse: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ScannerResponse { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .foundAddresses(try FfiConverterSequenceTypeFoundAddress.read(from: &buf) - ) - + case 1: return try .foundAddresses(FfiConverterSequenceTypeFoundAddress.read(from: &buf) + ) + case 2: return .noneFound - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ScannerResponse, into buf: inout [UInt8]) { switch value { - - case let .foundAddresses(v1): writeInt(&buf, Int32(1)) FfiConverterSequenceTypeFoundAddress.write(v1, into: &buf) - - + case .noneFound: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeScannerResponse_lift(_ buf: RustBuffer) throws -> ScannerResponse { - return try FfiConverterTypeScannerResponse.lift(buf) + try FfiConverterTypeScannerResponse.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeScannerResponse_lower(_ value: ScannerResponse) -> RustBuffer { - return FfiConverterTypeScannerResponse.lower(value) + FfiConverterTypeScannerResponse.lower(value) } - - extension ScannerResponse: Equatable, Hashable {} - - - public enum SeedQrError { - - - case ContainsNonNumericChars case IndexOutOfBounds(UInt16 ) @@ -16659,9 +14635,8 @@ public enum SeedQrError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeSeedQrError: FfiConverterRustBuffer { typealias SwiftType = SeedQrError @@ -16669,55 +14644,40 @@ public struct FfiConverterTypeSeedQrError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SeedQrError { let variant: Int32 = try readInt(&buf) switch variant { - - - - case 1: return .ContainsNonNumericChars - case 2: return .IndexOutOfBounds( - try FfiConverterUInt16.read(from: &buf) + case 2: return try .IndexOutOfBounds( + FfiConverterUInt16.read(from: &buf) ) - case 3: return .IncorrectWordLength( - try FfiConverterUInt16.read(from: &buf) + case 3: return try .IncorrectWordLength( + FfiConverterUInt16.read(from: &buf) ) - case 4: return .InvalidMnemonic( - try FfiConverterTypeBip39Error.read(from: &buf) + case 4: return try .InvalidMnemonic( + FfiConverterTypeBip39Error.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: SeedQrError, into buf: inout [UInt8]) { switch value { - - - - - case .ContainsNonNumericChars: writeInt(&buf, Int32(1)) - - + case let .IndexOutOfBounds(v1): writeInt(&buf, Int32(2)) FfiConverterUInt16.write(v1, into: &buf) - - + case let .IncorrectWordLength(v1): writeInt(&buf, Int32(3)) FfiConverterUInt16.write(v1, into: &buf) - - + case let .InvalidMnemonic(v1): writeInt(&buf, Int32(4)) FfiConverterTypeBip39Error.write(v1, into: &buf) - } } } - extension SeedQrError: Equatable, Hashable {} extension SeedQrError: Foundation.LocalizedError { @@ -16730,18 +14690,13 @@ extension SeedQrError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum SendRoute { - - case setAmount(id: WalletId, address: Address?, amount: Amount? - ) - case hardwareExport(id: WalletId, details: ConfirmDetails - ) - case confirm(id: WalletId, details: ConfirmDetails - ) + case setAmount(id: WalletId, address: Address?, amount: Amount?) + case hardwareExport(id: WalletId, details: ConfirmDetails) + case confirm(id: WalletId, details: ConfirmDetails) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeSendRoute: FfiConverterRustBuffer { typealias SwiftType = SendRoute @@ -16749,78 +14704,60 @@ public struct FfiConverterTypeSendRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SendRoute { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .setAmount(id: try FfiConverterTypeWalletId.read(from: &buf), address: try FfiConverterOptionTypeAddress.read(from: &buf), amount: try FfiConverterOptionTypeAmount.read(from: &buf) - ) - - case 2: return .hardwareExport(id: try FfiConverterTypeWalletId.read(from: &buf), details: try FfiConverterTypeConfirmDetails.read(from: &buf) - ) - - case 3: return .confirm(id: try FfiConverterTypeWalletId.read(from: &buf), details: try FfiConverterTypeConfirmDetails.read(from: &buf) - ) - + case 1: return try .setAmount(id: FfiConverterTypeWalletId.read(from: &buf), address: FfiConverterOptionTypeAddress.read(from: &buf), amount: FfiConverterOptionTypeAmount.read(from: &buf)) + + case 2: return try .hardwareExport(id: FfiConverterTypeWalletId.read(from: &buf), details: FfiConverterTypeConfirmDetails.read(from: &buf)) + + case 3: return try .confirm(id: FfiConverterTypeWalletId.read(from: &buf), details: FfiConverterTypeConfirmDetails.read(from: &buf)) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: SendRoute, into buf: inout [UInt8]) { switch value { - - - case let .setAmount(id,address,amount): + case let .setAmount(id, address, amount): writeInt(&buf, Int32(1)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterOptionTypeAddress.write(address, into: &buf) FfiConverterOptionTypeAmount.write(amount, into: &buf) - - - case let .hardwareExport(id,details): + + case let .hardwareExport(id, details): writeInt(&buf, Int32(2)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterTypeConfirmDetails.write(details, into: &buf) - - - case let .confirm(id,details): + + case let .confirm(id, details): writeInt(&buf, Int32(3)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterTypeConfirmDetails.write(details, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeSendRoute_lift(_ buf: RustBuffer) throws -> SendRoute { - return try FfiConverterTypeSendRoute.lift(buf) + try FfiConverterTypeSendRoute.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeSendRoute_lower(_ value: SendRoute) -> RustBuffer { - return FfiConverterTypeSendRoute.lower(value) + FfiConverterTypeSendRoute.lower(value) } - - - - public enum SerdeError { - - - case SerializationError(String ) case DeserializationError(String ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeSerdeError: FfiConverterRustBuffer { typealias SwiftType = SerdeError @@ -16828,42 +14765,31 @@ public struct FfiConverterTypeSerdeError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SerdeError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .SerializationError( - try FfiConverterString.read(from: &buf) + case 1: return try .SerializationError( + FfiConverterString.read(from: &buf) ) - case 2: return .DeserializationError( - try FfiConverterString.read(from: &buf) + + case 2: return try .DeserializationError( + FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: SerdeError, into buf: inout [UInt8]) { switch value { - - - - - case let .SerializationError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .DeserializationError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - } } } - extension SerdeError: Equatable, Hashable {} extension SerdeError: Foundation.LocalizedError { @@ -16876,16 +14802,14 @@ extension SerdeError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum StringOrData { - case string(String ) case data(Data ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeStringOrData: FfiConverterRustBuffer { typealias SwiftType = StringOrData @@ -16893,67 +14817,55 @@ public struct FfiConverterTypeStringOrData: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> StringOrData { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .string(try FfiConverterString.read(from: &buf) - ) - - case 2: return .data(try FfiConverterData.read(from: &buf) - ) - + case 1: return try .string(FfiConverterString.read(from: &buf) + ) + + case 2: return try .data(FfiConverterData.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: StringOrData, into buf: inout [UInt8]) { switch value { - - case let .string(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .data(v1): writeInt(&buf, Int32(2)) FfiConverterData.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeStringOrData_lift(_ buf: RustBuffer) throws -> StringOrData { - return try FfiConverterTypeStringOrData.lift(buf) + try FfiConverterTypeStringOrData.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeStringOrData_lower(_ value: StringOrData) -> RustBuffer { - return FfiConverterTypeStringOrData.lower(value) + FfiConverterTypeStringOrData.lower(value) } - - extension StringOrData: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum TextPayloadFormat { - case utf8 case utf16 } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTextPayloadFormat: FfiConverterRustBuffer { typealias SwiftType = TextPayloadFormat @@ -16961,65 +14873,53 @@ public struct FfiConverterTypeTextPayloadFormat: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TextPayloadFormat { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .utf8 - + case 2: return .utf16 - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TextPayloadFormat, into buf: inout [UInt8]) { switch value { - - case .utf8: writeInt(&buf, Int32(1)) - - + case .utf16: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTextPayloadFormat_lift(_ buf: RustBuffer) throws -> TextPayloadFormat { - return try FfiConverterTypeTextPayloadFormat.lift(buf) + try FfiConverterTypeTextPayloadFormat.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTextPayloadFormat_lower(_ value: TextPayloadFormat) -> RustBuffer { - return FfiConverterTypeTextPayloadFormat.lower(value) + FfiConverterTypeTextPayloadFormat.lower(value) } - - extension TextPayloadFormat: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Transaction { - case confirmed(ConfirmedTransaction ) case unconfirmed(UnconfirmedTransaction ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTransaction: FfiConverterRustBuffer { typealias SwiftType = Transaction @@ -17027,57 +14927,44 @@ public struct FfiConverterTypeTransaction: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Transaction { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .confirmed(try FfiConverterTypeConfirmedTransaction.read(from: &buf) - ) - - case 2: return .unconfirmed(try FfiConverterTypeUnconfirmedTransaction.read(from: &buf) - ) - + case 1: return try .confirmed(FfiConverterTypeConfirmedTransaction.read(from: &buf) + ) + + case 2: return try .unconfirmed(FfiConverterTypeUnconfirmedTransaction.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Transaction, into buf: inout [UInt8]) { switch value { - - case let .confirmed(v1): writeInt(&buf, Int32(1)) FfiConverterTypeConfirmedTransaction.write(v1, into: &buf) - - + case let .unconfirmed(v1): writeInt(&buf, Int32(2)) FfiConverterTypeUnconfirmedTransaction.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTransaction_lift(_ buf: RustBuffer) throws -> Transaction { - return try FfiConverterTypeTransaction.lift(buf) + try FfiConverterTypeTransaction.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTransaction_lower(_ value: Transaction) -> RustBuffer { - return FfiConverterTypeTransaction.lower(value) + FfiConverterTypeTransaction.lower(value) } - - - - public enum TransactionDetailError { - - - case Fee(String ) case FeeRate(String @@ -17088,9 +14975,8 @@ public enum TransactionDetailError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionDetailError: FfiConverterRustBuffer { typealias SwiftType = TransactionDetailError @@ -17098,58 +14984,43 @@ public struct FfiConverterTypeTransactionDetailError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionDetailError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .Fee( - try FfiConverterString.read(from: &buf) + case 1: return try .Fee( + FfiConverterString.read(from: &buf) ) - case 2: return .FeeRate( - try FfiConverterString.read(from: &buf) + case 2: return try .FeeRate( + FfiConverterString.read(from: &buf) ) - case 3: return .Address( - try FfiConverterTypeAddressError.read(from: &buf) + case 3: return try .Address( + FfiConverterTypeAddressError.read(from: &buf) ) - case 4: return .FiatAmount( - try FfiConverterString.read(from: &buf) + case 4: return try .FiatAmount( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TransactionDetailError, into buf: inout [UInt8]) { switch value { - - - - - case let .Fee(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .FeeRate(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case let .Address(v1): writeInt(&buf, Int32(3)) FfiConverterTypeAddressError.write(v1, into: &buf) - - + case let .FiatAmount(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - } } } - extension TransactionDetailError: Equatable, Hashable {} extension TransactionDetailError: Foundation.LocalizedError { @@ -17162,14 +15033,12 @@ extension TransactionDetailError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum TransactionDirection { - case incoming case outgoing } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionDirection: FfiConverterRustBuffer { typealias SwiftType = TransactionDirection @@ -17177,63 +15046,51 @@ public struct FfiConverterTypeTransactionDirection: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionDirection { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .incoming - + case 2: return .outgoing - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TransactionDirection, into buf: inout [UInt8]) { switch value { - - case .incoming: writeInt(&buf, Int32(1)) - - + case .outgoing: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDirection_lift(_ buf: RustBuffer) throws -> TransactionDirection { - return try FfiConverterTypeTransactionDirection.lift(buf) + try FfiConverterTypeTransactionDirection.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDirection_lower(_ value: TransactionDirection) -> RustBuffer { - return FfiConverterTypeTransactionDirection.lower(value) + FfiConverterTypeTransactionDirection.lower(value) } - - extension TransactionDirection: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum TransactionState { - case pending case confirmed } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionState: FfiConverterRustBuffer { typealias SwiftType = TransactionState @@ -17241,63 +15098,51 @@ public struct FfiConverterTypeTransactionState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionState { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .pending - + case 2: return .confirmed - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TransactionState, into buf: inout [UInt8]) { switch value { - - case .pending: writeInt(&buf, Int32(1)) - - + case .confirmed: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTransactionState_lift(_ buf: RustBuffer) throws -> TransactionState { - return try FfiConverterTypeTransactionState.lift(buf) + try FfiConverterTypeTransactionState.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeTransactionState_lower(_ value: TransactionState) -> RustBuffer { - return FfiConverterTypeTransactionState.lower(value) + FfiConverterTypeTransactionState.lower(value) } - - extension TransactionState: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Unit { - case btc case sat } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeUnit: FfiConverterRustBuffer { typealias SwiftType = Unit @@ -17305,56 +15150,42 @@ public struct FfiConverterTypeUnit: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Unit { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .btc - + case 2: return .sat - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Unit, into buf: inout [UInt8]) { switch value { - - case .btc: writeInt(&buf, Int32(1)) - - + case .sat: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnit_lift(_ buf: RustBuffer) throws -> Unit { - return try FfiConverterTypeUnit.lift(buf) + try FfiConverterTypeUnit.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeUnit_lower(_ value: Unit) -> RustBuffer { - return FfiConverterTypeUnit.lower(value) + FfiConverterTypeUnit.lower(value) } - - extension Unit: Equatable, Hashable {} - - - public enum UnsignedTransactionsTableError { - - - case Save(String ) case Read(String @@ -17362,9 +15193,8 @@ public enum UnsignedTransactionsTableError { case NoRecordFound } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransactionsTableError: FfiConverterRustBuffer { typealias SwiftType = UnsignedTransactionsTableError @@ -17372,47 +15202,33 @@ public struct FfiConverterTypeUnsignedTransactionsTableError: FfiConverterRustBu public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransactionsTableError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .Save( - try FfiConverterString.read(from: &buf) + case 1: return try .Save( + FfiConverterString.read(from: &buf) ) - case 2: return .Read( - try FfiConverterString.read(from: &buf) + case 2: return try .Read( + FfiConverterString.read(from: &buf) ) case 3: return .NoRecordFound - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: UnsignedTransactionsTableError, into buf: inout [UInt8]) { switch value { - - - - - case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case .NoRecordFound: writeInt(&buf, Int32(3)) - } } } - extension UnsignedTransactionsTableError: Equatable, Hashable {} extension UnsignedTransactionsTableError: Foundation.LocalizedError { @@ -17425,15 +15241,13 @@ extension UnsignedTransactionsTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletAddressType { - case nativeSegwit case wrappedSegwit case legacy } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletAddressType: FfiConverterRustBuffer { typealias SwiftType = WalletAddressType @@ -17441,62 +15255,50 @@ public struct FfiConverterTypeWalletAddressType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletAddressType { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .nativeSegwit - + case 2: return .wrappedSegwit - + case 3: return .legacy - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletAddressType, into buf: inout [UInt8]) { switch value { - - case .nativeSegwit: writeInt(&buf, Int32(1)) - - + case .wrappedSegwit: writeInt(&buf, Int32(2)) - - + case .legacy: writeInt(&buf, Int32(3)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletAddressType_lift(_ buf: RustBuffer) throws -> WalletAddressType { - return try FfiConverterTypeWalletAddressType.lift(buf) + try FfiConverterTypeWalletAddressType.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletAddressType_lower(_ value: WalletAddressType) -> RustBuffer { - return FfiConverterTypeWalletAddressType.lower(value) + FfiConverterTypeWalletAddressType.lower(value) } - - extension WalletAddressType: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletColor { - case red case blue case green @@ -17504,13 +15306,11 @@ public enum WalletColor { case orange case purple case pink - case custom(r: UInt8, g: UInt8, b: UInt8 - ) + case custom(r: UInt8, g: UInt8, b: UInt8) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletColor: FfiConverterRustBuffer { typealias SwiftType = WalletColor @@ -17518,96 +15318,75 @@ public struct FfiConverterTypeWalletColor: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletColor { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .red - + case 2: return .blue - + case 3: return .green - + case 4: return .yellow - + case 5: return .orange - + case 6: return .purple - + case 7: return .pink - - case 8: return .custom(r: try FfiConverterUInt8.read(from: &buf), g: try FfiConverterUInt8.read(from: &buf), b: try FfiConverterUInt8.read(from: &buf) - ) - + + case 8: return try .custom(r: FfiConverterUInt8.read(from: &buf), g: FfiConverterUInt8.read(from: &buf), b: FfiConverterUInt8.read(from: &buf)) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletColor, into buf: inout [UInt8]) { switch value { - - case .red: writeInt(&buf, Int32(1)) - - + case .blue: writeInt(&buf, Int32(2)) - - + case .green: writeInt(&buf, Int32(3)) - - + case .yellow: writeInt(&buf, Int32(4)) - - + case .orange: writeInt(&buf, Int32(5)) - - + case .purple: writeInt(&buf, Int32(6)) - - + case .pink: writeInt(&buf, Int32(7)) - - - case let .custom(r,g,b): + + case let .custom(r, g, b): writeInt(&buf, Int32(8)) FfiConverterUInt8.write(r, into: &buf) FfiConverterUInt8.write(g, into: &buf) FfiConverterUInt8.write(b, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletColor_lift(_ buf: RustBuffer) throws -> WalletColor { - return try FfiConverterTypeWalletColor.lift(buf) + try FfiConverterTypeWalletColor.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletColor_lower(_ value: WalletColor) -> RustBuffer { - return FfiConverterTypeWalletColor.lower(value) + FfiConverterTypeWalletColor.lower(value) } - - extension WalletColor: Equatable, Hashable {} - - - public enum WalletCreationError { - - - case Bdk(String ) case Keychain(KeychainError @@ -17620,9 +15399,8 @@ public enum WalletCreationError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletCreationError: FfiConverterRustBuffer { typealias SwiftType = WalletCreationError @@ -17630,66 +15408,50 @@ public struct FfiConverterTypeWalletCreationError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletCreationError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .Bdk( - try FfiConverterString.read(from: &buf) + case 1: return try .Bdk( + FfiConverterString.read(from: &buf) ) - case 2: return .Keychain( - try FfiConverterTypeKeychainError.read(from: &buf) + case 2: return try .Keychain( + FfiConverterTypeKeychainError.read(from: &buf) ) - case 3: return .Database( - try FfiConverterTypeDatabaseError.read(from: &buf) + case 3: return try .Database( + FfiConverterTypeDatabaseError.read(from: &buf) ) - case 4: return .Persist( - try FfiConverterString.read(from: &buf) + case 4: return try .Persist( + FfiConverterString.read(from: &buf) ) - case 5: return .Import( - try FfiConverterString.read(from: &buf) + case 5: return try .Import( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletCreationError, into buf: inout [UInt8]) { switch value { - - - - - case let .Bdk(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .Keychain(v1): writeInt(&buf, Int32(2)) FfiConverterTypeKeychainError.write(v1, into: &buf) - - + case let .Database(v1): writeInt(&buf, Int32(3)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - - + case let .Persist(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - - + case let .Import(v1): writeInt(&buf, Int32(5)) FfiConverterString.write(v1, into: &buf) - } } } - extension WalletCreationError: Equatable, Hashable {} extension WalletCreationError: Foundation.LocalizedError { @@ -17698,15 +15460,9 @@ extension WalletCreationError: Foundation.LocalizedError { } } - public enum WalletDataError { - - - - case DatabaseAccess(id: WalletId, error: String - ) - case TableAccess(id: WalletId, error: String - ) + case DatabaseAccess(id: WalletId, error: String) + case TableAccess(id: WalletId, error: String) /** * Unable to read: {0} */ @@ -17719,9 +15475,8 @@ public enum WalletDataError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletDataError: FfiConverterRustBuffer { typealias SwiftType = WalletDataError @@ -17729,62 +15484,47 @@ public struct FfiConverterTypeWalletDataError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletDataError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .DatabaseAccess( - id: try FfiConverterTypeWalletId.read(from: &buf), - error: try FfiConverterString.read(from: &buf) + case 1: return try .DatabaseAccess( + id: FfiConverterTypeWalletId.read(from: &buf), + error: FfiConverterString.read(from: &buf) ) - case 2: return .TableAccess( - id: try FfiConverterTypeWalletId.read(from: &buf), - error: try FfiConverterString.read(from: &buf) + case 2: return try .TableAccess( + id: FfiConverterTypeWalletId.read(from: &buf), + error: FfiConverterString.read(from: &buf) ) - case 3: return .Read( - try FfiConverterString.read(from: &buf) + case 3: return try .Read( + FfiConverterString.read(from: &buf) ) - case 4: return .Save( - try FfiConverterString.read(from: &buf) + case 4: return try .Save( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletDataError, into buf: inout [UInt8]) { switch value { - - - - - - case let .DatabaseAccess(id,error): + case let .DatabaseAccess(id, error): writeInt(&buf, Int32(1)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterString.write(error, into: &buf) - - - case let .TableAccess(id,error): + + case let .TableAccess(id, error): writeInt(&buf, Int32(2)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterString.write(error, into: &buf) - - + case let .Read(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - - + case let .Save(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - } } } - extension WalletDataError: Equatable, Hashable {} extension WalletDataError: Foundation.LocalizedError { @@ -17797,14 +15537,12 @@ extension WalletDataError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletDataKey { - case scanState(WalletAddressType ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletDataKey: FfiConverterRustBuffer { typealias SwiftType = WalletDataKey @@ -17812,52 +15550,39 @@ public struct FfiConverterTypeWalletDataKey: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletDataKey { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .scanState(try FfiConverterTypeWalletAddressType.read(from: &buf) - ) - + case 1: return try .scanState(FfiConverterTypeWalletAddressType.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletDataKey, into buf: inout [UInt8]) { switch value { - - case let .scanState(v1): writeInt(&buf, Int32(1)) FfiConverterTypeWalletAddressType.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataKey_lift(_ buf: RustBuffer) throws -> WalletDataKey { - return try FfiConverterTypeWalletDataKey.lift(buf) + try FfiConverterTypeWalletDataKey.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataKey_lower(_ value: WalletDataKey) -> RustBuffer { - return FfiConverterTypeWalletDataKey.lower(value) + FfiConverterTypeWalletDataKey.lower(value) } - - extension WalletDataKey: Equatable, Hashable {} - - - public enum WalletError { - - - case BdkError(String ) case UnsupportedWallet(String @@ -17878,9 +15603,8 @@ public enum WalletError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletError: FfiConverterRustBuffer { typealias SwiftType = WalletError @@ -17888,100 +15612,79 @@ public struct FfiConverterTypeWalletError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .BdkError( - try FfiConverterString.read(from: &buf) + case 1: return try .BdkError( + FfiConverterString.read(from: &buf) ) - case 2: return .UnsupportedWallet( - try FfiConverterString.read(from: &buf) + case 2: return try .UnsupportedWallet( + FfiConverterString.read(from: &buf) ) - case 3: return .PersistError( - try FfiConverterString.read(from: &buf) + case 3: return try .PersistError( + FfiConverterString.read(from: &buf) ) - case 4: return .LoadError( - try FfiConverterString.read(from: &buf) + case 4: return try .LoadError( + FfiConverterString.read(from: &buf) ) - case 5: return .KeychainError( - try FfiConverterTypeKeychainError.read(from: &buf) + case 5: return try .KeychainError( + FfiConverterTypeKeychainError.read(from: &buf) ) - case 6: return .DatabaseError( - try FfiConverterTypeDatabaseError.read(from: &buf) + case 6: return try .DatabaseError( + FfiConverterTypeDatabaseError.read(from: &buf) ) case 7: return .WalletNotFound case 8: return .MetadataNotFound - case 9: return .ParseXpubError( - try FfiConverterTypeXpubError.read(from: &buf) + case 9: return try .ParseXpubError( + FfiConverterTypeXpubError.read(from: &buf) ) - case 10: return .WalletAlreadyExists( - try FfiConverterTypeWalletId.read(from: &buf) + case 10: return try .WalletAlreadyExists( + FfiConverterTypeWalletId.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletError, into buf: inout [UInt8]) { switch value { - - - - - case let .BdkError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .UnsupportedWallet(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case let .PersistError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - - + case let .LoadError(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - - + case let .KeychainError(v1): writeInt(&buf, Int32(5)) FfiConverterTypeKeychainError.write(v1, into: &buf) - - + case let .DatabaseError(v1): writeInt(&buf, Int32(6)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - - + case .WalletNotFound: writeInt(&buf, Int32(7)) - - + case .MetadataNotFound: writeInt(&buf, Int32(8)) - - + case let .ParseXpubError(v1): writeInt(&buf, Int32(9)) FfiConverterTypeXpubError.write(v1, into: &buf) - - + case let .WalletAlreadyExists(v1): writeInt(&buf, Int32(10)) FfiConverterTypeWalletId.write(v1, into: &buf) - } } } - extension WalletError: Equatable, Hashable {} extension WalletError: Foundation.LocalizedError { @@ -17994,15 +15697,13 @@ extension WalletError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletErrorAlert { - case nodeConnectionFailed(String ) case noBalance } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletErrorAlert: FfiConverterRustBuffer { typealias SwiftType = WalletErrorAlert @@ -18010,58 +15711,47 @@ public struct FfiConverterTypeWalletErrorAlert: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletErrorAlert { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .nodeConnectionFailed(try FfiConverterString.read(from: &buf) - ) - + case 1: return try .nodeConnectionFailed(FfiConverterString.read(from: &buf) + ) + case 2: return .noBalance - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletErrorAlert, into buf: inout [UInt8]) { switch value { - - case let .nodeConnectionFailed(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case .noBalance: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletErrorAlert_lift(_ buf: RustBuffer) throws -> WalletErrorAlert { - return try FfiConverterTypeWalletErrorAlert.lift(buf) + try FfiConverterTypeWalletErrorAlert.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletErrorAlert_lower(_ value: WalletErrorAlert) -> RustBuffer { - return FfiConverterTypeWalletErrorAlert.lower(value) + FfiConverterTypeWalletErrorAlert.lower(value) } - - extension WalletErrorAlert: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletLoadState { - case loading case scanning([Transaction] ) @@ -18069,9 +15759,8 @@ public enum WalletLoadState { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletLoadState: FfiConverterRustBuffer { typealias SwiftType = WalletLoadState @@ -18079,63 +15768,49 @@ public struct FfiConverterTypeWalletLoadState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletLoadState { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .loading - - case 2: return .scanning(try FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - - case 3: return .loaded(try FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - + + case 2: return try .scanning(FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + + case 3: return try .loaded(FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletLoadState, into buf: inout [UInt8]) { switch value { - - case .loading: writeInt(&buf, Int32(1)) - - + case let .scanning(v1): writeInt(&buf, Int32(2)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - - + case let .loaded(v1): writeInt(&buf, Int32(3)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletLoadState_lift(_ buf: RustBuffer) throws -> WalletLoadState { - return try FfiConverterTypeWalletLoadState.lift(buf) + try FfiConverterTypeWalletLoadState.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletLoadState_lower(_ value: WalletLoadState) -> RustBuffer { - return FfiConverterTypeWalletLoadState.lower(value) + FfiConverterTypeWalletLoadState.lower(value) } - - - - public enum WalletScannerError { - - - /** * No address types to scan */ @@ -18152,9 +15827,8 @@ public enum WalletScannerError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletScannerError: FfiConverterRustBuffer { typealias SwiftType = WalletScannerError @@ -18162,47 +15836,33 @@ public struct FfiConverterTypeWalletScannerError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletScannerError { let variant: Int32 = try readInt(&buf) switch variant { - - - - case 1: return .NoAddressTypes - case 2: return .WalletCreationError( - try FfiConverterTypeWalletError.read(from: &buf) + case 2: return try .WalletCreationError( + FfiConverterTypeWalletError.read(from: &buf) ) - case 3: return .NoMnemonicAvailable( - try FfiConverterTypeWalletId.read(from: &buf) + case 3: return try .NoMnemonicAvailable( + FfiConverterTypeWalletId.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletScannerError, into buf: inout [UInt8]) { switch value { - - - - - case .NoAddressTypes: writeInt(&buf, Int32(1)) - - + case let .WalletCreationError(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletError.write(v1, into: &buf) - - + case let .NoMnemonicAvailable(v1): writeInt(&buf, Int32(3)) FfiConverterTypeWalletId.write(v1, into: &buf) - } } } - extension WalletScannerError: Equatable, Hashable {} extension WalletScannerError: Foundation.LocalizedError { @@ -18211,11 +15871,7 @@ extension WalletScannerError: Foundation.LocalizedError { } } - public enum WalletTableError { - - - case SaveError(String ) case ReadError(String @@ -18223,9 +15879,8 @@ public enum WalletTableError { case WalletAlreadyExists } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletTableError: FfiConverterRustBuffer { typealias SwiftType = WalletTableError @@ -18233,47 +15888,33 @@ public struct FfiConverterTypeWalletTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletTableError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .SaveError( - try FfiConverterString.read(from: &buf) + case 1: return try .SaveError( + FfiConverterString.read(from: &buf) ) - case 2: return .ReadError( - try FfiConverterString.read(from: &buf) + case 2: return try .ReadError( + FfiConverterString.read(from: &buf) ) case 3: return .WalletAlreadyExists - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletTableError, into buf: inout [UInt8]) { switch value { - - - - - case let .SaveError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .ReadError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case .WalletAlreadyExists: writeInt(&buf, Int32(3)) - } } } - extension WalletTableError: Equatable, Hashable {} extension WalletTableError: Foundation.LocalizedError { @@ -18286,14 +15927,12 @@ extension WalletTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletType { - case hot case cold } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletType: FfiConverterRustBuffer { typealias SwiftType = WalletType @@ -18301,56 +15940,45 @@ public struct FfiConverterTypeWalletType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletType { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .hot - + case 2: return .cold - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletType, into buf: inout [UInt8]) { switch value { - - case .hot: writeInt(&buf, Int32(1)) - - + case .cold: writeInt(&buf, Int32(2)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletType_lift(_ buf: RustBuffer) throws -> WalletType { - return try FfiConverterTypeWalletType.lift(buf) + try FfiConverterTypeWalletType.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletType_lower(_ value: WalletType) -> RustBuffer { - return FfiConverterTypeWalletType.lower(value) + FfiConverterTypeWalletType.lower(value) } - - extension WalletType: Equatable, Hashable {} - - // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletViewModelAction { - case updateName(String ) case updateColor(WalletColor @@ -18370,9 +15998,8 @@ public enum WalletViewModelAction { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletViewModelAction: FfiConverterRustBuffer { typealias SwiftType = WalletViewModelAction @@ -18380,122 +16007,99 @@ public struct FfiConverterTypeWalletViewModelAction: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletViewModelAction { let variant: Int32 = try readInt(&buf) switch variant { - - case 1: return .updateName(try FfiConverterString.read(from: &buf) - ) - - case 2: return .updateColor(try FfiConverterTypeWalletColor.read(from: &buf) - ) - - case 3: return .updateUnit(try FfiConverterTypeUnit.read(from: &buf) - ) - - case 4: return .updateFiatCurrency(try FfiConverterTypeFiatCurrency.read(from: &buf) - ) - - case 5: return .updateFiatOrBtc(try FfiConverterTypeFiatOrBtc.read(from: &buf) - ) - + case 1: return try .updateName(FfiConverterString.read(from: &buf) + ) + + case 2: return try .updateColor(FfiConverterTypeWalletColor.read(from: &buf) + ) + + case 3: return try .updateUnit(FfiConverterTypeUnit.read(from: &buf) + ) + + case 4: return try .updateFiatCurrency(FfiConverterTypeFiatCurrency.read(from: &buf) + ) + + case 5: return try .updateFiatOrBtc(FfiConverterTypeFiatOrBtc.read(from: &buf) + ) + case 6: return .toggleSensitiveVisibility - + case 7: return .toggleDetailsExpanded - + case 8: return .toggleFiatOrBtc - + case 9: return .toggleFiatBtcPrimarySecondary - + case 10: return .selectCurrentWalletAddressType - - case 11: return .selectDifferentWalletAddressType(try FfiConverterTypeWalletAddressType.read(from: &buf) - ) - + + case 11: return try .selectDifferentWalletAddressType(FfiConverterTypeWalletAddressType.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletViewModelAction, into buf: inout [UInt8]) { switch value { - - case let .updateName(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case let .updateColor(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletColor.write(v1, into: &buf) - - + case let .updateUnit(v1): writeInt(&buf, Int32(3)) FfiConverterTypeUnit.write(v1, into: &buf) - - + case let .updateFiatCurrency(v1): writeInt(&buf, Int32(4)) FfiConverterTypeFiatCurrency.write(v1, into: &buf) - - + case let .updateFiatOrBtc(v1): writeInt(&buf, Int32(5)) FfiConverterTypeFiatOrBtc.write(v1, into: &buf) - - + case .toggleSensitiveVisibility: writeInt(&buf, Int32(6)) - - + case .toggleDetailsExpanded: writeInt(&buf, Int32(7)) - - + case .toggleFiatOrBtc: writeInt(&buf, Int32(8)) - - + case .toggleFiatBtcPrimarySecondary: writeInt(&buf, Int32(9)) - - + case .selectCurrentWalletAddressType: writeInt(&buf, Int32(10)) - - + case let .selectDifferentWalletAddressType(v1): writeInt(&buf, Int32(11)) FfiConverterTypeWalletAddressType.write(v1, into: &buf) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelAction_lift(_ buf: RustBuffer) throws -> WalletViewModelAction { - return try FfiConverterTypeWalletViewModelAction.lift(buf) + try FfiConverterTypeWalletViewModelAction.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelAction_lower(_ value: WalletViewModelAction) -> RustBuffer { - return FfiConverterTypeWalletViewModelAction.lower(value) + FfiConverterTypeWalletViewModelAction.lower(value) } - - extension WalletViewModelAction: Equatable, Hashable {} - - - public enum WalletViewModelError { - - - case GetSelectedWalletError(String ) case WalletDoesNotExist @@ -18519,8 +16123,7 @@ public enum WalletViewModelError { case TransactionDetailsError(String ) case ActorNotFound - case UnableToSwitch(WalletAddressType,String - ) + case UnableToSwitch(WalletAddressType, String) case FiatError(String ) case FeesError(String @@ -18533,9 +16136,8 @@ public enum WalletViewModelError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletViewModelError: FfiConverterRustBuffer { typealias SwiftType = WalletViewModelError @@ -18543,171 +16145,141 @@ public struct FfiConverterTypeWalletViewModelError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletViewModelError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .GetSelectedWalletError( - try FfiConverterString.read(from: &buf) + case 1: return try .GetSelectedWalletError( + FfiConverterString.read(from: &buf) ) case 2: return .WalletDoesNotExist - case 3: return .SecretRetrievalError( - try FfiConverterTypeKeychainError.read(from: &buf) + case 3: return try .SecretRetrievalError( + FfiConverterTypeKeychainError.read(from: &buf) ) - case 4: return .MarkWalletAsVerifiedError( - try FfiConverterTypeDatabaseError.read(from: &buf) + case 4: return try .MarkWalletAsVerifiedError( + FfiConverterTypeDatabaseError.read(from: &buf) ) - case 5: return .LoadWalletError( - try FfiConverterTypeWalletError.read(from: &buf) + case 5: return try .LoadWalletError( + FfiConverterTypeWalletError.read(from: &buf) ) - case 6: return .NodeConnectionFailed( - try FfiConverterString.read(from: &buf) + case 6: return try .NodeConnectionFailed( + FfiConverterString.read(from: &buf) ) - case 7: return .WalletScanError( - try FfiConverterString.read(from: &buf) + case 7: return try .WalletScanError( + FfiConverterString.read(from: &buf) ) - case 8: return .TransactionsRetrievalError( - try FfiConverterString.read(from: &buf) + case 8: return try .TransactionsRetrievalError( + FfiConverterString.read(from: &buf) ) - case 9: return .WalletBalanceError( - try FfiConverterString.read(from: &buf) + case 9: return try .WalletBalanceError( + FfiConverterString.read(from: &buf) ) - case 10: return .NextAddressError( - try FfiConverterString.read(from: &buf) + case 10: return try .NextAddressError( + FfiConverterString.read(from: &buf) ) case 11: return .GetHeightError - case 12: return .TransactionDetailsError( - try FfiConverterString.read(from: &buf) + case 12: return try .TransactionDetailsError( + FfiConverterString.read(from: &buf) ) case 13: return .ActorNotFound - case 14: return .UnableToSwitch( - try FfiConverterTypeWalletAddressType.read(from: &buf), - try FfiConverterString.read(from: &buf) + case 14: return try .UnableToSwitch( + FfiConverterTypeWalletAddressType.read(from: &buf), + FfiConverterString.read(from: &buf) ) - case 15: return .FiatError( - try FfiConverterString.read(from: &buf) + case 15: return try .FiatError( + FfiConverterString.read(from: &buf) ) - case 16: return .FeesError( - try FfiConverterString.read(from: &buf) + case 16: return try .FeesError( + FfiConverterString.read(from: &buf) ) - case 17: return .BuildTxError( - try FfiConverterString.read(from: &buf) + case 17: return try .BuildTxError( + FfiConverterString.read(from: &buf) ) - case 18: return .InsufficientFunds( - try FfiConverterString.read(from: &buf) + case 18: return try .InsufficientFunds( + FfiConverterString.read(from: &buf) ) - case 19: return .GetConfirmDetailsError( - try FfiConverterString.read(from: &buf) + case 19: return try .GetConfirmDetailsError( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletViewModelError, into buf: inout [UInt8]) { switch value { - - - - - case let .GetSelectedWalletError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - - + case .WalletDoesNotExist: writeInt(&buf, Int32(2)) - - + case let .SecretRetrievalError(v1): writeInt(&buf, Int32(3)) FfiConverterTypeKeychainError.write(v1, into: &buf) - - + case let .MarkWalletAsVerifiedError(v1): writeInt(&buf, Int32(4)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - - + case let .LoadWalletError(v1): writeInt(&buf, Int32(5)) FfiConverterTypeWalletError.write(v1, into: &buf) - - + case let .NodeConnectionFailed(v1): writeInt(&buf, Int32(6)) FfiConverterString.write(v1, into: &buf) - - + case let .WalletScanError(v1): writeInt(&buf, Int32(7)) FfiConverterString.write(v1, into: &buf) - - + case let .TransactionsRetrievalError(v1): writeInt(&buf, Int32(8)) FfiConverterString.write(v1, into: &buf) - - + case let .WalletBalanceError(v1): writeInt(&buf, Int32(9)) FfiConverterString.write(v1, into: &buf) - - + case let .NextAddressError(v1): writeInt(&buf, Int32(10)) FfiConverterString.write(v1, into: &buf) - - + case .GetHeightError: writeInt(&buf, Int32(11)) - - + case let .TransactionDetailsError(v1): writeInt(&buf, Int32(12)) FfiConverterString.write(v1, into: &buf) - - + case .ActorNotFound: writeInt(&buf, Int32(13)) - - - case let .UnableToSwitch(v1,v2): + + case let .UnableToSwitch(v1, v2): writeInt(&buf, Int32(14)) FfiConverterTypeWalletAddressType.write(v1, into: &buf) FfiConverterString.write(v2, into: &buf) - - + case let .FiatError(v1): writeInt(&buf, Int32(15)) FfiConverterString.write(v1, into: &buf) - - + case let .FeesError(v1): writeInt(&buf, Int32(16)) FfiConverterString.write(v1, into: &buf) - - + case let .BuildTxError(v1): writeInt(&buf, Int32(17)) FfiConverterString.write(v1, into: &buf) - - + case let .InsufficientFunds(v1): writeInt(&buf, Int32(18)) FfiConverterString.write(v1, into: &buf) - - + case let .GetConfirmDetailsError(v1): writeInt(&buf, Int32(19)) FfiConverterString.write(v1, into: &buf) - } } } - extension WalletViewModelError: Equatable, Hashable {} extension WalletViewModelError: Foundation.LocalizedError { @@ -18720,7 +16292,6 @@ extension WalletViewModelError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletViewModelReconcileMessage { - case startedWalletScan case availableTransactions([Transaction] ) @@ -18741,9 +16312,8 @@ public enum WalletViewModelReconcileMessage { case unsignedTransactionsChanged } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletViewModelReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = WalletViewModelReconcileMessage @@ -18751,117 +16321,96 @@ public struct FfiConverterTypeWalletViewModelReconcileMessage: FfiConverterRustB public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletViewModelReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return .startedWalletScan - - case 2: return .availableTransactions(try FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - - case 3: return .scanComplete(try FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - - case 4: return .nodeConnectionFailed(try FfiConverterString.read(from: &buf) - ) - - case 5: return .walletMetadataChanged(try FfiConverterTypeWalletMetadata.read(from: &buf) - ) - - case 6: return .walletBalanceChanged(try FfiConverterTypeBalance.read(from: &buf) - ) - - case 7: return .walletError(try FfiConverterTypeWalletViewModelError.read(from: &buf) - ) - - case 8: return .unknownError(try FfiConverterString.read(from: &buf) - ) - - case 9: return .walletScannerResponse(try FfiConverterTypeScannerResponse.read(from: &buf) - ) - + + case 2: return try .availableTransactions(FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + + case 3: return try .scanComplete(FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + + case 4: return try .nodeConnectionFailed(FfiConverterString.read(from: &buf) + ) + + case 5: return try .walletMetadataChanged(FfiConverterTypeWalletMetadata.read(from: &buf) + ) + + case 6: return try .walletBalanceChanged(FfiConverterTypeBalance.read(from: &buf) + ) + + case 7: return try .walletError(FfiConverterTypeWalletViewModelError.read(from: &buf) + ) + + case 8: return try .unknownError(FfiConverterString.read(from: &buf) + ) + + case 9: return try .walletScannerResponse(FfiConverterTypeScannerResponse.read(from: &buf) + ) + case 10: return .unsignedTransactionsChanged - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletViewModelReconcileMessage, into buf: inout [UInt8]) { switch value { - - case .startedWalletScan: writeInt(&buf, Int32(1)) - - + case let .availableTransactions(v1): writeInt(&buf, Int32(2)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - - + case let .scanComplete(v1): writeInt(&buf, Int32(3)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - - + case let .nodeConnectionFailed(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - - + case let .walletMetadataChanged(v1): writeInt(&buf, Int32(5)) FfiConverterTypeWalletMetadata.write(v1, into: &buf) - - + case let .walletBalanceChanged(v1): writeInt(&buf, Int32(6)) FfiConverterTypeBalance.write(v1, into: &buf) - - + case let .walletError(v1): writeInt(&buf, Int32(7)) FfiConverterTypeWalletViewModelError.write(v1, into: &buf) - - + case let .unknownError(v1): writeInt(&buf, Int32(8)) FfiConverterString.write(v1, into: &buf) - - + case let .walletScannerResponse(v1): writeInt(&buf, Int32(9)) FfiConverterTypeScannerResponse.write(v1, into: &buf) - - + case .unsignedTransactionsChanged: writeInt(&buf, Int32(10)) - } } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelReconcileMessage_lift(_ buf: RustBuffer) throws -> WalletViewModelReconcileMessage { - return try FfiConverterTypeWalletViewModelReconcileMessage.lift(buf) + try FfiConverterTypeWalletViewModelReconcileMessage.lift(buf) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelReconcileMessage_lower(_ value: WalletViewModelReconcileMessage) -> RustBuffer { - return FfiConverterTypeWalletViewModelReconcileMessage.lower(value) + FfiConverterTypeWalletViewModelReconcileMessage.lower(value) } - - - - public enum XpubError { - - - case InvalidDescriptor(DescriptorError ) case InvalidJson(String @@ -18872,9 +16421,8 @@ public enum XpubError { ) } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeXpubError: FfiConverterRustBuffer { typealias SwiftType = XpubError @@ -18882,60 +16430,44 @@ public struct FfiConverterTypeXpubError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> XpubError { let variant: Int32 = try readInt(&buf) switch variant { - - - - - case 1: return .InvalidDescriptor( - try FfiConverterTypeDescriptorError.read(from: &buf) + case 1: return try .InvalidDescriptor( + FfiConverterTypeDescriptorError.read(from: &buf) ) - case 2: return .InvalidJson( - try FfiConverterString.read(from: &buf) + case 2: return try .InvalidJson( + FfiConverterString.read(from: &buf) ) case 3: return .InvalidDescriptorInJson case 4: return .JsonNoDecriptor - case 5: return .MissingXpub( - try FfiConverterString.read(from: &buf) + case 5: return try .MissingXpub( + FfiConverterString.read(from: &buf) ) - - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: XpubError, into buf: inout [UInt8]) { switch value { - - - - - case let .InvalidDescriptor(v1): writeInt(&buf, Int32(1)) FfiConverterTypeDescriptorError.write(v1, into: &buf) - - + case let .InvalidJson(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - - + case .InvalidDescriptorInJson: writeInt(&buf, Int32(3)) - - + case .JsonNoDecriptor: writeInt(&buf, Int32(4)) - - + case let .MissingXpub(v1): writeInt(&buf, Int32(5)) FfiConverterString.write(v1, into: &buf) - } } } - extension XpubError: Equatable, Hashable {} extension XpubError: Foundation.LocalizedError { @@ -18944,23 +16476,15 @@ extension XpubError: Foundation.LocalizedError { } } - - - -public protocol FfiReconcile : AnyObject { - +public protocol FfiReconcile: AnyObject { /** * Essentially a callback to the frontend */ - func reconcile(message: AppStateReconcileMessage) - + func reconcile(message: AppStateReconcileMessage) } - - // Put the implementation in a struct so we don't pollute the top-level namespace -fileprivate struct UniffiCallbackInterfaceFfiReconcile { - +private enum UniffiCallbackInterfaceFfiReconcile { // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -18970,20 +16494,19 @@ fileprivate struct UniffiCallbackInterfaceFfiReconcile { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - uniffiOutReturn: UnsafeMutableRawPointer, + _: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws -> () in + () throws in guard let uniffiObj = try? FfiConverterCallbackInterfaceFfiReconcile.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return uniffiObj.reconcile( - message: try FfiConverterTypeAppStateReconcileMessage.lift(message) + return try uniffiObj.reconcile( + message: FfiConverterTypeAppStateReconcileMessage.lift(message) ) } - let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -18991,7 +16514,7 @@ fileprivate struct UniffiCallbackInterfaceFfiReconcile { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) -> () in + uniffiFree: { (uniffiHandle: UInt64) in let result = try? FfiConverterCallbackInterfaceFfiReconcile.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface FfiReconcile: handle missing in uniffiFree") @@ -19006,66 +16529,58 @@ private func uniffiCallbackInitFfiReconcile() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterCallbackInterfaceFfiReconcile { +private enum FfiConverterCallbackInterfaceFfiReconcile { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceFfiReconcile : FfiConverter { +extension FfiConverterCallbackInterfaceFfiReconcile: FfiConverter { typealias SwiftType = FfiReconcile typealias FfiType = UInt64 -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lower(_ v: SwiftType) -> UInt64 { - return handleMap.insert(obj: v) + handleMap.insert(obj: v) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } - - - -public protocol ImportWalletViewModelReconciler : AnyObject { - +public protocol ImportWalletViewModelReconciler: AnyObject { /** * Tells the frontend to reconcile the view model changes */ - func reconcile(message: ImportWalletViewModelReconcileMessage) - + func reconcile(message: ImportWalletViewModelReconcileMessage) } - - // Put the implementation in a struct so we don't pollute the top-level namespace -fileprivate struct UniffiCallbackInterfaceImportWalletViewModelReconciler { - +private enum UniffiCallbackInterfaceImportWalletViewModelReconciler { // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -19075,20 +16590,19 @@ fileprivate struct UniffiCallbackInterfaceImportWalletViewModelReconciler { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - uniffiOutReturn: UnsafeMutableRawPointer, + _: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws -> () in + () throws in guard let uniffiObj = try? FfiConverterCallbackInterfaceImportWalletViewModelReconciler.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return uniffiObj.reconcile( - message: try FfiConverterTypeImportWalletViewModelReconcileMessage.lift(message) + return try uniffiObj.reconcile( + message: FfiConverterTypeImportWalletViewModelReconcileMessage.lift(message) ) } - let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -19096,7 +16610,7 @@ fileprivate struct UniffiCallbackInterfaceImportWalletViewModelReconciler { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) -> () in + uniffiFree: { (uniffiHandle: UInt64) in let result = try? FfiConverterCallbackInterfaceImportWalletViewModelReconciler.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface ImportWalletViewModelReconciler: handle missing in uniffiFree") @@ -19111,67 +16625,59 @@ private func uniffiCallbackInitImportWalletViewModelReconciler() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterCallbackInterfaceImportWalletViewModelReconciler { +private enum FfiConverterCallbackInterfaceImportWalletViewModelReconciler { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceImportWalletViewModelReconciler : FfiConverter { +extension FfiConverterCallbackInterfaceImportWalletViewModelReconciler: FfiConverter { typealias SwiftType = ImportWalletViewModelReconciler typealias FfiType = UInt64 -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lower(_ v: SwiftType) -> UInt64 { - return handleMap.insert(obj: v) + handleMap.insert(obj: v) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } +public protocol KeychainAccess: AnyObject { + func save(key: String, value: String) throws + func get(key: String) -> String? - -public protocol KeychainAccess : AnyObject { - - func save(key: String, value: String) throws - - func get(key: String) -> String? - - func delete(key: String) -> Bool - + func delete(key: String) -> Bool } - - // Put the implementation in a struct so we don't pollute the top-level namespace -fileprivate struct UniffiCallbackInterfaceKeychainAccess { - +private enum UniffiCallbackInterfaceKeychainAccess { // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -19182,21 +16688,20 @@ fileprivate struct UniffiCallbackInterfaceKeychainAccess { uniffiHandle: UInt64, key: RustBuffer, value: RustBuffer, - uniffiOutReturn: UnsafeMutableRawPointer, + _: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws -> () in + () throws in guard let uniffiObj = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } return try uniffiObj.save( - key: try FfiConverterString.lift(key), - value: try FfiConverterString.lift(value) + key: FfiConverterString.lift(key), + value: FfiConverterString.lift(value) ) } - let writeReturn = { () } uniffiTraitInterfaceCallWithError( callStatus: uniffiCallStatus, @@ -19216,12 +16721,11 @@ fileprivate struct UniffiCallbackInterfaceKeychainAccess { guard let uniffiObj = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return uniffiObj.get( - key: try FfiConverterString.lift(key) + return try uniffiObj.get( + key: FfiConverterString.lift(key) ) } - let writeReturn = { uniffiOutReturn.pointee = FfiConverterOptionString.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -19240,12 +16744,11 @@ fileprivate struct UniffiCallbackInterfaceKeychainAccess { guard let uniffiObj = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return uniffiObj.delete( - key: try FfiConverterString.lift(key) + return try uniffiObj.delete( + key: FfiConverterString.lift(key) ) } - let writeReturn = { uniffiOutReturn.pointee = FfiConverterBool.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -19253,7 +16756,7 @@ fileprivate struct UniffiCallbackInterfaceKeychainAccess { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) -> () in + uniffiFree: { (uniffiHandle: UInt64) in let result = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface KeychainAccess: handle missing in uniffiFree") @@ -19268,66 +16771,58 @@ private func uniffiCallbackInitKeychainAccess() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterCallbackInterfaceKeychainAccess { +private enum FfiConverterCallbackInterfaceKeychainAccess { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceKeychainAccess : FfiConverter { +extension FfiConverterCallbackInterfaceKeychainAccess: FfiConverter { typealias SwiftType = KeychainAccess typealias FfiType = UInt64 -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lower(_ v: SwiftType) -> UInt64 { - return handleMap.insert(obj: v) + handleMap.insert(obj: v) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } - - - -public protocol PendingWalletViewModelReconciler : AnyObject { - +public protocol PendingWalletViewModelReconciler: AnyObject { /** * Tells the frontend to reconcile the view model changes */ - func reconcile(message: PendingWalletViewModelReconcileMessage) - + func reconcile(message: PendingWalletViewModelReconcileMessage) } - - // Put the implementation in a struct so we don't pollute the top-level namespace -fileprivate struct UniffiCallbackInterfacePendingWalletViewModelReconciler { - +private enum UniffiCallbackInterfacePendingWalletViewModelReconciler { // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -19337,20 +16832,19 @@ fileprivate struct UniffiCallbackInterfacePendingWalletViewModelReconciler { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - uniffiOutReturn: UnsafeMutableRawPointer, + _: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws -> () in + () throws in guard let uniffiObj = try? FfiConverterCallbackInterfacePendingWalletViewModelReconciler.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return uniffiObj.reconcile( - message: try FfiConverterTypePendingWalletViewModelReconcileMessage.lift(message) + return try uniffiObj.reconcile( + message: FfiConverterTypePendingWalletViewModelReconcileMessage.lift(message) ) } - let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -19358,7 +16852,7 @@ fileprivate struct UniffiCallbackInterfacePendingWalletViewModelReconciler { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) -> () in + uniffiFree: { (uniffiHandle: UInt64) in let result = try? FfiConverterCallbackInterfacePendingWalletViewModelReconciler.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface PendingWalletViewModelReconciler: handle missing in uniffiFree") @@ -19373,66 +16867,58 @@ private func uniffiCallbackInitPendingWalletViewModelReconciler() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterCallbackInterfacePendingWalletViewModelReconciler { +private enum FfiConverterCallbackInterfacePendingWalletViewModelReconciler { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfacePendingWalletViewModelReconciler : FfiConverter { +extension FfiConverterCallbackInterfacePendingWalletViewModelReconciler: FfiConverter { typealias SwiftType = PendingWalletViewModelReconciler typealias FfiType = UInt64 -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lower(_ v: SwiftType) -> UInt64 { - return handleMap.insert(obj: v) + handleMap.insert(obj: v) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } - - - -public protocol WalletViewModelReconciler : AnyObject { - +public protocol WalletViewModelReconciler: AnyObject { /** * Tells the frontend to reconcile the view model changes */ - func reconcile(message: WalletViewModelReconcileMessage) - + func reconcile(message: WalletViewModelReconcileMessage) } - - // Put the implementation in a struct so we don't pollute the top-level namespace -fileprivate struct UniffiCallbackInterfaceWalletViewModelReconciler { - +private enum UniffiCallbackInterfaceWalletViewModelReconciler { // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -19442,20 +16928,19 @@ fileprivate struct UniffiCallbackInterfaceWalletViewModelReconciler { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - uniffiOutReturn: UnsafeMutableRawPointer, + _: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws -> () in + () throws in guard let uniffiObj = try? FfiConverterCallbackInterfaceWalletViewModelReconciler.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return uniffiObj.reconcile( - message: try FfiConverterTypeWalletViewModelReconcileMessage.lift(message) + return try uniffiObj.reconcile( + message: FfiConverterTypeWalletViewModelReconcileMessage.lift(message) ) } - let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -19463,7 +16948,7 @@ fileprivate struct UniffiCallbackInterfaceWalletViewModelReconciler { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) -> () in + uniffiFree: { (uniffiHandle: UInt64) in let result = try? FfiConverterCallbackInterfaceWalletViewModelReconciler.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface WalletViewModelReconciler: handle missing in uniffiFree") @@ -19478,57 +16963,57 @@ private func uniffiCallbackInitWalletViewModelReconciler() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterCallbackInterfaceWalletViewModelReconciler { +private enum FfiConverterCallbackInterfaceWalletViewModelReconciler { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceWalletViewModelReconciler : FfiConverter { +extension FfiConverterCallbackInterfaceWalletViewModelReconciler: FfiConverter { typealias SwiftType = WalletViewModelReconciler typealias FfiType = UInt64 -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func lower(_ v: SwiftType) -> UInt64 { - return handleMap.insert(obj: v) + handleMap.insert(obj: v) } -#if swift(>=5.8) - @_documentation(visibility: private) -#endif + #if swift(>=5.8) + @_documentation(visibility: private) + #endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionUInt8: FfiConverterRustBuffer { +private struct FfiConverterOptionUInt8: FfiConverterRustBuffer { typealias SwiftType = UInt8? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19546,13 +17031,13 @@ fileprivate struct FfiConverterOptionUInt8: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionUInt32: FfiConverterRustBuffer { +private struct FfiConverterOptionUInt32: FfiConverterRustBuffer { typealias SwiftType = UInt32? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19570,13 +17055,13 @@ fileprivate struct FfiConverterOptionUInt32: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionString: FfiConverterRustBuffer { +private struct FfiConverterOptionString: FfiConverterRustBuffer { typealias SwiftType = String? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19594,13 +17079,13 @@ fileprivate struct FfiConverterOptionString: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionData: FfiConverterRustBuffer { +private struct FfiConverterOptionData: FfiConverterRustBuffer { typealias SwiftType = Data? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19618,13 +17103,13 @@ fileprivate struct FfiConverterOptionData: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionDuration: FfiConverterRustBuffer { +private struct FfiConverterOptionDuration: FfiConverterRustBuffer { typealias SwiftType = TimeInterval? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19642,13 +17127,13 @@ fileprivate struct FfiConverterOptionDuration: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeAddress: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeAddress: FfiConverterRustBuffer { typealias SwiftType = Address? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19666,13 +17151,13 @@ fileprivate struct FfiConverterOptionTypeAddress: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeAmount: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeAmount: FfiConverterRustBuffer { typealias SwiftType = Amount? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19690,13 +17175,13 @@ fileprivate struct FfiConverterOptionTypeAmount: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeFeeRateOptions: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeFeeRateOptions: FfiConverterRustBuffer { typealias SwiftType = FeeRateOptions? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19714,13 +17199,13 @@ fileprivate struct FfiConverterOptionTypeFeeRateOptions: FfiConverterRustBuffer } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeFingerprint: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeFingerprint: FfiConverterRustBuffer { typealias SwiftType = Fingerprint? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19738,13 +17223,13 @@ fileprivate struct FfiConverterOptionTypeFingerprint: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeUnsignedTransactionRecord: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeUnsignedTransactionRecord: FfiConverterRustBuffer { typealias SwiftType = UnsignedTransactionRecord? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19762,13 +17247,13 @@ fileprivate struct FfiConverterOptionTypeUnsignedTransactionRecord: FfiConverter } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeAddressIndex: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeAddressIndex: FfiConverterRustBuffer { typealias SwiftType = AddressIndex? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19786,13 +17271,13 @@ fileprivate struct FfiConverterOptionTypeAddressIndex: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeBlockSizeLast: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeBlockSizeLast: FfiConverterRustBuffer { typealias SwiftType = BlockSizeLast? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19810,13 +17295,13 @@ fileprivate struct FfiConverterOptionTypeBlockSizeLast: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeFeeResponse: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeFeeResponse: FfiConverterRustBuffer { typealias SwiftType = FeeResponse? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19834,13 +17319,13 @@ fileprivate struct FfiConverterOptionTypeFeeResponse: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeFiatAmount: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeFiatAmount: FfiConverterRustBuffer { typealias SwiftType = FiatAmount? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19858,13 +17343,13 @@ fileprivate struct FfiConverterOptionTypeFiatAmount: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeMessageInfo: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeMessageInfo: FfiConverterRustBuffer { typealias SwiftType = MessageInfo? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19882,13 +17367,13 @@ fileprivate struct FfiConverterOptionTypeMessageInfo: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionSequenceSequenceString: FfiConverterRustBuffer { +private struct FfiConverterOptionSequenceSequenceString: FfiConverterRustBuffer { typealias SwiftType = [[String]]? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19906,13 +17391,13 @@ fileprivate struct FfiConverterOptionSequenceSequenceString: FfiConverterRustBuf } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterOptionTypeWalletId: FfiConverterRustBuffer { +private struct FfiConverterOptionTypeWalletId: FfiConverterRustBuffer { typealias SwiftType = WalletId? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value = value else { + guard let value else { writeInt(&buf, Int8(0)) return } @@ -19930,9 +17415,9 @@ fileprivate struct FfiConverterOptionTypeWalletId: FfiConverterRustBuffer { } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer { +private struct FfiConverterSequenceString: FfiConverterRustBuffer { typealias SwiftType = [String] public static func write(_ value: [String], into buf: inout [UInt8]) { @@ -19948,16 +17433,16 @@ fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer { var seq = [String]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterString.read(from: &buf)) + try seq.append(FfiConverterString.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeUnsignedTransaction: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeUnsignedTransaction: FfiConverterRustBuffer { typealias SwiftType = [UnsignedTransaction] public static func write(_ value: [UnsignedTransaction], into buf: inout [UInt8]) { @@ -19973,16 +17458,16 @@ fileprivate struct FfiConverterSequenceTypeUnsignedTransaction: FfiConverterRust var seq = [UnsignedTransaction]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeUnsignedTransaction.read(from: &buf)) + try seq.append(FfiConverterTypeUnsignedTransaction.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeFoundAddress: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeFoundAddress: FfiConverterRustBuffer { typealias SwiftType = [FoundAddress] public static func write(_ value: [FoundAddress], into buf: inout [UInt8]) { @@ -19998,16 +17483,16 @@ fileprivate struct FfiConverterSequenceTypeFoundAddress: FfiConverterRustBuffer var seq = [FoundAddress]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeFoundAddress.read(from: &buf)) + try seq.append(FfiConverterTypeFoundAddress.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeGroupedWord: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeGroupedWord: FfiConverterRustBuffer { typealias SwiftType = [GroupedWord] public static func write(_ value: [GroupedWord], into buf: inout [UInt8]) { @@ -20023,16 +17508,16 @@ fileprivate struct FfiConverterSequenceTypeGroupedWord: FfiConverterRustBuffer { var seq = [GroupedWord]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeGroupedWord.read(from: &buf)) + try seq.append(FfiConverterTypeGroupedWord.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeNdefRecord: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeNdefRecord: FfiConverterRustBuffer { typealias SwiftType = [NdefRecord] public static func write(_ value: [NdefRecord], into buf: inout [UInt8]) { @@ -20048,16 +17533,16 @@ fileprivate struct FfiConverterSequenceTypeNdefRecord: FfiConverterRustBuffer { var seq = [NdefRecord]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeNdefRecord.read(from: &buf)) + try seq.append(FfiConverterTypeNdefRecord.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeWalletMetadata: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeWalletMetadata: FfiConverterRustBuffer { typealias SwiftType = [WalletMetadata] public static func write(_ value: [WalletMetadata], into buf: inout [UInt8]) { @@ -20073,16 +17558,16 @@ fileprivate struct FfiConverterSequenceTypeWalletMetadata: FfiConverterRustBuffe var seq = [WalletMetadata]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeWalletMetadata.read(from: &buf)) + try seq.append(FfiConverterTypeWalletMetadata.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeColorSchemeSelection: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeColorSchemeSelection: FfiConverterRustBuffer { typealias SwiftType = [ColorSchemeSelection] public static func write(_ value: [ColorSchemeSelection], into buf: inout [UInt8]) { @@ -20098,16 +17583,16 @@ fileprivate struct FfiConverterSequenceTypeColorSchemeSelection: FfiConverterRus var seq = [ColorSchemeSelection]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeColorSchemeSelection.read(from: &buf)) + try seq.append(FfiConverterTypeColorSchemeSelection.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeNetwork: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeNetwork: FfiConverterRustBuffer { typealias SwiftType = [Network] public static func write(_ value: [Network], into buf: inout [UInt8]) { @@ -20123,16 +17608,16 @@ fileprivate struct FfiConverterSequenceTypeNetwork: FfiConverterRustBuffer { var seq = [Network]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeNetwork.read(from: &buf)) + try seq.append(FfiConverterTypeNetwork.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeNodeSelection: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeNodeSelection: FfiConverterRustBuffer { typealias SwiftType = [NodeSelection] public static func write(_ value: [NodeSelection], into buf: inout [UInt8]) { @@ -20148,16 +17633,16 @@ fileprivate struct FfiConverterSequenceTypeNodeSelection: FfiConverterRustBuffer var seq = [NodeSelection]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeNodeSelection.read(from: &buf)) + try seq.append(FfiConverterTypeNodeSelection.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeRoute: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeRoute: FfiConverterRustBuffer { typealias SwiftType = [Route] public static func write(_ value: [Route], into buf: inout [UInt8]) { @@ -20173,16 +17658,16 @@ fileprivate struct FfiConverterSequenceTypeRoute: FfiConverterRustBuffer { var seq = [Route]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeRoute.read(from: &buf)) + try seq.append(FfiConverterTypeRoute.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer { typealias SwiftType = [Transaction] public static func write(_ value: [Transaction], into buf: inout [UInt8]) { @@ -20198,16 +17683,16 @@ fileprivate struct FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer { var seq = [Transaction]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeTransaction.read(from: &buf)) + try seq.append(FfiConverterTypeTransaction.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceTypeUnit: FfiConverterRustBuffer { +private struct FfiConverterSequenceTypeUnit: FfiConverterRustBuffer { typealias SwiftType = [Unit] public static func write(_ value: [Unit], into buf: inout [UInt8]) { @@ -20223,16 +17708,16 @@ fileprivate struct FfiConverterSequenceTypeUnit: FfiConverterRustBuffer { var seq = [Unit]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterTypeUnit.read(from: &buf)) + try seq.append(FfiConverterTypeUnit.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceSequenceString: FfiConverterRustBuffer { +private struct FfiConverterSequenceSequenceString: FfiConverterRustBuffer { typealias SwiftType = [[String]] public static func write(_ value: [[String]], into buf: inout [UInt8]) { @@ -20248,16 +17733,16 @@ fileprivate struct FfiConverterSequenceSequenceString: FfiConverterRustBuffer { var seq = [[String]]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterSequenceString.read(from: &buf)) + try seq.append(FfiConverterSequenceString.read(from: &buf)) } return seq } } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif -fileprivate struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuffer { +private struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuffer { typealias SwiftType = [[GroupedWord]] public static func write(_ value: [[GroupedWord]], into buf: inout [UInt8]) { @@ -20273,13 +17758,12 @@ fileprivate struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRust var seq = [[GroupedWord]]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - seq.append(try FfiConverterSequenceTypeGroupedWord.read(from: &buf)) + try seq.append(FfiConverterSequenceTypeGroupedWord.read(from: &buf)) } return seq } } - /** * Typealias from the type name used in the UDL file to the builtin type. This * is needed because the UDL type name is used in function/method signatures. @@ -20287,43 +17771,40 @@ fileprivate struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRust public typealias FfiOpacity = UInt8 #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeFfiOpacity: FfiConverter { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiOpacity { - return try FfiConverterUInt8.read(from: &buf) + try FfiConverterUInt8.read(from: &buf) } public static func write(_ value: FfiOpacity, into buf: inout [UInt8]) { - return FfiConverterUInt8.write(value, into: &buf) + FfiConverterUInt8.write(value, into: &buf) } public static func lift(_ value: UInt8) throws -> FfiOpacity { - return try FfiConverterUInt8.lift(value) + try FfiConverterUInt8.lift(value) } public static func lower(_ value: FfiOpacity) -> UInt8 { - return FfiConverterUInt8.lower(value) + FfiConverterUInt8.lower(value) } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiOpacity_lift(_ value: UInt8) throws -> FfiOpacity { - return try FfiConverterTypeFfiOpacity.lift(value) + try FfiConverterTypeFfiOpacity.lift(value) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeFfiOpacity_lower(_ value: FfiOpacity) -> UInt8 { - return FfiConverterTypeFfiOpacity.lower(value) + FfiConverterTypeFfiOpacity.lower(value) } - - /** * Typealias from the type name used in the UDL file to the builtin type. This * is needed because the UDL type name is used in function/method signatures. @@ -20331,51 +17812,50 @@ public func FfiConverterTypeFfiOpacity_lower(_ value: FfiOpacity) -> UInt8 { public typealias WalletId = String #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public struct FfiConverterTypeWalletId: FfiConverter { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletId { - return try FfiConverterString.read(from: &buf) + try FfiConverterString.read(from: &buf) } public static func write(_ value: WalletId, into buf: inout [UInt8]) { - return FfiConverterString.write(value, into: &buf) + FfiConverterString.write(value, into: &buf) } public static func lift(_ value: RustBuffer) throws -> WalletId { - return try FfiConverterString.lift(value) + try FfiConverterString.lift(value) } public static func lower(_ value: WalletId) -> RustBuffer { - return FfiConverterString.lower(value) + FfiConverterString.lower(value) } } - #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletId_lift(_ value: RustBuffer) throws -> WalletId { - return try FfiConverterTypeWalletId.lift(value) + try FfiConverterTypeWalletId.lift(value) } #if swift(>=5.8) -@_documentation(visibility: private) + @_documentation(visibility: private) #endif public func FfiConverterTypeWalletId_lower(_ value: WalletId) -> RustBuffer { - return FfiConverterTypeWalletId.lower(value) + FfiConverterTypeWalletId.lower(value) } private let UNIFFI_RUST_FUTURE_POLL_READY: Int8 = 0 private let UNIFFI_RUST_FUTURE_POLL_MAYBE_READY: Int8 = 1 -fileprivate let uniffiContinuationHandleMap = UniffiHandleMap>() +private let uniffiContinuationHandleMap = UniffiHandleMap>() -fileprivate func uniffiRustCallAsync( +private func uniffiRustCallAsync( rustFutureFunc: () -> UInt64, - pollFunc: (UInt64, @escaping UniffiRustFutureContinuationCallback, UInt64) -> (), + pollFunc: (UInt64, @escaping UniffiRustFutureContinuationCallback, UInt64) -> Void, completeFunc: (UInt64, UnsafeMutablePointer) -> F, - freeFunc: (UInt64) -> (), + freeFunc: (UInt64) -> Void, liftFunc: (F) throws -> T, errorHandler: ((RustBuffer) throws -> Swift.Error)? ) async throws -> T { @@ -20386,7 +17866,7 @@ fileprivate func uniffiRustCallAsync( defer { freeFunc(rustFuture) } - var pollResult: Int8; + var pollResult: Int8 repeat { pollResult = await withUnsafeContinuation { pollFunc( @@ -20405,254 +17885,286 @@ fileprivate func uniffiRustCallAsync( // Callback handlers for an async calls. These are invoked by Rust when the future is ready. They // lift the return value or error and resume the suspended function. -fileprivate func uniffiFutureContinuationCallback(handle: UInt64, pollResult: Int8) { +private func uniffiFutureContinuationCallback(handle: UInt64, pollResult: Int8) { if let continuation = try? uniffiContinuationHandleMap.remove(handle: handle) { continuation.resume(returning: pollResult) } else { print("uniffiFutureContinuationCallback invalid handle") } } -public func addressIsEqual(lhs: Address, rhs: Address) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_func_address_is_equal( - FfiConverterTypeAddress.lower(lhs), - FfiConverterTypeAddress.lower(rhs),$0 - ) -}) + +public func addressIsEqual(lhs: Address, rhs: Address) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_func_address_is_equal( + FfiConverterTypeAddress.lower(lhs), + FfiConverterTypeAddress.lower(rhs), $0 + ) + }) } -public func addressIsValid(address: String)throws {try rustCallWithError(FfiConverterTypeAddressError.lift) { + +public func addressIsValid(address: String) throws { try rustCallWithError(FfiConverterTypeAddressError.lift) { uniffi_cove_fn_func_address_is_valid( - FfiConverterString.lower(address),$0 + FfiConverterString.lower(address), $0 ) } } -public func addressIsValidForNetwork(address: String, network: Network)throws {try rustCallWithError(FfiConverterTypeAddressError.lift) { + +public func addressIsValidForNetwork(address: String, network: Network) throws { try rustCallWithError(FfiConverterTypeAddressError.lift) { uniffi_cove_fn_func_address_is_valid_for_network( FfiConverterString.lower(address), - FfiConverterTypeNetwork.lower(network),$0 + FfiConverterTypeNetwork.lower(network), $0 ) } } -public func addressStringSpacedOut(address: String) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_func_address_string_spaced_out( - FfiConverterString.lower(address),$0 - ) -}) -} -public func allColorSchemes() -> [ColorSchemeSelection] { - return try! FfiConverterSequenceTypeColorSchemeSelection.lift(try! rustCall() { - uniffi_cove_fn_func_all_color_schemes($0 - ) -}) + +public func addressStringSpacedOut(address: String) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_func_address_string_spaced_out( + FfiConverterString.lower(address), $0 + ) + }) } -public func allNetworks() -> [Network] { - return try! FfiConverterSequenceTypeNetwork.lift(try! rustCall() { - uniffi_cove_fn_func_all_networks($0 - ) -}) + +public func allColorSchemes() -> [ColorSchemeSelection] { + try! FfiConverterSequenceTypeColorSchemeSelection.lift(try! rustCall { + uniffi_cove_fn_func_all_color_schemes($0 + ) + }) } -public func allUnits() -> [Unit] { - return try! FfiConverterSequenceTypeUnit.lift(try! rustCall() { - uniffi_cove_fn_func_all_units($0 - ) -}) + +public func allNetworks() -> [Network] { + try! FfiConverterSequenceTypeNetwork.lift(try! rustCall { + uniffi_cove_fn_func_all_networks($0 + ) + }) } -public func balanceZero() -> Balance { - return try! FfiConverterTypeBalance.lift(try! rustCall() { - uniffi_cove_fn_func_balance_zero($0 - ) -}) + +public func allUnits() -> [Unit] { + try! FfiConverterSequenceTypeUnit.lift(try! rustCall { + uniffi_cove_fn_func_all_units($0 + ) + }) } -public func colorSchemeSelectionCapitalizedString(colorScheme: ColorSchemeSelection) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_func_color_scheme_selection_capitalized_string( - FfiConverterTypeColorSchemeSelection.lower(colorScheme),$0 - ) -}) + +public func balanceZero() -> Balance { + try! FfiConverterTypeBalance.lift(try! rustCall { + uniffi_cove_fn_func_balance_zero($0 + ) + }) } -public func defaultNodeSelection() -> NodeSelection { - return try! FfiConverterTypeNodeSelection.lift(try! rustCall() { - uniffi_cove_fn_func_default_node_selection($0 - ) -}) + +public func colorSchemeSelectionCapitalizedString(colorScheme: ColorSchemeSelection) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_func_color_scheme_selection_capitalized_string( + FfiConverterTypeColorSchemeSelection.lower(colorScheme), $0 + ) + }) } -public func discoveryStateIsEqual(lhs: DiscoveryState, rhs: DiscoveryState) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_func_discovery_state_is_equal( - FfiConverterTypeDiscoveryState.lower(lhs), - FfiConverterTypeDiscoveryState.lower(rhs),$0 - ) -}) + +public func defaultNodeSelection() -> NodeSelection { + try! FfiConverterTypeNodeSelection.lift(try! rustCall { + uniffi_cove_fn_func_default_node_selection($0 + ) + }) } -public func feeSpeedDuration(feeSpeed: FeeSpeed) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_func_fee_speed_duration( - FfiConverterTypeFeeSpeed.lower(feeSpeed),$0 - ) -}) + +public func discoveryStateIsEqual(lhs: DiscoveryState, rhs: DiscoveryState) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_func_discovery_state_is_equal( + FfiConverterTypeDiscoveryState.lower(lhs), + FfiConverterTypeDiscoveryState.lower(rhs), $0 + ) + }) } -public func feeSpeedToCircleColor(feeSpeed: FeeSpeed) -> FfiColor { - return try! FfiConverterTypeFfiColor.lift(try! rustCall() { - uniffi_cove_fn_func_fee_speed_to_circle_color( - FfiConverterTypeFeeSpeed.lower(feeSpeed),$0 - ) -}) + +public func feeSpeedDuration(feeSpeed: FeeSpeed) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_func_fee_speed_duration( + FfiConverterTypeFeeSpeed.lower(feeSpeed), $0 + ) + }) } -public func feeSpeedToString(feeSpeed: FeeSpeed) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_func_fee_speed_to_string( - FfiConverterTypeFeeSpeed.lower(feeSpeed),$0 - ) -}) + +public func feeSpeedToCircleColor(feeSpeed: FeeSpeed) -> FfiColor { + try! FfiConverterTypeFfiColor.lift(try! rustCall { + uniffi_cove_fn_func_fee_speed_to_circle_color( + FfiConverterTypeFeeSpeed.lower(feeSpeed), $0 + ) + }) } -public func fiatAmountPreviewNew() -> FiatAmount { - return try! FfiConverterTypeFiatAmount.lift(try! rustCall() { - uniffi_cove_fn_func_fiat_amount_preview_new($0 - ) -}) + +public func feeSpeedToString(feeSpeed: FeeSpeed) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_func_fee_speed_to_string( + FfiConverterTypeFeeSpeed.lower(feeSpeed), $0 + ) + }) } -public func groupedPlainWordsOf(mnemonic: String, groups: UInt8)throws -> [[String]] { - return try FfiConverterSequenceSequenceString.lift(try rustCallWithError(FfiConverterTypeMnemonicParseError.lift) { - uniffi_cove_fn_func_grouped_plain_words_of( - FfiConverterString.lower(mnemonic), - FfiConverterUInt8.lower(groups),$0 - ) -}) + +public func fiatAmountPreviewNew() -> FiatAmount { + try! FfiConverterTypeFiatAmount.lift(try! rustCall { + uniffi_cove_fn_func_fiat_amount_preview_new($0 + ) + }) } -public func hashRoute(route: Route) -> UInt64 { - return try! FfiConverterUInt64.lift(try! rustCall() { - uniffi_cove_fn_func_hash_route( - FfiConverterTypeRoute.lower(route),$0 - ) -}) + +public func groupedPlainWordsOf(mnemonic: String, groups: UInt8) throws -> [[String]] { + try FfiConverterSequenceSequenceString.lift(rustCallWithError(FfiConverterTypeMnemonicParseError.lift) { + uniffi_cove_fn_func_grouped_plain_words_of( + FfiConverterString.lower(mnemonic), + FfiConverterUInt8.lower(groups), $0 + ) + }) } -public func isRouteEqual(route: Route, routeToCheck: Route) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_func_is_route_equal( - FfiConverterTypeRoute.lower(route), - FfiConverterTypeRoute.lower(routeToCheck),$0 - ) -}) + +public func hashRoute(route: Route) -> UInt64 { + try! FfiConverterUInt64.lift(try! rustCall { + uniffi_cove_fn_func_hash_route( + FfiConverterTypeRoute.lower(route), $0 + ) + }) } -public func networkToString(network: Network) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_func_network_to_string( - FfiConverterTypeNetwork.lower(network),$0 - ) -}) + +public func isRouteEqual(route: Route, routeToCheck: Route) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_func_is_route_equal( + FfiConverterTypeRoute.lower(route), + FfiConverterTypeRoute.lower(routeToCheck), $0 + ) + }) } -public func nodeSelectionToNode(node: NodeSelection) -> Node { - return try! FfiConverterTypeNode.lift(try! rustCall() { - uniffi_cove_fn_func_node_selection_to_node( - FfiConverterTypeNodeSelection.lower(node),$0 - ) -}) + +public func networkToString(network: Network) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_func_network_to_string( + FfiConverterTypeNetwork.lower(network), $0 + ) + }) } -public func numberOfWordsInGroups(me: NumberOfBip39Words, of: UInt8) -> [[String]] { - return try! FfiConverterSequenceSequenceString.lift(try! rustCall() { - uniffi_cove_fn_func_number_of_words_in_groups( - FfiConverterTypeNumberOfBip39Words.lower(me), - FfiConverterUInt8.lower(of),$0 - ) -}) + +public func nodeSelectionToNode(node: NodeSelection) -> Node { + try! FfiConverterTypeNode.lift(try! rustCall { + uniffi_cove_fn_func_node_selection_to_node( + FfiConverterTypeNodeSelection.lower(node), $0 + ) + }) } -public func numberOfWordsToWordCount(me: NumberOfBip39Words) -> UInt8 { - return try! FfiConverterUInt8.lift(try! rustCall() { - uniffi_cove_fn_func_number_of_words_to_word_count( - FfiConverterTypeNumberOfBip39Words.lower(me),$0 - ) -}) + +public func numberOfWordsInGroups(me: NumberOfBip39Words, of: UInt8) -> [[String]] { + try! FfiConverterSequenceSequenceString.lift(try! rustCall { + uniffi_cove_fn_func_number_of_words_in_groups( + FfiConverterTypeNumberOfBip39Words.lower(me), + FfiConverterUInt8.lower(of), $0 + ) + }) } -public func previewNewLegacyFoundAddress() -> FoundAddress { - return try! FfiConverterTypeFoundAddress.lift(try! rustCall() { - uniffi_cove_fn_func_preview_new_legacy_found_address($0 - ) -}) + +public func numberOfWordsToWordCount(me: NumberOfBip39Words) -> UInt8 { + try! FfiConverterUInt8.lift(try! rustCall { + uniffi_cove_fn_func_number_of_words_to_word_count( + FfiConverterTypeNumberOfBip39Words.lower(me), $0 + ) + }) } -public func previewNewWrappedFoundAddress() -> FoundAddress { - return try! FfiConverterTypeFoundAddress.lift(try! rustCall() { - uniffi_cove_fn_func_preview_new_wrapped_found_address($0 - ) -}) + +public func previewNewLegacyFoundAddress() -> FoundAddress { + try! FfiConverterTypeFoundAddress.lift(try! rustCall { + uniffi_cove_fn_func_preview_new_legacy_found_address($0 + ) + }) } -public func stringOrDataTryIntoMultiFormat(stringOrData: StringOrData)throws -> MultiFormat { - return try FfiConverterTypeMultiFormat.lift(try rustCallWithError(FfiConverterTypeMultiFormatError.lift) { - uniffi_cove_fn_func_string_or_data_try_into_multi_format( - FfiConverterTypeStringOrData.lower(stringOrData),$0 - ) -}) + +public func previewNewWrappedFoundAddress() -> FoundAddress { + try! FfiConverterTypeFoundAddress.lift(try! rustCall { + uniffi_cove_fn_func_preview_new_wrapped_found_address($0 + ) + }) } -public func transactionPreviewConfirmedNew() -> Transaction { - return try! FfiConverterTypeTransaction.lift(try! rustCall() { - uniffi_cove_fn_func_transaction_preview_confirmed_new($0 - ) -}) + +public func stringOrDataTryIntoMultiFormat(stringOrData: StringOrData) throws -> MultiFormat { + try FfiConverterTypeMultiFormat.lift(rustCallWithError(FfiConverterTypeMultiFormatError.lift) { + uniffi_cove_fn_func_string_or_data_try_into_multi_format( + FfiConverterTypeStringOrData.lower(stringOrData), $0 + ) + }) } -public func transactionPreviewUnconfirmedNew() -> Transaction { - return try! FfiConverterTypeTransaction.lift(try! rustCall() { - uniffi_cove_fn_func_transaction_preview_unconfirmed_new($0 - ) -}) + +public func transactionPreviewConfirmedNew() -> Transaction { + try! FfiConverterTypeTransaction.lift(try! rustCall { + uniffi_cove_fn_func_transaction_preview_confirmed_new($0 + ) + }) } -public func transactionsPreviewNew(confirmed: UInt8, unconfirmed: UInt8) -> [Transaction] { - return try! FfiConverterSequenceTypeTransaction.lift(try! rustCall() { - uniffi_cove_fn_func_transactions_preview_new( - FfiConverterUInt8.lower(confirmed), - FfiConverterUInt8.lower(unconfirmed),$0 - ) -}) + +public func transactionPreviewUnconfirmedNew() -> Transaction { + try! FfiConverterTypeTransaction.lift(try! rustCall { + uniffi_cove_fn_func_transaction_preview_unconfirmed_new($0 + ) + }) } -public func unitToString(unit: Unit) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_func_unit_to_string( - FfiConverterTypeUnit.lower(unit),$0 - ) -}) + +public func transactionsPreviewNew(confirmed: UInt8, unconfirmed: UInt8) -> [Transaction] { + try! FfiConverterSequenceTypeTransaction.lift(try! rustCall { + uniffi_cove_fn_func_transactions_preview_new( + FfiConverterUInt8.lower(confirmed), + FfiConverterUInt8.lower(unconfirmed), $0 + ) + }) } -public func updatePricesIfNeeded()async { - return - try! await uniffiRustCallAsync( - rustFutureFunc: { - uniffi_cove_fn_func_update_prices_if_needed( - ) - }, - pollFunc: ffi_cove_rust_future_poll_void, - completeFunc: ffi_cove_rust_future_complete_void, - freeFunc: ffi_cove_rust_future_free_void, - liftFunc: { $0 }, - errorHandler: nil - + +public func unitToString(unit: Unit) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_func_unit_to_string( + FfiConverterTypeUnit.lower(unit), $0 ) + }) } -public func walletAddressTypeLessThan(lhs: WalletAddressType, rhs: WalletAddressType) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_func_wallet_address_type_less_than( - FfiConverterTypeWalletAddressType.lower(lhs), - FfiConverterTypeWalletAddressType.lower(rhs),$0 + +public func updatePricesIfNeeded() async { + try! await uniffiRustCallAsync( + rustFutureFunc: { + uniffi_cove_fn_func_update_prices_if_needed( + ) + }, + pollFunc: ffi_cove_rust_future_poll_void, + completeFunc: ffi_cove_rust_future_complete_void, + freeFunc: ffi_cove_rust_future_free_void, + liftFunc: { $0 }, + errorHandler: nil ) -}) } -public func walletAddressTypeToString(walletAddressType: WalletAddressType) -> String { - return try! FfiConverterString.lift(try! rustCall() { - uniffi_cove_fn_func_wallet_address_type_to_string( - FfiConverterTypeWalletAddressType.lower(walletAddressType),$0 - ) -}) + +public func walletAddressTypeLessThan(lhs: WalletAddressType, rhs: WalletAddressType) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_func_wallet_address_type_less_than( + FfiConverterTypeWalletAddressType.lower(lhs), + FfiConverterTypeWalletAddressType.lower(rhs), $0 + ) + }) } -public func walletMetadataPreview() -> WalletMetadata { - return try! FfiConverterTypeWalletMetadata.lift(try! rustCall() { - uniffi_cove_fn_func_wallet_metadata_preview($0 - ) -}) + +public func walletAddressTypeToString(walletAddressType: WalletAddressType) -> String { + try! FfiConverterString.lift(try! rustCall { + uniffi_cove_fn_func_wallet_address_type_to_string( + FfiConverterTypeWalletAddressType.lower(walletAddressType), $0 + ) + }) } -public func walletStateIsEqual(lhs: WalletLoadState, rhs: WalletLoadState) -> Bool { - return try! FfiConverterBool.lift(try! rustCall() { - uniffi_cove_fn_func_wallet_state_is_equal( - FfiConverterTypeWalletLoadState.lower(lhs), - FfiConverterTypeWalletLoadState.lower(rhs),$0 - ) -}) + +public func walletMetadataPreview() -> WalletMetadata { + try! FfiConverterTypeWalletMetadata.lift(try! rustCall { + uniffi_cove_fn_func_wallet_metadata_preview($0 + ) + }) +} + +public func walletStateIsEqual(lhs: WalletLoadState, rhs: WalletLoadState) -> Bool { + try! FfiConverterBool.lift(try! rustCall { + uniffi_cove_fn_func_wallet_state_is_equal( + FfiConverterTypeWalletLoadState.lower(lhs), + FfiConverterTypeWalletLoadState.lower(rhs), $0 + ) + }) } private enum InitializationResult { @@ -20660,6 +18172,7 @@ private enum InitializationResult { case contractVersionMismatch case apiChecksumMismatch } + // Use a global variable to perform the versioning checks. Swift ensures that // the code inside is only computed once. private let initializationResult: InitializationResult = { @@ -20670,1024 +18183,1027 @@ private let initializationResult: InitializationResult = { if bindings_contract_version != scaffolding_contract_version { return InitializationResult.contractVersionMismatch } - if (uniffi_cove_checksum_func_address_is_equal() != 63981) { + if uniffi_cove_checksum_func_address_is_equal() != 63981 { + return InitializationResult.apiChecksumMismatch + } + if uniffi_cove_checksum_func_address_is_valid() != 22920 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_address_is_valid() != 22920) { + if uniffi_cove_checksum_func_address_is_valid_for_network() != 41522 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_address_is_valid_for_network() != 41522) { + if uniffi_cove_checksum_func_address_string_spaced_out() != 60902 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_address_string_spaced_out() != 60902) { + if uniffi_cove_checksum_func_all_color_schemes() != 24835 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_all_color_schemes() != 24835) { + if uniffi_cove_checksum_func_all_networks() != 30650 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_all_networks() != 30650) { + if uniffi_cove_checksum_func_all_units() != 36925 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_all_units() != 36925) { + if uniffi_cove_checksum_func_balance_zero() != 63807 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_balance_zero() != 63807) { + if uniffi_cove_checksum_func_color_scheme_selection_capitalized_string() != 42247 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_color_scheme_selection_capitalized_string() != 42247) { + if uniffi_cove_checksum_func_default_node_selection() != 14665 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_default_node_selection() != 14665) { + if uniffi_cove_checksum_func_discovery_state_is_equal() != 12390 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_discovery_state_is_equal() != 12390) { + if uniffi_cove_checksum_func_fee_speed_duration() != 28599 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_fee_speed_duration() != 28599) { + if uniffi_cove_checksum_func_fee_speed_to_circle_color() != 46076 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_fee_speed_to_circle_color() != 46076) { + if uniffi_cove_checksum_func_fee_speed_to_string() != 21405 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_fee_speed_to_string() != 21405) { + if uniffi_cove_checksum_func_fiat_amount_preview_new() != 6422 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_fiat_amount_preview_new() != 6422) { + if uniffi_cove_checksum_func_grouped_plain_words_of() != 45802 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_grouped_plain_words_of() != 45802) { + if uniffi_cove_checksum_func_hash_route() != 32817 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_hash_route() != 32817) { + if uniffi_cove_checksum_func_is_route_equal() != 25732 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_is_route_equal() != 25732) { + if uniffi_cove_checksum_func_network_to_string() != 60660 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_network_to_string() != 60660) { + if uniffi_cove_checksum_func_node_selection_to_node() != 57209 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_node_selection_to_node() != 57209) { + if uniffi_cove_checksum_func_number_of_words_in_groups() != 14214 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_number_of_words_in_groups() != 14214) { + if uniffi_cove_checksum_func_number_of_words_to_word_count() != 24846 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_number_of_words_to_word_count() != 24846) { + if uniffi_cove_checksum_func_preview_new_legacy_found_address() != 36773 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_preview_new_legacy_found_address() != 36773) { + if uniffi_cove_checksum_func_preview_new_wrapped_found_address() != 57500 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_preview_new_wrapped_found_address() != 57500) { + if uniffi_cove_checksum_func_string_or_data_try_into_multi_format() != 34953 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_string_or_data_try_into_multi_format() != 34953) { + if uniffi_cove_checksum_func_transaction_preview_confirmed_new() != 43706 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_transaction_preview_confirmed_new() != 43706) { + if uniffi_cove_checksum_func_transaction_preview_unconfirmed_new() != 49725 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_transaction_preview_unconfirmed_new() != 49725) { + if uniffi_cove_checksum_func_transactions_preview_new() != 60166 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_transactions_preview_new() != 60166) { + if uniffi_cove_checksum_func_unit_to_string() != 63080 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_unit_to_string() != 63080) { + if uniffi_cove_checksum_func_update_prices_if_needed() != 27986 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_update_prices_if_needed() != 27986) { + if uniffi_cove_checksum_func_wallet_address_type_less_than() != 14566 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_wallet_address_type_less_than() != 14566) { + if uniffi_cove_checksum_func_wallet_address_type_to_string() != 36064 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_wallet_address_type_to_string() != 36064) { + if uniffi_cove_checksum_func_wallet_metadata_preview() != 1229 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_wallet_metadata_preview() != 1229) { + if uniffi_cove_checksum_func_wallet_state_is_equal() != 27037 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_func_wallet_state_is_equal() != 27037) { + if uniffi_cove_checksum_method_address_spaced_out() != 29461 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_address_spaced_out() != 29461) { + if uniffi_cove_checksum_method_address_string() != 10597 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_address_string() != 10597) { + if uniffi_cove_checksum_method_addressinfo_address() != 59376 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_addressinfo_address() != 59376) { + if uniffi_cove_checksum_method_addressinfo_adress_string() != 41627 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_addressinfo_adress_string() != 41627) { + if uniffi_cove_checksum_method_addressinfo_index() != 45529 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_addressinfo_index() != 45529) { + if uniffi_cove_checksum_method_addresswithnetwork_address() != 33477 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_addresswithnetwork_address() != 33477) { + if uniffi_cove_checksum_method_addresswithnetwork_amount() != 23019 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_addresswithnetwork_amount() != 23019) { + if uniffi_cove_checksum_method_addresswithnetwork_network() != 64145 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_addresswithnetwork_network() != 64145) { + if uniffi_cove_checksum_method_amount_as_btc() != 7531 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_amount_as_btc() != 7531) { + if uniffi_cove_checksum_method_amount_as_sats() != 62969 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_amount_as_sats() != 62969) { + if uniffi_cove_checksum_method_amount_btc_string() != 21387 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_amount_btc_string() != 21387) { + if uniffi_cove_checksum_method_amount_btc_string_with_unit() != 10939 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_amount_btc_string_with_unit() != 10939) { + if uniffi_cove_checksum_method_amount_fmt_string_with_unit() != 14497 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_amount_fmt_string_with_unit() != 14497) { + if uniffi_cove_checksum_method_amount_sats_string() != 36019 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_amount_sats_string() != 36019) { + if uniffi_cove_checksum_method_amount_sats_string_with_unit() != 34409 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_amount_sats_string_with_unit() != 34409) { + if uniffi_cove_checksum_method_autocomplete_autocomplete() != 4748 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_autocomplete_autocomplete() != 4748) { + if uniffi_cove_checksum_method_autocomplete_is_valid_word() != 18021 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_autocomplete_is_valid_word() != 18021) { + if uniffi_cove_checksum_method_bbqrjoinresult_final_result() != 44157 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bbqrjoinresult_final_result() != 44157) { + if uniffi_cove_checksum_method_bbqrjoinresult_is_complete() != 4119 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bbqrjoinresult_is_complete() != 4119) { + if uniffi_cove_checksum_method_bbqrjoinresult_parts_left() != 39828 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bbqrjoinresult_parts_left() != 39828) { + if uniffi_cove_checksum_method_bbqrjoined_get_grouped_words() != 36018 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bbqrjoined_get_grouped_words() != 36018) { + if uniffi_cove_checksum_method_bbqrjoined_get_seed_words() != 64693 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bbqrjoined_get_seed_words() != 64693) { + if uniffi_cove_checksum_method_bip39autocomplete_autocomplete() != 21847 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bip39autocomplete_autocomplete() != 21847) { + if uniffi_cove_checksum_method_bip39autocomplete_is_valid_word() != 19081 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bip39autocomplete_is_valid_word() != 19081) { + if uniffi_cove_checksum_method_bip39wordspecificautocomplete_autocomplete() != 34680 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bip39wordspecificautocomplete_autocomplete() != 34680) { + if uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_bip39_word() != 59249 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_bip39_word() != 59249) { + if uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_valid_word() != 4400 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_valid_word() != 4400) { + if uniffi_cove_checksum_method_bitcointransaction_normalize_tx_id() != 15620 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bitcointransaction_normalize_tx_id() != 15620) { + if uniffi_cove_checksum_method_bitcointransaction_tx_id() != 39904 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bitcointransaction_tx_id() != 39904) { + if uniffi_cove_checksum_method_bitcointransaction_tx_id_hash() != 59940 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_bitcointransaction_tx_id_hash() != 59940) { + if uniffi_cove_checksum_method_boxedroute_route() != 26050 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_boxedroute_route() != 26050) { + if uniffi_cove_checksum_method_confirmdetails_fee_rate() != 32230 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_fee_rate() != 32230) { + if uniffi_cove_checksum_method_confirmdetails_fee_total() != 15069 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_fee_total() != 15069) { + if uniffi_cove_checksum_method_confirmdetails_id() != 46525 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_id() != 46525) { + if uniffi_cove_checksum_method_confirmdetails_id_hash() != 11280 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_id_hash() != 11280) { + if uniffi_cove_checksum_method_confirmdetails_is_equal() != 16719 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_is_equal() != 16719) { + if uniffi_cove_checksum_method_confirmdetails_normalized_id() != 32961 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_normalized_id() != 32961) { + if uniffi_cove_checksum_method_confirmdetails_psbt_bytes() != 48686 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_psbt_bytes() != 48686) { + if uniffi_cove_checksum_method_confirmdetails_psbt_to_bbqr() != 44579 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_psbt_to_bbqr() != 44579) { + if uniffi_cove_checksum_method_confirmdetails_psbt_to_hex() != 3021 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_psbt_to_hex() != 3021) { + if uniffi_cove_checksum_method_confirmdetails_sending_amount() != 58788 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_sending_amount() != 58788) { + if uniffi_cove_checksum_method_confirmdetails_sending_to() != 43075 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_sending_to() != 43075) { + if uniffi_cove_checksum_method_confirmdetails_spending_amount() != 62205 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmdetails_spending_amount() != 62205) { + if uniffi_cove_checksum_method_confirmedtransaction_block_height() != 62845 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmedtransaction_block_height() != 62845) { + if uniffi_cove_checksum_method_confirmedtransaction_block_height_fmt() != 22839 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmedtransaction_block_height_fmt() != 22839) { + if uniffi_cove_checksum_method_confirmedtransaction_confirmed_at() != 21481 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmedtransaction_confirmed_at() != 21481) { + if uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt() != 28835 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt() != 28835) { + if uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt_with_time() != 36703 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt_with_time() != 36703) { + if uniffi_cove_checksum_method_confirmedtransaction_fiat_amount() != 31522 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmedtransaction_fiat_amount() != 31522) { + if uniffi_cove_checksum_method_confirmedtransaction_id() != 63537 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmedtransaction_id() != 63537) { + if uniffi_cove_checksum_method_confirmedtransaction_label() != 17010 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmedtransaction_label() != 17010) { + if uniffi_cove_checksum_method_confirmedtransaction_sent_and_received() != 3525 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_confirmedtransaction_sent_and_received() != 3525) { + if uniffi_cove_checksum_method_database_global_config() != 4476 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_database_global_config() != 4476) { + if uniffi_cove_checksum_method_database_unsigned_transactions() != 8913 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_database_unsigned_transactions() != 8913) { + if uniffi_cove_checksum_method_database_wallets() != 38115 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_database_wallets() != 38115) { + if uniffi_cove_checksum_method_feerate_sat_per_vb() != 31119 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerate_sat_per_vb() != 31119) { + if uniffi_cove_checksum_method_feerateoption_duration() != 58541 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoption_duration() != 58541) { + if uniffi_cove_checksum_method_feerateoption_fee_rate() != 56298 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoption_fee_rate() != 56298) { + if uniffi_cove_checksum_method_feerateoption_fee_speed() != 22536 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoption_fee_speed() != 22536) { + if uniffi_cove_checksum_method_feerateoption_is_equal() != 48538 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoption_is_equal() != 48538) { + if uniffi_cove_checksum_method_feerateoption_sat_per_vb() != 60748 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoption_sat_per_vb() != 60748) { + if uniffi_cove_checksum_method_feerateoptionwithtotalfee_duration() != 26593 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_duration() != 26593) { + if uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate() != 14029 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate() != 14029) { + if uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate_options() != 29806 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate_options() != 29806) { + if uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_speed() != 32155 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_speed() != 32155) { + if uniffi_cove_checksum_method_feerateoptionwithtotalfee_is_equal() != 47764 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_is_equal() != 47764) { + if uniffi_cove_checksum_method_feerateoptionwithtotalfee_sat_per_vb() != 40506 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_sat_per_vb() != 40506) { + if uniffi_cove_checksum_method_feerateoptionwithtotalfee_total_fee() != 40202 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_total_fee() != 40202) { + if uniffi_cove_checksum_method_feerateoptions_fast() != 29009 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptions_fast() != 29009) { + if uniffi_cove_checksum_method_feerateoptions_medium() != 5747 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptions_medium() != 5747) { + if uniffi_cove_checksum_method_feerateoptions_slow() != 58269 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptions_slow() != 58269) { + if uniffi_cove_checksum_method_feerateoptionswithtotalfee_fast() != 15779 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_fast() != 15779) { + if uniffi_cove_checksum_method_feerateoptionswithtotalfee_fee_rate_options() != 7503 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_fee_rate_options() != 7503) { + if uniffi_cove_checksum_method_feerateoptionswithtotalfee_medium() != 444 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_medium() != 444) { + if uniffi_cove_checksum_method_feerateoptionswithtotalfee_slow() != 1762 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_slow() != 1762) { + if uniffi_cove_checksum_method_ffiapp_dispatch() != 48712 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_dispatch() != 48712) { + if uniffi_cove_checksum_method_ffiapp_fees() != 44559 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_fees() != 44559) { + if uniffi_cove_checksum_method_ffiapp_go_to_selected_wallet() != 36820 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_go_to_selected_wallet() != 36820) { + if uniffi_cove_checksum_method_ffiapp_has_wallets() != 3792 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_has_wallets() != 3792) { + if uniffi_cove_checksum_method_ffiapp_init_on_start() != 44630 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_init_on_start() != 44630) { + if uniffi_cove_checksum_method_ffiapp_listen_for_updates() != 48795 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_listen_for_updates() != 48795) { + if uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route() != 16043 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route() != 16043) { + if uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route_after() != 14335 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route_after() != 14335) { + if uniffi_cove_checksum_method_ffiapp_network() != 26747 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_network() != 26747) { + if uniffi_cove_checksum_method_ffiapp_num_wallets() != 28903 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_num_wallets() != 28903) { + if uniffi_cove_checksum_method_ffiapp_prices() != 58350 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_prices() != 58350) { + if uniffi_cove_checksum_method_ffiapp_reset_default_route_to() != 40613 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_reset_default_route_to() != 40613) { + if uniffi_cove_checksum_method_ffiapp_select_wallet() != 4478 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_select_wallet() != 4478) { + if uniffi_cove_checksum_method_ffiapp_state() != 19551 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffiapp_state() != 19551) { + if uniffi_cove_checksum_method_ffinfcreader_data_from_records() != 32962 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffinfcreader_data_from_records() != 32962) { + if uniffi_cove_checksum_method_ffinfcreader_is_resumeable() != 21759 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffinfcreader_is_resumeable() != 21759) { + if uniffi_cove_checksum_method_ffinfcreader_is_started() != 956 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffinfcreader_is_started() != 956) { + if uniffi_cove_checksum_method_ffinfcreader_message_info() != 7402 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffinfcreader_message_info() != 7402) { + if uniffi_cove_checksum_method_ffinfcreader_parse() != 39581 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffinfcreader_parse() != 39581) { + if uniffi_cove_checksum_method_ffinfcreader_string_from_record() != 60818 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffinfcreader_string_from_record() != 60818) { + if uniffi_cove_checksum_method_filehandler_read() != 31508 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_filehandler_read() != 31508) { + if uniffi_cove_checksum_method_fingerprint_as_lowercase() != 25321 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_fingerprint_as_lowercase() != 25321) { + if uniffi_cove_checksum_method_fingerprint_as_uppercase() != 11522 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_fingerprint_as_uppercase() != 11522) { + if uniffi_cove_checksum_method_globalconfigtable_clear_selected_wallet() != 22146 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_clear_selected_wallet() != 22146) { + if uniffi_cove_checksum_method_globalconfigtable_color_scheme() != 18859 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_color_scheme() != 18859) { + if uniffi_cove_checksum_method_globalconfigtable_delete() != 13364 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_delete() != 13364) { + if uniffi_cove_checksum_method_globalconfigtable_get() != 52128 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_get() != 52128) { + if uniffi_cove_checksum_method_globalconfigtable_select_wallet() != 52001 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_select_wallet() != 52001) { + if uniffi_cove_checksum_method_globalconfigtable_selected_network() != 7657 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_selected_network() != 7657) { + if uniffi_cove_checksum_method_globalconfigtable_selected_node() != 31353 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_selected_node() != 31353) { + if uniffi_cove_checksum_method_globalconfigtable_selected_wallet() != 51568 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_selected_wallet() != 51568) { + if uniffi_cove_checksum_method_globalconfigtable_set() != 31033 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_set() != 31033) { + if uniffi_cove_checksum_method_globalconfigtable_set_color_scheme() != 24086 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_set_color_scheme() != 24086) { + if uniffi_cove_checksum_method_globalconfigtable_set_selected_network() != 34312 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_set_selected_network() != 34312) { + if uniffi_cove_checksum_method_globalconfigtable_set_selected_node() != 35090 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalconfigtable_set_selected_node() != 35090) { + if uniffi_cove_checksum_method_globalflagtable_get() != 42810 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalflagtable_get() != 42810) { + if uniffi_cove_checksum_method_globalflagtable_set() != 23016 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalflagtable_set() != 23016) { + if uniffi_cove_checksum_method_globalflagtable_toggle_bool_config() != 12062 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_globalflagtable_toggle_bool_config() != 12062) { + if uniffi_cove_checksum_method_headericonpresenter_background_color() != 61819 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_headericonpresenter_background_color() != 61819) { + if uniffi_cove_checksum_method_headericonpresenter_icon_color() != 52203 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_headericonpresenter_icon_color() != 52203) { + if uniffi_cove_checksum_method_headericonpresenter_ring_color() != 23010 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_headericonpresenter_ring_color() != 23010) { + if uniffi_cove_checksum_method_mnemonic_all_words() != 45039 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_mnemonic_all_words() != 45039) { + if uniffi_cove_checksum_method_mnemonic_words() != 35319 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_mnemonic_words() != 35319) { + if uniffi_cove_checksum_method_multiqr_add_part() != 11179 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_multiqr_add_part() != 11179) { + if uniffi_cove_checksum_method_multiqr_get_grouped_words() != 21029 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_multiqr_get_grouped_words() != 21029) { + if uniffi_cove_checksum_method_multiqr_handle_scan_result() != 3857 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_multiqr_handle_scan_result() != 3857) { + if uniffi_cove_checksum_method_multiqr_is_bbqr() != 22296 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_multiqr_is_bbqr() != 22296) { + if uniffi_cove_checksum_method_multiqr_is_seed_qr() != 10256 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_multiqr_is_seed_qr() != 10256) { + if uniffi_cove_checksum_method_multiqr_total_parts() != 51119 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_multiqr_total_parts() != 51119) { + if uniffi_cove_checksum_method_ndefrecordreader_id() != 37849 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ndefrecordreader_id() != 37849) { + if uniffi_cove_checksum_method_ndefrecordreader_type_() != 27060 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ndefrecordreader_type_() != 27060) { + if uniffi_cove_checksum_method_nfcconst_bytes_per_block() != 35854 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_nfcconst_bytes_per_block() != 35854) { + if uniffi_cove_checksum_method_nfcconst_number_of_blocks_per_chunk() != 48258 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_nfcconst_number_of_blocks_per_chunk() != 48258) { + if uniffi_cove_checksum_method_nfcconst_total_bytes_per_chunk() != 41799 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_nfcconst_total_bytes_per_chunk() != 41799) { + if uniffi_cove_checksum_method_nodeselector_check_and_save_node() != 48519 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_nodeselector_check_and_save_node() != 48519) { + if uniffi_cove_checksum_method_nodeselector_check_selected_node() != 19872 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_nodeselector_check_selected_node() != 19872) { + if uniffi_cove_checksum_method_nodeselector_node_list() != 23402 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_nodeselector_node_list() != 23402) { + if uniffi_cove_checksum_method_nodeselector_parse_custom_node() != 54190 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_nodeselector_parse_custom_node() != 54190) { + if uniffi_cove_checksum_method_nodeselector_select_preset_node() != 36330 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_nodeselector_select_preset_node() != 36330) { + if uniffi_cove_checksum_method_nodeselector_selected_node() != 29849 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_nodeselector_selected_node() != 29849) { + if uniffi_cove_checksum_method_psbt_fee() != 37973 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_psbt_fee() != 37973) { + if uniffi_cove_checksum_method_psbt_tx_id() != 61047 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_psbt_tx_id() != 61047) { + if uniffi_cove_checksum_method_psbt_weight() != 5696 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_psbt_weight() != 5696) { + if uniffi_cove_checksum_method_routefactory_cold_wallet_import() != 14120 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_cold_wallet_import() != 14120) { + if uniffi_cove_checksum_method_routefactory_hot_wallet() != 7846 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_hot_wallet() != 7846) { + if uniffi_cove_checksum_method_routefactory_hot_wallet_import_from_scan() != 63262 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_hot_wallet_import_from_scan() != 63262) { + if uniffi_cove_checksum_method_routefactory_is_same_parent_route() != 43168 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_is_same_parent_route() != 43168) { + if uniffi_cove_checksum_method_routefactory_load_and_reset_to() != 41201 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_load_and_reset_to() != 41201) { + if uniffi_cove_checksum_method_routefactory_load_and_reset_to_after() != 39743 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_load_and_reset_to_after() != 39743) { + if uniffi_cove_checksum_method_routefactory_new_hot_wallet() != 51032 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_new_hot_wallet() != 51032) { + if uniffi_cove_checksum_method_routefactory_new_wallet_select() != 21343 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_new_wallet_select() != 21343) { + if uniffi_cove_checksum_method_routefactory_qr_import() != 17980 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_qr_import() != 17980) { + if uniffi_cove_checksum_method_routefactory_secret_words() != 64915 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_secret_words() != 64915) { + if uniffi_cove_checksum_method_routefactory_send() != 62083 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_send() != 62083) { + if uniffi_cove_checksum_method_routefactory_send_confirm() != 14299 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_send_confirm() != 14299) { + if uniffi_cove_checksum_method_routefactory_send_hardware_export() != 34735 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_send_hardware_export() != 34735) { + if uniffi_cove_checksum_method_routefactory_send_set_amount() != 33578 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_routefactory_send_set_amount() != 33578) { + if uniffi_cove_checksum_method_rustimportwalletviewmodel_dispatch() != 54003 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustimportwalletviewmodel_dispatch() != 54003) { + if uniffi_cove_checksum_method_rustimportwalletviewmodel_import_wallet() != 22388 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustimportwalletviewmodel_import_wallet() != 22388) { + if uniffi_cove_checksum_method_rustimportwalletviewmodel_listen_for_updates() != 3156 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustimportwalletviewmodel_listen_for_updates() != 3156) { + if uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words() != 43976 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words() != 43976) { + if uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words_grouped() != 45204 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words_grouped() != 45204) { + if uniffi_cove_checksum_method_rustpendingwalletviewmodel_card_indexes() != 33165 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_card_indexes() != 33165) { + if uniffi_cove_checksum_method_rustpendingwalletviewmodel_dispatch() != 8422 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_dispatch() != 8422) { + if uniffi_cove_checksum_method_rustpendingwalletviewmodel_get_state() != 22652 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_get_state() != 22652) { + if uniffi_cove_checksum_method_rustpendingwalletviewmodel_listen_for_updates() != 25486 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_listen_for_updates() != 25486) { + if uniffi_cove_checksum_method_rustpendingwalletviewmodel_number_of_words_count() != 47399 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_number_of_words_count() != 47399) { + if uniffi_cove_checksum_method_rustpendingwalletviewmodel_save_wallet() != 45300 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_save_wallet() != 45300) { + if uniffi_cove_checksum_method_rustwalletviewmodel_address_at() != 38561 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_address_at() != 38561) { + if uniffi_cove_checksum_method_rustwalletviewmodel_amount_in_fiat() != 53684 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_amount_in_fiat() != 53684) { + if uniffi_cove_checksum_method_rustwalletviewmodel_balance() != 10059 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_balance() != 10059) { + if uniffi_cove_checksum_method_rustwalletviewmodel_balance_in_fiat() != 18683 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_balance_in_fiat() != 18683) { + if uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction() != 22450 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction() != 22450) { + if uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction_with_fee_rate() != 28947 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction_with_fee_rate() != 28947) { + if uniffi_cove_checksum_method_rustwalletviewmodel_current_block_height() != 59265 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_current_block_height() != 59265) { + if uniffi_cove_checksum_method_rustwalletviewmodel_delete_unsigned_transaction() != 60038 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_delete_unsigned_transaction() != 60038) { + if uniffi_cove_checksum_method_rustwalletviewmodel_delete_wallet() != 30016 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_delete_wallet() != 30016) { + if uniffi_cove_checksum_method_rustwalletviewmodel_dispatch() != 35864 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_dispatch() != 35864) { + if uniffi_cove_checksum_method_rustwalletviewmodel_display_amount() != 59974 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_display_amount() != 59974) { + if uniffi_cove_checksum_method_rustwalletviewmodel_display_fiat_amount() != 40818 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_display_fiat_amount() != 40818) { + if uniffi_cove_checksum_method_rustwalletviewmodel_display_sent_and_received_amount() != 30788 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_display_sent_and_received_amount() != 30788) { + if uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options() != 44766 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options() != 44766) { + if uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options_with_total_fee() != 22160 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options_with_total_fee() != 22160) { + if uniffi_cove_checksum_method_rustwalletviewmodel_fees() != 36596 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_fees() != 36596) { + if uniffi_cove_checksum_method_rustwalletviewmodel_fingerprint() != 38447 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_fingerprint() != 38447) { + if uniffi_cove_checksum_method_rustwalletviewmodel_force_update_height() != 17709 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_force_update_height() != 17709) { + if uniffi_cove_checksum_method_rustwalletviewmodel_force_wallet_scan() != 47434 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_force_wallet_scan() != 47434) { + if uniffi_cove_checksum_method_rustwalletviewmodel_get_confirm_details() != 13990 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_get_confirm_details() != 13990) { + if uniffi_cove_checksum_method_rustwalletviewmodel_get_fee_options() != 47126 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_get_fee_options() != 47126) { + if uniffi_cove_checksum_method_rustwalletviewmodel_get_max_send_amount() != 1655 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_get_max_send_amount() != 1655) { + if uniffi_cove_checksum_method_rustwalletviewmodel_get_unsigned_transactions() != 23375 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_get_unsigned_transactions() != 23375) { + if uniffi_cove_checksum_method_rustwalletviewmodel_listen_for_updates() != 31064 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_listen_for_updates() != 31064) { + if uniffi_cove_checksum_method_rustwalletviewmodel_mark_wallet_as_verified() != 64306 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_mark_wallet_as_verified() != 64306) { + if uniffi_cove_checksum_method_rustwalletviewmodel_next_address() != 23410 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_next_address() != 23410) { + if uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations() != 21053 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations() != 21053) { + if uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations_fmt() != 20695 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations_fmt() != 20695) { + if uniffi_cove_checksum_method_rustwalletviewmodel_save_unsigned_transaction() != 20775 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_save_unsigned_transaction() != 20775) { + if uniffi_cove_checksum_method_rustwalletviewmodel_sent_and_received_fiat() != 25413 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_sent_and_received_fiat() != 25413) { + if uniffi_cove_checksum_method_rustwalletviewmodel_set_wallet_metadata() != 16289 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_set_wallet_metadata() != 16289) { + if uniffi_cove_checksum_method_rustwalletviewmodel_start_wallet_scan() != 46525 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_start_wallet_scan() != 46525) { + if uniffi_cove_checksum_method_rustwalletviewmodel_switch_to_different_wallet_address_type() != 46868 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_switch_to_different_wallet_address_type() != 46868) { + if uniffi_cove_checksum_method_rustwalletviewmodel_transaction_details() != 62006 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_transaction_details() != 62006) { + if uniffi_cove_checksum_method_rustwalletviewmodel_validate_metadata() != 62915 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_wallet_metadata() != 44518) { + if uniffi_cove_checksum_method_rustwalletviewmodel_wallet_metadata() != 44518 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_rustwalletviewmodel_word_validator() != 32309) { + if uniffi_cove_checksum_method_rustwalletviewmodel_word_validator() != 32309 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_seedqr_get_words() != 64188) { + if uniffi_cove_checksum_method_seedqr_get_words() != 64188 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_seedqr_grouped_plain_words() != 35569) { + if uniffi_cove_checksum_method_seedqr_grouped_plain_words() != 35569 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_sentandreceived_amount() != 29581) { + if uniffi_cove_checksum_method_sentandreceived_amount() != 29581 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_sentandreceived_amount_fmt() != 55767) { + if uniffi_cove_checksum_method_sentandreceived_amount_fmt() != 55767 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_sentandreceived_direction() != 63307) { + if uniffi_cove_checksum_method_sentandreceived_direction() != 63307 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_sentandreceived_label() != 28947) { + if uniffi_cove_checksum_method_sentandreceived_label() != 28947 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_sentandreceived_received() != 12400) { + if uniffi_cove_checksum_method_sentandreceived_received() != 12400 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_sentandreceived_sent() != 29124) { + if uniffi_cove_checksum_method_sentandreceived_sent() != 29124 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_address() != 31151) { + if uniffi_cove_checksum_method_transactiondetails_address() != 31151 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_address_spaced_out() != 61966) { + if uniffi_cove_checksum_method_transactiondetails_address_spaced_out() != 61966 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_amount() != 16978) { + if uniffi_cove_checksum_method_transactiondetails_amount() != 16978 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_amount_fiat() != 34436) { + if uniffi_cove_checksum_method_transactiondetails_amount_fiat() != 34436 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_amount_fiat_fmt() != 60211) { + if uniffi_cove_checksum_method_transactiondetails_amount_fiat_fmt() != 60211 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_amount_fmt() != 3569) { + if uniffi_cove_checksum_method_transactiondetails_amount_fmt() != 3569 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_block_number() != 61262) { + if uniffi_cove_checksum_method_transactiondetails_block_number() != 61262 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_block_number_fmt() != 52006) { + if uniffi_cove_checksum_method_transactiondetails_block_number_fmt() != 52006 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_confirmation_date_time() != 54859) { + if uniffi_cove_checksum_method_transactiondetails_confirmation_date_time() != 54859 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_fee_fiat_fmt() != 62198) { + if uniffi_cove_checksum_method_transactiondetails_fee_fiat_fmt() != 62198 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_fee_fmt() != 46565) { + if uniffi_cove_checksum_method_transactiondetails_fee_fmt() != 46565 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_is_confirmed() != 54031) { + if uniffi_cove_checksum_method_transactiondetails_is_confirmed() != 54031 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_is_received() != 54839) { + if uniffi_cove_checksum_method_transactiondetails_is_received() != 54839 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_is_sent() != 7556) { + if uniffi_cove_checksum_method_transactiondetails_is_sent() != 7556 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fiat_fmt() != 62275) { + if uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fiat_fmt() != 62275 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fmt() != 54855) { + if uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fmt() != 54855 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_transactiondetails_transaction_url() != 12235) { + if uniffi_cove_checksum_method_transactiondetails_transaction_url() != 12235 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_txid_as_hash_string() != 50846) { + if uniffi_cove_checksum_method_txid_as_hash_string() != 50846 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_txid_is_equal() != 5460) { + if uniffi_cove_checksum_method_txid_is_equal() != 5460 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unconfirmedtransaction_fiat_amount() != 59016) { + if uniffi_cove_checksum_method_unconfirmedtransaction_fiat_amount() != 59016 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unconfirmedtransaction_id() != 59175) { + if uniffi_cove_checksum_method_unconfirmedtransaction_id() != 59175 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unconfirmedtransaction_label() != 12913) { + if uniffi_cove_checksum_method_unconfirmedtransaction_label() != 12913 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unconfirmedtransaction_last_seen() != 29089) { + if uniffi_cove_checksum_method_unconfirmedtransaction_last_seen() != 29089 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unconfirmedtransaction_sent_and_received() != 24593) { + if uniffi_cove_checksum_method_unconfirmedtransaction_sent_and_received() != 24593 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransaction_details() != 5504) { + if uniffi_cove_checksum_method_unsignedtransaction_details() != 5504 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransaction_id() != 29504) { + if uniffi_cove_checksum_method_unsignedtransaction_id() != 29504 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransaction_label() != 12609) { + if uniffi_cove_checksum_method_unsignedtransaction_label() != 12609 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransaction_sending_amount() != 15688) { + if uniffi_cove_checksum_method_unsignedtransaction_sending_amount() != 15688 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransaction_spending_amount() != 36292) { + if uniffi_cove_checksum_method_unsignedtransaction_spending_amount() != 36292 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransactionrecord_confirm_details() != 25286) { + if uniffi_cove_checksum_method_unsignedtransactionrecord_confirm_details() != 25286 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransactionrecord_created_at() != 62407) { + if uniffi_cove_checksum_method_unsignedtransactionrecord_created_at() != 62407 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransactionrecord_tx_id() != 61639) { + if uniffi_cove_checksum_method_unsignedtransactionrecord_tx_id() != 61639 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransactionrecord_wallet_id() != 32815) { + if uniffi_cove_checksum_method_unsignedtransactionrecord_wallet_id() != 32815 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransactionstable_gettx() != 8611) { + if uniffi_cove_checksum_method_unsignedtransactionstable_gettx() != 8611 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_unsignedtransactionstable_gettxthrow() != 32085) { + if uniffi_cove_checksum_method_unsignedtransactionstable_gettxthrow() != 32085 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_wallet_id() != 39072) { + if uniffi_cove_checksum_method_wallet_id() != 39072 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_walletstable_all() != 19569) { + if uniffi_cove_checksum_method_walletstable_all() != 19569 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_walletstable_is_empty() != 57763) { + if uniffi_cove_checksum_method_walletstable_is_empty() != 57763 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_walletstable_len() != 35149) { + if uniffi_cove_checksum_method_walletstable_len() != 35149 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_wordvalidator_grouped_words() != 32035) { + if uniffi_cove_checksum_method_wordvalidator_grouped_words() != 32035 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_wordvalidator_invalid_words_string() != 7159) { + if uniffi_cove_checksum_method_wordvalidator_invalid_words_string() != 7159 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_wordvalidator_is_all_words_valid() != 17704) { + if uniffi_cove_checksum_method_wordvalidator_is_all_words_valid() != 17704 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_wordvalidator_is_valid_word_group() != 6393) { + if uniffi_cove_checksum_method_wordvalidator_is_valid_word_group() != 6393 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_address_from_string() != 47046) { + if uniffi_cove_checksum_constructor_address_from_string() != 47046 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_address_preview_new() != 14015) { + if uniffi_cove_checksum_constructor_address_preview_new() != 14015 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_addresswithnetwork_new() != 36898) { + if uniffi_cove_checksum_constructor_addresswithnetwork_new() != 36898 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_amount_from_sat() != 58319) { + if uniffi_cove_checksum_constructor_amount_from_sat() != 58319 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_amount_one_btc() != 59586) { + if uniffi_cove_checksum_constructor_amount_one_btc() != 59586 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_amount_one_sat() != 58118) { + if uniffi_cove_checksum_constructor_amount_one_sat() != 58118 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_bip39autocomplete_new() != 41839) { + if uniffi_cove_checksum_constructor_bip39autocomplete_new() != 41839 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_bip39wordspecificautocomplete_new() != 49814) { + if uniffi_cove_checksum_constructor_bip39wordspecificautocomplete_new() != 49814 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_bitcointransaction_new() != 54397) { + if uniffi_cove_checksum_constructor_bitcointransaction_new() != 54397 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_bitcointransaction_tryfromdata() != 16116) { + if uniffi_cove_checksum_constructor_bitcointransaction_tryfromdata() != 16116 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_boxedroute_new() != 62486) { + if uniffi_cove_checksum_constructor_boxedroute_new() != 62486 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_confirmdetails_preview_new() != 31485) { + if uniffi_cove_checksum_constructor_confirmdetails_preview_new() != 31485 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_database_new() != 41458) { + if uniffi_cove_checksum_constructor_database_new() != 41458 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_feerate_from_sat_per_vb() != 58499) { + if uniffi_cove_checksum_constructor_feerate_from_sat_per_vb() != 58499 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_feerateoption_new() != 49009) { + if uniffi_cove_checksum_constructor_feerateoption_new() != 49009 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_feerateoptions_preview_new() != 9368) { + if uniffi_cove_checksum_constructor_feerateoptions_preview_new() != 9368 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_feerateoptionswithtotalfee_preview_new() != 15548) { + if uniffi_cove_checksum_constructor_feerateoptionswithtotalfee_preview_new() != 15548 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_ffiapp_new() != 11955) { + if uniffi_cove_checksum_constructor_ffiapp_new() != 11955 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_ffinfcreader_new() != 27409) { + if uniffi_cove_checksum_constructor_ffinfcreader_new() != 27409 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_filehandler_new() != 50695) { + if uniffi_cove_checksum_constructor_filehandler_new() != 50695 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_fingerprint_new() != 20831) { + if uniffi_cove_checksum_constructor_fingerprint_new() != 20831 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_headericonpresenter_new() != 10425) { + if uniffi_cove_checksum_constructor_headericonpresenter_new() != 10425 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_keychain_new() != 34449) { + if uniffi_cove_checksum_constructor_keychain_new() != 34449 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_mnemonic_new() != 56597) { + if uniffi_cove_checksum_constructor_mnemonic_new() != 56597 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_mnemonic_preview() != 3882) { + if uniffi_cove_checksum_constructor_mnemonic_preview() != 3882 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_multiqr_new_from_string() != 2028) { + if uniffi_cove_checksum_constructor_multiqr_new_from_string() != 2028 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_multiqr_try_new() != 18617) { + if uniffi_cove_checksum_constructor_multiqr_try_new() != 18617 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_multiqr_try_new_from_data() != 36957) { + if uniffi_cove_checksum_constructor_multiqr_try_new_from_data() != 36957 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_ndefrecordreader_new() != 36791) { + if uniffi_cove_checksum_constructor_ndefrecordreader_new() != 36791 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_nfcconst_new() != 22455) { + if uniffi_cove_checksum_constructor_nfcconst_new() != 22455 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_nodeselector_new() != 61659) { + if uniffi_cove_checksum_constructor_nodeselector_new() != 61659 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_psbt_new() != 25544) { + if uniffi_cove_checksum_constructor_psbt_new() != 25544 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_routefactory_new() != 4959) { + if uniffi_cove_checksum_constructor_routefactory_new() != 4959 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_rustimportwalletviewmodel_new() != 30630) { + if uniffi_cove_checksum_constructor_rustimportwalletviewmodel_new() != 30630 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_rustpendingwalletviewmodel_new() != 47075) { + if uniffi_cove_checksum_constructor_rustpendingwalletviewmodel_new() != 47075 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_rustwalletviewmodel_new() != 37675) { + if uniffi_cove_checksum_constructor_rustwalletviewmodel_new() != 37675 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_rustwalletviewmodel_preview_new_wallet() != 37026) { + if uniffi_cove_checksum_constructor_rustwalletviewmodel_preview_new_wallet() != 37026 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_rustwalletviewmodel_try_new_from_xpub() != 6171) { + if uniffi_cove_checksum_constructor_rustwalletviewmodel_try_new_from_xpub() != 6171 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_seedqr_new_from_data() != 13640) { + if uniffi_cove_checksum_constructor_seedqr_new_from_data() != 13640 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_seedqr_new_from_str() != 6520) { + if uniffi_cove_checksum_constructor_seedqr_new_from_str() != 6520 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_received() != 6979) { + if uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_received() != 6979 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_sent() != 20500) { + if uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_sent() != 20500 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_transactiondetails_preview_new_confirmed() != 2385) { + if uniffi_cove_checksum_constructor_transactiondetails_preview_new_confirmed() != 2385 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_transactiondetails_preview_pending_received() != 1731) { + if uniffi_cove_checksum_constructor_transactiondetails_preview_pending_received() != 1731 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_transactiondetails_preview_pending_sent() != 378) { + if uniffi_cove_checksum_constructor_transactiondetails_preview_pending_sent() != 378 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_unsignedtransaction_preview_new() != 1909) { + if uniffi_cove_checksum_constructor_unsignedtransaction_preview_new() != 1909 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_wallet_new_from_export() != 11192) { + if uniffi_cove_checksum_constructor_wallet_new_from_export() != 11192 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_wallet_new_from_xpub() != 31726) { + if uniffi_cove_checksum_constructor_wallet_new_from_xpub() != 31726 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_constructor_wallet_previewnewwallet() != 56877) { + if uniffi_cove_checksum_constructor_wallet_previewnewwallet() != 56877 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_ffireconcile_reconcile() != 54238) { + if uniffi_cove_checksum_method_ffireconcile_reconcile() != 54238 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_importwalletviewmodelreconciler_reconcile() != 63459) { + if uniffi_cove_checksum_method_importwalletviewmodelreconciler_reconcile() != 63459 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_keychainaccess_save() != 63039) { + if uniffi_cove_checksum_method_keychainaccess_save() != 63039 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_keychainaccess_get() != 3155) { + if uniffi_cove_checksum_method_keychainaccess_get() != 3155 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_keychainaccess_delete() != 11466) { + if uniffi_cove_checksum_method_keychainaccess_delete() != 11466 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_pendingwalletviewmodelreconciler_reconcile() != 37929) { + if uniffi_cove_checksum_method_pendingwalletviewmodelreconciler_reconcile() != 37929 { return InitializationResult.apiChecksumMismatch } - if (uniffi_cove_checksum_method_walletviewmodelreconciler_reconcile() != 28159) { + if uniffi_cove_checksum_method_walletviewmodelreconciler_reconcile() != 28159 { return InitializationResult.apiChecksumMismatch } @@ -21711,4 +19227,4 @@ private func uniffiEnsureInitialized() { } } -// swiftlint:enable all \ No newline at end of file +// swiftlint:enable all diff --git a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletContainer.swift b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletContainer.swift index 76ea9841..3465e346 100644 --- a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletContainer.swift +++ b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletContainer.swift @@ -37,16 +37,20 @@ struct SelectedWalletContainer: View { colors: [ .black.opacity(colorScheme == .dark ? 0.9 : 0), .black.opacity(colorScheme == .dark ? 0.9 : 0), - ], startPoint: .top, endPoint: .bottom) + ], startPoint: .top, endPoint: .bottom + ) : LinearGradient( stops: [ .init( color: .midnightBlue, - location: 0.20), + location: 0.20 + ), .init( color: colorScheme == .dark ? .black.opacity(0.9) : .white, - location: 0.20), - ], startPoint: .top, endPoint: .bottom) + location: 0.20 + ), + ], startPoint: .top, endPoint: .bottom + ) ) .background(Color.white) diff --git a/ios/Cove/WalletSettingsSheet.swift b/ios/Cove/WalletSettingsSheet.swift index 9ceee3fb..e4cce3ef 100644 --- a/ios/Cove/WalletSettingsSheet.swift +++ b/ios/Cove/WalletSettingsSheet.swift @@ -29,15 +29,21 @@ struct WalletSettingsSheet: View { } Section(header: Text("Basic Settings")) { - TextField("Wallet Name", text: Binding( - get: { model.walletMetadata.name }, - set: { model.dispatch(action: .updateName($0)) } - )) + TextField( + "Wallet Name", + text: Binding( + get: { model.walletMetadata.name }, + set: { model.dispatch(action: .updateName($0)) } + ) + ) - Picker("Wallet Color", selection: Binding( - get: { model.walletMetadata.color }, - set: { model.dispatch(action: .updateColor($0)) } - )) { + Picker( + "Wallet Color", + selection: Binding( + get: { model.walletMetadata.color }, + set: { model.dispatch(action: .updateColor($0)) } + ) + ) { ForEach(colors, id: \.self) { color in Text(color.toColor().description) .tag(color) @@ -89,18 +95,22 @@ struct WalletSettingsSheet: View { } .listStyle(InsetGroupedListStyle()) .navigationTitle("Wallet Settings") - .navigationBarItems(leading: + .navigationBarItems( + leading: Button { dismiss() + model.validateMetadata() navigate(Route.settings) } label: { Label("App Settings", systemImage: "gear") .foregroundColor(.blue) } ) - .navigationBarItems(trailing: Button("Done") { - dismiss() - }) + .navigationBarItems( + trailing: Button("Done") { + dismiss() + } + ) .foregroundColor(.primary) .confirmationDialog("Are you sure?", isPresented: $showingDeleteConfirmation) { Button("Delete", role: .destructive) { @@ -122,7 +132,9 @@ struct WalletSettingsSheet: View { } Button("Cancel", role: .cancel) {} } message: { - Text("Whoever has access to your secret words, has access to your bitcoin. Please keep these safe, don't show them to anyone.") + Text( + "Whoever has access to your secret words, has access to your bitcoin. Please keep these safe, don't show them to anyone." + ) } } } diff --git a/ios/Cove/WalletViewModel.swift b/ios/Cove/WalletViewModel.swift index 6e92be6b..2361ddf1 100644 --- a/ios/Cove/WalletViewModel.swift +++ b/ios/Cove/WalletViewModel.swift @@ -56,6 +56,10 @@ extension WeakReconciler: WalletViewModelReconciler where Reconciler == WalletVi walletMetadata.swiftColor } + func validateMetadata() { + rust.validateMetadata() + } + func firstAddress() async throws -> AddressInfo { try await rust.addressAt(index: 0) } diff --git a/rust/src/cove_nfc/parser/stream.rs b/rust/src/cove_nfc/parser/stream.rs index 1b454ab5..741b1099 100644 --- a/rust/src/cove_nfc/parser/stream.rs +++ b/rust/src/cove_nfc/parser/stream.rs @@ -11,7 +11,7 @@ pub trait StreamExt { fn to_vec(self) -> Vec; } -impl<'a> StreamExt for Stream<'a> { +impl StreamExt for Stream<'_> { fn len(&self) -> usize { self.as_ref().len() } diff --git a/rust/src/database/unsigned_transactions.rs b/rust/src/database/unsigned_transactions.rs index 8022b731..910549a8 100644 --- a/rust/src/database/unsigned_transactions.rs +++ b/rust/src/database/unsigned_transactions.rs @@ -279,11 +279,15 @@ impl redb::Key for TxId { } impl redb::Value for TxId { - type SelfType<'a> = TxId - where Self: 'a; + type SelfType<'a> + = TxId + where + Self: 'a; - type AsBytes<'a> = Vec - where Self: 'a; + type AsBytes<'a> + = Vec + where + Self: 'a; fn fixed_width() -> Option { None diff --git a/rust/src/redb.rs b/rust/src/redb.rs index 5a01d5cb..3ec38646 100644 --- a/rust/src/redb.rs +++ b/rust/src/redb.rs @@ -11,11 +11,13 @@ impl redb::Value for Json where T: core::fmt::Debug + Serialize + for<'a> Deserialize<'a>, { - type SelfType<'a> = T + type SelfType<'a> + = T where Self: 'a; - type AsBytes<'a> = Vec + type AsBytes<'a> + = Vec where Self: 'a; From 784aa9718878dd27b5a72ebadde94408def538a7 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 14:39:33 -0600 Subject: [PATCH 10/15] Validate and fix wallet name on `Done` --- .../SelectedWalletScreen.swift | 6 ------ rust/src/view_model/wallet.rs | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift index 97bd6dba..a2146f11 100644 --- a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift +++ b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift @@ -192,12 +192,6 @@ struct SelectedWalletScreen: View { let _ = try? await model.rust.forceUpdateHeight() } .onAppear { - if metadata.name.isEmpty { - model.dispatch( - action: .updateName( - metadata.masterFingerprint?.asUppercase() ?? "Unnamed Wallet")) - } - UIRefreshControl.appearance().tintColor = UIColor.white } .scrollIndicators(.hidden) diff --git a/rust/src/view_model/wallet.rs b/rust/src/view_model/wallet.rs index f198ed6a..62e1c407 100644 --- a/rust/src/view_model/wallet.rs +++ b/rust/src/view_model/wallet.rs @@ -513,6 +513,21 @@ impl RustWalletViewModel { Ok(()) } + #[uniffi::method] + pub fn validate_metadata(&self) { + if self.metadata.read().name.trim().is_empty() { + let name = self + .metadata + .read() + .master_fingerprint + .as_ref() + .map(|f| f.as_uppercase()) + .unwrap_or_else(|| "Unnamed Wallet".to_string()); + + self.dispatch(WalletViewModelAction::UpdateName(name)); + } + } + #[uniffi::method] pub async fn start_wallet_scan(&self) -> Result<(), Error> { debug!("start_wallet_scan: {}", self.id); @@ -811,7 +826,6 @@ impl RustWalletViewModel { #[uniffi::method] pub fn dispatch(&self, action: WalletViewModelAction) { match action { - WalletViewModelAction::UpdateName(name) if name.is_empty() => {} WalletViewModelAction::UpdateName(name) => { let mut metadata = self.metadata.write(); metadata.name = name; From 98f26204084f3fdeddb8279e6ad217aa4bde75cc Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 14:41:44 -0600 Subject: [PATCH 11/15] Use one icon for 1x,2x and 3x for now for logo --- .../icon.imageset/Contents.json | 26 +++++++++--------- .../icon.imageset/cove icon flat 2.jpg | Bin 470124 -> 0 bytes .../icon.imageset/cove icon flat.jpg | Bin 470124 -> 0 bytes ...ove icon flat 1.jpg => cove_icon_flat.jpg} | Bin 4 files changed, 13 insertions(+), 13 deletions(-) delete mode 100644 ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 2.jpg delete mode 100644 ios/Cove/Assets.xcassets/icon.imageset/cove icon flat.jpg rename ios/Cove/Assets.xcassets/icon.imageset/{cove icon flat 1.jpg => cove_icon_flat.jpg} (100%) diff --git a/ios/Cove/Assets.xcassets/icon.imageset/Contents.json b/ios/Cove/Assets.xcassets/icon.imageset/Contents.json index e9ff7687..1a89f467 100644 --- a/ios/Cove/Assets.xcassets/icon.imageset/Contents.json +++ b/ios/Cove/Assets.xcassets/icon.imageset/Contents.json @@ -1,23 +1,23 @@ { - "images" : [ + "images": [ { - "filename" : "cove icon flat.jpg", - "idiom" : "universal", - "scale" : "1x" + "filename": "cove_icon_flat.jpg", + "idiom": "universal", + "scale": "1x" }, { - "filename" : "cove icon flat 1.jpg", - "idiom" : "universal", - "scale" : "2x" + "filename": "cove_icon_flat.jpg", + "idiom": "universal", + "scale": "2x" }, { - "filename" : "cove icon flat 2.jpg", - "idiom" : "universal", - "scale" : "3x" + "filename": "cove_icon_flat.jpg", + "idiom": "universal", + "scale": "3x" } ], - "info" : { - "author" : "xcode", - "version" : 1 + "info": { + "author": "xcode", + "version": 1 } } diff --git a/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 2.jpg b/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 2.jpg deleted file mode 100644 index dc70d52952d65a070a0524bb1111b5ee063dccf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470124 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

6qb*F70pmp{= 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�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

>(qO7`eKZi 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

>IBSaIQTnx_znl|UH_n$WG|Z2>kl;dwQ*$k5 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 diff --git a/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat.jpg b/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat.jpg deleted file mode 100644 index dc70d52952d65a070a0524bb1111b5ee063dccf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470124 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

6qb*F70pmp{= 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�aKWpgWW^*LX?=(Cx&b@wrF*)VpX{VE7na?$7^dWJc25k81w=PpL_}%X5wsQ;qIdjmJ0aQ zQdGG%RoO$KZ=g{V(k0<3tpfo_H97xa>?*)b01h@QKvki@h9`W#8*77^f*1y);&%IWb?i@;JVQmMd~(y;(f5ESj$=+@xpgSk#djm!LxW-QZkzdvNSsCLS zo`cTHa*WlU-Du^H;6j_MjW~(4WSEI(XoL05tXI@%pE*$c?OYLxv z*dQ4=mL?JUFnD$bd-s`_v(co$AAwPg{4`RT#&albgQvIxdUwg<;Jb>7_VKz$%x-oE z&xfQO-0h{NWKER14$^XZ;NiKZdkYkEI^tCJK)8itbFVRjzq)^mr z?Knw(uuPR=S=0ga(ymlf=sAiQHbjY>Uk+BYnmK43!=I`X=6So%P?FgWcMT%v=H}uw zKQnOC)&n?_93+5W(D-2vo8s}<5cmug`%7L^GfNM=D%k`O$~-mi&oM+;gf?Hqu3|Fw z`75WVH&h5&z-vWDLZplk2_(ztPcK_?o3w85TgeQsVh~*lZhcTSZ&puOh_JUV^{q~q zU%#(sn0Z#dDk$nbWXr} z%p`;j31d?-K|N^tDj@?^2rQD3lp-D)dl-sZ@dA_^XFcL$niTO)P19?s58xsRK2xHU z&<%Z{5ZX-1Lv?T+lgN^6oy7(SFU>Aqaf6#k?@txJNuGD8#v-g5la8n1cv)aUddsTm zgi(fy)EbUtTWDCzJFS9MRNr;|b2u`{LQrx9KB_;DF^1Lkb(`84Sfco(4<)G#b!30v9X+<{1m1l!FnKOnI zvnqp6B+rZnf`nEz{~%_g@w}~4-ZMq6H(@foT<5X-9%{4R2|rzk53IPO@f^NKOKihBX6UdAq$%(<<}@O4pZc`rMeKVIf=!r|?vcucaiYgqjIQ%Xf`!#3 z4DXdwxkQizolS@WO0Iet-N)tV%|ZTbJ^~#S)Kt|(3cjdoPGtY7r^q$M1D-U{>X$^v z0QG?~X64P$*y=kvo9sA%vP+Rfiso&;vfp9tb6VN^m#Q@vfqH!5>_%caikeN&YKIte z43PjTFO1#v35U&B#RHE4gVXMo(<55L_PF@Nni#hr2KW!ejw1Qzb5$Pa6rd04LeaAI zQMvvKc8Dox1B`mvA1_w4lx-`^?;~nS5Bch6K2iFpX;UwbSjKyV*7L{_!z%Yr&h!Ac z7mg1Qn&Ct5>QA=WuMWUtYwSpHy$;Ap^1#bnjSy6$?LpXsvAWP7;|*`din19qrZo6` z$5+p|1f(RY5W?A;+!mt?bi0xU_JuL&^%(w^^&RO_%G@l%!G5X_WIDf1>m}m@g=(RC z+HJo&ODTUQ7Je?tyQ=ZOpMJ#WVsKUPn-WghJz4+M#f(j_`V_ysV6G@oMBLuAeC|o> z;X(0w+3=HhDbYu+#J=12o8!d5eg)}vcga79bLEcgf6^N|EY2COU30a{E%N&5-s|(R zjzP~qC1b#p98J-$$nbzNo3_I=OH&}tldj+dz;*{ zmooji2Mf39p7F*}Je$c&r%`ktvqv78{O*7DYo9W3WZb^f|AY9TR)d~?M0+t)^WJ6% zC^|*Ns8#oCR%Ay;ofhjg?eYwfXv#gysWkqL&2nwLgjl*WDzkK`a&%(3$lr8K{dx`z5VZp5C;NNF+6SgOUoVuu$H1Ps?+dB0!y{9-y#Qny;XH9v3 zx?XE`Hby~qi>)%yc~2^Y0d<-arA$IhBhU#>KieD!J#g}p^^mWnk4vp}Q<@YafyRNf zI%4Dwg|wxm#0-kCoo$1N3Tkt@AR}NRsr9lqd~jz5*iA(Rv9n61aulZWb+G@5Gx3Fe zDgd!KC@u^vxEd$`N)4x;gXfCD&6Kea@6tNMMu_hM^;mXBoE{W0=nqfXxfJglwtI|E zasv>e_j>w5xCpMNL^mb`d`G~;DY7^gzhv#fSU%9~?0tL}ymbnbpX>}yKKE*0Z-*+% zJJeehuOfx*KHe-;F6hYfkX=&hy`woDgGH^7r(#GhK@tUBR}9YN+veEhSB>-XY0~!# zgTz|~Q3wOD?zU8mT)2Mxtc^q)M;gLP5ZA>ROqX3!SPcBcepXZ?0@Y1 zCv^rXG#M!v+UtWKG<&4CJRo5=Ie)t`J4Ev)@uN|56;mnTs^utvhvc!8eZwgSgDp9l zh!HW}$j-{keqynHaF6v3VZeru_x!iUYBPv7Iqhvx-^?sxio;-&bwyd#@_`5Uzq0r9 zPG;VDGGbfw(r)NEq7N2zN7NJHe<$?1JNt?rloKK1-+^s%aU!U;96BCA;zI@&VuU+=R8aoVS=2h8gyw_^$v zhi9!Ch?#loe=%JEqvua=L80w0U?`smh^+oMps{+M8?lf73GHzfA^P?F)0^WWhpt@F$+b#K6#)Yj>1I9MNz5z?!X*kjE|qtmAEm)h%ny_D27Z z9l?Hji%eD!D`q?NO=?aMSFT`+XWWR%ZLb zUgr+`izulQ>%B3Sn<_|S+8v7kufbPVE?uJE=O-#5*8dqpPa*)fdc*-C;F!UB-4);q zN!sV8MJ<(gUE9Bmw<0;aq=m;oU~LYq@I5vnh#+GGfEkq5^aOjR?q>Z*;dg0;g+(_c zfKZ(@|1XD-^C9-*Hi4%)TB=QTp~c_Fg4X91kjb(#UoWDy%fkL~>zK3gD)#;UJEXAE z_feLlusuG$ws`38ranBXH>_*LU_q`&5xI1OQoWS2VG3X#>S>c%ZU{AvzJPS7)X#QX z4jC5}1^XG3FQ!hIZp;1)UT<>I%I9Nb63%Pa* zJoV1k;Ci$`3VKmQx0J~#vtgcI=@IWhk3xL(e-I!Pdz9o4s^-wQsMX%8Omn=RRacuV zx0{lW_nZ&iAQepMUg;(>*wU<~m}!elpvQggZGAU^{b=1Z5}uR4_4F(jP!dUj-%FnB zn$yPnkX@}^B3d|nnHkhTGHcbH0z-|_`vFn|M9qnT*pQVb8;qWV#My3Fc8%2=xCp2j z?03Xly-rKC#s885c7aoB0aK=eVh$83=w5c!UQ)EP=}}Xk)Zl0^Vj}w5-~8Gr2jREj zXkUaKG!^d-KldOG+9;tL!9P`za56#9>%<6u+nH%8w9Z@cDP4cz==6VnlBuA*+wuT0 zljHy>+{$%j-}GUq+yLK%?cIftHW*w2aixuwYB9Kl_yva@-xf1gp;AC+hJ;2S?d};& zIwx2{Eq2}~Nf&6(gH^)G)na?Sg2H+>%%d?P;cPBMIOZRwi~-j;HGDcO4A)Q2(2w)U z@<`C@;<)AptRue@TT!o0%O#Dsx-i|q%yu3nF}t&nhv2yH@=0%#-d#nOAFr)r@suiy zeVChIrkZ1$;H&=_-DwXVPe`@PpmM#=<6KMDVlqbXmdKji)sn*vp`>-VmmTRqbRZn4 z8S-GkL@M*0mbmu>z6t1e`0{B}6$&mY;!U+7tu7lBb({Y7P_{72s&3vJ^;{+e;ltr@ z6VnVS(<2AH-3+3Rm@-plksjE%0ay;H{bGiy#?Xa6G?mw0G(ElDdDXFI%t4mN@}`Uw zK5p#m?t}!hM}#y{=2RyKFb?r6lSzD~T0d5eV=2GP8glmtAUQb#+X!@<^#iyBAN^oy z^{Z!p7AV0TN3kq1rzo5B1cAzXtl%W}9g3GL%%&Cm30?Ca3J`Fd#A8~ye%7Pp`*=?* z{TyJX6G@=9d01O-VsnUYc8D8d67`+S2mxK{tYqCSw3D2~n$={k8t;jq0XcW;nCt8u z$5YM(5TjAFaA}PIa>d+Qq!q>-gt+(Ra3O?nF(m0I>yMUky)P$loFN9N5ktMQ0~s9AA2MV)Vf-T?|W>G7#=nC1D$su4N?NqMp?FXLeemi z4p!(Mjvv~~DzC-R55euH1Nax{k^_&Q1g#qfQ%Ows#0HiFwW`pS4_mSaDg*`q4Wnau z38uqv{I6DAMCTm3#)Xo?{nPAlH0S~b5wzc8mIe)sL6~fm^vK5}Jnw9dfPA#70ss~Z znft+CglT%5cmcgQ+X<}?ky2Ti-^T}!ZOtH@UYS}KoT3?zqo4ddqx4)r&j3jR2)(eAL>Z`OYDa&ix{VF5@3h7<)d9YrK}KA zIxQ#HOOm=yiw2#Bus;U0OHigtW8srAr0(3TA{(3Fi=Oao#Oa{JHQTyy6AJLBU2~x2 z6v^6T>^h{J7MW{^|4pSP-K=Kyzio<@Nfs}&;8K>ifd54HIjZzQI4v=?{yHI8DrHtw zHx+CUN$<)z!gc`<2139;`6vHq39kNLfa9N}pJqd;<#*XNNa^CBwVxRNw?Ivr^zE(| z3~ihE`tQkG2}wO^GCs_zk?z&zK}8s>*biW~3#nUgeC;CPr1RHYljk)vZSq__F!+3B zl5;E;oOusSZTdl7tJjilA%V|9VHRw-HRh77wS`ju3XlPAD`jnk{vuRsz~5{XXPA!0 zA`opW0s;so=KiDZiS)RwSr`$pG{c)@-(ANcrY-fe2)pbIuKe1A`SsDk&EVzlJF{wR zkrZk~2ijSI1#%9PX4R-1g+BfeOw0orLyu34%j4 zwJ2_Y4gM-+myY!yDUBI!=+Ov4Ai>NBG2TS4N148?wTs0(6sT2qHU}$I1h{DxaTyaK zj<&pL=*5PtYGxl9f1AR)$j9|}6i`dzdDt_W!v9mm;hEpodjI)vdTm%73$y_J8B4 zT_;`VTC-R$-QIj0J-3PDCDpC|0MSJ~GBZfsIRm@2IE4F)Bzwv4R!6B_MJcRr770>q zA4v%&k4ul{X zR#V^5Go+Tq_d15$W>t(P<>2dtCE&l^$xQ|T4mj{?hHCbwUfanYDzdc;@$es3^-#bG z-)VptK?4Y@?L3C7&-B{vQk$0m3IP8UQks;=%Gt%#SV1r2u@3yZo)4xyoI4@2i(hOb zLqUh`JsoTiVK)KM73=z#i;6NRqGc+VH^@51+1Y!K{VN%nQ4YLTy)qR%cjY-eGID&K zze4)R2k%-C9dgqKB;KPGueKxQxrP}?wu2(U-+s3GY_nlge=0*4zVeZL6=~ zt5pU6upDc_V^z%PB|wqvd!o7cZ=x*WttctifXojF1S3bVmH!MnaVbpFOmw5ggnx&= zGdz3(0DP=2pPdjLd#q#eRr$kJb;p5LM-Gk+AAWemcR3C3%C@inZ_txX{9evG*(lfcCMrckR~%J&q;GXEwd&Vw-?3nt1f@KFH`7c8&EVTA6o2 z$5BWF>`2h#j8MR+2`cImVsGC_d}=#XY#^aY3w@A^95N@d9kMdHsvMf!L?q>yqL<)= zGsvb7(T9k-1XB>qlI=q%$n_Q*(C<|~T32?A33OG_HP_>{!Tn%u-g`4fwB0*sl5GPx zF$U^n&j%vCw(5c8s;WZ8z}HmhDyNuD%= z;;pj-+lizfO+TeGc4lM`2L5P^-E;26&~AVBZkpZGTKd(1{{DS)ScUI*TEw?B(}e2| z`%=pD-d_)<;x0UXxVbwx^URZg(oI=?&GNH%FgT*Ijsu>$r=cv@Y1QXdd*0l1{ym6A z*@@^q7ial~Kt3}*|CRb*!X(LQ=EF*G`CqNH_BfnbTQ_YV6b(7lFYJXpvMtYQ{Vj#*eZi~? zawukOR&Vc~Z5}KAPW^1DFXawg>JYb<8K9D$_#()MKP9&hf3PKAS|m2jQzj1YolD++tXhMfI`0=`&IGvYej#;#jq*W_Z4N1!#<=FPae^(H_I`B zf6ri6?^u~|-xDFA&`8MezgOhCI(7MQo7E@;zdN3{D^O!!Q(9IC}HhKd? z9LFL(`LL-n9xDg=cNQK}`*Hg$pTWsg?KeF;O8Dw-YQU4K4R?U!AM+KU^_B)*p%-TX zN5Qx~0iQHura0H^t+P$c_u>7A16LG%^|SLuy4s%jfO0s!DZt1MHDTavkiy1$cbj5g)A$T$1s$ucXjynmf|DHk%C!+CXI!2siUezN#@j5nZ8iUduyCAEQ7X$|-kA zRE2F`=n;i{;oSS6uVBGQ7p}2kR=!`w7GsrUX5RIr}Xsg#qlBITLKbd{FV;r0G+Q#5J)~y83FoUlvVrsPAh*lY|NQp zQu<~6(=Vj33RFLHT>BTY6Kb3CBeuE2qb#a zA8KJz4kt5h`wKoPRMo88=WmXv$K1%2sa!(7FS1R*BuRRys_Sqt6H0V&$bYv%F=8VItzvlMS=5Y2`@gTjz1-w?gLfZOuge793| z)UOxK!*J4*u6&d_iu%Bmmiw2LPGZ)SA5h5$`0_F4_|EvQM9#6A6bmIRUN;)jl}~Le}HAdf> z@g*g{mRLeq1&@_d6Ur$OFhuBQsGapae@;TcvuSV%P6AoCb>P)(&>u~ox5DG!*g>_-H1SE`gk7eFN0Nx8@>a}Y7yeBf_OfYDS=BUTfVwb)?}2%Dg@4c6eq z&CRL0T8!YD)561t;C1Q=(}@Xoph}-OJO!aZ)=~y32uvHaAevz93=h}DpIy6f(HC#o zNB8jSX9v4)V4b9K4wL^?K`vkb;g1|HbYv&F6cH}`hu`E|t zmDLgvqvlsA7qZxgI{e#2;t`}6l}SyS&L8}zw3$>57SdgQ>`zT9AmM%>{L|UjLagy| z1*)M0uL=+;2HHvbvKI9a_%wNA)~c?KeIl`HM$u`LY$9Hl1%6n$kUP--94rN zYrNaqIOsO3nfioR%kW45lnu?-Usnx}#33oanN04`2|H_#G z)wYkn15xpX=1c1Ctalc@bj!-a`|)M^2aR1W}a)j>oDcO zVzl_Pm*hp}$l{NrB@h^!%sZwBTe- znX(UU>U&PfeTHm>m>bLb)R3QF76E;x{@U>cD7+!U{gyp_{n3dYE2m~#zXD3F)bB!tE+SI<6HkfvXyyuZR+a^8RFo^=s3yIVxcXjDo zxzdBMOpTkyM&3Z=hVE>BRmIQJeOvoDPchpip_rKaxJSjGS~r=*zfuh%DwMd(XV84j z1}*NX){pb39IV9iqVTmn5jQ;ihcCfUiA5FLN@Tr&Jmk&8YFJ#QD)|>(A1=%lob3hI zKBFWiu@Z`;=$HlA)<+$%3SII4AZhqrp90}7fXPle5LuVtG2hndaP?3cuy?S3l>Ar( zY@)8pUlUo3-DZn+X#AT3c11v9zt|KktMArbl}$i89UU*P4(+I}AH=a3^&D>y4v&gl z+d4nsOzMBTC2btoQCS7=#@t^+zMKMJHN3Z#uZib;1i!_1=cg5EAhAIJT#4&`t{Va` zj3;1~&BR6po18dWY(MPP?P~43ZrgtIbQl+elG6v0$N$!b@NX7wJN*30!oy$7*WIWV z+$fwmt7gr`X)kIrrkW1Dm~wlw_2B+ip-DvggmrM|!)H@YS0W7DgGY}C9{qQCX;UIOyl7T)6qxo_CM9fD{^*4xv>xrLbaAT#ng%!Bm6 z*XqzmSBJGL-Z^6S@%|4}-vZ8b`~N@9V<}PTK+WNa(n(IG4KwoOkXUEWLrke8Im{gA zFo(`9$D*fZQ$!N$;4C(gkun)p4w;6TIWugw^}l`p-{1fDzpk!pS6A9TKA+w9{eHjR zufzV_4IVu`AB|t;giP{HUG`;sQu-)o7;kK?8wzPYHxC^MIX5R7s_Kt zew0{Rd@=ba)8}r{{U+YNW92()|3S9BaHK4kQ6<=9r<-1<@mNJv^Tj%>fr&Ik z%0kf+MHwiaR;R#7zagKt4$jpxH2Ki97WfnKhZt=4tADQcq33%58<{%FN%$7jpb8J~ zAJKktMI$@H_sQsD&W;dQ3sO8%OHD7?6mp>jK6FX^?p8VaEZHa@Oceu0BhFO_Z|-~t zsTYhHJA84ltI$C3ARRa`KFQV|*?7AZyA(Zo-619?gb{4Z2cFgV_En~)TQ#OSvH*Hf zA_F4%(8(vg5+S<^QRihHPuk2v&86diROvli$bS|)KM`c=c@SW_AddPWmKKK_0L`jh zlM}PQHzO(ITu#q7e~#o^uUz3telMFgIQu=KmjhEdLguA$l9HA135lz?yrfU=38ptG zMVPFDFtPli>_d1{--bj2Ki$}*T_u<>N9La09pxccR;7B@TDyzZUt6n6191MZ)5i|=qGA1k0@e6bO34rH>!^1p~ZYf1cyU#^w`2yyiW zN>$4U?GbRC0W0c`i=Xcj(b2DyG4>hP780f9r1*xL0pdwCHQVlO2U-g1=#{~U7XSso z5Iyhoo?+;}L28VdDl{`eHiNVZxgY39H=|ZGgmu4Ssh8Yh|FI8dgif))OPQ#5XC0w> zw9VJR8s8_X5R0E{S%WDlw)>Mqw*xY+N{@JR(HQ1mup|0Jkx^vxsH#@gKK_ViteUoyJ}uOrKC0d z%FSv1TQB=)(5Lw->CC4%vl+Mbg@e;&yocU9BbQawto&WK_LThD^0mfqGQ{XiEFSK+ z3D>a6ZEUf#)pyvl(fAZyM8%y3Jb!?`l|xkty|KjfPa?{RfK zl|d-)4JiLPQSa4%Z)8YH?IgiBD z&7-O7UlL|WTp#@nr0e>FZz~~*Wok zFCRBKT1G+(j)x-k`HBE;u)O6Fe~VK>aoFG0>nzu4m4L_@5X+z&YgWJ4eihGu{b~?Q zx9+QZ|Gu3dkjDdbp;37?^Rh$InA-|XrooVAxwaz&kX|0tLRb)TcsDA5Ep3Y``Z+Kn zA4IVf6MjP!ba@6NfkPYWE%79Lwok`GP>bQeH_|yXfTt*rg)EFJjCxSweXPhE5kXmS z?*jzCO*Bv?XNiXJEeGh+_Csl8GI`4&t{s|kDpFGqB=-@r ze}m@)+54+PMl8}m`~WXbt3&Yh^H%FoNCdJi?xHFTz7bNq0}N3HsKB_)f!Hu7uenRf zb`p{(8YIeN1FLxzMp{C;|50%t|6$zJ60jQ4 z`^%z$l&?aDrU6!|Ytm#!hI}+IxF92~ePV*#{jHw>wnzLPhah2vNZ5CwMUNDXXDLGC z|GA4mwAuJfHN6e5m5^s2fH7Wd9QJ0@B42T#iI)j-{wDiun@_Cu29wbpomt6Z?~D2`|&@ z1)Hl(k@u}q9Iv}u951q3Wgc&Pg#p-Nhf?|hN)e^^=#y-5#joklDl2{g#9Qq{rLJ%K znpx#BWpB*29uz3AqJe?BhLaJcf*vQQay-^C^c7NL<4z&^(<*`?>v3g-J@r>sl|JA+ z0Z*C3!ptIHZ1?I71tT@xd1xI7wwTv!P^gHvM8 zJ;#w;2y&C527b|tZd0mcD5WSK@Np$SWTCK_npqvOd~3T+2X#QIO@C{gp zsmzz3yQB-f07-cObA6~A@3EoMhmjjLi z;6rJ?c<@B339@Scgt(=j!o^hZcMY)|%N@`NI z3uPYjmjXKQ2%0LYDBx<>eee;DW8$KOQ>lBio=<=kKlx_D=d0{B@L_ojwH72_VY z_}zMH269HE!SAY7RW+mLK&{qHf$HRz42(dhI2Ul7H)FVDF%-38l~WKicQzovAM6Cc zDTB5Y_$=jwecuB500In?NeRgXDCI-P7Nw0-FRJAh^i)+CZi%l)j>o)YKI5_P`32I8 z0o6G{W?bPAM9rGNIgwUhuP9;_j^mn}hoexI)|p~|4pI1~jF_F(Um^M?F6ZmP)5s!j z0z2jUTrU)&_SERI_+e)CK5GiCqrcY9Dhu%I%ZyH(qntTg0rrfE*N*4 zv23Dj1!ML5hE^_vF4nz`?w%Byzb_%|XiZ{|WGC=5yY< zB?$#TLOZgz3~}aUmc_#}nH|RrJ)mZqK%H*KbNv?NiWrG&fj~ZN$0x5;J8ir znL_U{2ZwsJ^gPN6$MufI7gJ)R*zZhO zw9U`CBwqmh&IZl?G5?zT)W4x>Q4UM`4H>3)H9wUr56@f|&F~Xo=zfldk5EQY!?KbD z_kTl9;j;Ig5YG`)sU7bVCBY-nbA>m&sIxPvU}jJy-}`0h>94~HgGWqi1HuG9l$-{) zb?@hq){U77-0c$I68$&W8tptxOn-Z$?h$$C=E>kT{NW$Jj8k32b-n_z)-CY)ieDeR zNXBT!{6iUmrqxQJRyNKbNhlUsO28N%_ zX;yT6e4UFJBJaVd9gaKp)b%mqzanM><~tDU>U{i>(-}(q!$U}r zZeQas-}l5bPQ26gukvyZsmJri)8vWn@b#5{y3U^2CfTp;5MTe}X=2-kB`yYcYGeKMA zILyYvhplzHjIiJ=8I5!8%j?aE0CjS4MNyy(i)}Q);Qm>AO#WiWQJveOyr%I|eeEjA z8SAD~(M8FE)Bc3JenBRke*^oW73OgKZb&}h4l7iSWqw_i;dzdGusewOp)##a`gjq4_E%H3}ZNW*098#;e6!S@YhbvxJ zQ;-hB&xIlp`k~eg{L=-?*eQ_yEa@;fI)9%o;tw5`Z`{Pqst5IKjpF23&f?hW`Zh%I zX2a$M!{Qwa@@hc(Q~7gdo0|BlSyM3Z0O~h2R#kP#NAw=c?5{hruu<+dOytZ+m2@^5 zV9b*7-|lcl&0K0QzD2%&&6xm!ER4u;{TQlWBE}9m0D}46;1~vs24CO}^irxM6Wi1Z z1af=V`xAzt?y@0=##fR3>BJiLTLwsg^WHGg8TReMPih3lInF-tL0Q1Q2%O!mvamgk z>phPlg(y!ml~Qqo#B^&HH|p5%?5mhU7SoQSSEm&lHYZrN7; zB;rAty>fn}!>4UYNbxzAZP$Sab+)!kZgNPpdb@9;%WG@NCnA1KOCYtS zHpSOJphBwCxwM}pFt|~g`!Klwoakgx@+bR!UL}uqJ58~(3DhHzZVTI&)(y^W>Z!|k zz4UoK;|wd>Sy}In|9Q^54-5kb4Ts5yQuK{ zF@^rmo%GAglAmTwxi-%R{>H0`uUxEvhF>Po0EG^CxcUo`a=H`&P^Y0 z2YYcd@6Xjk@Ko!{mge6O>qmzLBL|)@O5#e(31iOTaoE%x>NQWJVtUCh zBil}(zbwNX&G}=kr_G)_yCJz>6btF*RFj)Vy70Zu$3C{3ZEdued^-3*?e7`w_raM@ z&fU!ad9C_p19$(qa${8ESJt`RH%}7Yr{?M>xMm~I7Oug$e9n7#@lkI?ct?*o`|*Cm z<6b+GwMpk+aSGR*xF_7xax{*Jlg=#Fe3IO5r0Fc>G70%J_+OqEqellH-d^5$Z=!;I z-In2*=^k^g`xS&a*>XDFUlemd8)1doZ$%vL+nC{wcWwFXRXjy2l-Xu-_Y6nE&6To? zZ|ANyFXg}N8gmkV4yar7b;`3X-DNT4qdCz|`H*bty1FMic<-qo{6E52YcGe`OHXY+ z4sD2!LJFGsBjPB?&?>Xk$iknkY$+&UKMcPF-mel+f=q_4-=m99FGye-WU>r6nS3k0 zuF8FS0dL6=DE^8qW0&K!Cgu+2{*eO7m@VmWx`J#|^?)ns^Rfp_boRV*Cj`m-WU)+r zj*&0e{yHCq0Un%Ih{Xnq^*MMLPya#A#ZnLdVG#RKKY78jlo{4^hC6LmO7iVgvhs;n z_EHd}c{une0j}=K#i(0B8ieWgk-V1|5&CoF-RFZ%_YmEQSyHt|{zIU*DM_*w^p3O` z=mMThbF<|mTz!)ggty%Y%r?>7$DhIYQbte;Hp!f908*U_{dCoCy|iqx;?Uar($J~7 z&W|UhgxEpKib@U?;0Bt={mPoUludJN*jZ3vVu242V3xD3$!9?`i;7Q?9_;8Ar7wHZ0C>uWz#4s08^)R*hmnC<^dUz;ifD z1Q8nYIb{P`_{4Dg5ymC_E%C$bg6%0MtVdgh0yH%tlYGmg*MXmom=I}kh zJhC_47BX}xF;Y>TGqOK~aIT0Z3Z(!0b@y2Nz{vq!%43vCFH+$R4h)g%+ui~NfD8*J z<0~ySHuVNcJH*)Gh?$TQU#?&U2fQH{_viz3;GXn-I zM&z&xvP8fENw6qh0AZv=xUFvf&1<%bsYepu5b!D ztVWlJ*89Lnu~WynC1&X%$EFcYu7qu+95DghDiDC}KM#o5l$;?S1EiSXP2Sz2OQuxm z^WLvgC`zH++K72u4=9c>eV%!7Q}f0cR3Qq2 zmcZ)0Af(5l4LUKd1Svx`8W#^@PLgeTwP*u5(OB$X5wrxcnXJ^G4d=rHd0NIMX`RrY z*^m7JJj8By&Esp$8Y4u!WM!UKE#3t?T(n&0#^KCr_sfB>8qGNXMJCYKP=xm(W(*YS(f3VG`Q=F9zN_Tz^ zcwm9NAiG}rTVQ0g5yVBu_rc-O+W>GlEc>&lNV**JNi>hpf5Skq^f$Dy;4@@i!KNDU zsl>*cEIKt5Hg;x!RGhD!iyP&x9z^gzVb<-kO*Ksu%Klys{t> zVnww}jM6_#^ps>~7J59Nl?CYGCXc(bgBy+AS zYGGi~IOsrlVhFxvh)*GGT#X!6G6UQZ*ww}!le%o9UdgOHt$AP|07h1`O;w6y0nxTT zaQavTz99jCuuB_Te%ULXDEUcG`06*^x0HhYW`(@sRKpQHu(U5bo%uzQJ!F1@?29-@ zCHq34>5hj+FBs1@UcB0IulvQ{pCY>Q%B8CCUQLYQ=lA=YijGlW(7T`7Tw8XxKSNd! z&pwkK@_TZ*{Qe8UlS5DThZ9_>m-Bm`bN70D?{x^;cvAzS_#hIl_L&};>vHOaD>+W% zh)GJG+g|C`F=CpA^z89)BXv@d!QRK!qPLs%djn4wpE?U(7C%&vc^136*loIf<-qQ> z#`XEM_Wezdth@5CxV*+57jw?Zp8h1Qqg%C-{Den8{`7|Nj(+U!JFmb2r1zsAdy1|j zR8C#rzDcB6C|>^?V*4vC1HNZV`Idy02(o@>k=4ZE7g_MMLQ2!GlxA=e}?wHnm38JA<6$==3iqH2@3u1%&LdvGACs`bam zjVB)r@9NJiF27VT-oK1yE?TR^9Ksgd2)&R}ATd;1dy6@vMuNB zKy|U-rEW4>UF}CN*K~dfH9h3R{zyRohV1B&1FaWpjsY-}IhfOpE!HR9O@BI~iN;eX!P%0`CY4_c#LI@2ud%FjxzbTDiEz{dp$ zV%^q(GSvqpW}$x>L;^76Xv%uxAaetNRPKVlY-ZX(epjsl$GsPDdnqQLA;CmHlo`zaOt^=M8=;>X-rm}@h>%SPuzx0zYtf+*Vu

>(qO7`eKZi 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

>IBSaIQTnx_znl|UH_n$WG|Z2>kl;dwQ*$k5 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 diff --git a/ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 1.jpg b/ios/Cove/Assets.xcassets/icon.imageset/cove_icon_flat.jpg similarity index 100% rename from ios/Cove/Assets.xcassets/icon.imageset/cove icon flat 1.jpg rename to ios/Cove/Assets.xcassets/icon.imageset/cove_icon_flat.jpg From 31ae722ed1eacd87d9461c771bf44208f82b332a Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 14:45:37 -0600 Subject: [PATCH 12/15] Format generated Swift file on generate --- ios/Cove/Cove.swift | 14665 +++++++++++++++++++------------- rust/src/view_model/wallet.rs | 4 +- scripts/build-ios.sh | 1 + 3 files changed, 8583 insertions(+), 6087 deletions(-) diff --git a/ios/Cove/Cove.swift b/ios/Cove/Cove.swift index 1f79b534..389f1181 100644 --- a/ios/Cove/Cove.swift +++ b/ios/Cove/Cove.swift @@ -8,10 +8,10 @@ import Foundation // might be in a separate module, or it might be compiled inline into // this module. This is a bit of light hackery to work with both. #if canImport(coveFFI) - import coveFFI +import coveFFI #endif -private extension RustBuffer { +fileprivate extension RustBuffer { // Allocate a new buffer, copying the contents of a `UInt8` array. init(bytes: [UInt8]) { let rbuf = bytes.withUnsafeBufferPointer { ptr in @@ -21,7 +21,7 @@ private extension RustBuffer { } static func empty() -> RustBuffer { - RustBuffer(capacity: 0, len: 0, data: nil) + RustBuffer(capacity: 0, len:0, data: nil) } static func from(_ ptr: UnsafeBufferPointer) -> RustBuffer { @@ -35,7 +35,7 @@ private extension RustBuffer { } } -private extension ForeignBytes { +fileprivate extension ForeignBytes { init(bufferPointer: UnsafeBufferPointer) { self.init(len: Int32(bufferPointer.count), data: bufferPointer.baseAddress) } @@ -48,7 +48,7 @@ private extension ForeignBytes { // Helper classes/extensions that don't change. // Someday, this will be in a library of its own. -private extension Data { +fileprivate extension Data { init(rustBuffer: RustBuffer) { self.init( bytesNoCopy: rustBuffer.data!, @@ -72,15 +72,15 @@ private extension Data { // // Instead, the read() method and these helper functions input a tuple of data -private func createReader(data: Data) -> (data: Data, offset: Data.Index) { +fileprivate func createReader(data: Data) -> (data: Data, offset: Data.Index) { (data: data, offset: 0) } // Reads an integer at the current offset, in big-endian order, and advances // the offset on success. Throws if reading the integer would move the // offset past the end of the buffer. -private func readInt(_ reader: inout (data: Data, offset: Data.Index)) throws -> T { - let range = reader.offset ..< reader.offset + MemoryLayout.size +fileprivate func readInt(_ reader: inout (data: Data, offset: Data.Index)) throws -> T { + let range = reader.offset...size guard reader.data.count >= range.upperBound else { throw UniffiInternalError.bufferOverflow } @@ -90,50 +90,50 @@ private func readInt(_ reader: inout (data: Data, offset: return value as! T } var value: T = 0 - let _ = withUnsafeMutableBytes(of: &value) { reader.data.copyBytes(to: $0, from: range) } + let _ = withUnsafeMutableBytes(of: &value, { reader.data.copyBytes(to: $0, from: range)}) reader.offset = range.upperBound return value.bigEndian } // Reads an arbitrary number of bytes, to be used to read // raw bytes, this is useful when lifting strings -private func readBytes(_ reader: inout (data: Data, offset: Data.Index), count: Int) throws -> [UInt8] { - let range = reader.offset ..< (reader.offset + count) +fileprivate func readBytes(_ reader: inout (data: Data, offset: Data.Index), count: Int) throws -> Array { + let range = reader.offset..<(reader.offset+count) guard reader.data.count >= range.upperBound else { throw UniffiInternalError.bufferOverflow } var value = [UInt8](repeating: 0, count: count) - value.withUnsafeMutableBufferPointer { buffer in + value.withUnsafeMutableBufferPointer({ buffer in reader.data.copyBytes(to: buffer, from: range) - } + }) reader.offset = range.upperBound return value } // Reads a float at the current offset. -private func readFloat(_ reader: inout (data: Data, offset: Data.Index)) throws -> Float { - try Float(bitPattern: readInt(&reader)) +fileprivate func readFloat(_ reader: inout (data: Data, offset: Data.Index)) throws -> Float { + return Float(bitPattern: try readInt(&reader)) } // Reads a float at the current offset. -private func readDouble(_ reader: inout (data: Data, offset: Data.Index)) throws -> Double { - try Double(bitPattern: readInt(&reader)) +fileprivate func readDouble(_ reader: inout (data: Data, offset: Data.Index)) throws -> Double { + return Double(bitPattern: try readInt(&reader)) } // Indicates if the offset has reached the end of the buffer. -private func hasRemaining(_ reader: (data: Data, offset: Data.Index)) -> Bool { - reader.offset < reader.data.count +fileprivate func hasRemaining(_ reader: (data: Data, offset: Data.Index)) -> Bool { + return reader.offset < reader.data.count } // Define writer functionality. Normally this would be defined in a class or // struct, but we use standalone functions instead in order to make external // types work. See the above discussion on Readers for details. -private func createWriter() -> [UInt8] { - [] +fileprivate func createWriter() -> [UInt8] { + return [] } -private func writeBytes(_ writer: inout [UInt8], _ byteArr: some Sequence) { +fileprivate func writeBytes(_ writer: inout [UInt8], _ byteArr: S) where S: Sequence, S.Element == UInt8 { writer.append(contentsOf: byteArr) } @@ -141,22 +141,22 @@ private func writeBytes(_ writer: inout [UInt8], _ byteArr: some Sequence // // Warning: make sure what you are trying to write // is in the correct type! -private func writeInt(_ writer: inout [UInt8], _ value: some FixedWidthInteger) { +fileprivate func writeInt(_ writer: inout [UInt8], _ value: T) { var value = value.bigEndian withUnsafeBytes(of: &value) { writer.append(contentsOf: $0) } } -private func writeFloat(_ writer: inout [UInt8], _ value: Float) { +fileprivate func writeFloat(_ writer: inout [UInt8], _ value: Float) { writeInt(&writer, value.bitPattern) } -private func writeDouble(_ writer: inout [UInt8], _ value: Double) { +fileprivate func writeDouble(_ writer: inout [UInt8], _ value: Double) { writeInt(&writer, value.bitPattern) } // Protocol for types that transfer other types across the FFI. This is // analogous to the Rust trait of the same name. -private protocol FfiConverter { +fileprivate protocol FfiConverter { associatedtype FfiType associatedtype SwiftType @@ -167,32 +167,32 @@ private protocol FfiConverter { } // Types conforming to `Primitive` pass themselves directly over the FFI. -private protocol FfiConverterPrimitive: FfiConverter where FfiType == SwiftType {} +fileprivate protocol FfiConverterPrimitive: FfiConverter where FfiType == SwiftType { } extension FfiConverterPrimitive { - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ value: FfiType) throws -> SwiftType { - value + return value } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ value: SwiftType) -> FfiType { - value + return value } } // Types conforming to `FfiConverterRustBuffer` lift and lower into a `RustBuffer`. // Used for complex types where it's hard to write a custom lift/lower. -private protocol FfiConverterRustBuffer: FfiConverter where FfiType == RustBuffer {} +fileprivate protocol FfiConverterRustBuffer: FfiConverter where FfiType == RustBuffer {} extension FfiConverterRustBuffer { - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ buf: RustBuffer) throws -> SwiftType { var reader = createReader(data: Data(rustBuffer: buf)) let value = try read(from: &reader) @@ -203,19 +203,18 @@ extension FfiConverterRustBuffer { return value } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ value: SwiftType) -> RustBuffer { - var writer = createWriter() - write(value, into: &writer) - return RustBuffer(bytes: writer) + var writer = createWriter() + write(value, into: &writer) + return RustBuffer(bytes: writer) } } - // An error type for FFI errors. These errors occur at the UniFFI level, not // the library level. -private enum UniffiInternalError: LocalizedError { +fileprivate enum UniffiInternalError: LocalizedError { case bufferOverflow case incompleteData case unexpectedOptionalTag @@ -228,37 +227,37 @@ private enum UniffiInternalError: LocalizedError { public var errorDescription: String? { switch self { - case .bufferOverflow: "Reading the requested value would read past the end of the buffer" - case .incompleteData: "The buffer still has data after lifting its containing value" - case .unexpectedOptionalTag: "Unexpected optional tag; should be 0 or 1" - case .unexpectedEnumCase: "Raw enum value doesn't match any cases" - case .unexpectedNullPointer: "Raw pointer value was null" - case .unexpectedRustCallStatusCode: "Unexpected RustCallStatus code" - case .unexpectedRustCallError: "CALL_ERROR but no errorClass specified" - case .unexpectedStaleHandle: "The object in the handle map has been dropped already" - case let .rustPanic(message): message + case .bufferOverflow: return "Reading the requested value would read past the end of the buffer" + case .incompleteData: return "The buffer still has data after lifting its containing value" + case .unexpectedOptionalTag: return "Unexpected optional tag; should be 0 or 1" + case .unexpectedEnumCase: return "Raw enum value doesn't match any cases" + case .unexpectedNullPointer: return "Raw pointer value was null" + case .unexpectedRustCallStatusCode: return "Unexpected RustCallStatus code" + case .unexpectedRustCallError: return "CALL_ERROR but no errorClass specified" + case .unexpectedStaleHandle: return "The object in the handle map has been dropped already" + case let .rustPanic(message): return message } } } -private extension NSLock { +fileprivate extension NSLock { func withLock(f: () throws -> T) rethrows -> T { - lock() + self.lock() defer { self.unlock() } return try f() } } -private let CALL_SUCCESS: Int8 = 0 -private let CALL_ERROR: Int8 = 1 -private let CALL_UNEXPECTED_ERROR: Int8 = 2 -private let CALL_CANCELLED: Int8 = 3 +fileprivate let CALL_SUCCESS: Int8 = 0 +fileprivate let CALL_ERROR: Int8 = 1 +fileprivate let CALL_UNEXPECTED_ERROR: Int8 = 2 +fileprivate let CALL_CANCELLED: Int8 = 3 -private extension RustCallStatus { +fileprivate extension RustCallStatus { init() { self.init( code: CALL_SUCCESS, - errorBuf: RustBuffer( + errorBuf: RustBuffer.init( capacity: 0, len: 0, data: nil @@ -272,67 +271,66 @@ private func rustCall(_ callback: (UnsafeMutablePointer) -> T return try makeRustCall(callback, errorHandler: neverThrow) } -private func rustCallWithError( - _ errorHandler: @escaping (RustBuffer) throws -> some Swift.Error, - _ callback: (UnsafeMutablePointer) -> T -) throws -> T { +private func rustCallWithError( + _ errorHandler: @escaping (RustBuffer) throws -> E, + _ callback: (UnsafeMutablePointer) -> T) throws -> T { try makeRustCall(callback, errorHandler: errorHandler) } -private func makeRustCall( +private func makeRustCall( _ callback: (UnsafeMutablePointer) -> T, - errorHandler: ((RustBuffer) throws -> some Swift.Error)? + errorHandler: ((RustBuffer) throws -> E)? ) throws -> T { uniffiEnsureInitialized() - var callStatus = RustCallStatus() + var callStatus = RustCallStatus.init() let returnedVal = callback(&callStatus) try uniffiCheckCallStatus(callStatus: callStatus, errorHandler: errorHandler) return returnedVal } -private func uniffiCheckCallStatus( +private func uniffiCheckCallStatus( callStatus: RustCallStatus, - errorHandler: ((RustBuffer) throws -> some Swift.Error)? + errorHandler: ((RustBuffer) throws -> E)? ) throws { switch callStatus.code { - case CALL_SUCCESS: - return + case CALL_SUCCESS: + return - case CALL_ERROR: - if let errorHandler { - throw try errorHandler(callStatus.errorBuf) - } else { - callStatus.errorBuf.deallocate() - throw UniffiInternalError.unexpectedRustCallError - } + case CALL_ERROR: + if let errorHandler = errorHandler { + throw try errorHandler(callStatus.errorBuf) + } else { + callStatus.errorBuf.deallocate() + throw UniffiInternalError.unexpectedRustCallError + } - case CALL_UNEXPECTED_ERROR: - // When the rust code sees a panic, it tries to construct a RustBuffer - // with the message. But if that code panics, then it just sends back - // an empty buffer. - if callStatus.errorBuf.len > 0 { - throw try UniffiInternalError.rustPanic(FfiConverterString.lift(callStatus.errorBuf)) - } else { - callStatus.errorBuf.deallocate() - throw UniffiInternalError.rustPanic("Rust panic") - } + case CALL_UNEXPECTED_ERROR: + // When the rust code sees a panic, it tries to construct a RustBuffer + // with the message. But if that code panics, then it just sends back + // an empty buffer. + if callStatus.errorBuf.len > 0 { + throw UniffiInternalError.rustPanic(try FfiConverterString.lift(callStatus.errorBuf)) + } else { + callStatus.errorBuf.deallocate() + throw UniffiInternalError.rustPanic("Rust panic") + } - case CALL_CANCELLED: - fatalError("Cancellation not supported yet") + case CALL_CANCELLED: + fatalError("Cancellation not supported yet") - default: - throw UniffiInternalError.unexpectedRustCallStatusCode + default: + throw UniffiInternalError.unexpectedRustCallStatusCode } } private func uniffiTraitInterfaceCall( callStatus: UnsafeMutablePointer, makeCall: () throws -> T, - writeReturn: (T) -> Void + writeReturn: (T) -> () ) { do { try writeReturn(makeCall()) - } catch { + } catch let error { callStatus.pointee.code = CALL_UNEXPECTED_ERROR callStatus.pointee.errorBuf = FfiConverterString.lower(String(describing: error)) } @@ -341,7 +339,7 @@ private func uniffiTraitInterfaceCall( private func uniffiTraitInterfaceCallWithError( callStatus: UnsafeMutablePointer, makeCall: () throws -> T, - writeReturn: (T) -> Void, + writeReturn: (T) -> (), lowerError: (E) -> RustBuffer ) { do { @@ -354,8 +352,7 @@ private func uniffiTraitInterfaceCallWithError( callStatus.pointee.errorBuf = FfiConverterString.lower(String(describing: error)) } } - -private final class UniffiHandleMap: @unchecked Sendable { +fileprivate final class UniffiHandleMap: @unchecked Sendable { // All mutation happens with this lock held, which is why we implement @unchecked Sendable. private let lock = NSLock() private var map: [UInt64: T] = [:] @@ -370,7 +367,7 @@ private final class UniffiHandleMap: @unchecked Sendable { } } - func get(handle: UInt64) throws -> T { + func get(handle: UInt64) throws -> T { try lock.withLock { guard let obj = map[handle] else { throw UniffiInternalError.unexpectedStaleHandle @@ -390,21 +387,25 @@ private final class UniffiHandleMap: @unchecked Sendable { } var count: Int { - map.count + get { + map.count + } } } + // Public interface members begin here. + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterUInt8: FfiConverterPrimitive { +fileprivate struct FfiConverterUInt8: FfiConverterPrimitive { typealias FfiType = UInt8 typealias SwiftType = UInt8 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt8 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: UInt8, into buf: inout [UInt8]) { @@ -413,14 +414,14 @@ private struct FfiConverterUInt8: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterUInt16: FfiConverterPrimitive { +fileprivate struct FfiConverterUInt16: FfiConverterPrimitive { typealias FfiType = UInt16 typealias SwiftType = UInt16 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt16 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: SwiftType, into buf: inout [UInt8]) { @@ -429,14 +430,14 @@ private struct FfiConverterUInt16: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterUInt32: FfiConverterPrimitive { +fileprivate struct FfiConverterUInt32: FfiConverterPrimitive { typealias FfiType = UInt32 typealias SwiftType = UInt32 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt32 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: SwiftType, into buf: inout [UInt8]) { @@ -445,14 +446,14 @@ private struct FfiConverterUInt32: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterInt32: FfiConverterPrimitive { +fileprivate struct FfiConverterInt32: FfiConverterPrimitive { typealias FfiType = Int32 typealias SwiftType = Int32 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Int32 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: Int32, into buf: inout [UInt8]) { @@ -461,14 +462,14 @@ private struct FfiConverterInt32: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterUInt64: FfiConverterPrimitive { +fileprivate struct FfiConverterUInt64: FfiConverterPrimitive { typealias FfiType = UInt64 typealias SwiftType = UInt64 public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UInt64 { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: SwiftType, into buf: inout [UInt8]) { @@ -477,14 +478,14 @@ private struct FfiConverterUInt64: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterDouble: FfiConverterPrimitive { +fileprivate struct FfiConverterDouble: FfiConverterPrimitive { typealias FfiType = Double typealias SwiftType = Double public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Double { - try lift(readDouble(&buf)) + return try lift(readDouble(&buf)) } public static func write(_ value: Double, into buf: inout [UInt8]) { @@ -493,22 +494,22 @@ private struct FfiConverterDouble: FfiConverterPrimitive { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterBool: FfiConverter { +fileprivate struct FfiConverterBool : FfiConverter { typealias FfiType = Int8 typealias SwiftType = Bool public static func lift(_ value: Int8) throws -> Bool { - value != 0 + return value != 0 } public static func lower(_ value: Bool) -> Int8 { - value ? 1 : 0 + return value ? 1 : 0 } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bool { - try lift(readInt(&buf)) + return try lift(readInt(&buf)) } public static func write(_ value: Bool, into buf: inout [UInt8]) { @@ -517,9 +518,9 @@ private struct FfiConverterBool: FfiConverter { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterString: FfiConverter { +fileprivate struct FfiConverterString: FfiConverter { typealias SwiftType = String typealias FfiType = RustBuffer @@ -535,7 +536,7 @@ private struct FfiConverterString: FfiConverter { } public static func lower(_ value: String) -> RustBuffer { - value.utf8CString.withUnsafeBufferPointer { ptr in + return value.utf8CString.withUnsafeBufferPointer { ptr in // The swift string gives us int8_t, we want uint8_t. ptr.withMemoryRebound(to: UInt8.self) { ptr in // The swift string gives us a trailing null byte, we don't want it. @@ -547,7 +548,7 @@ private struct FfiConverterString: FfiConverter { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> String { let len: Int32 = try readInt(&buf) - return try String(bytes: readBytes(&buf, count: Int(len)), encoding: String.Encoding.utf8)! + return String(bytes: try readBytes(&buf, count: Int(len)), encoding: String.Encoding.utf8)! } public static func write(_ value: String, into buf: inout [UInt8]) { @@ -558,14 +559,14 @@ private struct FfiConverterString: FfiConverter { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterData: FfiConverterRustBuffer { +fileprivate struct FfiConverterData: FfiConverterRustBuffer { typealias SwiftType = Data public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Data { let len: Int32 = try readInt(&buf) - return try Data(readBytes(&buf, count: Int(len))) + return Data(try readBytes(&buf, count: Int(len))) } public static func write(_ value: Data, into buf: inout [UInt8]) { @@ -576,9 +577,9 @@ private struct FfiConverterData: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterDuration: FfiConverterRustBuffer { +fileprivate struct FfiConverterDuration: FfiConverterRustBuffer { typealias SwiftType = TimeInterval public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TimeInterval { @@ -603,21 +604,25 @@ private struct FfiConverterDuration: FfiConverterRustBuffer { } } -public protocol AddressProtocol: AnyObject { - func spacedOut() -> String - func string() -> String + + +public protocol AddressProtocol : AnyObject { + + func spacedOut() -> String + + func string() -> String + } open class Address: - AddressProtocol -{ + AddressProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -625,7 +630,7 @@ open class Address: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -634,71 +639,78 @@ open class Address: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_address(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_address(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_address(pointer, $0) } } - public static func fromString(address: String) throws -> Address { - try FfiConverterTypeAddress.lift(rustCallWithError(FfiConverterTypeAddressError.lift) { - uniffi_cove_fn_constructor_address_from_string( - FfiConverterString.lower(address), $0 - ) - }) - } - - public static func previewNew() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_constructor_address_preview_new($0 - ) - }) - } + +public static func fromString(address: String)throws -> Address { + return try FfiConverterTypeAddress.lift(try rustCallWithError(FfiConverterTypeAddressError.lift) { + uniffi_cove_fn_constructor_address_from_string( + FfiConverterString.lower(address),$0 + ) +}) +} + +public static func previewNew() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_constructor_address_preview_new($0 + ) +}) +} + - open func spacedOut() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_address_spaced_out(self.uniffiClonePointer(), $0) - }) - } + +open func spacedOut() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_address_spaced_out(self.uniffiClonePointer(),$0 + ) +}) +} + +open func string() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_address_string(self.uniffiClonePointer(),$0 + ) +}) +} + - open func string() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_address_string(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddress: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Address public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Address { - Address(unsafeFromRawPointer: pointer) + return Address(unsafeFromRawPointer: pointer) } public static func lower(_ value: Address) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Address { @@ -706,7 +718,7 @@ public struct FfiConverterTypeAddress: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -719,37 +731,44 @@ public struct FfiConverterTypeAddress: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddress_lift(_ pointer: UnsafeMutableRawPointer) throws -> Address { - try FfiConverterTypeAddress.lift(pointer) + return try FfiConverterTypeAddress.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddress_lower(_ value: Address) -> UnsafeMutableRawPointer { - FfiConverterTypeAddress.lower(value) + return FfiConverterTypeAddress.lower(value) } -public protocol AddressInfoProtocol: AnyObject { - func address() -> Address - func adressString() -> String - func index() -> UInt32 + +public protocol AddressInfoProtocol : AnyObject { + + func address() -> Address + + func adressString() -> String + + func index() -> UInt32 + } open class AddressInfo: - AddressInfoProtocol -{ + AddressInfoProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -757,7 +776,7 @@ open class AddressInfo: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -766,62 +785,70 @@ open class AddressInfo: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_addressinfo(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_addressinfo(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_addressinfo(pointer, $0) } } - open func address() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_method_addressinfo_address(self.uniffiClonePointer(), $0) - }) - } + - open func adressString() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_addressinfo_adress_string(self.uniffiClonePointer(), $0) - }) - } + +open func address() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_method_addressinfo_address(self.uniffiClonePointer(),$0 + ) +}) +} + +open func adressString() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_addressinfo_adress_string(self.uniffiClonePointer(),$0 + ) +}) +} + +open func index() -> UInt32 { + return try! FfiConverterUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_addressinfo_index(self.uniffiClonePointer(),$0 + ) +}) +} + - open func index() -> UInt32 { - try! FfiConverterUInt32.lift(try! rustCall { - uniffi_cove_fn_method_addressinfo_index(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddressInfo: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = AddressInfo public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressInfo { - AddressInfo(unsafeFromRawPointer: pointer) + return AddressInfo(unsafeFromRawPointer: pointer) } public static func lower(_ value: AddressInfo) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressInfo { @@ -829,7 +856,7 @@ public struct FfiConverterTypeAddressInfo: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -842,37 +869,44 @@ public struct FfiConverterTypeAddressInfo: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressInfo_lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressInfo { - try FfiConverterTypeAddressInfo.lift(pointer) + return try FfiConverterTypeAddressInfo.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressInfo_lower(_ value: AddressInfo) -> UnsafeMutableRawPointer { - FfiConverterTypeAddressInfo.lower(value) + return FfiConverterTypeAddressInfo.lower(value) } -public protocol AddressWithNetworkProtocol: AnyObject { - func address() -> Address - func amount() -> Amount? - func network() -> Network + +public protocol AddressWithNetworkProtocol : AnyObject { + + func address() -> Address + + func amount() -> Amount? + + func network() -> Network + } open class AddressWithNetwork: - AddressWithNetworkProtocol -{ + AddressWithNetworkProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -880,7 +914,7 @@ open class AddressWithNetwork: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -889,70 +923,78 @@ open class AddressWithNetwork: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_addresswithnetwork(self.pointer, $0) } - } - - public convenience init(address: String) throws { - let pointer = - try rustCallWithError(FfiConverterTypeAddressError.lift) { - uniffi_cove_fn_constructor_addresswithnetwork_new( - FfiConverterString.lower(address), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_addresswithnetwork(self.pointer, $0) } } +public convenience init(address: String)throws { + let pointer = + try rustCallWithError(FfiConverterTypeAddressError.lift) { + uniffi_cove_fn_constructor_addresswithnetwork_new( + FfiConverterString.lower(address),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_addresswithnetwork(pointer, $0) } } - open func address() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_method_addresswithnetwork_address(self.uniffiClonePointer(), $0) - }) - } + - open func amount() -> Amount? { - try! FfiConverterOptionTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_addresswithnetwork_amount(self.uniffiClonePointer(), $0) - }) - } + +open func address() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_method_addresswithnetwork_address(self.uniffiClonePointer(),$0 + ) +}) +} + +open func amount() -> Amount? { + return try! FfiConverterOptionTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_addresswithnetwork_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func network() -> Network { + return try! FfiConverterTypeNetwork.lift(try! rustCall() { + uniffi_cove_fn_method_addresswithnetwork_network(self.uniffiClonePointer(),$0 + ) +}) +} + - open func network() -> Network { - try! FfiConverterTypeNetwork.lift(try! rustCall { - uniffi_cove_fn_method_addresswithnetwork_network(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddressWithNetwork: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = AddressWithNetwork public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressWithNetwork { - AddressWithNetwork(unsafeFromRawPointer: pointer) + return AddressWithNetwork(unsafeFromRawPointer: pointer) } public static func lower(_ value: AddressWithNetwork) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressWithNetwork { @@ -960,7 +1002,7 @@ public struct FfiConverterTypeAddressWithNetwork: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -973,45 +1015,52 @@ public struct FfiConverterTypeAddressWithNetwork: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressWithNetwork_lift(_ pointer: UnsafeMutableRawPointer) throws -> AddressWithNetwork { - try FfiConverterTypeAddressWithNetwork.lift(pointer) + return try FfiConverterTypeAddressWithNetwork.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressWithNetwork_lower(_ value: AddressWithNetwork) -> UnsafeMutableRawPointer { - FfiConverterTypeAddressWithNetwork.lower(value) + return FfiConverterTypeAddressWithNetwork.lower(value) } -public protocol AmountProtocol: AnyObject { - func asBtc() -> Double - - func asSats() -> UInt64 - - func btcString() -> String - - func btcStringWithUnit() -> String - func fmtStringWithUnit(unit: Unit) -> String - func satsString() -> String - func satsStringWithUnit() -> String +public protocol AmountProtocol : AnyObject { + + func asBtc() -> Double + + func asSats() -> UInt64 + + func btcString() -> String + + func btcStringWithUnit() -> String + + func fmtStringWithUnit(unit: Unit) -> String + + func satsString() -> String + + func satsStringWithUnit() -> String + } open class Amount: - AmountProtocol -{ + AmountProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1019,7 +1068,7 @@ open class Amount: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1028,109 +1077,121 @@ open class Amount: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_amount(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_amount(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_amount(pointer, $0) } } - public static func fromSat(sats: UInt64) -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_constructor_amount_from_sat( - FfiConverterUInt64.lower(sats), $0 - ) - }) - } - - public static func oneBtc() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_constructor_amount_one_btc($0 - ) - }) - } - - public static func oneSat() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_constructor_amount_one_sat($0 - ) - }) - } - - open func asBtc() -> Double { - try! FfiConverterDouble.lift(try! rustCall { - uniffi_cove_fn_method_amount_as_btc(self.uniffiClonePointer(), $0) - }) - } - - open func asSats() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_amount_as_sats(self.uniffiClonePointer(), $0) - }) - } - - open func btcString() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_btc_string(self.uniffiClonePointer(), $0) - }) - } - - open func btcStringWithUnit() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_btc_string_with_unit(self.uniffiClonePointer(), $0) - }) - } - - open func fmtStringWithUnit(unit: Unit) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_fmt_string_with_unit(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } + +public static func fromSat(sats: UInt64) -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_constructor_amount_from_sat( + FfiConverterUInt64.lower(sats),$0 + ) +}) +} + +public static func oneBtc() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_constructor_amount_one_btc($0 + ) +}) +} + +public static func oneSat() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_constructor_amount_one_sat($0 + ) +}) +} + - open func satsString() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_sats_string(self.uniffiClonePointer(), $0) - }) - } + +open func asBtc() -> Double { + return try! FfiConverterDouble.lift(try! rustCall() { + uniffi_cove_fn_method_amount_as_btc(self.uniffiClonePointer(),$0 + ) +}) +} + +open func asSats() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_amount_as_sats(self.uniffiClonePointer(),$0 + ) +}) +} + +open func btcString() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_btc_string(self.uniffiClonePointer(),$0 + ) +}) +} + +open func btcStringWithUnit() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_btc_string_with_unit(self.uniffiClonePointer(),$0 + ) +}) +} + +open func fmtStringWithUnit(unit: Unit) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_fmt_string_with_unit(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func satsString() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_sats_string(self.uniffiClonePointer(),$0 + ) +}) +} + +open func satsStringWithUnit() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_amount_sats_string_with_unit(self.uniffiClonePointer(),$0 + ) +}) +} + - open func satsStringWithUnit() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_amount_sats_string_with_unit(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAmount: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Amount public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Amount { - Amount(unsafeFromRawPointer: pointer) + return Amount(unsafeFromRawPointer: pointer) } public static func lower(_ value: Amount) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Amount { @@ -1138,7 +1199,7 @@ public struct FfiConverterTypeAmount: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1151,35 +1212,42 @@ public struct FfiConverterTypeAmount: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAmount_lift(_ pointer: UnsafeMutableRawPointer) throws -> Amount { - try FfiConverterTypeAmount.lift(pointer) + return try FfiConverterTypeAmount.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAmount_lower(_ value: Amount) -> UnsafeMutableRawPointer { - FfiConverterTypeAmount.lower(value) + return FfiConverterTypeAmount.lower(value) } -public protocol AutoComplete: AnyObject { - func autocomplete(word: String) -> [String] - func isValidWord(word: String) -> Bool + + +public protocol AutoComplete : AnyObject { + + func autocomplete(word: String) -> [String] + + func isValidWord(word: String) -> Bool + } open class AutoCompleteImpl: - AutoComplete -{ + AutoComplete { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1187,7 +1255,7 @@ open class AutoCompleteImpl: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1196,45 +1264,50 @@ open class AutoCompleteImpl: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_autocomplete(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_autocomplete(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_autocomplete(pointer, $0) } } - open func autocomplete(word: String) -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_autocomplete_autocomplete(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } + - open func isValidWord(word: String) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_autocomplete_is_valid_word(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } + +open func autocomplete(word: String) -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_autocomplete_autocomplete(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) } + +open func isValidWord(word: String) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_autocomplete_is_valid_word(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) +} + +} // Magic number for the Rust proxy to call using the same mechanism as every other method, // to free the callback once it's dropped by Rust. private let IDX_CALLBACK_FREE: Int32 = 0 @@ -1244,7 +1317,8 @@ private let UNIFFI_CALLBACK_ERROR: Int32 = 1 private let UNIFFI_CALLBACK_UNEXPECTED_ERROR: Int32 = 2 // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceAutoComplete { +fileprivate struct UniffiCallbackInterfaceAutoComplete { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -1262,11 +1336,12 @@ private enum UniffiCallbackInterfaceAutoComplete { guard let uniffiObj = try? FfiConverterTypeAutoComplete.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.autocomplete( - word: FfiConverterString.lift(word) + return uniffiObj.autocomplete( + word: try FfiConverterString.lift(word) ) } + let writeReturn = { uniffiOutReturn.pointee = FfiConverterSequenceString.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -1285,11 +1360,12 @@ private enum UniffiCallbackInterfaceAutoComplete { guard let uniffiObj = try? FfiConverterTypeAutoComplete.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.isValidWord( - word: FfiConverterString.lift(word) + return uniffiObj.isValidWord( + word: try FfiConverterString.lift(word) ) } + let writeReturn = { uniffiOutReturn.pointee = FfiConverterBool.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -1297,7 +1373,7 @@ private enum UniffiCallbackInterfaceAutoComplete { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterTypeAutoComplete.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface AutoComplete: handle missing in uniffiFree") @@ -1311,7 +1387,7 @@ private func uniffiCallbackInitAutoComplete() { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAutoComplete: FfiConverter { fileprivate static let handleMap = UniffiHandleMap() @@ -1320,7 +1396,7 @@ public struct FfiConverterTypeAutoComplete: FfiConverter { typealias SwiftType = AutoComplete public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> AutoComplete { - AutoCompleteImpl(unsafeFromRawPointer: pointer) + return AutoCompleteImpl(unsafeFromRawPointer: pointer) } public static func lower(_ value: AutoComplete) -> UnsafeMutableRawPointer { @@ -1335,7 +1411,7 @@ public struct FfiConverterTypeAutoComplete: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1348,37 +1424,44 @@ public struct FfiConverterTypeAutoComplete: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAutoComplete_lift(_ pointer: UnsafeMutableRawPointer) throws -> AutoComplete { - try FfiConverterTypeAutoComplete.lift(pointer) + return try FfiConverterTypeAutoComplete.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAutoComplete_lower(_ value: AutoComplete) -> UnsafeMutableRawPointer { - FfiConverterTypeAutoComplete.lower(value) + return FfiConverterTypeAutoComplete.lower(value) } -public protocol BbqrJoinResultProtocol: AnyObject { - func finalResult() throws -> String - func isComplete() -> Bool - func partsLeft() -> UInt32 + +public protocol BbqrJoinResultProtocol : AnyObject { + + func finalResult() throws -> String + + func isComplete() -> Bool + + func partsLeft() -> UInt32 + } open class BbqrJoinResult: - BbqrJoinResultProtocol -{ + BbqrJoinResultProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1386,7 +1469,7 @@ open class BbqrJoinResult: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1395,62 +1478,70 @@ open class BbqrJoinResult: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bbqrjoinresult(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_bbqrjoinresult(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bbqrjoinresult(pointer, $0) } } - open func finalResult() throws -> String { - try FfiConverterString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_bbqrjoinresult_final_result(self.uniffiClonePointer(), $0) - }) - } + - open func isComplete() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_bbqrjoinresult_is_complete(self.uniffiClonePointer(), $0) - }) - } + +open func finalResult()throws -> String { + return try FfiConverterString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_bbqrjoinresult_final_result(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isComplete() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_bbqrjoinresult_is_complete(self.uniffiClonePointer(),$0 + ) +}) +} + +open func partsLeft() -> UInt32 { + return try! FfiConverterUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_bbqrjoinresult_parts_left(self.uniffiClonePointer(),$0 + ) +}) +} + - open func partsLeft() -> UInt32 { - try! FfiConverterUInt32.lift(try! rustCall { - uniffi_cove_fn_method_bbqrjoinresult_parts_left(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBbqrJoinResult: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BbqrJoinResult public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoinResult { - BbqrJoinResult(unsafeFromRawPointer: pointer) + return BbqrJoinResult(unsafeFromRawPointer: pointer) } public static func lower(_ value: BbqrJoinResult) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BbqrJoinResult { @@ -1458,7 +1549,7 @@ public struct FfiConverterTypeBbqrJoinResult: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1471,35 +1562,42 @@ public struct FfiConverterTypeBbqrJoinResult: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoinResult_lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoinResult { - try FfiConverterTypeBbqrJoinResult.lift(pointer) + return try FfiConverterTypeBbqrJoinResult.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoinResult_lower(_ value: BbqrJoinResult) -> UnsafeMutableRawPointer { - FfiConverterTypeBbqrJoinResult.lower(value) + return FfiConverterTypeBbqrJoinResult.lower(value) } -public protocol BbqrJoinedProtocol: AnyObject { - func getGroupedWords(chunks: UInt8) throws -> [[String]] - func getSeedWords() throws -> [String] + + +public protocol BbqrJoinedProtocol : AnyObject { + + func getGroupedWords(chunks: UInt8) throws -> [[String]] + + func getSeedWords() throws -> [String] + } open class BbqrJoined: - BbqrJoinedProtocol -{ + BbqrJoinedProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1507,7 +1605,7 @@ open class BbqrJoined: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1516,57 +1614,64 @@ open class BbqrJoined: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bbqrjoined(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_bbqrjoined(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bbqrjoined(pointer, $0) } } - open func getGroupedWords(chunks: UInt8) throws -> [[String]] { - try FfiConverterSequenceSequenceString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_bbqrjoined_get_grouped_words(self.uniffiClonePointer(), - FfiConverterUInt8.lower(chunks), $0) - }) - } + + + +open func getGroupedWords(chunks: UInt8)throws -> [[String]] { + return try FfiConverterSequenceSequenceString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_bbqrjoined_get_grouped_words(self.uniffiClonePointer(), + FfiConverterUInt8.lower(chunks),$0 + ) +}) +} + +open func getSeedWords()throws -> [String] { + return try FfiConverterSequenceString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_bbqrjoined_get_seed_words(self.uniffiClonePointer(),$0 + ) +}) +} + - open func getSeedWords() throws -> [String] { - try FfiConverterSequenceString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_bbqrjoined_get_seed_words(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBbqrJoined: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BbqrJoined public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoined { - BbqrJoined(unsafeFromRawPointer: pointer) + return BbqrJoined(unsafeFromRawPointer: pointer) } public static func lower(_ value: BbqrJoined) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BbqrJoined { @@ -1574,7 +1679,7 @@ public struct FfiConverterTypeBbqrJoined: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1587,35 +1692,42 @@ public struct FfiConverterTypeBbqrJoined: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoined_lift(_ pointer: UnsafeMutableRawPointer) throws -> BbqrJoined { - try FfiConverterTypeBbqrJoined.lift(pointer) + return try FfiConverterTypeBbqrJoined.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBbqrJoined_lower(_ value: BbqrJoined) -> UnsafeMutableRawPointer { - FfiConverterTypeBbqrJoined.lower(value) + return FfiConverterTypeBbqrJoined.lower(value) } -public protocol Bip39AutoCompleteProtocol: AnyObject { - func autocomplete(word: String) -> [String] - func isValidWord(word: String) -> Bool + + +public protocol Bip39AutoCompleteProtocol : AnyObject { + + func autocomplete(word: String) -> [String] + + func isValidWord(word: String) -> Bool + } open class Bip39AutoComplete: - Bip39AutoCompleteProtocol -{ + Bip39AutoCompleteProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1623,7 +1735,7 @@ open class Bip39AutoComplete: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1632,65 +1744,72 @@ open class Bip39AutoComplete: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bip39autocomplete(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_bip39autocomplete_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_bip39autocomplete(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_bip39autocomplete_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bip39autocomplete(pointer, $0) } } - open func autocomplete(word: String) -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_bip39autocomplete_autocomplete(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } + + + +open func autocomplete(word: String) -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_bip39autocomplete_autocomplete(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) +} + +open func isValidWord(word: String) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_bip39autocomplete_is_valid_word(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) +} + - open func isValidWord(word: String) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_bip39autocomplete_is_valid_word(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBip39AutoComplete: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Bip39AutoComplete public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39AutoComplete { - Bip39AutoComplete(unsafeFromRawPointer: pointer) + return Bip39AutoComplete(unsafeFromRawPointer: pointer) } public static func lower(_ value: Bip39AutoComplete) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bip39AutoComplete { @@ -1698,7 +1817,7 @@ public struct FfiConverterTypeBip39AutoComplete: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1711,37 +1830,44 @@ public struct FfiConverterTypeBip39AutoComplete: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBip39AutoComplete_lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39AutoComplete { - try FfiConverterTypeBip39AutoComplete.lift(pointer) + return try FfiConverterTypeBip39AutoComplete.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBip39AutoComplete_lower(_ value: Bip39AutoComplete) -> UnsafeMutableRawPointer { - FfiConverterTypeBip39AutoComplete.lower(value) + return FfiConverterTypeBip39AutoComplete.lower(value) } -public protocol Bip39WordSpecificAutocompleteProtocol: AnyObject { - func autocomplete(word: String, allWords: [[String]]) -> [String] - func isBip39Word(word: String) -> Bool - func isValidWord(word: String, allWords: [[String]]) -> Bool + +public protocol Bip39WordSpecificAutocompleteProtocol : AnyObject { + + func autocomplete(word: String, allWords: [[String]]) -> [String] + + func isBip39Word(word: String) -> Bool + + func isValidWord(word: String, allWords: [[String]]) -> Bool + } open class Bip39WordSpecificAutocomplete: - Bip39WordSpecificAutocompleteProtocol -{ + Bip39WordSpecificAutocompleteProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1749,7 +1875,7 @@ open class Bip39WordSpecificAutocomplete: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1758,76 +1884,84 @@ open class Bip39WordSpecificAutocomplete: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bip39wordspecificautocomplete(self.pointer, $0) } - } - - public convenience init(wordNumber: UInt16, numberOfWords: NumberOfBip39Words) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_bip39wordspecificautocomplete_new( - FfiConverterUInt16.lower(wordNumber), - FfiConverterTypeNumberOfBip39Words.lower(numberOfWords), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) - } + return try! rustCall { uniffi_cove_fn_clone_bip39wordspecificautocomplete(self.pointer, $0) } + } +public convenience init(wordNumber: UInt16, numberOfWords: NumberOfBip39Words) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_bip39wordspecificautocomplete_new( + FfiConverterUInt16.lower(wordNumber), + FfiConverterTypeNumberOfBip39Words.lower(numberOfWords),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bip39wordspecificautocomplete(pointer, $0) } } - open func autocomplete(word: String, allWords: [[String]]) -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_bip39wordspecificautocomplete_autocomplete(self.uniffiClonePointer(), - FfiConverterString.lower(word), - FfiConverterSequenceSequenceString.lower(allWords), $0) - }) - } + - open func isBip39Word(word: String) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_bip39wordspecificautocomplete_is_bip39_word(self.uniffiClonePointer(), - FfiConverterString.lower(word), $0) - }) - } + +open func autocomplete(word: String, allWords: [[String]]) -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_bip39wordspecificautocomplete_autocomplete(self.uniffiClonePointer(), + FfiConverterString.lower(word), + FfiConverterSequenceSequenceString.lower(allWords),$0 + ) +}) +} + +open func isBip39Word(word: String) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_bip39wordspecificautocomplete_is_bip39_word(self.uniffiClonePointer(), + FfiConverterString.lower(word),$0 + ) +}) +} + +open func isValidWord(word: String, allWords: [[String]]) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_bip39wordspecificautocomplete_is_valid_word(self.uniffiClonePointer(), + FfiConverterString.lower(word), + FfiConverterSequenceSequenceString.lower(allWords),$0 + ) +}) +} + - open func isValidWord(word: String, allWords: [[String]]) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_bip39wordspecificautocomplete_is_valid_word(self.uniffiClonePointer(), - FfiConverterString.lower(word), - FfiConverterSequenceSequenceString.lower(allWords), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBip39WordSpecificAutocomplete: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Bip39WordSpecificAutocomplete public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39WordSpecificAutocomplete { - Bip39WordSpecificAutocomplete(unsafeFromRawPointer: pointer) + return Bip39WordSpecificAutocomplete(unsafeFromRawPointer: pointer) } public static func lower(_ value: Bip39WordSpecificAutocomplete) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bip39WordSpecificAutocomplete { @@ -1835,7 +1969,7 @@ public struct FfiConverterTypeBip39WordSpecificAutocomplete: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1848,37 +1982,44 @@ public struct FfiConverterTypeBip39WordSpecificAutocomplete: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBip39WordSpecificAutocomplete_lift(_ pointer: UnsafeMutableRawPointer) throws -> Bip39WordSpecificAutocomplete { - try FfiConverterTypeBip39WordSpecificAutocomplete.lift(pointer) + return try FfiConverterTypeBip39WordSpecificAutocomplete.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBip39WordSpecificAutocomplete_lower(_ value: Bip39WordSpecificAutocomplete) -> UnsafeMutableRawPointer { - FfiConverterTypeBip39WordSpecificAutocomplete.lower(value) + return FfiConverterTypeBip39WordSpecificAutocomplete.lower(value) } -public protocol BitcoinTransactionProtocol: AnyObject { - func normalizeTxId() -> String - func txId() -> TxId - func txIdHash() -> String + +public protocol BitcoinTransactionProtocol : AnyObject { + + func normalizeTxId() -> String + + func txId() -> TxId + + func txIdHash() -> String + } open class BitcoinTransaction: - BitcoinTransactionProtocol -{ + BitcoinTransactionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -1886,7 +2027,7 @@ open class BitcoinTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -1895,78 +2036,86 @@ open class BitcoinTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_bitcointransaction(self.pointer, $0) } - } - - public convenience init(txHex: String) throws { - let pointer = - try rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { - uniffi_cove_fn_constructor_bitcointransaction_new( - FfiConverterString.lower(txHex), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_bitcointransaction(self.pointer, $0) } } +public convenience init(txHex: String)throws { + let pointer = + try rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { + uniffi_cove_fn_constructor_bitcointransaction_new( + FfiConverterString.lower(txHex),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_bitcointransaction(pointer, $0) } } - public static func tryFromData(data: Data) throws -> BitcoinTransaction { - try FfiConverterTypeBitcoinTransaction.lift(rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { - uniffi_cove_fn_constructor_bitcointransaction_tryfromdata( - FfiConverterData.lower(data), $0 - ) - }) - } - - open func normalizeTxId() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_bitcointransaction_normalize_tx_id(self.uniffiClonePointer(), $0) - }) - } + +public static func tryFromData(data: Data)throws -> BitcoinTransaction { + return try FfiConverterTypeBitcoinTransaction.lift(try rustCallWithError(FfiConverterTypeBitcoinTransactionError.lift) { + uniffi_cove_fn_constructor_bitcointransaction_tryfromdata( + FfiConverterData.lower(data),$0 + ) +}) +} + - open func txId() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_bitcointransaction_tx_id(self.uniffiClonePointer(), $0) - }) - } + +open func normalizeTxId() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_bitcointransaction_normalize_tx_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func txId() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_bitcointransaction_tx_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func txIdHash() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_bitcointransaction_tx_id_hash(self.uniffiClonePointer(),$0 + ) +}) +} + - open func txIdHash() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_bitcointransaction_tx_id_hash(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBitcoinTransaction: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BitcoinTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BitcoinTransaction { - BitcoinTransaction(unsafeFromRawPointer: pointer) + return BitcoinTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: BitcoinTransaction) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BitcoinTransaction { @@ -1974,7 +2123,7 @@ public struct FfiConverterTypeBitcoinTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -1987,33 +2136,40 @@ public struct FfiConverterTypeBitcoinTransaction: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBitcoinTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> BitcoinTransaction { - try FfiConverterTypeBitcoinTransaction.lift(pointer) + return try FfiConverterTypeBitcoinTransaction.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBitcoinTransaction_lower(_ value: BitcoinTransaction) -> UnsafeMutableRawPointer { - FfiConverterTypeBitcoinTransaction.lower(value) + return FfiConverterTypeBitcoinTransaction.lower(value) } -public protocol BoxedRouteProtocol: AnyObject { - func route() -> Route + + + +public protocol BoxedRouteProtocol : AnyObject { + + func route() -> Route + } open class BoxedRoute: - BoxedRouteProtocol -{ + BoxedRouteProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2021,7 +2177,7 @@ open class BoxedRoute: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2030,58 +2186,64 @@ open class BoxedRoute: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_boxedroute(self.pointer, $0) } - } - - public convenience init(route: Route) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_boxedroute_new( - FfiConverterTypeRoute.lower(route), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_boxedroute(self.pointer, $0) } } +public convenience init(route: Route) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_boxedroute_new( + FfiConverterTypeRoute.lower(route),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_boxedroute(pointer, $0) } } - open func route() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_boxedroute_route(self.uniffiClonePointer(), $0) - }) - } + + + +open func route() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_boxedroute_route(self.uniffiClonePointer(),$0 + ) +}) +} + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBoxedRoute: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = BoxedRoute public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> BoxedRoute { - BoxedRoute(unsafeFromRawPointer: pointer) + return BoxedRoute(unsafeFromRawPointer: pointer) } public static func lower(_ value: BoxedRoute) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BoxedRoute { @@ -2089,7 +2251,7 @@ public struct FfiConverterTypeBoxedRoute: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2102,31 +2264,38 @@ public struct FfiConverterTypeBoxedRoute: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBoxedRoute_lift(_ pointer: UnsafeMutableRawPointer) throws -> BoxedRoute { - try FfiConverterTypeBoxedRoute.lift(pointer) + return try FfiConverterTypeBoxedRoute.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBoxedRoute_lower(_ value: BoxedRoute) -> UnsafeMutableRawPointer { - FfiConverterTypeBoxedRoute.lower(value) + return FfiConverterTypeBoxedRoute.lower(value) } -public protocol ChainPositionProtocol: AnyObject {} + + + +public protocol ChainPositionProtocol : AnyObject { + +} open class ChainPosition: - ChainPositionProtocol -{ + ChainPositionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2134,7 +2303,7 @@ open class ChainPosition: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2143,44 +2312,49 @@ open class ChainPosition: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_chainposition(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_chainposition(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_chainposition(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeChainPosition: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = ChainPosition public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> ChainPosition { - ChainPosition(unsafeFromRawPointer: pointer) + return ChainPosition(unsafeFromRawPointer: pointer) } public static func lower(_ value: ChainPosition) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ChainPosition { @@ -2188,7 +2362,7 @@ public struct FfiConverterTypeChainPosition: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2201,55 +2375,62 @@ public struct FfiConverterTypeChainPosition: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeChainPosition_lift(_ pointer: UnsafeMutableRawPointer) throws -> ChainPosition { - try FfiConverterTypeChainPosition.lift(pointer) + return try FfiConverterTypeChainPosition.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeChainPosition_lower(_ value: ChainPosition) -> UnsafeMutableRawPointer { - FfiConverterTypeChainPosition.lower(value) -} - -public protocol ConfirmDetailsProtocol: AnyObject { - func feeRate() -> FeeRate - - func feeTotal() -> Amount - - func id() -> TxId - - func idHash() -> String - - func isEqual(rhs: ConfirmDetails) -> Bool - - func normalizedId() -> String - - func psbtBytes() -> Data - - func psbtToBbqr() throws -> [String] - - func psbtToHex() -> String - - func sendingAmount() -> Amount - - func sendingTo() -> Address - - func spendingAmount() -> Amount + return FfiConverterTypeChainPosition.lower(value) +} + + + + +public protocol ConfirmDetailsProtocol : AnyObject { + + func feeRate() -> FeeRate + + func feeTotal() -> Amount + + func id() -> TxId + + func idHash() -> String + + func isEqual(rhs: ConfirmDetails) -> Bool + + func normalizedId() -> String + + func psbtBytes() -> Data + + func psbtToBbqr() throws -> [String] + + func psbtToHex() -> String + + func sendingAmount() -> Amount + + func sendingTo() -> Address + + func spendingAmount() -> Amount + } open class ConfirmDetails: - ConfirmDetailsProtocol -{ + ConfirmDetailsProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2257,7 +2438,7 @@ open class ConfirmDetails: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2266,124 +2447,141 @@ open class ConfirmDetails: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_confirmdetails(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_confirmdetails(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_confirmdetails(pointer, $0) } } - public static func previewNew() -> ConfirmDetails { - try! FfiConverterTypeConfirmDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_confirmdetails_preview_new($0 - ) - }) - } - - open func feeRate() -> FeeRate { - try! FfiConverterTypeFeeRate.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_fee_rate(self.uniffiClonePointer(), $0) - }) - } - - open func feeTotal() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_fee_total(self.uniffiClonePointer(), $0) - }) - } - - open func id() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_id(self.uniffiClonePointer(), $0) - }) - } - - open func idHash() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_id_hash(self.uniffiClonePointer(), $0) - }) - } - - open func isEqual(rhs: ConfirmDetails) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_is_equal(self.uniffiClonePointer(), - FfiConverterTypeConfirmDetails.lower(rhs), $0) - }) - } - - open func normalizedId() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_normalized_id(self.uniffiClonePointer(), $0) - }) - } - - open func psbtBytes() -> Data { - try! FfiConverterData.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_psbt_bytes(self.uniffiClonePointer(), $0) - }) - } - - open func psbtToBbqr() throws -> [String] { - try FfiConverterSequenceString.lift(rustCallWithError(FfiConverterTypeConfirmDetailsError.lift) { - uniffi_cove_fn_method_confirmdetails_psbt_to_bbqr(self.uniffiClonePointer(), $0) - }) - } - - open func psbtToHex() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_psbt_to_hex(self.uniffiClonePointer(), $0) - }) - } - - open func sendingAmount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_sending_amount(self.uniffiClonePointer(), $0) - }) - } + +public static func previewNew() -> ConfirmDetails { + return try! FfiConverterTypeConfirmDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_confirmdetails_preview_new($0 + ) +}) +} + - open func sendingTo() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_sending_to(self.uniffiClonePointer(), $0) - }) - } + +open func feeRate() -> FeeRate { + return try! FfiConverterTypeFeeRate.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_fee_rate(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeTotal() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_fee_total(self.uniffiClonePointer(),$0 + ) +}) +} + +open func id() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func idHash() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_id_hash(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEqual(rhs: ConfirmDetails) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_is_equal(self.uniffiClonePointer(), + FfiConverterTypeConfirmDetails.lower(rhs),$0 + ) +}) +} + +open func normalizedId() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_normalized_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func psbtBytes() -> Data { + return try! FfiConverterData.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_psbt_bytes(self.uniffiClonePointer(),$0 + ) +}) +} + +open func psbtToBbqr()throws -> [String] { + return try FfiConverterSequenceString.lift(try rustCallWithError(FfiConverterTypeConfirmDetailsError.lift) { + uniffi_cove_fn_method_confirmdetails_psbt_to_bbqr(self.uniffiClonePointer(),$0 + ) +}) +} + +open func psbtToHex() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_psbt_to_hex(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sendingAmount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_sending_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sendingTo() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_sending_to(self.uniffiClonePointer(),$0 + ) +}) +} + +open func spendingAmount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_confirmdetails_spending_amount(self.uniffiClonePointer(),$0 + ) +}) +} + - open func spendingAmount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_confirmdetails_spending_amount(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmDetails: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = ConfirmDetails public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmDetails { - ConfirmDetails(unsafeFromRawPointer: pointer) + return ConfirmDetails(unsafeFromRawPointer: pointer) } public static func lower(_ value: ConfirmDetails) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmDetails { @@ -2391,7 +2589,7 @@ public struct FfiConverterTypeConfirmDetails: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2404,49 +2602,56 @@ public struct FfiConverterTypeConfirmDetails: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmDetails_lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmDetails { - try FfiConverterTypeConfirmDetails.lift(pointer) + return try FfiConverterTypeConfirmDetails.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmDetails_lower(_ value: ConfirmDetails) -> UnsafeMutableRawPointer { - FfiConverterTypeConfirmDetails.lower(value) + return FfiConverterTypeConfirmDetails.lower(value) } -public protocol ConfirmedTransactionProtocol: AnyObject { - func blockHeight() -> UInt32 - func blockHeightFmt() -> String - func confirmedAt() -> UInt64 - func confirmedAtFmt() -> String +public protocol ConfirmedTransactionProtocol : AnyObject { + + func blockHeight() -> UInt32 + + func blockHeightFmt() -> String + + func confirmedAt() -> UInt64 + + func confirmedAtFmt() -> String + + func confirmedAtFmtWithTime() -> String + + func fiatAmount() -> FiatAmount? + + func id() -> TxId + + func label() -> String + + func sentAndReceived() -> SentAndReceived + +} - func confirmedAtFmtWithTime() -> String - - func fiatAmount() -> FiatAmount? - - func id() -> TxId - - func label() -> String - - func sentAndReceived() -> SentAndReceived -} - -open class ConfirmedTransaction: - ConfirmedTransactionProtocol -{ - fileprivate let pointer: UnsafeMutableRawPointer! +open class ConfirmedTransaction: + ConfirmedTransactionProtocol { + fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2454,7 +2659,7 @@ open class ConfirmedTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2463,98 +2668,112 @@ open class ConfirmedTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_confirmedtransaction(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_confirmedtransaction(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_confirmedtransaction(pointer, $0) } } - open func blockHeight() -> UInt32 { - try! FfiConverterUInt32.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_block_height(self.uniffiClonePointer(), $0) - }) - } - - open func blockHeightFmt() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_block_height_fmt(self.uniffiClonePointer(), $0) - }) - } - - open func confirmedAt() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_confirmed_at(self.uniffiClonePointer(), $0) - }) - } - - open func confirmedAtFmt() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt(self.uniffiClonePointer(), $0) - }) - } - - open func confirmedAtFmtWithTime() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt_with_time(self.uniffiClonePointer(), $0) - }) - } - - open func fiatAmount() -> FiatAmount? { - try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_fiat_amount(self.uniffiClonePointer(), $0) - }) - } - - open func id() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_id(self.uniffiClonePointer(), $0) - }) - } + - open func label() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_label(self.uniffiClonePointer(), $0) - }) - } + +open func blockHeight() -> UInt32 { + return try! FfiConverterUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_block_height(self.uniffiClonePointer(),$0 + ) +}) +} + +open func blockHeightFmt() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_block_height_fmt(self.uniffiClonePointer(),$0 + ) +}) +} + +open func confirmedAt() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_confirmed_at(self.uniffiClonePointer(),$0 + ) +}) +} + +open func confirmedAtFmt() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt(self.uniffiClonePointer(),$0 + ) +}) +} + +open func confirmedAtFmtWithTime() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_confirmed_at_fmt_with_time(self.uniffiClonePointer(),$0 + ) +}) +} + +open func fiatAmount() -> FiatAmount? { + return try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_fiat_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func id() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func label() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_label(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sentAndReceived() -> SentAndReceived { + return try! FfiConverterTypeSentAndReceived.lift(try! rustCall() { + uniffi_cove_fn_method_confirmedtransaction_sent_and_received(self.uniffiClonePointer(),$0 + ) +}) +} + - open func sentAndReceived() -> SentAndReceived { - try! FfiConverterTypeSentAndReceived.lift(try! rustCall { - uniffi_cove_fn_method_confirmedtransaction_sent_and_received(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmedTransaction: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = ConfirmedTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmedTransaction { - ConfirmedTransaction(unsafeFromRawPointer: pointer) + return ConfirmedTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: ConfirmedTransaction) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmedTransaction { @@ -2562,7 +2781,7 @@ public struct FfiConverterTypeConfirmedTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2575,37 +2794,44 @@ public struct FfiConverterTypeConfirmedTransaction: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> ConfirmedTransaction { - try FfiConverterTypeConfirmedTransaction.lift(pointer) + return try FfiConverterTypeConfirmedTransaction.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedTransaction_lower(_ value: ConfirmedTransaction) -> UnsafeMutableRawPointer { - FfiConverterTypeConfirmedTransaction.lower(value) + return FfiConverterTypeConfirmedTransaction.lower(value) } -public protocol DatabaseProtocol: AnyObject { - func globalConfig() -> GlobalConfigTable - func unsignedTransactions() -> UnsignedTransactionsTable - func wallets() -> WalletsTable + +public protocol DatabaseProtocol : AnyObject { + + func globalConfig() -> GlobalConfigTable + + func unsignedTransactions() -> UnsignedTransactionsTable + + func wallets() -> WalletsTable + } open class Database: - DatabaseProtocol -{ + DatabaseProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2613,7 +2839,7 @@ open class Database: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2622,69 +2848,77 @@ open class Database: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_database(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_database_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_database(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_database_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_database(pointer, $0) } } - open func globalConfig() -> GlobalConfigTable { - try! FfiConverterTypeGlobalConfigTable.lift(try! rustCall { - uniffi_cove_fn_method_database_global_config(self.uniffiClonePointer(), $0) - }) - } + - open func unsignedTransactions() -> UnsignedTransactionsTable { - try! FfiConverterTypeUnsignedTransactionsTable.lift(try! rustCall { - uniffi_cove_fn_method_database_unsigned_transactions(self.uniffiClonePointer(), $0) - }) - } + +open func globalConfig() -> GlobalConfigTable { + return try! FfiConverterTypeGlobalConfigTable.lift(try! rustCall() { + uniffi_cove_fn_method_database_global_config(self.uniffiClonePointer(),$0 + ) +}) +} + +open func unsignedTransactions() -> UnsignedTransactionsTable { + return try! FfiConverterTypeUnsignedTransactionsTable.lift(try! rustCall() { + uniffi_cove_fn_method_database_unsigned_transactions(self.uniffiClonePointer(),$0 + ) +}) +} + +open func wallets() -> WalletsTable { + return try! FfiConverterTypeWalletsTable.lift(try! rustCall() { + uniffi_cove_fn_method_database_wallets(self.uniffiClonePointer(),$0 + ) +}) +} + - open func wallets() -> WalletsTable { - try! FfiConverterTypeWalletsTable.lift(try! rustCall { - uniffi_cove_fn_method_database_wallets(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeDatabase: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Database public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Database { - Database(unsafeFromRawPointer: pointer) + return Database(unsafeFromRawPointer: pointer) } public static func lower(_ value: Database) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Database { @@ -2692,7 +2926,7 @@ public struct FfiConverterTypeDatabase: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2705,33 +2939,40 @@ public struct FfiConverterTypeDatabase: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeDatabase_lift(_ pointer: UnsafeMutableRawPointer) throws -> Database { - try FfiConverterTypeDatabase.lift(pointer) + return try FfiConverterTypeDatabase.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeDatabase_lower(_ value: Database) -> UnsafeMutableRawPointer { - FfiConverterTypeDatabase.lower(value) + return FfiConverterTypeDatabase.lower(value) } -public protocol FeeRateProtocol: AnyObject { - func satPerVb() -> Double + + + +public protocol FeeRateProtocol : AnyObject { + + func satPerVb() -> Double + } open class FeeRate: - FeeRateProtocol -{ + FeeRateProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2739,7 +2980,7 @@ open class FeeRate: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2748,58 +2989,64 @@ open class FeeRate: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerate(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_feerate(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerate(pointer, $0) } } - public static func fromSatPerVb(satPerVb: UInt64) -> FeeRate { - try! FfiConverterTypeFeeRate.lift(try! rustCall { - uniffi_cove_fn_constructor_feerate_from_sat_per_vb( - FfiConverterUInt64.lower(satPerVb), $0 - ) - }) - } + +public static func fromSatPerVb(satPerVb: UInt64) -> FeeRate { + return try! FfiConverterTypeFeeRate.lift(try! rustCall() { + uniffi_cove_fn_constructor_feerate_from_sat_per_vb( + FfiConverterUInt64.lower(satPerVb),$0 + ) +}) +} + + + +open func satPerVb() -> Double { + return try! FfiConverterDouble.lift(try! rustCall() { + uniffi_cove_fn_method_feerate_sat_per_vb(self.uniffiClonePointer(),$0 + ) +}) +} + - open func satPerVb() -> Double { - try! FfiConverterDouble.lift(try! rustCall { - uniffi_cove_fn_method_feerate_sat_per_vb(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRate: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRate public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRate { - FeeRate(unsafeFromRawPointer: pointer) + return FeeRate(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRate) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRate { @@ -2807,7 +3054,7 @@ public struct FfiConverterTypeFeeRate: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2820,41 +3067,48 @@ public struct FfiConverterTypeFeeRate: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRate_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRate { - try FfiConverterTypeFeeRate.lift(pointer) + return try FfiConverterTypeFeeRate.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRate_lower(_ value: FeeRate) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRate.lower(value) + return FfiConverterTypeFeeRate.lower(value) } -public protocol FeeRateOptionProtocol: AnyObject { - func duration() -> String - - func feeRate() -> FeeRate - func feeSpeed() -> FeeSpeed - func isEqual(rhs: FeeRateOption) -> Bool - func satPerVb() -> Double +public protocol FeeRateOptionProtocol : AnyObject { + + func duration() -> String + + func feeRate() -> FeeRate + + func feeSpeed() -> FeeSpeed + + func isEqual(rhs: FeeRateOption) -> Bool + + func satPerVb() -> Double + } open class FeeRateOption: - FeeRateOptionProtocol -{ + FeeRateOptionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -2862,7 +3116,7 @@ open class FeeRateOption: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -2871,84 +3125,94 @@ open class FeeRateOption: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerateoption(self.pointer, $0) } - } - - public convenience init(feeSpeed: FeeSpeed, feeRate: UInt64) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_feerateoption_new( - FfiConverterTypeFeeSpeed.lower(feeSpeed), - FfiConverterUInt64.lower(feeRate), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) - } + return try! rustCall { uniffi_cove_fn_clone_feerateoption(self.pointer, $0) } + } +public convenience init(feeSpeed: FeeSpeed, feeRate: UInt64) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_feerateoption_new( + FfiConverterTypeFeeSpeed.lower(feeSpeed), + FfiConverterUInt64.lower(feeRate),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoption(pointer, $0) } } - open func duration() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_duration(self.uniffiClonePointer(), $0) - }) - } - - open func feeRate() -> FeeRate { - try! FfiConverterTypeFeeRate.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_fee_rate(self.uniffiClonePointer(), $0) - }) - } - - open func feeSpeed() -> FeeSpeed { - try! FfiConverterTypeFeeSpeed.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_fee_speed(self.uniffiClonePointer(), $0) - }) - } + - open func isEqual(rhs: FeeRateOption) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_is_equal(self.uniffiClonePointer(), - FfiConverterTypeFeeRateOption.lower(rhs), $0) - }) - } + +open func duration() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_duration(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeRate() -> FeeRate { + return try! FfiConverterTypeFeeRate.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_fee_rate(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeSpeed() -> FeeSpeed { + return try! FfiConverterTypeFeeSpeed.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_fee_speed(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEqual(rhs: FeeRateOption) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_is_equal(self.uniffiClonePointer(), + FfiConverterTypeFeeRateOption.lower(rhs),$0 + ) +}) +} + +open func satPerVb() -> Double { + return try! FfiConverterDouble.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoption_sat_per_vb(self.uniffiClonePointer(),$0 + ) +}) +} + - open func satPerVb() -> Double { - try! FfiConverterDouble.lift(try! rustCall { - uniffi_cove_fn_method_feerateoption_sat_per_vb(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOption: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOption public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOption { - FeeRateOption(unsafeFromRawPointer: pointer) + return FeeRateOption(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOption) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOption { @@ -2956,7 +3220,7 @@ public struct FfiConverterTypeFeeRateOption: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -2969,45 +3233,52 @@ public struct FfiConverterTypeFeeRateOption: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOption_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOption { - try FfiConverterTypeFeeRateOption.lift(pointer) + return try FfiConverterTypeFeeRateOption.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOption_lower(_ value: FeeRateOption) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRateOption.lower(value) + return FfiConverterTypeFeeRateOption.lower(value) } -public protocol FeeRateOptionWithTotalFeeProtocol: AnyObject { - func duration() -> String - - func feeRate() -> FeeRate - - func feeRateOptions() -> FeeRateOption - - func feeSpeed() -> FeeSpeed - func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool - func satPerVb() -> Double - func totalFee() -> Amount +public protocol FeeRateOptionWithTotalFeeProtocol : AnyObject { + + func duration() -> String + + func feeRate() -> FeeRate + + func feeRateOptions() -> FeeRateOption + + func feeSpeed() -> FeeSpeed + + func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool + + func satPerVb() -> Double + + func totalFee() -> Amount + } open class FeeRateOptionWithTotalFee: - FeeRateOptionWithTotalFeeProtocol -{ + FeeRateOptionWithTotalFeeProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3015,7 +3286,7 @@ open class FeeRateOptionWithTotalFee: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3024,87 +3295,99 @@ open class FeeRateOptionWithTotalFee: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerateoptionwithtotalfee(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_feerateoptionwithtotalfee(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoptionwithtotalfee(pointer, $0) } } - open func duration() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_duration(self.uniffiClonePointer(), $0) - }) - } - - open func feeRate() -> FeeRate { - try! FfiConverterTypeFeeRate.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate(self.uniffiClonePointer(), $0) - }) - } - - open func feeRateOptions() -> FeeRateOption { - try! FfiConverterTypeFeeRateOption.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate_options(self.uniffiClonePointer(), $0) - }) - } - - open func feeSpeed() -> FeeSpeed { - try! FfiConverterTypeFeeSpeed.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_speed(self.uniffiClonePointer(), $0) - }) - } - - open func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_is_equal(self.uniffiClonePointer(), - FfiConverterTypeFeeRateOptionWithTotalFee.lower(rhs), $0) - }) - } + - open func satPerVb() -> Double { - try! FfiConverterDouble.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_sat_per_vb(self.uniffiClonePointer(), $0) - }) - } + +open func duration() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_duration(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeRate() -> FeeRate { + return try! FfiConverterTypeFeeRate.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeRateOptions() -> FeeRateOption { + return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_rate_options(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeSpeed() -> FeeSpeed { + return try! FfiConverterTypeFeeSpeed.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_fee_speed(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEqual(rhs: FeeRateOptionWithTotalFee) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_is_equal(self.uniffiClonePointer(), + FfiConverterTypeFeeRateOptionWithTotalFee.lower(rhs),$0 + ) +}) +} + +open func satPerVb() -> Double { + return try! FfiConverterDouble.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_sat_per_vb(self.uniffiClonePointer(),$0 + ) +}) +} + +open func totalFee() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionwithtotalfee_total_fee(self.uniffiClonePointer(),$0 + ) +}) +} + - open func totalFee() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionwithtotalfee_total_fee(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOptionWithTotalFee: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOptionWithTotalFee public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionWithTotalFee { - FeeRateOptionWithTotalFee(unsafeFromRawPointer: pointer) + return FeeRateOptionWithTotalFee(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOptionWithTotalFee) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOptionWithTotalFee { @@ -3112,7 +3395,7 @@ public struct FfiConverterTypeFeeRateOptionWithTotalFee: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3125,37 +3408,44 @@ public struct FfiConverterTypeFeeRateOptionWithTotalFee: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionWithTotalFee_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionWithTotalFee { - try FfiConverterTypeFeeRateOptionWithTotalFee.lift(pointer) + return try FfiConverterTypeFeeRateOptionWithTotalFee.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionWithTotalFee_lower(_ value: FeeRateOptionWithTotalFee) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRateOptionWithTotalFee.lower(value) + return FfiConverterTypeFeeRateOptionWithTotalFee.lower(value) } -public protocol FeeRateOptionsProtocol: AnyObject { - func fast() -> FeeRateOption - func medium() -> FeeRateOption - func slow() -> FeeRateOption + +public protocol FeeRateOptionsProtocol : AnyObject { + + func fast() -> FeeRateOption + + func medium() -> FeeRateOption + + func slow() -> FeeRateOption + } open class FeeRateOptions: - FeeRateOptionsProtocol -{ + FeeRateOptionsProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3163,7 +3453,7 @@ open class FeeRateOptions: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3172,69 +3462,77 @@ open class FeeRateOptions: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerateoptions(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_feerateoptions(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoptions(pointer, $0) } } - public static func previewNew() -> FeeRateOptions { - try! FfiConverterTypeFeeRateOptions.lift(try! rustCall { - uniffi_cove_fn_constructor_feerateoptions_preview_new($0 - ) - }) - } - - open func fast() -> FeeRateOption { - try! FfiConverterTypeFeeRateOption.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptions_fast(self.uniffiClonePointer(), $0) - }) - } + +public static func previewNew() -> FeeRateOptions { + return try! FfiConverterTypeFeeRateOptions.lift(try! rustCall() { + uniffi_cove_fn_constructor_feerateoptions_preview_new($0 + ) +}) +} + - open func medium() -> FeeRateOption { - try! FfiConverterTypeFeeRateOption.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptions_medium(self.uniffiClonePointer(), $0) - }) - } + +open func fast() -> FeeRateOption { + return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptions_fast(self.uniffiClonePointer(),$0 + ) +}) +} + +open func medium() -> FeeRateOption { + return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptions_medium(self.uniffiClonePointer(),$0 + ) +}) +} + +open func slow() -> FeeRateOption { + return try! FfiConverterTypeFeeRateOption.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptions_slow(self.uniffiClonePointer(),$0 + ) +}) +} + - open func slow() -> FeeRateOption { - try! FfiConverterTypeFeeRateOption.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptions_slow(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOptions: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOptions public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptions { - FeeRateOptions(unsafeFromRawPointer: pointer) + return FeeRateOptions(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOptions) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOptions { @@ -3242,7 +3540,7 @@ public struct FfiConverterTypeFeeRateOptions: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3255,39 +3553,46 @@ public struct FfiConverterTypeFeeRateOptions: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptions_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptions { - try FfiConverterTypeFeeRateOptions.lift(pointer) + return try FfiConverterTypeFeeRateOptions.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptions_lower(_ value: FeeRateOptions) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRateOptions.lower(value) + return FfiConverterTypeFeeRateOptions.lower(value) } -public protocol FeeRateOptionsWithTotalFeeProtocol: AnyObject { - func fast() -> FeeRateOptionWithTotalFee - func feeRateOptions() -> FeeRateOptions - func medium() -> FeeRateOptionWithTotalFee - func slow() -> FeeRateOptionWithTotalFee +public protocol FeeRateOptionsWithTotalFeeProtocol : AnyObject { + + func fast() -> FeeRateOptionWithTotalFee + + func feeRateOptions() -> FeeRateOptions + + func medium() -> FeeRateOptionWithTotalFee + + func slow() -> FeeRateOptionWithTotalFee + } open class FeeRateOptionsWithTotalFee: - FeeRateOptionsWithTotalFeeProtocol -{ + FeeRateOptionsWithTotalFeeProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3295,7 +3600,7 @@ open class FeeRateOptionsWithTotalFee: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3304,75 +3609,84 @@ open class FeeRateOptionsWithTotalFee: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_feerateoptionswithtotalfee(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_feerateoptionswithtotalfee(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_feerateoptionswithtotalfee(pointer, $0) } } - public static func previewNew() -> FeeRateOptionsWithTotalFee { - try! FfiConverterTypeFeeRateOptionsWithTotalFee.lift(try! rustCall { - uniffi_cove_fn_constructor_feerateoptionswithtotalfee_preview_new($0 - ) - }) - } - - open func fast() -> FeeRateOptionWithTotalFee { - try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionswithtotalfee_fast(self.uniffiClonePointer(), $0) - }) - } - - open func feeRateOptions() -> FeeRateOptions { - try! FfiConverterTypeFeeRateOptions.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionswithtotalfee_fee_rate_options(self.uniffiClonePointer(), $0) - }) - } + +public static func previewNew() -> FeeRateOptionsWithTotalFee { + return try! FfiConverterTypeFeeRateOptionsWithTotalFee.lift(try! rustCall() { + uniffi_cove_fn_constructor_feerateoptionswithtotalfee_preview_new($0 + ) +}) +} + - open func medium() -> FeeRateOptionWithTotalFee { - try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionswithtotalfee_medium(self.uniffiClonePointer(), $0) - }) - } + +open func fast() -> FeeRateOptionWithTotalFee { + return try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionswithtotalfee_fast(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeRateOptions() -> FeeRateOptions { + return try! FfiConverterTypeFeeRateOptions.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionswithtotalfee_fee_rate_options(self.uniffiClonePointer(),$0 + ) +}) +} + +open func medium() -> FeeRateOptionWithTotalFee { + return try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionswithtotalfee_medium(self.uniffiClonePointer(),$0 + ) +}) +} + +open func slow() -> FeeRateOptionWithTotalFee { + return try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall() { + uniffi_cove_fn_method_feerateoptionswithtotalfee_slow(self.uniffiClonePointer(),$0 + ) +}) +} + - open func slow() -> FeeRateOptionWithTotalFee { - try! FfiConverterTypeFeeRateOptionWithTotalFee.lift(try! rustCall { - uniffi_cove_fn_method_feerateoptionswithtotalfee_slow(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeRateOptionsWithTotalFee: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FeeRateOptionsWithTotalFee public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionsWithTotalFee { - FeeRateOptionsWithTotalFee(unsafeFromRawPointer: pointer) + return FeeRateOptionsWithTotalFee(unsafeFromRawPointer: pointer) } public static func lower(_ value: FeeRateOptionsWithTotalFee) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeRateOptionsWithTotalFee { @@ -3380,7 +3694,7 @@ public struct FfiConverterTypeFeeRateOptionsWithTotalFee: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3393,93 +3707,100 @@ public struct FfiConverterTypeFeeRateOptionsWithTotalFee: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionsWithTotalFee_lift(_ pointer: UnsafeMutableRawPointer) throws -> FeeRateOptionsWithTotalFee { - try FfiConverterTypeFeeRateOptionsWithTotalFee.lift(pointer) + return try FfiConverterTypeFeeRateOptionsWithTotalFee.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeRateOptionsWithTotalFee_lower(_ value: FeeRateOptionsWithTotalFee) -> UnsafeMutableRawPointer { - FfiConverterTypeFeeRateOptionsWithTotalFee.lower(value) + return FfiConverterTypeFeeRateOptionsWithTotalFee.lower(value) } + + + /** * Representation of our app over FFI. Essentially a wrapper of [`App`]. */ -public protocol FfiAppProtocol: AnyObject { +public protocol FfiAppProtocol : AnyObject { + /** * Frontend calls this method to send events to the rust application logic */ - func dispatch(action: AppAction) - - func fees() async throws -> FeeResponse - + func dispatch(action: AppAction) + + func fees() async throws -> FeeResponse + /** * Get the selected wallet */ - func goToSelectedWallet() -> WalletId? - + func goToSelectedWallet() -> WalletId? + /** * Check if there's any wallets */ - func hasWallets() -> Bool - + func hasWallets() -> Bool + /** * run all initialization tasks here, only called once */ - func initOnStart() async - - func listenForUpdates(updater: FfiReconcile) - + func initOnStart() async + + func listenForUpdates(updater: FfiReconcile) + /** * Load and reset the default route after 800ms delay */ - func loadAndResetDefaultRoute(route: Route) - + func loadAndResetDefaultRoute(route: Route) + /** * Load and reset the default route * Shows a laoding screen, and then resets the default route */ - func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) - - func network() -> Network - + func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) + + func network() -> Network + /** * Number of wallets */ - func numWallets() -> UInt16 - - func prices() async throws -> PriceResponse - + func numWallets() -> UInt16 + + func prices() async throws -> PriceResponse + /** * Change the default route, and reset the routes */ - func resetDefaultRouteTo(route: Route) - + func resetDefaultRouteTo(route: Route) + /** * Select a wallet */ - func selectWallet(id: WalletId) throws - - func state() -> AppState + func selectWallet(id: WalletId) throws + + func state() -> AppState + } /** * Representation of our app over FFI. Essentially a wrapper of [`App`]. */ open class FfiApp: - FfiAppProtocol -{ + FfiAppProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3487,7 +3808,7 @@ open class FfiApp: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3496,54 +3817,59 @@ open class FfiApp: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_ffiapp(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_ffiapp(self.pointer, $0) } } - /** * FFI constructor which wraps in an Arc */ - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_ffiapp_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) - } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_ffiapp_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_ffiapp(pointer, $0) } } + + + /** * Frontend calls this method to send events to the rust application logic */ - open func dispatch(action: AppAction) { try! rustCall { - uniffi_cove_fn_method_ffiapp_dispatch(self.uniffiClonePointer(), - FfiConverterTypeAppAction.lower(action), $0) - } - } - - open func fees() async throws -> FeeResponse { - try await uniffiRustCallAsync( +open func dispatch(action: AppAction) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_dispatch(self.uniffiClonePointer(), + FfiConverterTypeAppAction.lower(action),$0 + ) +} +} + +open func fees()async throws -> FeeResponse { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_ffiapp_fees( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -3552,34 +3878,38 @@ open class FfiApp: liftFunc: FfiConverterTypeFeeResponse.lift, errorHandler: FfiConverterTypeAppError.lift ) - } - +} + /** * Get the selected wallet */ - open func goToSelectedWallet() -> WalletId? { - try! FfiConverterOptionTypeWalletId.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_go_to_selected_wallet(self.uniffiClonePointer(), $0) - }) - } - +open func goToSelectedWallet() -> WalletId? { + return try! FfiConverterOptionTypeWalletId.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_go_to_selected_wallet(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Check if there's any wallets */ - open func hasWallets() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_has_wallets(self.uniffiClonePointer(), $0) - }) - } - +open func hasWallets() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_has_wallets(self.uniffiClonePointer(),$0 + ) +}) +} + /** * run all initialization tasks here, only called once */ - open func initOnStart() async { - try! await uniffiRustCallAsync( +open func initOnStart()async { + return + try! await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_ffiapp_init_on_start( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_void, @@ -3587,55 +3917,63 @@ open class FfiApp: freeFunc: ffi_cove_rust_future_free_void, liftFunc: { $0 }, errorHandler: nil + ) - } - - open func listenForUpdates(updater: FfiReconcile) { try! rustCall { - uniffi_cove_fn_method_ffiapp_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfaceFfiReconcile.lower(updater), $0) - } - } - +} + +open func listenForUpdates(updater: FfiReconcile) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfaceFfiReconcile.lower(updater),$0 + ) +} +} + /** * Load and reset the default route after 800ms delay */ - open func loadAndResetDefaultRoute(route: Route) { try! rustCall { - uniffi_cove_fn_method_ffiapp_load_and_reset_default_route(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), $0) - } - } - +open func loadAndResetDefaultRoute(route: Route) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_load_and_reset_default_route(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route),$0 + ) +} +} + /** * Load and reset the default route * Shows a laoding screen, and then resets the default route */ - open func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) { try! rustCall { - uniffi_cove_fn_method_ffiapp_load_and_reset_default_route_after(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), - FfiConverterUInt32.lower(afterMillis), $0) - } - } - - open func network() -> Network { - try! FfiConverterTypeNetwork.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_network(self.uniffiClonePointer(), $0) - }) - } - +open func loadAndResetDefaultRouteAfter(route: Route, afterMillis: UInt32) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_load_and_reset_default_route_after(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route), + FfiConverterUInt32.lower(afterMillis),$0 + ) +} +} + +open func network() -> Network { + return try! FfiConverterTypeNetwork.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_network(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Number of wallets */ - open func numWallets() -> UInt16 { - try! FfiConverterUInt16.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_num_wallets(self.uniffiClonePointer(), $0) - }) - } - - open func prices() async throws -> PriceResponse { - try await uniffiRustCallAsync( +open func numWallets() -> UInt16 { + return try! FfiConverterUInt16.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_num_wallets(self.uniffiClonePointer(),$0 + ) +}) +} + +open func prices()async throws -> PriceResponse { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_ffiapp_prices( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -3644,46 +3982,52 @@ open class FfiApp: liftFunc: FfiConverterTypePriceResponse.lift, errorHandler: FfiConverterTypeAppError.lift ) - } - +} + /** * Change the default route, and reset the routes */ - open func resetDefaultRouteTo(route: Route) { try! rustCall { - uniffi_cove_fn_method_ffiapp_reset_default_route_to(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), $0) - } - } - +open func resetDefaultRouteTo(route: Route) {try! rustCall() { + uniffi_cove_fn_method_ffiapp_reset_default_route_to(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route),$0 + ) +} +} + /** * Select a wallet */ - open func selectWallet(id: WalletId) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_ffiapp_select_wallet(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), $0) - } - } +open func selectWallet(id: WalletId)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_ffiapp_select_wallet(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id),$0 + ) +} +} + +open func state() -> AppState { + return try! FfiConverterTypeAppState.lift(try! rustCall() { + uniffi_cove_fn_method_ffiapp_state(self.uniffiClonePointer(),$0 + ) +}) +} + - open func state() -> AppState { - try! FfiConverterTypeAppState.lift(try! rustCall { - uniffi_cove_fn_method_ffiapp_state(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiApp: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FfiApp public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiApp { - FfiApp(unsafeFromRawPointer: pointer) + return FfiApp(unsafeFromRawPointer: pointer) } public static func lower(_ value: FfiApp) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiApp { @@ -3691,7 +4035,7 @@ public struct FfiConverterTypeFfiApp: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3704,43 +4048,50 @@ public struct FfiConverterTypeFfiApp: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiApp_lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiApp { - try FfiConverterTypeFfiApp.lift(pointer) + return try FfiConverterTypeFfiApp.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiApp_lower(_ value: FfiApp) -> UnsafeMutableRawPointer { - FfiConverterTypeFfiApp.lower(value) + return FfiConverterTypeFfiApp.lower(value) } -public protocol FfiNfcReaderProtocol: AnyObject { - func dataFromRecords(records: [NdefRecord]) -> Data - func isResumeable(data: Data) throws - func isStarted() -> Bool - func messageInfo() -> MessageInfo? - - func parse(data: Data) throws -> ParseResult - - func stringFromRecord(record: NdefRecord) -> String? +public protocol FfiNfcReaderProtocol : AnyObject { + + func dataFromRecords(records: [NdefRecord]) -> Data + + func isResumeable(data: Data) throws + + func isStarted() -> Bool + + func messageInfo() -> MessageInfo? + + func parse(data: Data) throws -> ParseResult + + func stringFromRecord(record: NdefRecord) -> String? + } open class FfiNfcReader: - FfiNfcReaderProtocol -{ + FfiNfcReaderProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3748,7 +4099,7 @@ open class FfiNfcReader: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3757,90 +4108,101 @@ open class FfiNfcReader: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_ffinfcreader(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_ffinfcreader_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_ffinfcreader(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_ffinfcreader_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_ffinfcreader(pointer, $0) } } - open func dataFromRecords(records: [NdefRecord]) -> Data { - try! FfiConverterData.lift(try! rustCall { - uniffi_cove_fn_method_ffinfcreader_data_from_records(self.uniffiClonePointer(), - FfiConverterSequenceTypeNdefRecord.lower(records), $0) - }) - } - - open func isResumeable(data: Data) throws { try rustCallWithError(FfiConverterTypeResumeError.lift) { - uniffi_cove_fn_method_ffinfcreader_is_resumeable(self.uniffiClonePointer(), - FfiConverterData.lower(data), $0) - } - } - - open func isStarted() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_ffinfcreader_is_started(self.uniffiClonePointer(), $0) - }) - } - - open func messageInfo() -> MessageInfo? { - try! FfiConverterOptionTypeMessageInfo.lift(try! rustCall { - uniffi_cove_fn_method_ffinfcreader_message_info(self.uniffiClonePointer(), $0) - }) - } + - open func parse(data: Data) throws -> ParseResult { - try FfiConverterTypeParseResult.lift(rustCallWithError(FfiConverterTypeNfcReaderError.lift) { - uniffi_cove_fn_method_ffinfcreader_parse(self.uniffiClonePointer(), - FfiConverterData.lower(data), $0) - }) - } + +open func dataFromRecords(records: [NdefRecord]) -> Data { + return try! FfiConverterData.lift(try! rustCall() { + uniffi_cove_fn_method_ffinfcreader_data_from_records(self.uniffiClonePointer(), + FfiConverterSequenceTypeNdefRecord.lower(records),$0 + ) +}) +} + +open func isResumeable(data: Data)throws {try rustCallWithError(FfiConverterTypeResumeError.lift) { + uniffi_cove_fn_method_ffinfcreader_is_resumeable(self.uniffiClonePointer(), + FfiConverterData.lower(data),$0 + ) +} +} + +open func isStarted() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_ffinfcreader_is_started(self.uniffiClonePointer(),$0 + ) +}) +} + +open func messageInfo() -> MessageInfo? { + return try! FfiConverterOptionTypeMessageInfo.lift(try! rustCall() { + uniffi_cove_fn_method_ffinfcreader_message_info(self.uniffiClonePointer(),$0 + ) +}) +} + +open func parse(data: Data)throws -> ParseResult { + return try FfiConverterTypeParseResult.lift(try rustCallWithError(FfiConverterTypeNfcReaderError.lift) { + uniffi_cove_fn_method_ffinfcreader_parse(self.uniffiClonePointer(), + FfiConverterData.lower(data),$0 + ) +}) +} + +open func stringFromRecord(record: NdefRecord) -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_ffinfcreader_string_from_record(self.uniffiClonePointer(), + FfiConverterTypeNdefRecord.lower(record),$0 + ) +}) +} + - open func stringFromRecord(record: NdefRecord) -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_ffinfcreader_string_from_record(self.uniffiClonePointer(), - FfiConverterTypeNdefRecord.lower(record), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiNfcReader: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FfiNfcReader public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiNfcReader { - FfiNfcReader(unsafeFromRawPointer: pointer) + return FfiNfcReader(unsafeFromRawPointer: pointer) } public static func lower(_ value: FfiNfcReader) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiNfcReader { @@ -3848,7 +4210,7 @@ public struct FfiConverterTypeFfiNfcReader: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3861,31 +4223,38 @@ public struct FfiConverterTypeFfiNfcReader: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiNfcReader_lift(_ pointer: UnsafeMutableRawPointer) throws -> FfiNfcReader { - try FfiConverterTypeFfiNfcReader.lift(pointer) + return try FfiConverterTypeFfiNfcReader.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiNfcReader_lower(_ value: FfiNfcReader) -> UnsafeMutableRawPointer { - FfiConverterTypeFfiNfcReader.lower(value) + return FfiConverterTypeFfiNfcReader.lower(value) } -public protocol FiatClientProtocol: AnyObject {} + + + +public protocol FiatClientProtocol : AnyObject { + +} open class FiatClient: - FiatClientProtocol -{ + FiatClientProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3893,7 +4262,7 @@ open class FiatClient: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -3902,44 +4271,49 @@ open class FiatClient: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_fiatclient(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_fiatclient(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_fiatclient(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatClient: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FiatClient public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FiatClient { - FiatClient(unsafeFromRawPointer: pointer) + return FiatClient(unsafeFromRawPointer: pointer) } public static func lower(_ value: FiatClient) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatClient { @@ -3947,7 +4321,7 @@ public struct FfiConverterTypeFiatClient: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -3960,33 +4334,40 @@ public struct FfiConverterTypeFiatClient: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatClient_lift(_ pointer: UnsafeMutableRawPointer) throws -> FiatClient { - try FfiConverterTypeFiatClient.lift(pointer) + return try FfiConverterTypeFiatClient.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatClient_lower(_ value: FiatClient) -> UnsafeMutableRawPointer { - FfiConverterTypeFiatClient.lower(value) + return FfiConverterTypeFiatClient.lower(value) } -public protocol FileHandlerProtocol: AnyObject { - func read() throws -> MultiFormat + + + +public protocol FileHandlerProtocol : AnyObject { + + func read() throws -> MultiFormat + } open class FileHandler: - FileHandlerProtocol -{ + FileHandlerProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -3994,7 +4375,7 @@ open class FileHandler: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4003,58 +4384,64 @@ open class FileHandler: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_filehandler(self.pointer, $0) } - } - - public convenience init(filePath: String) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_filehandler_new( - FfiConverterString.lower(filePath), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_filehandler(self.pointer, $0) } } +public convenience init(filePath: String) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_filehandler_new( + FfiConverterString.lower(filePath),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_filehandler(pointer, $0) } } - open func read() throws -> MultiFormat { - try FfiConverterTypeMultiFormat.lift(rustCallWithError(FfiConverterTypeFileHandlerError.lift) { - uniffi_cove_fn_method_filehandler_read(self.uniffiClonePointer(), $0) - }) - } + + + +open func read()throws -> MultiFormat { + return try FfiConverterTypeMultiFormat.lift(try rustCallWithError(FfiConverterTypeFileHandlerError.lift) { + uniffi_cove_fn_method_filehandler_read(self.uniffiClonePointer(),$0 + ) +}) +} + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFileHandler: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FileHandler public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FileHandler { - FileHandler(unsafeFromRawPointer: pointer) + return FileHandler(unsafeFromRawPointer: pointer) } public static func lower(_ value: FileHandler) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FileHandler { @@ -4062,7 +4449,7 @@ public struct FfiConverterTypeFileHandler: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4075,35 +4462,42 @@ public struct FfiConverterTypeFileHandler: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFileHandler_lift(_ pointer: UnsafeMutableRawPointer) throws -> FileHandler { - try FfiConverterTypeFileHandler.lift(pointer) + return try FfiConverterTypeFileHandler.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFileHandler_lower(_ value: FileHandler) -> UnsafeMutableRawPointer { - FfiConverterTypeFileHandler.lower(value) + return FfiConverterTypeFileHandler.lower(value) } -public protocol FingerprintProtocol: AnyObject { - func asLowercase() -> String - func asUppercase() -> String + + +public protocol FingerprintProtocol : AnyObject { + + func asLowercase() -> String + + func asUppercase() -> String + } open class Fingerprint: - FingerprintProtocol -{ + FingerprintProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4111,7 +4505,7 @@ open class Fingerprint: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4120,64 +4514,71 @@ open class Fingerprint: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_fingerprint(self.pointer, $0) } - } - - public convenience init(id: WalletId) throws { - let pointer = - try rustCallWithError(FfiConverterTypeFingerprintError.lift) { - uniffi_cove_fn_constructor_fingerprint_new( - FfiConverterTypeWalletId.lower(id), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_fingerprint(self.pointer, $0) } } +public convenience init(id: WalletId)throws { + let pointer = + try rustCallWithError(FfiConverterTypeFingerprintError.lift) { + uniffi_cove_fn_constructor_fingerprint_new( + FfiConverterTypeWalletId.lower(id),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_fingerprint(pointer, $0) } } - open func asLowercase() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_fingerprint_as_lowercase(self.uniffiClonePointer(), $0) - }) - } + + + +open func asLowercase() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_fingerprint_as_lowercase(self.uniffiClonePointer(),$0 + ) +}) +} + +open func asUppercase() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_fingerprint_as_uppercase(self.uniffiClonePointer(),$0 + ) +}) +} + - open func asUppercase() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_fingerprint_as_uppercase(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFingerprint: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Fingerprint public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Fingerprint { - Fingerprint(unsafeFromRawPointer: pointer) + return Fingerprint(unsafeFromRawPointer: pointer) } public static func lower(_ value: Fingerprint) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Fingerprint { @@ -4185,7 +4586,7 @@ public struct FfiConverterTypeFingerprint: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4198,31 +4599,38 @@ public struct FfiConverterTypeFingerprint: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFingerprint_lift(_ pointer: UnsafeMutableRawPointer) throws -> Fingerprint { - try FfiConverterTypeFingerprint.lift(pointer) + return try FfiConverterTypeFingerprint.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFingerprint_lower(_ value: Fingerprint) -> UnsafeMutableRawPointer { - FfiConverterTypeFingerprint.lower(value) + return FfiConverterTypeFingerprint.lower(value) } -public protocol FoundJsonProtocol: AnyObject {} -open class FoundJson: - FoundJsonProtocol -{ + + +public protocol FoundJsonProtocol : AnyObject { + +} + +open class FoundJson: + FoundJsonProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4230,7 +4638,7 @@ open class FoundJson: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4239,44 +4647,49 @@ open class FoundJson: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_foundjson(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_foundjson(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_foundjson(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFoundJson: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = FoundJson public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> FoundJson { - FoundJson(unsafeFromRawPointer: pointer) + return FoundJson(unsafeFromRawPointer: pointer) } public static func lower(_ value: FoundJson) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FoundJson { @@ -4284,7 +4697,7 @@ public struct FfiConverterTypeFoundJson: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4297,55 +4710,62 @@ public struct FfiConverterTypeFoundJson: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFoundJson_lift(_ pointer: UnsafeMutableRawPointer) throws -> FoundJson { - try FfiConverterTypeFoundJson.lift(pointer) + return try FfiConverterTypeFoundJson.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFoundJson_lower(_ value: FoundJson) -> UnsafeMutableRawPointer { - FfiConverterTypeFoundJson.lower(value) -} - -public protocol GlobalConfigTableProtocol: AnyObject { - func clearSelectedWallet() throws - - func colorScheme() -> ColorSchemeSelection - - func delete(key: GlobalConfigKey) throws - - func get(key: GlobalConfigKey) throws -> String? - - func selectWallet(id: WalletId) throws - - func selectedNetwork() -> Network - - func selectedNode() -> Node - - func selectedWallet() -> WalletId? - - func set(key: GlobalConfigKey, value: String) throws - - func setColorScheme(colorScheme: ColorSchemeSelection) throws - - func setSelectedNetwork(network: Network) throws - - func setSelectedNode(node: Node) throws + return FfiConverterTypeFoundJson.lower(value) +} + + + + +public protocol GlobalConfigTableProtocol : AnyObject { + + func clearSelectedWallet() throws + + func colorScheme() -> ColorSchemeSelection + + func delete(key: GlobalConfigKey) throws + + func get(key: GlobalConfigKey) throws -> String? + + func selectWallet(id: WalletId) throws + + func selectedNetwork() -> Network + + func selectedNode() -> Node + + func selectedWallet() -> WalletId? + + func set(key: GlobalConfigKey, value: String) throws + + func setColorScheme(colorScheme: ColorSchemeSelection) throws + + func setSelectedNetwork(network: Network) throws + + func setSelectedNode(node: Node) throws + } open class GlobalConfigTable: - GlobalConfigTableProtocol -{ + GlobalConfigTableProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4353,7 +4773,7 @@ open class GlobalConfigTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4362,117 +4782,134 @@ open class GlobalConfigTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_globalconfigtable(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_globalconfigtable(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_globalconfigtable(pointer, $0) } } - open func clearSelectedWallet() throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_clear_selected_wallet(self.uniffiClonePointer(), $0) - } - } - - open func colorScheme() -> ColorSchemeSelection { - try! FfiConverterTypeColorSchemeSelection.lift(try! rustCall { - uniffi_cove_fn_method_globalconfigtable_color_scheme(self.uniffiClonePointer(), $0) - }) - } - - open func delete(key: GlobalConfigKey) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_delete(self.uniffiClonePointer(), - FfiConverterTypeGlobalConfigKey.lower(key), $0) - } - } - - open func get(key: GlobalConfigKey) throws -> String? { - try FfiConverterOptionString.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_get(self.uniffiClonePointer(), - FfiConverterTypeGlobalConfigKey.lower(key), $0) - }) - } - - open func selectWallet(id: WalletId) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_select_wallet(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), $0) - } - } - - open func selectedNetwork() -> Network { - try! FfiConverterTypeNetwork.lift(try! rustCall { - uniffi_cove_fn_method_globalconfigtable_selected_network(self.uniffiClonePointer(), $0) - }) - } - - open func selectedNode() -> Node { - try! FfiConverterTypeNode.lift(try! rustCall { - uniffi_cove_fn_method_globalconfigtable_selected_node(self.uniffiClonePointer(), $0) - }) - } - - open func selectedWallet() -> WalletId? { - try! FfiConverterOptionTypeWalletId.lift(try! rustCall { - uniffi_cove_fn_method_globalconfigtable_selected_wallet(self.uniffiClonePointer(), $0) - }) - } - - open func set(key: GlobalConfigKey, value: String) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set(self.uniffiClonePointer(), - FfiConverterTypeGlobalConfigKey.lower(key), - FfiConverterString.lower(value), $0) - } - } - - open func setColorScheme(colorScheme: ColorSchemeSelection) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set_color_scheme(self.uniffiClonePointer(), - FfiConverterTypeColorSchemeSelection.lower(colorScheme), $0) - } - } + - open func setSelectedNetwork(network: Network) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set_selected_network(self.uniffiClonePointer(), - FfiConverterTypeNetwork.lower(network), $0) - } - } + +open func clearSelectedWallet()throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_clear_selected_wallet(self.uniffiClonePointer(),$0 + ) +} +} + +open func colorScheme() -> ColorSchemeSelection { + return try! FfiConverterTypeColorSchemeSelection.lift(try! rustCall() { + uniffi_cove_fn_method_globalconfigtable_color_scheme(self.uniffiClonePointer(),$0 + ) +}) +} + +open func delete(key: GlobalConfigKey)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_delete(self.uniffiClonePointer(), + FfiConverterTypeGlobalConfigKey.lower(key),$0 + ) +} +} + +open func get(key: GlobalConfigKey)throws -> String? { + return try FfiConverterOptionString.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_get(self.uniffiClonePointer(), + FfiConverterTypeGlobalConfigKey.lower(key),$0 + ) +}) +} + +open func selectWallet(id: WalletId)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_select_wallet(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id),$0 + ) +} +} + +open func selectedNetwork() -> Network { + return try! FfiConverterTypeNetwork.lift(try! rustCall() { + uniffi_cove_fn_method_globalconfigtable_selected_network(self.uniffiClonePointer(),$0 + ) +}) +} + +open func selectedNode() -> Node { + return try! FfiConverterTypeNode.lift(try! rustCall() { + uniffi_cove_fn_method_globalconfigtable_selected_node(self.uniffiClonePointer(),$0 + ) +}) +} + +open func selectedWallet() -> WalletId? { + return try! FfiConverterOptionTypeWalletId.lift(try! rustCall() { + uniffi_cove_fn_method_globalconfigtable_selected_wallet(self.uniffiClonePointer(),$0 + ) +}) +} + +open func set(key: GlobalConfigKey, value: String)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set(self.uniffiClonePointer(), + FfiConverterTypeGlobalConfigKey.lower(key), + FfiConverterString.lower(value),$0 + ) +} +} + +open func setColorScheme(colorScheme: ColorSchemeSelection)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set_color_scheme(self.uniffiClonePointer(), + FfiConverterTypeColorSchemeSelection.lower(colorScheme),$0 + ) +} +} + +open func setSelectedNetwork(network: Network)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set_selected_network(self.uniffiClonePointer(), + FfiConverterTypeNetwork.lower(network),$0 + ) +} +} + +open func setSelectedNode(node: Node)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalconfigtable_set_selected_node(self.uniffiClonePointer(), + FfiConverterTypeNode.lower(node),$0 + ) +} +} + - open func setSelectedNode(node: Node) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalconfigtable_set_selected_node(self.uniffiClonePointer(), - FfiConverterTypeNode.lower(node), $0) - } - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalConfigTable: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = GlobalConfigTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalConfigTable { - GlobalConfigTable(unsafeFromRawPointer: pointer) + return GlobalConfigTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: GlobalConfigTable) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalConfigTable { @@ -4480,7 +4917,7 @@ public struct FfiConverterTypeGlobalConfigTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4493,37 +4930,44 @@ public struct FfiConverterTypeGlobalConfigTable: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalConfigTable { - try FfiConverterTypeGlobalConfigTable.lift(pointer) + return try FfiConverterTypeGlobalConfigTable.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigTable_lower(_ value: GlobalConfigTable) -> UnsafeMutableRawPointer { - FfiConverterTypeGlobalConfigTable.lower(value) + return FfiConverterTypeGlobalConfigTable.lower(value) } -public protocol GlobalFlagTableProtocol: AnyObject { - func get(key: GlobalFlagKey) throws -> Bool - func set(key: GlobalFlagKey, value: Bool) throws - func toggleBoolConfig(key: GlobalFlagKey) throws + +public protocol GlobalFlagTableProtocol : AnyObject { + + func get(key: GlobalFlagKey) throws -> Bool + + func set(key: GlobalFlagKey, value: Bool) throws + + func toggleBoolConfig(key: GlobalFlagKey) throws + } open class GlobalFlagTable: - GlobalFlagTableProtocol -{ + GlobalFlagTableProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4531,7 +4975,7 @@ open class GlobalFlagTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4540,64 +4984,72 @@ open class GlobalFlagTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_globalflagtable(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_globalflagtable(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_globalflagtable(pointer, $0) } } - open func get(key: GlobalFlagKey) throws -> Bool { - try FfiConverterBool.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalflagtable_get(self.uniffiClonePointer(), - FfiConverterTypeGlobalFlagKey.lower(key), $0) - }) - } + - open func set(key: GlobalFlagKey, value: Bool) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalflagtable_set(self.uniffiClonePointer(), - FfiConverterTypeGlobalFlagKey.lower(key), - FfiConverterBool.lower(value), $0) - } - } + +open func get(key: GlobalFlagKey)throws -> Bool { + return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalflagtable_get(self.uniffiClonePointer(), + FfiConverterTypeGlobalFlagKey.lower(key),$0 + ) +}) +} + +open func set(key: GlobalFlagKey, value: Bool)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalflagtable_set(self.uniffiClonePointer(), + FfiConverterTypeGlobalFlagKey.lower(key), + FfiConverterBool.lower(value),$0 + ) +} +} + +open func toggleBoolConfig(key: GlobalFlagKey)throws {try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_globalflagtable_toggle_bool_config(self.uniffiClonePointer(), + FfiConverterTypeGlobalFlagKey.lower(key),$0 + ) +} +} + - open func toggleBoolConfig(key: GlobalFlagKey) throws { try rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_globalflagtable_toggle_bool_config(self.uniffiClonePointer(), - FfiConverterTypeGlobalFlagKey.lower(key), $0) - } - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalFlagTable: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = GlobalFlagTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalFlagTable { - GlobalFlagTable(unsafeFromRawPointer: pointer) + return GlobalFlagTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: GlobalFlagTable) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalFlagTable { @@ -4605,7 +5057,7 @@ public struct FfiConverterTypeGlobalFlagTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4618,31 +5070,38 @@ public struct FfiConverterTypeGlobalFlagTable: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> GlobalFlagTable { - try FfiConverterTypeGlobalFlagTable.lift(pointer) + return try FfiConverterTypeGlobalFlagTable.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagTable_lower(_ value: GlobalFlagTable) -> UnsafeMutableRawPointer { - FfiConverterTypeGlobalFlagTable.lower(value) + return FfiConverterTypeGlobalFlagTable.lower(value) } -public protocol HardwareExportProtocol: AnyObject {} + + + +public protocol HardwareExportProtocol : AnyObject { + +} open class HardwareExport: - HardwareExportProtocol -{ + HardwareExportProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4650,7 +5109,7 @@ open class HardwareExport: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4659,44 +5118,49 @@ open class HardwareExport: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_hardwareexport(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_hardwareexport(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_hardwareexport(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeHardwareExport: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = HardwareExport public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> HardwareExport { - HardwareExport(unsafeFromRawPointer: pointer) + return HardwareExport(unsafeFromRawPointer: pointer) } public static func lower(_ value: HardwareExport) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> HardwareExport { @@ -4704,7 +5168,7 @@ public struct FfiConverterTypeHardwareExport: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4717,37 +5181,44 @@ public struct FfiConverterTypeHardwareExport: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHardwareExport_lift(_ pointer: UnsafeMutableRawPointer) throws -> HardwareExport { - try FfiConverterTypeHardwareExport.lift(pointer) + return try FfiConverterTypeHardwareExport.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHardwareExport_lower(_ value: HardwareExport) -> UnsafeMutableRawPointer { - FfiConverterTypeHardwareExport.lower(value) + return FfiConverterTypeHardwareExport.lower(value) } -public protocol HeaderIconPresenterProtocol: AnyObject { - func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor - func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor - func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor + +public protocol HeaderIconPresenterProtocol : AnyObject { + + func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor + + func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor + + func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor + } open class HeaderIconPresenter: - HeaderIconPresenterProtocol -{ + HeaderIconPresenterProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4755,7 +5226,7 @@ open class HeaderIconPresenter: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4764,82 +5235,90 @@ open class HeaderIconPresenter: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_headericonpresenter(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_headericonpresenter_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_headericonpresenter(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_headericonpresenter_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_headericonpresenter(pointer, $0) } } - open func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { - try! FfiConverterTypeFfiColor.lift(try! rustCall { - uniffi_cove_fn_method_headericonpresenter_background_color(self.uniffiClonePointer(), - FfiConverterTypeTransactionState.lower(state), - FfiConverterTypeTransactionDirection.lower(direction), - FfiConverterTypeFfiColorScheme.lower(colorScheme), - FfiConverterInt32.lower(confirmationCount), $0) - }) - } + - open func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { - try! FfiConverterTypeFfiColor.lift(try! rustCall { - uniffi_cove_fn_method_headericonpresenter_icon_color(self.uniffiClonePointer(), - FfiConverterTypeTransactionState.lower(state), - FfiConverterTypeTransactionDirection.lower(direction), - FfiConverterTypeFfiColorScheme.lower(colorScheme), - FfiConverterInt32.lower(confirmationCount), $0) - }) - } + +open func backgroundColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { + return try! FfiConverterTypeFfiColor.lift(try! rustCall() { + uniffi_cove_fn_method_headericonpresenter_background_color(self.uniffiClonePointer(), + FfiConverterTypeTransactionState.lower(state), + FfiConverterTypeTransactionDirection.lower(direction), + FfiConverterTypeFfiColorScheme.lower(colorScheme), + FfiConverterInt32.lower(confirmationCount),$0 + ) +}) +} + +open func iconColor(state: TransactionState, direction: TransactionDirection, colorScheme: FfiColorScheme, confirmationCount: Int32) -> FfiColor { + return try! FfiConverterTypeFfiColor.lift(try! rustCall() { + uniffi_cove_fn_method_headericonpresenter_icon_color(self.uniffiClonePointer(), + FfiConverterTypeTransactionState.lower(state), + FfiConverterTypeTransactionDirection.lower(direction), + FfiConverterTypeFfiColorScheme.lower(colorScheme), + FfiConverterInt32.lower(confirmationCount),$0 + ) +}) +} + +open func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor { + return try! FfiConverterTypeFfiColor.lift(try! rustCall() { + uniffi_cove_fn_method_headericonpresenter_ring_color(self.uniffiClonePointer(), + FfiConverterTypeTransactionState.lower(state), + FfiConverterTypeFfiColorScheme.lower(colorScheme), + FfiConverterTypeTransactionDirection.lower(direction), + FfiConverterInt32.lower(confirmations), + FfiConverterInt32.lower(ringNumber),$0 + ) +}) +} + - open func ringColor(state: TransactionState, colorScheme: FfiColorScheme, direction: TransactionDirection, confirmations: Int32, ringNumber: Int32) -> FfiColor { - try! FfiConverterTypeFfiColor.lift(try! rustCall { - uniffi_cove_fn_method_headericonpresenter_ring_color(self.uniffiClonePointer(), - FfiConverterTypeTransactionState.lower(state), - FfiConverterTypeFfiColorScheme.lower(colorScheme), - FfiConverterTypeTransactionDirection.lower(direction), - FfiConverterInt32.lower(confirmations), - FfiConverterInt32.lower(ringNumber), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeHeaderIconPresenter: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = HeaderIconPresenter public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> HeaderIconPresenter { - HeaderIconPresenter(unsafeFromRawPointer: pointer) + return HeaderIconPresenter(unsafeFromRawPointer: pointer) } public static func lower(_ value: HeaderIconPresenter) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> HeaderIconPresenter { @@ -4847,7 +5326,7 @@ public struct FfiConverterTypeHeaderIconPresenter: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4860,31 +5339,38 @@ public struct FfiConverterTypeHeaderIconPresenter: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHeaderIconPresenter_lift(_ pointer: UnsafeMutableRawPointer) throws -> HeaderIconPresenter { - try FfiConverterTypeHeaderIconPresenter.lift(pointer) + return try FfiConverterTypeHeaderIconPresenter.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHeaderIconPresenter_lower(_ value: HeaderIconPresenter) -> UnsafeMutableRawPointer { - FfiConverterTypeHeaderIconPresenter.lower(value) + return FfiConverterTypeHeaderIconPresenter.lower(value) } -public protocol KeychainProtocol: AnyObject {} + + + +public protocol KeychainProtocol : AnyObject { + +} open class Keychain: - KeychainProtocol -{ + KeychainProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -4892,7 +5378,7 @@ open class Keychain: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -4901,52 +5387,57 @@ open class Keychain: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_keychain(self.pointer, $0) } - } - - public convenience init(keychain: KeychainAccess) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_keychain_new( - FfiConverterCallbackInterfaceKeychainAccess.lower(keychain), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_keychain(self.pointer, $0) } } +public convenience init(keychain: KeychainAccess) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_keychain_new( + FfiConverterCallbackInterfaceKeychainAccess.lower(keychain),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_keychain(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeKeychain: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Keychain public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Keychain { - Keychain(unsafeFromRawPointer: pointer) + return Keychain(unsafeFromRawPointer: pointer) } public static func lower(_ value: Keychain) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Keychain { @@ -4954,7 +5445,7 @@ public struct FfiConverterTypeKeychain: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -4967,35 +5458,42 @@ public struct FfiConverterTypeKeychain: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeKeychain_lift(_ pointer: UnsafeMutableRawPointer) throws -> Keychain { - try FfiConverterTypeKeychain.lift(pointer) + return try FfiConverterTypeKeychain.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeKeychain_lower(_ value: Keychain) -> UnsafeMutableRawPointer { - FfiConverterTypeKeychain.lower(value) + return FfiConverterTypeKeychain.lower(value) } -public protocol MnemonicProtocol: AnyObject { - func allWords() -> [GroupedWord] - func words() -> [String] + + +public protocol MnemonicProtocol : AnyObject { + + func allWords() -> [GroupedWord] + + func words() -> [String] + } open class Mnemonic: - MnemonicProtocol -{ + MnemonicProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5003,7 +5501,7 @@ open class Mnemonic: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5012,72 +5510,79 @@ open class Mnemonic: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_mnemonic(self.pointer, $0) } - } - - public convenience init(id: WalletId) throws { - let pointer = - try rustCallWithError(FfiConverterTypeMnemonicError.lift) { - uniffi_cove_fn_constructor_mnemonic_new( - FfiConverterTypeWalletId.lower(id), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_mnemonic(self.pointer, $0) } } +public convenience init(id: WalletId)throws { + let pointer = + try rustCallWithError(FfiConverterTypeMnemonicError.lift) { + uniffi_cove_fn_constructor_mnemonic_new( + FfiConverterTypeWalletId.lower(id),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_mnemonic(pointer, $0) } } - public static func preview(numberOfBip39Words: NumberOfBip39Words) -> Mnemonic { - try! FfiConverterTypeMnemonic.lift(try! rustCall { - uniffi_cove_fn_constructor_mnemonic_preview( - FfiConverterTypeNumberOfBip39Words.lower(numberOfBip39Words), $0 - ) - }) - } - - open func allWords() -> [GroupedWord] { - try! FfiConverterSequenceTypeGroupedWord.lift(try! rustCall { - uniffi_cove_fn_method_mnemonic_all_words(self.uniffiClonePointer(), $0) - }) - } - - open func words() -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_mnemonic_words(self.uniffiClonePointer(), $0) - }) - } + +public static func preview(numberOfBip39Words: NumberOfBip39Words) -> Mnemonic { + return try! FfiConverterTypeMnemonic.lift(try! rustCall() { + uniffi_cove_fn_constructor_mnemonic_preview( + FfiConverterTypeNumberOfBip39Words.lower(numberOfBip39Words),$0 + ) +}) } + -#if swift(>=5.8) - @_documentation(visibility: private) + +open func allWords() -> [GroupedWord] { + return try! FfiConverterSequenceTypeGroupedWord.lift(try! rustCall() { + uniffi_cove_fn_method_mnemonic_all_words(self.uniffiClonePointer(),$0 + ) +}) +} + +open func words() -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_mnemonic_words(self.uniffiClonePointer(),$0 + ) +}) +} + + +} + +#if swift(>=5.8) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMnemonic: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Mnemonic public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Mnemonic { - Mnemonic(unsafeFromRawPointer: pointer) + return Mnemonic(unsafeFromRawPointer: pointer) } public static func lower(_ value: Mnemonic) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Mnemonic { @@ -5085,7 +5590,7 @@ public struct FfiConverterTypeMnemonic: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5098,43 +5603,50 @@ public struct FfiConverterTypeMnemonic: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMnemonic_lift(_ pointer: UnsafeMutableRawPointer) throws -> Mnemonic { - try FfiConverterTypeMnemonic.lift(pointer) + return try FfiConverterTypeMnemonic.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMnemonic_lower(_ value: Mnemonic) -> UnsafeMutableRawPointer { - FfiConverterTypeMnemonic.lower(value) + return FfiConverterTypeMnemonic.lower(value) } -public protocol MultiQrProtocol: AnyObject { - func addPart(qr: String) throws -> BbqrJoinResult - - func getGroupedWords(qr: StringOrData, groupsOf: UInt8) throws -> [[String]]? - func handleScanResult(qr: StringOrData) throws -> MultiQrScanResult - func isBbqr() -> Bool - func isSeedQr() -> Bool - - func totalParts() -> UInt32 +public protocol MultiQrProtocol : AnyObject { + + func addPart(qr: String) throws -> BbqrJoinResult + + func getGroupedWords(qr: StringOrData, groupsOf: UInt8) throws -> [[String]]? + + func handleScanResult(qr: StringOrData) throws -> MultiQrScanResult + + func isBbqr() -> Bool + + func isSeedQr() -> Bool + + func totalParts() -> UInt32 + } open class MultiQr: - MultiQrProtocol -{ + MultiQrProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5142,7 +5654,7 @@ open class MultiQr: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5151,108 +5663,119 @@ open class MultiQr: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_multiqr(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_multiqr(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_multiqr(pointer, $0) } } - public static func newFromString(qr: String) -> MultiQr { - try! FfiConverterTypeMultiQr.lift(try! rustCall { - uniffi_cove_fn_constructor_multiqr_new_from_string( - FfiConverterString.lower(qr), $0 - ) - }) - } - - public static func tryNew(qr: StringOrData) throws -> MultiQr { - try FfiConverterTypeMultiQr.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_constructor_multiqr_try_new( - FfiConverterTypeStringOrData.lower(qr), $0 - ) - }) - } - - public static func tryNewFromData(data: Data) throws -> MultiQr { - try FfiConverterTypeMultiQr.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_constructor_multiqr_try_new_from_data( - FfiConverterData.lower(data), $0 - ) - }) - } - - open func addPart(qr: String) throws -> BbqrJoinResult { - try FfiConverterTypeBbqrJoinResult.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_multiqr_add_part(self.uniffiClonePointer(), - FfiConverterString.lower(qr), $0) - }) - } - - open func getGroupedWords(qr: StringOrData, groupsOf: UInt8) throws -> [[String]]? { - try FfiConverterOptionSequenceSequenceString.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_multiqr_get_grouped_words(self.uniffiClonePointer(), - FfiConverterTypeStringOrData.lower(qr), - FfiConverterUInt8.lower(groupsOf), $0) - }) - } - - open func handleScanResult(qr: StringOrData) throws -> MultiQrScanResult { - try FfiConverterTypeMultiQrScanResult.lift(rustCallWithError(FfiConverterTypeMultiQrError.lift) { - uniffi_cove_fn_method_multiqr_handle_scan_result(self.uniffiClonePointer(), - FfiConverterTypeStringOrData.lower(qr), $0) - }) - } - - open func isBbqr() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_multiqr_is_bbqr(self.uniffiClonePointer(), $0) - }) - } + +public static func newFromString(qr: String) -> MultiQr { + return try! FfiConverterTypeMultiQr.lift(try! rustCall() { + uniffi_cove_fn_constructor_multiqr_new_from_string( + FfiConverterString.lower(qr),$0 + ) +}) +} + +public static func tryNew(qr: StringOrData)throws -> MultiQr { + return try FfiConverterTypeMultiQr.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_constructor_multiqr_try_new( + FfiConverterTypeStringOrData.lower(qr),$0 + ) +}) +} + +public static func tryNewFromData(data: Data)throws -> MultiQr { + return try FfiConverterTypeMultiQr.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_constructor_multiqr_try_new_from_data( + FfiConverterData.lower(data),$0 + ) +}) +} + - open func isSeedQr() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_multiqr_is_seed_qr(self.uniffiClonePointer(), $0) - }) - } + +open func addPart(qr: String)throws -> BbqrJoinResult { + return try FfiConverterTypeBbqrJoinResult.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_multiqr_add_part(self.uniffiClonePointer(), + FfiConverterString.lower(qr),$0 + ) +}) +} + +open func getGroupedWords(qr: StringOrData, groupsOf: UInt8)throws -> [[String]]? { + return try FfiConverterOptionSequenceSequenceString.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_multiqr_get_grouped_words(self.uniffiClonePointer(), + FfiConverterTypeStringOrData.lower(qr), + FfiConverterUInt8.lower(groupsOf),$0 + ) +}) +} + +open func handleScanResult(qr: StringOrData)throws -> MultiQrScanResult { + return try FfiConverterTypeMultiQrScanResult.lift(try rustCallWithError(FfiConverterTypeMultiQrError.lift) { + uniffi_cove_fn_method_multiqr_handle_scan_result(self.uniffiClonePointer(), + FfiConverterTypeStringOrData.lower(qr),$0 + ) +}) +} + +open func isBbqr() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_multiqr_is_bbqr(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isSeedQr() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_multiqr_is_seed_qr(self.uniffiClonePointer(),$0 + ) +}) +} + +open func totalParts() -> UInt32 { + return try! FfiConverterUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_multiqr_total_parts(self.uniffiClonePointer(),$0 + ) +}) +} + - open func totalParts() -> UInt32 { - try! FfiConverterUInt32.lift(try! rustCall { - uniffi_cove_fn_method_multiqr_total_parts(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiQr: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = MultiQr public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> MultiQr { - MultiQr(unsafeFromRawPointer: pointer) + return MultiQr(unsafeFromRawPointer: pointer) } public static func lower(_ value: MultiQr) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiQr { @@ -5260,7 +5783,7 @@ public struct FfiConverterTypeMultiQr: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5273,35 +5796,42 @@ public struct FfiConverterTypeMultiQr: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiQr_lift(_ pointer: UnsafeMutableRawPointer) throws -> MultiQr { - try FfiConverterTypeMultiQr.lift(pointer) + return try FfiConverterTypeMultiQr.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiQr_lower(_ value: MultiQr) -> UnsafeMutableRawPointer { - FfiConverterTypeMultiQr.lower(value) + return FfiConverterTypeMultiQr.lower(value) } -public protocol NdefRecordReaderProtocol: AnyObject { - func id() -> String? - func type() -> String? + + +public protocol NdefRecordReaderProtocol : AnyObject { + + func id() -> String? + + func type() -> String? + } open class NdefRecordReader: - NdefRecordReaderProtocol -{ + NdefRecordReaderProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5309,7 +5839,7 @@ open class NdefRecordReader: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5318,64 +5848,71 @@ open class NdefRecordReader: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_ndefrecordreader(self.pointer, $0) } - } - - public convenience init(record: NdefRecord) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_ndefrecordreader_new( - FfiConverterTypeNdefRecord.lower(record), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_ndefrecordreader(self.pointer, $0) } } +public convenience init(record: NdefRecord) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_ndefrecordreader_new( + FfiConverterTypeNdefRecord.lower(record),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_ndefrecordreader(pointer, $0) } } - open func id() -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_ndefrecordreader_id(self.uniffiClonePointer(), $0) - }) - } + + + +open func id() -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_ndefrecordreader_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func type() -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_ndefrecordreader_type_(self.uniffiClonePointer(),$0 + ) +}) +} + - open func type() -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_ndefrecordreader_type_(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefRecordReader: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = NdefRecordReader public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> NdefRecordReader { - NdefRecordReader(unsafeFromRawPointer: pointer) + return NdefRecordReader(unsafeFromRawPointer: pointer) } public static func lower(_ value: NdefRecordReader) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefRecordReader { @@ -5383,7 +5920,7 @@ public struct FfiConverterTypeNdefRecordReader: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5396,37 +5933,44 @@ public struct FfiConverterTypeNdefRecordReader: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecordReader_lift(_ pointer: UnsafeMutableRawPointer) throws -> NdefRecordReader { - try FfiConverterTypeNdefRecordReader.lift(pointer) + return try FfiConverterTypeNdefRecordReader.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecordReader_lower(_ value: NdefRecordReader) -> UnsafeMutableRawPointer { - FfiConverterTypeNdefRecordReader.lower(value) + return FfiConverterTypeNdefRecordReader.lower(value) } -public protocol NfcConstProtocol: AnyObject { - func bytesPerBlock() -> UInt16 - func numberOfBlocksPerChunk() -> UInt16 - func totalBytesPerChunk() -> UInt16 + +public protocol NfcConstProtocol : AnyObject { + + func bytesPerBlock() -> UInt16 + + func numberOfBlocksPerChunk() -> UInt16 + + func totalBytesPerChunk() -> UInt16 + } open class NfcConst: - NfcConstProtocol -{ + NfcConstProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5434,7 +5978,7 @@ open class NfcConst: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5443,69 +5987,77 @@ open class NfcConst: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_nfcconst(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_nfcconst_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_nfcconst(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_nfcconst_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_nfcconst(pointer, $0) } } - open func bytesPerBlock() -> UInt16 { - try! FfiConverterUInt16.lift(try! rustCall { - uniffi_cove_fn_method_nfcconst_bytes_per_block(self.uniffiClonePointer(), $0) - }) - } + - open func numberOfBlocksPerChunk() -> UInt16 { - try! FfiConverterUInt16.lift(try! rustCall { - uniffi_cove_fn_method_nfcconst_number_of_blocks_per_chunk(self.uniffiClonePointer(), $0) - }) - } + +open func bytesPerBlock() -> UInt16 { + return try! FfiConverterUInt16.lift(try! rustCall() { + uniffi_cove_fn_method_nfcconst_bytes_per_block(self.uniffiClonePointer(),$0 + ) +}) +} + +open func numberOfBlocksPerChunk() -> UInt16 { + return try! FfiConverterUInt16.lift(try! rustCall() { + uniffi_cove_fn_method_nfcconst_number_of_blocks_per_chunk(self.uniffiClonePointer(),$0 + ) +}) +} + +open func totalBytesPerChunk() -> UInt16 { + return try! FfiConverterUInt16.lift(try! rustCall() { + uniffi_cove_fn_method_nfcconst_total_bytes_per_chunk(self.uniffiClonePointer(),$0 + ) +}) +} + - open func totalBytesPerChunk() -> UInt16 { - try! FfiConverterUInt16.lift(try! rustCall { - uniffi_cove_fn_method_nfcconst_total_bytes_per_chunk(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNfcConst: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = NfcConst public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> NfcConst { - NfcConst(unsafeFromRawPointer: pointer) + return NfcConst(unsafeFromRawPointer: pointer) } public static func lower(_ value: NfcConst) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NfcConst { @@ -5513,7 +6065,7 @@ public struct FfiConverterTypeNfcConst: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5526,49 +6078,56 @@ public struct FfiConverterTypeNfcConst: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNfcConst_lift(_ pointer: UnsafeMutableRawPointer) throws -> NfcConst { - try FfiConverterTypeNfcConst.lift(pointer) + return try FfiConverterTypeNfcConst.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNfcConst_lower(_ value: NfcConst) -> UnsafeMutableRawPointer { - FfiConverterTypeNfcConst.lower(value) + return FfiConverterTypeNfcConst.lower(value) } -public protocol NodeSelectorProtocol: AnyObject { - /** - * Check the node url and set it as selected node if it is valid - */ - func checkAndSaveNode(node: Node) async throws - func checkSelectedNode(node: Node) async throws - func nodeList() -> [NodeSelection] +public protocol NodeSelectorProtocol : AnyObject { + + /** + * Check the node url and set it as selected node if it is valid + */ + func checkAndSaveNode(node: Node) async throws + + func checkSelectedNode(node: Node) async throws + + func nodeList() -> [NodeSelection] + /** * Use the url and name of the custom node to set it as the selected node */ - func parseCustomNode(url: String, name: String, enteredName: String) throws -> Node - - func selectPresetNode(name: String) throws -> Node - - func selectedNode() -> NodeSelection + func parseCustomNode(url: String, name: String, enteredName: String) throws -> Node + + func selectPresetNode(name: String) throws -> Node + + func selectedNode() -> NodeSelection + } open class NodeSelector: - NodeSelectorProtocol -{ + NodeSelectorProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5576,7 +6135,7 @@ open class NodeSelector: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5585,42 +6144,45 @@ open class NodeSelector: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_nodeselector(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_nodeselector_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_nodeselector(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_nodeselector_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_nodeselector(pointer, $0) } } + + + /** * Check the node url and set it as selected node if it is valid */ - open func checkAndSaveNode(node: Node) async throws { - try await uniffiRustCallAsync( +open func checkAndSaveNode(node: Node)async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_nodeselector_check_and_save_node( self.uniffiClonePointer(), @@ -5633,10 +6195,11 @@ open class NodeSelector: liftFunc: { $0 }, errorHandler: FfiConverterTypeNodeSelectorError.lift ) - } - - open func checkSelectedNode(node: Node) async throws { - try await uniffiRustCallAsync( +} + +open func checkSelectedNode(node: Node)async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_nodeselector_check_selected_node( self.uniffiClonePointer(), @@ -5649,53 +6212,60 @@ open class NodeSelector: liftFunc: { $0 }, errorHandler: FfiConverterTypeNodeSelectorError.lift ) - } - - open func nodeList() -> [NodeSelection] { - try! FfiConverterSequenceTypeNodeSelection.lift(try! rustCall { - uniffi_cove_fn_method_nodeselector_node_list(self.uniffiClonePointer(), $0) - }) - } - +} + +open func nodeList() -> [NodeSelection] { + return try! FfiConverterSequenceTypeNodeSelection.lift(try! rustCall() { + uniffi_cove_fn_method_nodeselector_node_list(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Use the url and name of the custom node to set it as the selected node */ - open func parseCustomNode(url: String, name: String, enteredName: String) throws -> Node { - try FfiConverterTypeNode.lift(rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { - uniffi_cove_fn_method_nodeselector_parse_custom_node(self.uniffiClonePointer(), - FfiConverterString.lower(url), - FfiConverterString.lower(name), - FfiConverterString.lower(enteredName), $0) - }) - } - - open func selectPresetNode(name: String) throws -> Node { - try FfiConverterTypeNode.lift(rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { - uniffi_cove_fn_method_nodeselector_select_preset_node(self.uniffiClonePointer(), - FfiConverterString.lower(name), $0) - }) - } +open func parseCustomNode(url: String, name: String, enteredName: String)throws -> Node { + return try FfiConverterTypeNode.lift(try rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { + uniffi_cove_fn_method_nodeselector_parse_custom_node(self.uniffiClonePointer(), + FfiConverterString.lower(url), + FfiConverterString.lower(name), + FfiConverterString.lower(enteredName),$0 + ) +}) +} + +open func selectPresetNode(name: String)throws -> Node { + return try FfiConverterTypeNode.lift(try rustCallWithError(FfiConverterTypeNodeSelectorError.lift) { + uniffi_cove_fn_method_nodeselector_select_preset_node(self.uniffiClonePointer(), + FfiConverterString.lower(name),$0 + ) +}) +} + +open func selectedNode() -> NodeSelection { + return try! FfiConverterTypeNodeSelection.lift(try! rustCall() { + uniffi_cove_fn_method_nodeselector_selected_node(self.uniffiClonePointer(),$0 + ) +}) +} + - open func selectedNode() -> NodeSelection { - try! FfiConverterTypeNodeSelection.lift(try! rustCall { - uniffi_cove_fn_method_nodeselector_selected_node(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNodeSelector: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = NodeSelector public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> NodeSelector { - NodeSelector(unsafeFromRawPointer: pointer) + return NodeSelector(unsafeFromRawPointer: pointer) } public static func lower(_ value: NodeSelector) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NodeSelector { @@ -5703,7 +6273,7 @@ public struct FfiConverterTypeNodeSelector: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5716,31 +6286,38 @@ public struct FfiConverterTypeNodeSelector: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelector_lift(_ pointer: UnsafeMutableRawPointer) throws -> NodeSelector { - try FfiConverterTypeNodeSelector.lift(pointer) + return try FfiConverterTypeNodeSelector.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelector_lower(_ value: NodeSelector) -> UnsafeMutableRawPointer { - FfiConverterTypeNodeSelector.lower(value) + return FfiConverterTypeNodeSelector.lower(value) } -public protocol OutPointProtocol: AnyObject {} + + + +public protocol OutPointProtocol : AnyObject { + +} open class OutPoint: - OutPointProtocol -{ + OutPointProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5748,7 +6325,7 @@ open class OutPoint: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5757,44 +6334,49 @@ open class OutPoint: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_outpoint(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_outpoint(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_outpoint(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeOutPoint: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = OutPoint public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> OutPoint { - OutPoint(unsafeFromRawPointer: pointer) + return OutPoint(unsafeFromRawPointer: pointer) } public static func lower(_ value: OutPoint) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> OutPoint { @@ -5802,7 +6384,7 @@ public struct FfiConverterTypeOutPoint: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5815,31 +6397,38 @@ public struct FfiConverterTypeOutPoint: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeOutPoint_lift(_ pointer: UnsafeMutableRawPointer) throws -> OutPoint { - try FfiConverterTypeOutPoint.lift(pointer) + return try FfiConverterTypeOutPoint.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeOutPoint_lower(_ value: OutPoint) -> UnsafeMutableRawPointer { - FfiConverterTypeOutPoint.lower(value) + return FfiConverterTypeOutPoint.lower(value) } -public protocol PendingWalletProtocol: AnyObject {} + + + +public protocol PendingWalletProtocol : AnyObject { + +} open class PendingWallet: - PendingWalletProtocol -{ + PendingWalletProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5847,7 +6436,7 @@ open class PendingWallet: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5856,44 +6445,49 @@ open class PendingWallet: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_pendingwallet(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_pendingwallet(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_pendingwallet(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWallet: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = PendingWallet public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> PendingWallet { - PendingWallet(unsafeFromRawPointer: pointer) + return PendingWallet(unsafeFromRawPointer: pointer) } public static func lower(_ value: PendingWallet) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWallet { @@ -5901,7 +6495,7 @@ public struct FfiConverterTypePendingWallet: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -5914,46 +6508,53 @@ public struct FfiConverterTypePendingWallet: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWallet_lift(_ pointer: UnsafeMutableRawPointer) throws -> PendingWallet { - try FfiConverterTypePendingWallet.lift(pointer) + return try FfiConverterTypePendingWallet.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWallet_lower(_ value: PendingWallet) -> UnsafeMutableRawPointer { - FfiConverterTypePendingWallet.lower(value) + return FfiConverterTypePendingWallet.lower(value) } -public protocol PsbtProtocol: AnyObject { + + + +public protocol PsbtProtocol : AnyObject { + /** * Total fee in sats. */ - func fee() throws -> Amount - + func fee() throws -> Amount + /** * Get the transaction id of the unsigned transaction */ - func txId() -> TxId - + func txId() -> TxId + /** * The virtual size of the transaction. */ - func weight() -> UInt64 + func weight() -> UInt64 + } open class Psbt: - PsbtProtocol -{ + PsbtProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -5961,7 +6562,7 @@ open class Psbt: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -5970,79 +6571,87 @@ open class Psbt: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_psbt(self.pointer, $0) } - } - - public convenience init(data: Data) throws { - let pointer = - try rustCallWithError(FfiConverterTypePsbtError.lift) { - uniffi_cove_fn_constructor_psbt_new( - FfiConverterData.lower(data), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_psbt(self.pointer, $0) } } +public convenience init(data: Data)throws { + let pointer = + try rustCallWithError(FfiConverterTypePsbtError.lift) { + uniffi_cove_fn_constructor_psbt_new( + FfiConverterData.lower(data),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_psbt(pointer, $0) } } + + + /** * Total fee in sats. */ - open func fee() throws -> Amount { - try FfiConverterTypeAmount.lift(rustCallWithError(FfiConverterTypePsbtError.lift) { - uniffi_cove_fn_method_psbt_fee(self.uniffiClonePointer(), $0) - }) - } - +open func fee()throws -> Amount { + return try FfiConverterTypeAmount.lift(try rustCallWithError(FfiConverterTypePsbtError.lift) { + uniffi_cove_fn_method_psbt_fee(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Get the transaction id of the unsigned transaction */ - open func txId() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_psbt_tx_id(self.uniffiClonePointer(), $0) - }) - } - +open func txId() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_psbt_tx_id(self.uniffiClonePointer(),$0 + ) +}) +} + /** * The virtual size of the transaction. */ - open func weight() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_psbt_weight(self.uniffiClonePointer(), $0) - }) - } +open func weight() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_psbt_weight(self.uniffiClonePointer(),$0 + ) +}) +} + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePsbt: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Psbt public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Psbt { - Psbt(unsafeFromRawPointer: pointer) + return Psbt(unsafeFromRawPointer: pointer) } public static func lower(_ value: Psbt) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Psbt { @@ -6050,7 +6659,7 @@ public struct FfiConverterTypePsbt: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6063,59 +6672,66 @@ public struct FfiConverterTypePsbt: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePsbt_lift(_ pointer: UnsafeMutableRawPointer) throws -> Psbt { - try FfiConverterTypePsbt.lift(pointer) + return try FfiConverterTypePsbt.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePsbt_lower(_ value: Psbt) -> UnsafeMutableRawPointer { - FfiConverterTypePsbt.lower(value) -} - -public protocol RouteFactoryProtocol: AnyObject { - func coldWalletImport(route: ColdWalletRoute) -> Route - - func hotWallet(route: HotWalletRoute) -> Route - - func hotWalletImportFromScan() -> Route - - func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool - - func loadAndResetTo(resetTo: Route) -> Route - - func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route - - func newHotWallet() -> Route - - func newWalletSelect() -> Route - - func qrImport() -> Route - - func secretWords(walletId: WalletId) -> Route - - func send(send: SendRoute) -> Route - - func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route - - func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route - - func sendSetAmount(id: WalletId, address: Address?, amount: Amount?) -> Route + return FfiConverterTypePsbt.lower(value) +} + + + + +public protocol RouteFactoryProtocol : AnyObject { + + func coldWalletImport(route: ColdWalletRoute) -> Route + + func hotWallet(route: HotWalletRoute) -> Route + + func hotWalletImportFromScan() -> Route + + func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool + + func loadAndResetTo(resetTo: Route) -> Route + + func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route + + func newHotWallet() -> Route + + func newWalletSelect() -> Route + + func qrImport() -> Route + + func secretWords(walletId: WalletId) -> Route + + func send(send: SendRoute) -> Route + + func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route + + func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route + + func sendSetAmount(id: WalletId, address: Address?, amount: Amount?) -> Route + } open class RouteFactory: - RouteFactoryProtocol -{ + RouteFactoryProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -6123,7 +6739,7 @@ open class RouteFactory: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6132,151 +6748,170 @@ open class RouteFactory: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_routefactory(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_routefactory_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_routefactory(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_routefactory_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_routefactory(pointer, $0) } } - open func coldWalletImport(route: ColdWalletRoute) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_cold_wallet_import(self.uniffiClonePointer(), - FfiConverterTypeColdWalletRoute.lower(route), $0) - }) - } - - open func hotWallet(route: HotWalletRoute) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_hot_wallet(self.uniffiClonePointer(), - FfiConverterTypeHotWalletRoute.lower(route), $0) - }) - } - - open func hotWalletImportFromScan() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_hot_wallet_import_from_scan(self.uniffiClonePointer(), $0) - }) - } - - open func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_is_same_parent_route(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(route), - FfiConverterTypeRoute.lower(routeToCheck), $0) - }) - } + - open func loadAndResetTo(resetTo: Route) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_load_and_reset_to(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(resetTo), $0) - }) - } - - open func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_load_and_reset_to_after(self.uniffiClonePointer(), - FfiConverterTypeRoute.lower(resetTo), - FfiConverterUInt32.lower(time), $0) - }) - } - - open func newHotWallet() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_new_hot_wallet(self.uniffiClonePointer(), $0) - }) - } - - open func newWalletSelect() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_new_wallet_select(self.uniffiClonePointer(), $0) - }) - } - - open func qrImport() -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_qr_import(self.uniffiClonePointer(), $0) - }) - } - - open func secretWords(walletId: WalletId) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_secret_words(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(walletId), $0) - }) - } - - open func send(send: SendRoute) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_send(self.uniffiClonePointer(), - FfiConverterTypeSendRoute.lower(send), $0) - }) - } - - open func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_send_confirm(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), - FfiConverterTypeConfirmDetails.lower(details), $0) - }) - } - - open func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_send_hardware_export(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), - FfiConverterTypeConfirmDetails.lower(details), $0) - }) - } + +open func coldWalletImport(route: ColdWalletRoute) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_cold_wallet_import(self.uniffiClonePointer(), + FfiConverterTypeColdWalletRoute.lower(route),$0 + ) +}) +} + +open func hotWallet(route: HotWalletRoute) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_hot_wallet(self.uniffiClonePointer(), + FfiConverterTypeHotWalletRoute.lower(route),$0 + ) +}) +} + +open func hotWalletImportFromScan() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_hot_wallet_import_from_scan(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isSameParentRoute(route: Route, routeToCheck: Route) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_is_same_parent_route(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(route), + FfiConverterTypeRoute.lower(routeToCheck),$0 + ) +}) +} + +open func loadAndResetTo(resetTo: Route) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_load_and_reset_to(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(resetTo),$0 + ) +}) +} + +open func loadAndResetToAfter(resetTo: Route, time: UInt32) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_load_and_reset_to_after(self.uniffiClonePointer(), + FfiConverterTypeRoute.lower(resetTo), + FfiConverterUInt32.lower(time),$0 + ) +}) +} + +open func newHotWallet() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_new_hot_wallet(self.uniffiClonePointer(),$0 + ) +}) +} + +open func newWalletSelect() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_new_wallet_select(self.uniffiClonePointer(),$0 + ) +}) +} + +open func qrImport() -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_qr_import(self.uniffiClonePointer(),$0 + ) +}) +} + +open func secretWords(walletId: WalletId) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_secret_words(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(walletId),$0 + ) +}) +} + +open func send(send: SendRoute) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_send(self.uniffiClonePointer(), + FfiConverterTypeSendRoute.lower(send),$0 + ) +}) +} + +open func sendConfirm(id: WalletId, details: ConfirmDetails) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_send_confirm(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), + FfiConverterTypeConfirmDetails.lower(details),$0 + ) +}) +} + +open func sendHardwareExport(id: WalletId, details: ConfirmDetails) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_send_hardware_export(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), + FfiConverterTypeConfirmDetails.lower(details),$0 + ) +}) +} + +open func sendSetAmount(id: WalletId, address: Address? = nil, amount: Amount? = nil) -> Route { + return try! FfiConverterTypeRoute.lift(try! rustCall() { + uniffi_cove_fn_method_routefactory_send_set_amount(self.uniffiClonePointer(), + FfiConverterTypeWalletId.lower(id), + FfiConverterOptionTypeAddress.lower(address), + FfiConverterOptionTypeAmount.lower(amount),$0 + ) +}) +} + - open func sendSetAmount(id: WalletId, address: Address? = nil, amount: Amount? = nil) -> Route { - try! FfiConverterTypeRoute.lift(try! rustCall { - uniffi_cove_fn_method_routefactory_send_set_amount(self.uniffiClonePointer(), - FfiConverterTypeWalletId.lower(id), - FfiConverterOptionTypeAddress.lower(address), - FfiConverterOptionTypeAmount.lower(amount), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRouteFactory: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RouteFactory public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RouteFactory { - RouteFactory(unsafeFromRawPointer: pointer) + return RouteFactory(unsafeFromRawPointer: pointer) } public static func lower(_ value: RouteFactory) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RouteFactory { @@ -6284,7 +6919,7 @@ public struct FfiConverterTypeRouteFactory: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6297,43 +6932,50 @@ public struct FfiConverterTypeRouteFactory: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRouteFactory_lift(_ pointer: UnsafeMutableRawPointer) throws -> RouteFactory { - try FfiConverterTypeRouteFactory.lift(pointer) + return try FfiConverterTypeRouteFactory.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRouteFactory_lower(_ value: RouteFactory) -> UnsafeMutableRawPointer { - FfiConverterTypeRouteFactory.lower(value) + return FfiConverterTypeRouteFactory.lower(value) } -public protocol RustImportWalletViewModelProtocol: AnyObject { + + + +public protocol RustImportWalletViewModelProtocol : AnyObject { + /** * Action from the frontend to change the state of the view model */ - func dispatch(action: ImportWalletViewModelAction) - + func dispatch(action: ImportWalletViewModelAction) + /** * Import wallet view from entered words */ - func importWallet(enteredWords: [[String]]) throws -> WalletMetadata - - func listenForUpdates(reconciler: ImportWalletViewModelReconciler) + func importWallet(enteredWords: [[String]]) throws -> WalletMetadata + + func listenForUpdates(reconciler: ImportWalletViewModelReconciler) + } open class RustImportWalletViewModel: - RustImportWalletViewModelProtocol -{ + RustImportWalletViewModelProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -6341,7 +6983,7 @@ open class RustImportWalletViewModel: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6350,76 +6992,84 @@ open class RustImportWalletViewModel: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_rustimportwalletviewmodel(self.pointer, $0) } - } - - public convenience init() { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_rustimportwalletviewmodel_new($0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_rustimportwalletviewmodel(self.pointer, $0) } } +public convenience init() { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_rustimportwalletviewmodel_new($0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_rustimportwalletviewmodel(pointer, $0) } } + + + /** * Action from the frontend to change the state of the view model */ - open func dispatch(action: ImportWalletViewModelAction) { try! rustCall { - uniffi_cove_fn_method_rustimportwalletviewmodel_dispatch(self.uniffiClonePointer(), - FfiConverterTypeImportWalletViewModelAction.lower(action), $0) - } - } - +open func dispatch(action: ImportWalletViewModelAction) {try! rustCall() { + uniffi_cove_fn_method_rustimportwalletviewmodel_dispatch(self.uniffiClonePointer(), + FfiConverterTypeImportWalletViewModelAction.lower(action),$0 + ) +} +} + /** * Import wallet view from entered words */ - open func importWallet(enteredWords: [[String]]) throws -> WalletMetadata { - try FfiConverterTypeWalletMetadata.lift(rustCallWithError(FfiConverterTypeImportWalletError.lift) { - uniffi_cove_fn_method_rustimportwalletviewmodel_import_wallet(self.uniffiClonePointer(), - FfiConverterSequenceSequenceString.lower(enteredWords), $0) - }) - } +open func importWallet(enteredWords: [[String]])throws -> WalletMetadata { + return try FfiConverterTypeWalletMetadata.lift(try rustCallWithError(FfiConverterTypeImportWalletError.lift) { + uniffi_cove_fn_method_rustimportwalletviewmodel_import_wallet(self.uniffiClonePointer(), + FfiConverterSequenceSequenceString.lower(enteredWords),$0 + ) +}) +} + +open func listenForUpdates(reconciler: ImportWalletViewModelReconciler) {try! rustCall() { + uniffi_cove_fn_method_rustimportwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfaceImportWalletViewModelReconciler.lower(reconciler),$0 + ) +} +} + - open func listenForUpdates(reconciler: ImportWalletViewModelReconciler) { try! rustCall { - uniffi_cove_fn_method_rustimportwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfaceImportWalletViewModelReconciler.lower(reconciler), $0) - } - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRustImportWalletViewModel: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RustImportWalletViewModel public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RustImportWalletViewModel { - RustImportWalletViewModel(unsafeFromRawPointer: pointer) + return RustImportWalletViewModel(unsafeFromRawPointer: pointer) } public static func lower(_ value: RustImportWalletViewModel) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RustImportWalletViewModel { @@ -6427,7 +7077,7 @@ public struct FfiConverterTypeRustImportWalletViewModel: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6440,50 +7090,57 @@ public struct FfiConverterTypeRustImportWalletViewModel: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustImportWalletViewModel_lift(_ pointer: UnsafeMutableRawPointer) throws -> RustImportWalletViewModel { - try FfiConverterTypeRustImportWalletViewModel.lift(pointer) + return try FfiConverterTypeRustImportWalletViewModel.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustImportWalletViewModel_lower(_ value: RustImportWalletViewModel) -> UnsafeMutableRawPointer { - FfiConverterTypeRustImportWalletViewModel.lower(value) + return FfiConverterTypeRustImportWalletViewModel.lower(value) } -public protocol RustPendingWalletViewModelProtocol: AnyObject { - func bip39Words() -> [String] - func bip39WordsGrouped() -> [[GroupedWord]] - func cardIndexes() -> UInt8 +public protocol RustPendingWalletViewModelProtocol : AnyObject { + + func bip39Words() -> [String] + + func bip39WordsGrouped() -> [[GroupedWord]] + + func cardIndexes() -> UInt8 + /** * Action from the frontend to change the state of the view model */ - func dispatch(action: PendingWalletViewModelAction) - - func getState() -> PendingWalletViewModelState - - func listenForUpdates(reconciler: PendingWalletViewModelReconciler) - - func numberOfWordsCount() -> UInt8 - - func saveWallet() throws -> WalletMetadata + func dispatch(action: PendingWalletViewModelAction) + + func getState() -> PendingWalletViewModelState + + func listenForUpdates(reconciler: PendingWalletViewModelReconciler) + + func numberOfWordsCount() -> UInt8 + + func saveWallet() throws -> WalletMetadata + } open class RustPendingWalletViewModel: - RustPendingWalletViewModelProtocol -{ + RustPendingWalletViewModelProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -6491,7 +7148,7 @@ open class RustPendingWalletViewModel: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6500,103 +7157,116 @@ open class RustPendingWalletViewModel: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_rustpendingwalletviewmodel(self.pointer, $0) } - } - - public convenience init(numberOfWords: NumberOfBip39Words) { - let pointer = - try! rustCall { - uniffi_cove_fn_constructor_rustpendingwalletviewmodel_new( - FfiConverterTypeNumberOfBip39Words.lower(numberOfWords), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_rustpendingwalletviewmodel(self.pointer, $0) } } +public convenience init(numberOfWords: NumberOfBip39Words) { + let pointer = + try! rustCall() { + uniffi_cove_fn_constructor_rustpendingwalletviewmodel_new( + FfiConverterTypeNumberOfBip39Words.lower(numberOfWords),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_rustpendingwalletviewmodel(pointer, $0) } } - open func bip39Words() -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words(self.uniffiClonePointer(), $0) - }) - } - - open func bip39WordsGrouped() -> [[GroupedWord]] { - try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words_grouped(self.uniffiClonePointer(), $0) - }) - } - - open func cardIndexes() -> UInt8 { - try! FfiConverterUInt8.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_card_indexes(self.uniffiClonePointer(), $0) - }) - } + + +open func bip39Words() -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words(self.uniffiClonePointer(),$0 + ) +}) +} + +open func bip39WordsGrouped() -> [[GroupedWord]] { + return try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_bip_39_words_grouped(self.uniffiClonePointer(),$0 + ) +}) +} + +open func cardIndexes() -> UInt8 { + return try! FfiConverterUInt8.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_card_indexes(self.uniffiClonePointer(),$0 + ) +}) +} + /** * Action from the frontend to change the state of the view model */ - open func dispatch(action: PendingWalletViewModelAction) { try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_dispatch(self.uniffiClonePointer(), - FfiConverterTypePendingWalletViewModelAction.lower(action), $0) - } - } - - open func getState() -> PendingWalletViewModelState { - try! FfiConverterTypePendingWalletViewModelState.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_get_state(self.uniffiClonePointer(), $0) - }) - } - - open func listenForUpdates(reconciler: PendingWalletViewModelReconciler) { try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfacePendingWalletViewModelReconciler.lower(reconciler), $0) - } - } - - open func numberOfWordsCount() -> UInt8 { - try! FfiConverterUInt8.lift(try! rustCall { - uniffi_cove_fn_method_rustpendingwalletviewmodel_number_of_words_count(self.uniffiClonePointer(), $0) - }) - } +open func dispatch(action: PendingWalletViewModelAction) {try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_dispatch(self.uniffiClonePointer(), + FfiConverterTypePendingWalletViewModelAction.lower(action),$0 + ) +} +} + +open func getState() -> PendingWalletViewModelState { + return try! FfiConverterTypePendingWalletViewModelState.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_get_state(self.uniffiClonePointer(),$0 + ) +}) +} + +open func listenForUpdates(reconciler: PendingWalletViewModelReconciler) {try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfacePendingWalletViewModelReconciler.lower(reconciler),$0 + ) +} +} + +open func numberOfWordsCount() -> UInt8 { + return try! FfiConverterUInt8.lift(try! rustCall() { + uniffi_cove_fn_method_rustpendingwalletviewmodel_number_of_words_count(self.uniffiClonePointer(),$0 + ) +}) +} + +open func saveWallet()throws -> WalletMetadata { + return try FfiConverterTypeWalletMetadata.lift(try rustCallWithError(FfiConverterTypePendingWalletViewModelError.lift) { + uniffi_cove_fn_method_rustpendingwalletviewmodel_save_wallet(self.uniffiClonePointer(),$0 + ) +}) +} + - open func saveWallet() throws -> WalletMetadata { - try FfiConverterTypeWalletMetadata.lift(rustCallWithError(FfiConverterTypePendingWalletViewModelError.lift) { - uniffi_cove_fn_method_rustpendingwalletviewmodel_save_wallet(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRustPendingWalletViewModel: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RustPendingWalletViewModel public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RustPendingWalletViewModel { - RustPendingWalletViewModel(unsafeFromRawPointer: pointer) + return RustPendingWalletViewModel(unsafeFromRawPointer: pointer) } public static func lower(_ value: RustPendingWalletViewModel) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RustPendingWalletViewModel { @@ -6604,7 +7274,7 @@ public struct FfiConverterTypeRustPendingWalletViewModel: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -6617,114 +7287,121 @@ public struct FfiConverterTypeRustPendingWalletViewModel: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustPendingWalletViewModel_lift(_ pointer: UnsafeMutableRawPointer) throws -> RustPendingWalletViewModel { - try FfiConverterTypeRustPendingWalletViewModel.lift(pointer) + return try FfiConverterTypeRustPendingWalletViewModel.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustPendingWalletViewModel_lower(_ value: RustPendingWalletViewModel) -> UnsafeMutableRawPointer { - FfiConverterTypeRustPendingWalletViewModel.lower(value) + return FfiConverterTypeRustPendingWalletViewModel.lower(value) } -public protocol RustWalletViewModelProtocol: AnyObject { - /** - * Get address at the given index - */ - func addressAt(index: UInt32) async throws -> AddressInfo - - func amountInFiat(amount: Amount, currency: FiatCurrency) async throws -> Double - - func balance() async -> Balance - - func balanceInFiat() async throws -> Double - - func buildTransaction(amount: Amount, address: Address) async throws -> Psbt - - func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate) async throws -> Psbt - func currentBlockHeight() async throws -> UInt32 - func deleteUnsignedTransaction(txId: TxId) throws - - func deleteWallet() throws +public protocol RustWalletViewModelProtocol : AnyObject { + + /** + * Get address at the given index + */ + func addressAt(index: UInt32) async throws -> AddressInfo + + func amountInFiat(amount: Amount, currency: FiatCurrency) async throws -> Double + + func balance() async -> Balance + + func balanceInFiat() async throws -> Double + + func buildTransaction(amount: Amount, address: Address) async throws -> Psbt + + func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate) async throws -> Psbt + + func currentBlockHeight() async throws -> UInt32 + + func deleteUnsignedTransaction(txId: TxId) throws + + func deleteWallet() throws + /** * Action from the frontend to change the state of the view model */ - func dispatch(action: WalletViewModelAction) - - func displayAmount(amount: Amount) -> String - - func displayFiatAmount(amount: Double) -> String - - func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String - - func feeRateOptions() async throws -> FeeRateOptions - - func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address) async throws -> FeeRateOptionsWithTotalFee - - func fees() -> FeeResponse? - - func fingerprint() -> String - - func forceUpdateHeight() async throws -> UInt32 - - func forceWalletScan() async throws - - func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate) async throws -> ConfirmDetails - - func getFeeOptions() async throws -> FeeRateOptions - - func getMaxSendAmount(fee: FeeRateOptionWithTotalFee) async throws -> Amount - - func getUnsignedTransactions() throws -> [UnsignedTransaction] - - func listenForUpdates(reconciler: WalletViewModelReconciler) - - func markWalletAsVerified() throws - + func dispatch(action: WalletViewModelAction) + + func displayAmount(amount: Amount) -> String + + func displayFiatAmount(amount: Double) -> String + + func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String + + func feeRateOptions() async throws -> FeeRateOptions + + func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address) async throws -> FeeRateOptionsWithTotalFee + + func fees() -> FeeResponse? + + func fingerprint() -> String + + func forceUpdateHeight() async throws -> UInt32 + + func forceWalletScan() async throws + + func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate) async throws -> ConfirmDetails + + func getFeeOptions() async throws -> FeeRateOptions + + func getMaxSendAmount(fee: FeeRateOptionWithTotalFee) async throws -> Amount + + func getUnsignedTransactions() throws -> [UnsignedTransaction] + + func listenForUpdates(reconciler: WalletViewModelReconciler) + + func markWalletAsVerified() throws + /** * Get the next address for the wallet */ - func nextAddress() async throws -> AddressInfo - - func numberOfConfirmations(blockHeight: UInt32) async throws -> UInt32 - - func numberOfConfirmationsFmt(blockHeight: UInt32) async throws -> String - - func saveUnsignedTransaction(details: ConfirmDetails) throws - - func sentAndReceivedFiat(sentAndReceived: SentAndReceived) async throws -> Double - - func setWalletMetadata(metadata: WalletMetadata) - - func startWalletScan() async throws - - func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType) async throws - - func transactionDetails(txId: TxId) async throws -> TransactionDetails - - func validateMetadata() - - func walletMetadata() -> WalletMetadata - - func wordValidator() throws -> WordValidator + func nextAddress() async throws -> AddressInfo + + func numberOfConfirmations(blockHeight: UInt32) async throws -> UInt32 + + func numberOfConfirmationsFmt(blockHeight: UInt32) async throws -> String + + func saveUnsignedTransaction(details: ConfirmDetails) throws + + func sentAndReceivedFiat(sentAndReceived: SentAndReceived) async throws -> Double + + func setWalletMetadata(metadata: WalletMetadata) + + func startWalletScan() async throws + + func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType) async throws + + func transactionDetails(txId: TxId) async throws -> TransactionDetails + + func validateMetadata() + + func walletMetadata() -> WalletMetadata + + func wordValidator() throws -> WordValidator + } open class RustWalletViewModel: - RustWalletViewModelProtocol -{ + RustWalletViewModelProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -6732,7 +7409,7 @@ open class RustWalletViewModel: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -6741,58 +7418,61 @@ open class RustWalletViewModel: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_rustwalletviewmodel(self.pointer, $0) } - } - - public convenience init(id: WalletId) throws { - let pointer = - try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_constructor_rustwalletviewmodel_new( - FfiConverterTypeWalletId.lower(id), $0 - ) - } - self.init(unsafeFromRawPointer: pointer) + return try! rustCall { uniffi_cove_fn_clone_rustwalletviewmodel(self.pointer, $0) } } +public convenience init(id: WalletId)throws { + let pointer = + try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_constructor_rustwalletviewmodel_new( + FfiConverterTypeWalletId.lower(id),$0 + ) +} + self.init(unsafeFromRawPointer: pointer) +} deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_rustwalletviewmodel(pointer, $0) } } - public static func previewNewWallet() -> RustWalletViewModel { - try! FfiConverterTypeRustWalletViewModel.lift(try! rustCall { - uniffi_cove_fn_constructor_rustwalletviewmodel_preview_new_wallet($0 - ) - }) - } - - public static func tryNewFromXpub(xpub: String) throws -> RustWalletViewModel { - try FfiConverterTypeRustWalletViewModel.lift(rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_constructor_rustwalletviewmodel_try_new_from_xpub( - FfiConverterString.lower(xpub), $0 - ) - }) - } + +public static func previewNewWallet() -> RustWalletViewModel { + return try! FfiConverterTypeRustWalletViewModel.lift(try! rustCall() { + uniffi_cove_fn_constructor_rustwalletviewmodel_preview_new_wallet($0 + ) +}) +} + +public static func tryNewFromXpub(xpub: String)throws -> RustWalletViewModel { + return try FfiConverterTypeRustWalletViewModel.lift(try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_constructor_rustwalletviewmodel_try_new_from_xpub( + FfiConverterString.lower(xpub),$0 + ) +}) +} + + /** * Get address at the given index */ - open func addressAt(index: UInt32) async throws -> AddressInfo { - try await uniffiRustCallAsync( +open func addressAt(index: UInt32)async throws -> AddressInfo { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_address_at( self.uniffiClonePointer(), @@ -6805,14 +7485,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeAddressInfo.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func amountInFiat(amount: Amount, currency: FiatCurrency) async throws -> Double { - try await uniffiRustCallAsync( +} + +open func amountInFiat(amount: Amount, currency: FiatCurrency)async throws -> Double { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_amount_in_fiat( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), FfiConverterTypeFiatCurrency.lower(currency) + FfiConverterTypeAmount.lower(amount),FfiConverterTypeFiatCurrency.lower(currency) ) }, pollFunc: ffi_cove_rust_future_poll_f64, @@ -6821,13 +7502,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func balance() async -> Balance { - try! await uniffiRustCallAsync( +} + +open func balance()async -> Balance { + return + try! await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_balance( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -6835,14 +7518,17 @@ open class RustWalletViewModel: freeFunc: ffi_cove_rust_future_free_rust_buffer, liftFunc: FfiConverterTypeBalance.lift, errorHandler: nil + ) - } - - open func balanceInFiat() async throws -> Double { - try await uniffiRustCallAsync( +} + +open func balanceInFiat()async throws -> Double { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_balance_in_fiat( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_f64, @@ -6851,14 +7537,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func buildTransaction(amount: Amount, address: Address) async throws -> Psbt { - try await uniffiRustCallAsync( +} + +open func buildTransaction(amount: Amount, address: Address)async throws -> Psbt { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_build_transaction( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address) + FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -6867,14 +7554,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypePsbt.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate) async throws -> Psbt { - try await uniffiRustCallAsync( +} + +open func buildTransactionWithFeeRate(amount: Amount, address: Address, feeRate: FeeRate)async throws -> Psbt { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_build_transaction_with_fee_rate( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address), FfiConverterTypeFeeRate.lower(feeRate) + FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address),FfiConverterTypeFeeRate.lower(feeRate) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -6883,69 +7571,79 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypePsbt.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func currentBlockHeight() async throws -> UInt32 { - try await uniffiRustCallAsync( +} + +open func currentBlockHeight()async throws -> UInt32 { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_current_block_height( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_u32, completeFunc: ffi_cove_rust_future_complete_u32, freeFunc: ffi_cove_rust_future_free_u32, liftFunc: FfiConverterUInt32.lift, - errorHandler: FfiConverterTypeWalletViewModelError.lift - ) - } - - open func deleteUnsignedTransaction(txId: TxId) throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_delete_unsigned_transaction(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(txId), $0) - } - } - - open func deleteWallet() throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_delete_wallet(self.uniffiClonePointer(), $0) - } - } - + errorHandler: FfiConverterTypeWalletViewModelError.lift + ) +} + +open func deleteUnsignedTransaction(txId: TxId)throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_delete_unsigned_transaction(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(txId),$0 + ) +} +} + +open func deleteWallet()throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_delete_wallet(self.uniffiClonePointer(),$0 + ) +} +} + /** * Action from the frontend to change the state of the view model */ - open func dispatch(action: WalletViewModelAction) { try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_dispatch(self.uniffiClonePointer(), - FfiConverterTypeWalletViewModelAction.lower(action), $0) - } - } - - open func displayAmount(amount: Amount) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_display_amount(self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), $0) - }) - } - - open func displayFiatAmount(amount: Double) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_display_fiat_amount(self.uniffiClonePointer(), - FfiConverterDouble.lower(amount), $0) - }) - } - - open func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_display_sent_and_received_amount(self.uniffiClonePointer(), - FfiConverterTypeSentAndReceived.lower(sentAndReceived), $0) - }) - } - - open func feeRateOptions() async throws -> FeeRateOptions { - try await uniffiRustCallAsync( +open func dispatch(action: WalletViewModelAction) {try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_dispatch(self.uniffiClonePointer(), + FfiConverterTypeWalletViewModelAction.lower(action),$0 + ) +} +} + +open func displayAmount(amount: Amount) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_display_amount(self.uniffiClonePointer(), + FfiConverterTypeAmount.lower(amount),$0 + ) +}) +} + +open func displayFiatAmount(amount: Double) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_display_fiat_amount(self.uniffiClonePointer(), + FfiConverterDouble.lower(amount),$0 + ) +}) +} + +open func displaySentAndReceivedAmount(sentAndReceived: SentAndReceived) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_display_sent_and_received_amount(self.uniffiClonePointer(), + FfiConverterTypeSentAndReceived.lower(sentAndReceived),$0 + ) +}) +} + +open func feeRateOptions()async throws -> FeeRateOptions { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_fee_rate_options( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -6954,14 +7652,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeFeeRateOptions.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address) async throws -> FeeRateOptionsWithTotalFee { - try await uniffiRustCallAsync( +} + +open func feeRateOptionsWithTotalFee(feeRateOptions: FeeRateOptions?, amount: Amount, address: Address)async throws -> FeeRateOptionsWithTotalFee { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_fee_rate_options_with_total_fee( self.uniffiClonePointer(), - FfiConverterOptionTypeFeeRateOptions.lower(feeRateOptions), FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address) + FfiConverterOptionTypeFeeRateOptions.lower(feeRateOptions),FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -6970,25 +7669,29 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeFeeRateOptionsWithTotalFee.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func fees() -> FeeResponse? { - try! FfiConverterOptionTypeFeeResponse.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_fees(self.uniffiClonePointer(), $0) - }) - } - - open func fingerprint() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_fingerprint(self.uniffiClonePointer(), $0) - }) - } - - open func forceUpdateHeight() async throws -> UInt32 { - try await uniffiRustCallAsync( +} + +open func fees() -> FeeResponse? { + return try! FfiConverterOptionTypeFeeResponse.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_fees(self.uniffiClonePointer(),$0 + ) +}) +} + +open func fingerprint() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_fingerprint(self.uniffiClonePointer(),$0 + ) +}) +} + +open func forceUpdateHeight()async throws -> UInt32 { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_force_update_height( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_u32, @@ -6997,13 +7700,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterUInt32.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func forceWalletScan() async throws { - try await uniffiRustCallAsync( +} + +open func forceWalletScan()async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_force_wallet_scan( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_void, @@ -7012,14 +7717,15 @@ open class RustWalletViewModel: liftFunc: { $0 }, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate) async throws -> ConfirmDetails { - try await uniffiRustCallAsync( +} + +open func getConfirmDetails(amount: Amount, address: Address, feeRate: FeeRate)async throws -> ConfirmDetails { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_get_confirm_details( self.uniffiClonePointer(), - FfiConverterTypeAmount.lower(amount), FfiConverterTypeAddress.lower(address), FfiConverterTypeFeeRate.lower(feeRate) + FfiConverterTypeAmount.lower(amount),FfiConverterTypeAddress.lower(address),FfiConverterTypeFeeRate.lower(feeRate) ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7028,13 +7734,15 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeConfirmDetails.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func getFeeOptions() async throws -> FeeRateOptions { - try await uniffiRustCallAsync( +} + +open func getFeeOptions()async throws -> FeeRateOptions { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_get_fee_options( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7043,10 +7751,11 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeFeeRateOptions.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func getMaxSendAmount(fee: FeeRateOptionWithTotalFee) async throws -> Amount { - try await uniffiRustCallAsync( +} + +open func getMaxSendAmount(fee: FeeRateOptionWithTotalFee)async throws -> Amount { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_get_max_send_amount( self.uniffiClonePointer(), @@ -7059,33 +7768,38 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeAmount.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func getUnsignedTransactions() throws -> [UnsignedTransaction] { - try FfiConverterSequenceTypeUnsignedTransaction.lift(rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_get_unsigned_transactions(self.uniffiClonePointer(), $0) - }) - } - - open func listenForUpdates(reconciler: WalletViewModelReconciler) { try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), - FfiConverterCallbackInterfaceWalletViewModelReconciler.lower(reconciler), $0) - } - } - - open func markWalletAsVerified() throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_mark_wallet_as_verified(self.uniffiClonePointer(), $0) - } - } - +} + +open func getUnsignedTransactions()throws -> [UnsignedTransaction] { + return try FfiConverterSequenceTypeUnsignedTransaction.lift(try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_get_unsigned_transactions(self.uniffiClonePointer(),$0 + ) +}) +} + +open func listenForUpdates(reconciler: WalletViewModelReconciler) {try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_listen_for_updates(self.uniffiClonePointer(), + FfiConverterCallbackInterfaceWalletViewModelReconciler.lower(reconciler),$0 + ) +} +} + +open func markWalletAsVerified()throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_mark_wallet_as_verified(self.uniffiClonePointer(),$0 + ) +} +} + /** * Get the next address for the wallet */ - open func nextAddress() async throws -> AddressInfo { - try await uniffiRustCallAsync( +open func nextAddress()async throws -> AddressInfo { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_next_address( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_pointer, @@ -7094,10 +7808,11 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeAddressInfo.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func numberOfConfirmations(blockHeight: UInt32) async throws -> UInt32 { - try await uniffiRustCallAsync( +} + +open func numberOfConfirmations(blockHeight: UInt32)async throws -> UInt32 { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_number_of_confirmations( self.uniffiClonePointer(), @@ -7110,10 +7825,11 @@ open class RustWalletViewModel: liftFunc: FfiConverterUInt32.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func numberOfConfirmationsFmt(blockHeight: UInt32) async throws -> String { - try await uniffiRustCallAsync( +} + +open func numberOfConfirmationsFmt(blockHeight: UInt32)async throws -> String { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_number_of_confirmations_fmt( self.uniffiClonePointer(), @@ -7126,16 +7842,18 @@ open class RustWalletViewModel: liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func saveUnsignedTransaction(details: ConfirmDetails) throws { try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_save_unsigned_transaction(self.uniffiClonePointer(), - FfiConverterTypeConfirmDetails.lower(details), $0) - } - } - - open func sentAndReceivedFiat(sentAndReceived: SentAndReceived) async throws -> Double { - try await uniffiRustCallAsync( +} + +open func saveUnsignedTransaction(details: ConfirmDetails)throws {try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_save_unsigned_transaction(self.uniffiClonePointer(), + FfiConverterTypeConfirmDetails.lower(details),$0 + ) +} +} + +open func sentAndReceivedFiat(sentAndReceived: SentAndReceived)async throws -> Double { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_sent_and_received_fiat( self.uniffiClonePointer(), @@ -7148,19 +7866,22 @@ open class RustWalletViewModel: liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func setWalletMetadata(metadata: WalletMetadata) { try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_set_wallet_metadata(self.uniffiClonePointer(), - FfiConverterTypeWalletMetadata.lower(metadata), $0) - } - } - - open func startWalletScan() async throws { - try await uniffiRustCallAsync( +} + +open func setWalletMetadata(metadata: WalletMetadata) {try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_set_wallet_metadata(self.uniffiClonePointer(), + FfiConverterTypeWalletMetadata.lower(metadata),$0 + ) +} +} + +open func startWalletScan()async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_start_wallet_scan( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_void, @@ -7169,10 +7890,11 @@ open class RustWalletViewModel: liftFunc: { $0 }, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType) async throws { - try await uniffiRustCallAsync( +} + +open func switchToDifferentWalletAddressType(walletAddressType: WalletAddressType)async throws { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_switch_to_different_wallet_address_type( self.uniffiClonePointer(), @@ -7185,10 +7907,11 @@ open class RustWalletViewModel: liftFunc: { $0 }, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func transactionDetails(txId: TxId) async throws -> TransactionDetails { - try await uniffiRustCallAsync( +} + +open func transactionDetails(txId: TxId)async throws -> TransactionDetails { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_rustwalletviewmodel_transaction_details( self.uniffiClonePointer(), @@ -7201,39 +7924,45 @@ open class RustWalletViewModel: liftFunc: FfiConverterTypeTransactionDetails.lift, errorHandler: FfiConverterTypeWalletViewModelError.lift ) - } - - open func validateMetadata() { try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_validate_metadata(self.uniffiClonePointer(), $0) - } - } - - open func walletMetadata() -> WalletMetadata { - try! FfiConverterTypeWalletMetadata.lift(try! rustCall { - uniffi_cove_fn_method_rustwalletviewmodel_wallet_metadata(self.uniffiClonePointer(), $0) - }) - } +} + +open func validateMetadata() {try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_validate_metadata(self.uniffiClonePointer(),$0 + ) +} +} + +open func walletMetadata() -> WalletMetadata { + return try! FfiConverterTypeWalletMetadata.lift(try! rustCall() { + uniffi_cove_fn_method_rustwalletviewmodel_wallet_metadata(self.uniffiClonePointer(),$0 + ) +}) +} + +open func wordValidator()throws -> WordValidator { + return try FfiConverterTypeWordValidator.lift(try rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { + uniffi_cove_fn_method_rustwalletviewmodel_word_validator(self.uniffiClonePointer(),$0 + ) +}) +} + - open func wordValidator() throws -> WordValidator { - try FfiConverterTypeWordValidator.lift(rustCallWithError(FfiConverterTypeWalletViewModelError.lift) { - uniffi_cove_fn_method_rustwalletviewmodel_word_validator(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRustWalletViewModel: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = RustWalletViewModel public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> RustWalletViewModel { - RustWalletViewModel(unsafeFromRawPointer: pointer) + return RustWalletViewModel(unsafeFromRawPointer: pointer) } public static func lower(_ value: RustWalletViewModel) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> RustWalletViewModel { @@ -7241,7 +7970,7 @@ public struct FfiConverterTypeRustWalletViewModel: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7254,35 +7983,42 @@ public struct FfiConverterTypeRustWalletViewModel: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustWalletViewModel_lift(_ pointer: UnsafeMutableRawPointer) throws -> RustWalletViewModel { - try FfiConverterTypeRustWalletViewModel.lift(pointer) + return try FfiConverterTypeRustWalletViewModel.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRustWalletViewModel_lower(_ value: RustWalletViewModel) -> UnsafeMutableRawPointer { - FfiConverterTypeRustWalletViewModel.lower(value) + return FfiConverterTypeRustWalletViewModel.lower(value) } -public protocol SeedQrProtocol: AnyObject { - func getWords() -> [String] - func groupedPlainWords() -> [[String]] + + +public protocol SeedQrProtocol : AnyObject { + + func getWords() -> [String] + + func groupedPlainWords() -> [[String]] + } open class SeedQr: - SeedQrProtocol -{ + SeedQrProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7290,7 +8026,7 @@ open class SeedQr: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7299,72 +8035,79 @@ open class SeedQr: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_seedqr(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_seedqr(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_seedqr(pointer, $0) } } - public static func newFromData(data: Data) throws -> SeedQr { - try FfiConverterTypeSeedQr.lift(rustCallWithError(FfiConverterTypeSeedQrError.lift) { - uniffi_cove_fn_constructor_seedqr_new_from_data( - FfiConverterData.lower(data), $0 - ) - }) - } - - public static func newFromStr(qr: String) throws -> SeedQr { - try FfiConverterTypeSeedQr.lift(rustCallWithError(FfiConverterTypeSeedQrError.lift) { - uniffi_cove_fn_constructor_seedqr_new_from_str( - FfiConverterString.lower(qr), $0 - ) - }) - } + +public static func newFromData(data: Data)throws -> SeedQr { + return try FfiConverterTypeSeedQr.lift(try rustCallWithError(FfiConverterTypeSeedQrError.lift) { + uniffi_cove_fn_constructor_seedqr_new_from_data( + FfiConverterData.lower(data),$0 + ) +}) +} + +public static func newFromStr(qr: String)throws -> SeedQr { + return try FfiConverterTypeSeedQr.lift(try rustCallWithError(FfiConverterTypeSeedQrError.lift) { + uniffi_cove_fn_constructor_seedqr_new_from_str( + FfiConverterString.lower(qr),$0 + ) +}) +} + - open func getWords() -> [String] { - try! FfiConverterSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_seedqr_get_words(self.uniffiClonePointer(), $0) - }) - } + +open func getWords() -> [String] { + return try! FfiConverterSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_seedqr_get_words(self.uniffiClonePointer(),$0 + ) +}) +} + +open func groupedPlainWords() -> [[String]] { + return try! FfiConverterSequenceSequenceString.lift(try! rustCall() { + uniffi_cove_fn_method_seedqr_grouped_plain_words(self.uniffiClonePointer(),$0 + ) +}) +} + - open func groupedPlainWords() -> [[String]] { - try! FfiConverterSequenceSequenceString.lift(try! rustCall { - uniffi_cove_fn_method_seedqr_grouped_plain_words(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSeedQr: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = SeedQr public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> SeedQr { - SeedQr(unsafeFromRawPointer: pointer) + return SeedQr(unsafeFromRawPointer: pointer) } public static func lower(_ value: SeedQr) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SeedQr { @@ -7372,7 +8115,7 @@ public struct FfiConverterTypeSeedQr: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7385,43 +8128,50 @@ public struct FfiConverterTypeSeedQr: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSeedQr_lift(_ pointer: UnsafeMutableRawPointer) throws -> SeedQr { - try FfiConverterTypeSeedQr.lift(pointer) + return try FfiConverterTypeSeedQr.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSeedQr_lower(_ value: SeedQr) -> UnsafeMutableRawPointer { - FfiConverterTypeSeedQr.lower(value) + return FfiConverterTypeSeedQr.lower(value) } -public protocol SentAndReceivedProtocol: AnyObject { - func amount() -> Amount - - func amountFmt(unit: Unit) -> String - - func direction() -> TransactionDirection - func label() -> String - func received() -> Amount - func sent() -> Amount +public protocol SentAndReceivedProtocol : AnyObject { + + func amount() -> Amount + + func amountFmt(unit: Unit) -> String + + func direction() -> TransactionDirection + + func label() -> String + + func received() -> Amount + + func sent() -> Amount + } open class SentAndReceived: - SentAndReceivedProtocol -{ + SentAndReceivedProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7429,7 +8179,7 @@ open class SentAndReceived: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7438,81 +8188,92 @@ open class SentAndReceived: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_sentandreceived(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_sentandreceived(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_sentandreceived(pointer, $0) } } - open func amount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_amount(self.uniffiClonePointer(), $0) - }) - } - - open func amountFmt(unit: Unit) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_amount_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } - - open func direction() -> TransactionDirection { - try! FfiConverterTypeTransactionDirection.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_direction(self.uniffiClonePointer(), $0) - }) - } - - open func label() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_label(self.uniffiClonePointer(), $0) - }) - } + - open func received() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_received(self.uniffiClonePointer(), $0) - }) - } + +open func amount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func amountFmt(unit: Unit) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_amount_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func direction() -> TransactionDirection { + return try! FfiConverterTypeTransactionDirection.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_direction(self.uniffiClonePointer(),$0 + ) +}) +} + +open func label() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_label(self.uniffiClonePointer(),$0 + ) +}) +} + +open func received() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_received(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sent() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_sentandreceived_sent(self.uniffiClonePointer(),$0 + ) +}) +} + - open func sent() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_sentandreceived_sent(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSentAndReceived: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = SentAndReceived public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> SentAndReceived { - SentAndReceived(unsafeFromRawPointer: pointer) + return SentAndReceived(unsafeFromRawPointer: pointer) } public static func lower(_ value: SentAndReceived) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SentAndReceived { @@ -7520,7 +8281,7 @@ public struct FfiConverterTypeSentAndReceived: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7533,65 +8294,72 @@ public struct FfiConverterTypeSentAndReceived: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSentAndReceived_lift(_ pointer: UnsafeMutableRawPointer) throws -> SentAndReceived { - try FfiConverterTypeSentAndReceived.lift(pointer) + return try FfiConverterTypeSentAndReceived.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSentAndReceived_lower(_ value: SentAndReceived) -> UnsafeMutableRawPointer { - FfiConverterTypeSentAndReceived.lower(value) -} - -public protocol TransactionDetailsProtocol: AnyObject { - func address() -> Address - - func addressSpacedOut() -> String - - func amount() -> Amount - - func amountFiat() async throws -> Double - - func amountFiatFmt() async throws -> String - - func amountFmt(unit: Unit) -> String - - func blockNumber() -> UInt32? - - func blockNumberFmt() -> String? - - func confirmationDateTime() -> String? - - func feeFiatFmt() async throws -> String - - func feeFmt(unit: Unit) -> String? - - func isConfirmed() -> Bool - - func isReceived() -> Bool - - func isSent() -> Bool - - func sentSansFeeFiatFmt() async throws -> String - - func sentSansFeeFmt(unit: Unit) -> String? - - func transactionUrl() -> String + return FfiConverterTypeSentAndReceived.lower(value) +} + + + + +public protocol TransactionDetailsProtocol : AnyObject { + + func address() -> Address + + func addressSpacedOut() -> String + + func amount() -> Amount + + func amountFiat() async throws -> Double + + func amountFiatFmt() async throws -> String + + func amountFmt(unit: Unit) -> String + + func blockNumber() -> UInt32? + + func blockNumberFmt() -> String? + + func confirmationDateTime() -> String? + + func feeFiatFmt() async throws -> String + + func feeFmt(unit: Unit) -> String? + + func isConfirmed() -> Bool + + func isReceived() -> Bool + + func isSent() -> Bool + + func sentSansFeeFiatFmt() async throws -> String + + func sentSansFeeFmt(unit: Unit) -> String? + + func transactionUrl() -> String + } open class TransactionDetails: - TransactionDetailsProtocol -{ + TransactionDetailsProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7599,7 +8367,7 @@ open class TransactionDetails: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7608,88 +8376,95 @@ open class TransactionDetails: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_transactiondetails(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_transactiondetails(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_transactiondetails(pointer, $0) } } - public static func previewConfirmedReceived() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_received($0 - ) - }) - } - - public static func previewConfirmedSent() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_sent($0 - ) - }) - } - - public static func previewNewConfirmed() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_new_confirmed($0 - ) - }) - } - - public static func previewPendingReceived() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_pending_received($0 - ) - }) - } - - public static func previewPendingSent() -> TransactionDetails { - try! FfiConverterTypeTransactionDetails.lift(try! rustCall { - uniffi_cove_fn_constructor_transactiondetails_preview_pending_sent($0 - ) - }) - } - - open func address() -> Address { - try! FfiConverterTypeAddress.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_address(self.uniffiClonePointer(), $0) - }) - } - - open func addressSpacedOut() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_address_spaced_out(self.uniffiClonePointer(), $0) - }) - } - - open func amount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_amount(self.uniffiClonePointer(), $0) - }) - } + +public static func previewConfirmedReceived() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_received($0 + ) +}) +} + +public static func previewConfirmedSent() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_confirmed_sent($0 + ) +}) +} + +public static func previewNewConfirmed() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_new_confirmed($0 + ) +}) +} + +public static func previewPendingReceived() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_pending_received($0 + ) +}) +} + +public static func previewPendingSent() -> TransactionDetails { + return try! FfiConverterTypeTransactionDetails.lift(try! rustCall() { + uniffi_cove_fn_constructor_transactiondetails_preview_pending_sent($0 + ) +}) +} + - open func amountFiat() async throws -> Double { - try await uniffiRustCallAsync( + +open func address() -> Address { + return try! FfiConverterTypeAddress.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_address(self.uniffiClonePointer(),$0 + ) +}) +} + +open func addressSpacedOut() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_address_spaced_out(self.uniffiClonePointer(),$0 + ) +}) +} + +open func amount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func amountFiat()async throws -> Double { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_amount_fiat( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_f64, @@ -7698,13 +8473,15 @@ open class TransactionDetails: liftFunc: FfiConverterDouble.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) - } - - open func amountFiatFmt() async throws -> String { - try await uniffiRustCallAsync( +} + +open func amountFiatFmt()async throws -> String { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_amount_fiat_fmt( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -7713,38 +8490,44 @@ open class TransactionDetails: liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) - } - - open func amountFmt(unit: Unit) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_amount_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } - - open func blockNumber() -> UInt32? { - try! FfiConverterOptionUInt32.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_block_number(self.uniffiClonePointer(), $0) - }) - } - - open func blockNumberFmt() -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_block_number_fmt(self.uniffiClonePointer(), $0) - }) - } - - open func confirmationDateTime() -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_confirmation_date_time(self.uniffiClonePointer(), $0) - }) - } - - open func feeFiatFmt() async throws -> String { - try await uniffiRustCallAsync( +} + +open func amountFmt(unit: Unit) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_amount_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func blockNumber() -> UInt32? { + return try! FfiConverterOptionUInt32.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_block_number(self.uniffiClonePointer(),$0 + ) +}) +} + +open func blockNumberFmt() -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_block_number_fmt(self.uniffiClonePointer(),$0 + ) +}) +} + +open func confirmationDateTime() -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_confirmation_date_time(self.uniffiClonePointer(),$0 + ) +}) +} + +open func feeFiatFmt()async throws -> String { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_fee_fiat_fmt( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -7753,38 +8536,44 @@ open class TransactionDetails: liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) - } - - open func feeFmt(unit: Unit) -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_fee_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } - - open func isConfirmed() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_is_confirmed(self.uniffiClonePointer(), $0) - }) - } - - open func isReceived() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_is_received(self.uniffiClonePointer(), $0) - }) - } - - open func isSent() -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_is_sent(self.uniffiClonePointer(), $0) - }) - } - - open func sentSansFeeFiatFmt() async throws -> String { - try await uniffiRustCallAsync( +} + +open func feeFmt(unit: Unit) -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_fee_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func isConfirmed() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_is_confirmed(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isReceived() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_is_received(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isSent() -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_is_sent(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sentSansFeeFiatFmt()async throws -> String { + return + try await uniffiRustCallAsync( rustFutureFunc: { uniffi_cove_fn_method_transactiondetails_sent_sans_fee_fiat_fmt( self.uniffiClonePointer() + ) }, pollFunc: ffi_cove_rust_future_poll_rust_buffer, @@ -7793,35 +8582,40 @@ open class TransactionDetails: liftFunc: FfiConverterString.lift, errorHandler: FfiConverterTypeTransactionDetailError.lift ) - } - - open func sentSansFeeFmt(unit: Unit) -> String? { - try! FfiConverterOptionString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_sent_sans_fee_fmt(self.uniffiClonePointer(), - FfiConverterTypeUnit.lower(unit), $0) - }) - } +} + +open func sentSansFeeFmt(unit: Unit) -> String? { + return try! FfiConverterOptionString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_sent_sans_fee_fmt(self.uniffiClonePointer(), + FfiConverterTypeUnit.lower(unit),$0 + ) +}) +} + +open func transactionUrl() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_transactiondetails_transaction_url(self.uniffiClonePointer(),$0 + ) +}) +} + - open func transactionUrl() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_transactiondetails_transaction_url(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionDetails: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TransactionDetails public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TransactionDetails { - TransactionDetails(unsafeFromRawPointer: pointer) + return TransactionDetails(unsafeFromRawPointer: pointer) } public static func lower(_ value: TransactionDetails) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionDetails { @@ -7829,7 +8623,7 @@ public struct FfiConverterTypeTransactionDetails: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7842,35 +8636,42 @@ public struct FfiConverterTypeTransactionDetails: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDetails_lift(_ pointer: UnsafeMutableRawPointer) throws -> TransactionDetails { - try FfiConverterTypeTransactionDetails.lift(pointer) + return try FfiConverterTypeTransactionDetails.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDetails_lower(_ value: TransactionDetails) -> UnsafeMutableRawPointer { - FfiConverterTypeTransactionDetails.lower(value) + return FfiConverterTypeTransactionDetails.lower(value) } -public protocol TxIdProtocol: AnyObject { - func asHashString() -> String - func isEqual(other: TxId) -> Bool + + +public protocol TxIdProtocol : AnyObject { + + func asHashString() -> String + + func isEqual(other: TxId) -> Bool + } open class TxId: - TxIdProtocol -{ + TxIdProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7878,7 +8679,7 @@ open class TxId: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7887,57 +8688,64 @@ open class TxId: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_txid(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_txid(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_txid(pointer, $0) } } - open func asHashString() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_txid_as_hash_string(self.uniffiClonePointer(), $0) - }) - } + + + +open func asHashString() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_txid_as_hash_string(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEqual(other: TxId) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_txid_is_equal(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(other),$0 + ) +}) +} + - open func isEqual(other: TxId) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_txid_is_equal(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(other), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTxId: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TxId public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TxId { - TxId(unsafeFromRawPointer: pointer) + return TxId(unsafeFromRawPointer: pointer) } public static func lower(_ value: TxId) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TxId { @@ -7945,7 +8753,7 @@ public struct FfiConverterTypeTxId: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -7958,31 +8766,38 @@ public struct FfiConverterTypeTxId: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxId_lift(_ pointer: UnsafeMutableRawPointer) throws -> TxId { - try FfiConverterTypeTxId.lift(pointer) + return try FfiConverterTypeTxId.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxId_lower(_ value: TxId) -> UnsafeMutableRawPointer { - FfiConverterTypeTxId.lower(value) + return FfiConverterTypeTxId.lower(value) } -public protocol TxInProtocol: AnyObject {} + + + +public protocol TxInProtocol : AnyObject { + +} open class TxIn: - TxInProtocol -{ + TxInProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -7990,7 +8805,7 @@ open class TxIn: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -7999,44 +8814,49 @@ open class TxIn: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_txin(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_txin(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_txin(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTxIn: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TxIn public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TxIn { - TxIn(unsafeFromRawPointer: pointer) + return TxIn(unsafeFromRawPointer: pointer) } public static func lower(_ value: TxIn) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TxIn { @@ -8044,7 +8864,7 @@ public struct FfiConverterTypeTxIn: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8057,31 +8877,38 @@ public struct FfiConverterTypeTxIn: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxIn_lift(_ pointer: UnsafeMutableRawPointer) throws -> TxIn { - try FfiConverterTypeTxIn.lift(pointer) + return try FfiConverterTypeTxIn.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxIn_lower(_ value: TxIn) -> UnsafeMutableRawPointer { - FfiConverterTypeTxIn.lower(value) + return FfiConverterTypeTxIn.lower(value) } -public protocol TxOutProtocol: AnyObject {} + + + +public protocol TxOutProtocol : AnyObject { + +} open class TxOut: - TxOutProtocol -{ + TxOutProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8089,7 +8916,7 @@ open class TxOut: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8098,44 +8925,49 @@ open class TxOut: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_txout(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_txout(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_txout(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTxOut: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = TxOut public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> TxOut { - TxOut(unsafeFromRawPointer: pointer) + return TxOut(unsafeFromRawPointer: pointer) } public static func lower(_ value: TxOut) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TxOut { @@ -8143,7 +8975,7 @@ public struct FfiConverterTypeTxOut: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8156,41 +8988,48 @@ public struct FfiConverterTypeTxOut: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxOut_lift(_ pointer: UnsafeMutableRawPointer) throws -> TxOut { - try FfiConverterTypeTxOut.lift(pointer) + return try FfiConverterTypeTxOut.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTxOut_lower(_ value: TxOut) -> UnsafeMutableRawPointer { - FfiConverterTypeTxOut.lower(value) + return FfiConverterTypeTxOut.lower(value) } -public protocol UnconfirmedTransactionProtocol: AnyObject { - func fiatAmount() -> FiatAmount? - - func id() -> TxId - func label() -> String - func lastSeen() -> UInt64 - func sentAndReceived() -> SentAndReceived +public protocol UnconfirmedTransactionProtocol : AnyObject { + + func fiatAmount() -> FiatAmount? + + func id() -> TxId + + func label() -> String + + func lastSeen() -> UInt64 + + func sentAndReceived() -> SentAndReceived + } open class UnconfirmedTransaction: - UnconfirmedTransactionProtocol -{ + UnconfirmedTransactionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8198,7 +9037,7 @@ open class UnconfirmedTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8207,74 +9046,84 @@ open class UnconfirmedTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_unconfirmedtransaction(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_unconfirmedtransaction(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_unconfirmedtransaction(pointer, $0) } } - open func fiatAmount() -> FiatAmount? { - try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_fiat_amount(self.uniffiClonePointer(), $0) - }) - } - - open func id() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_id(self.uniffiClonePointer(), $0) - }) - } - - open func label() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_label(self.uniffiClonePointer(), $0) - }) - } + - open func lastSeen() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_last_seen(self.uniffiClonePointer(), $0) - }) - } + +open func fiatAmount() -> FiatAmount? { + return try! FfiConverterOptionTypeFiatAmount.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_fiat_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func id() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func label() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_label(self.uniffiClonePointer(),$0 + ) +}) +} + +open func lastSeen() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_last_seen(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sentAndReceived() -> SentAndReceived { + return try! FfiConverterTypeSentAndReceived.lift(try! rustCall() { + uniffi_cove_fn_method_unconfirmedtransaction_sent_and_received(self.uniffiClonePointer(),$0 + ) +}) +} + - open func sentAndReceived() -> SentAndReceived { - try! FfiConverterTypeSentAndReceived.lift(try! rustCall { - uniffi_cove_fn_method_unconfirmedtransaction_sent_and_received(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnconfirmedTransaction: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnconfirmedTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnconfirmedTransaction { - UnconfirmedTransaction(unsafeFromRawPointer: pointer) + return UnconfirmedTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnconfirmedTransaction) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnconfirmedTransaction { @@ -8282,7 +9131,7 @@ public struct FfiConverterTypeUnconfirmedTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8295,41 +9144,48 @@ public struct FfiConverterTypeUnconfirmedTransaction: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnconfirmedTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnconfirmedTransaction { - try FfiConverterTypeUnconfirmedTransaction.lift(pointer) + return try FfiConverterTypeUnconfirmedTransaction.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnconfirmedTransaction_lower(_ value: UnconfirmedTransaction) -> UnsafeMutableRawPointer { - FfiConverterTypeUnconfirmedTransaction.lower(value) + return FfiConverterTypeUnconfirmedTransaction.lower(value) } -public protocol UnsignedTransactionProtocol: AnyObject { - func details() -> ConfirmDetails - func id() -> TxId - func label() -> String - func sendingAmount() -> Amount - - func spendingAmount() -> Amount +public protocol UnsignedTransactionProtocol : AnyObject { + + func details() -> ConfirmDetails + + func id() -> TxId + + func label() -> String + + func sendingAmount() -> Amount + + func spendingAmount() -> Amount + } open class UnsignedTransaction: - UnsignedTransactionProtocol -{ + UnsignedTransactionProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8337,7 +9193,7 @@ open class UnsignedTransaction: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8346,81 +9202,91 @@ open class UnsignedTransaction: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_unsignedtransaction(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_unsignedtransaction(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_unsignedtransaction(pointer, $0) } } - public static func previewNew() -> UnsignedTransaction { - try! FfiConverterTypeUnsignedTransaction.lift(try! rustCall { - uniffi_cove_fn_constructor_unsignedtransaction_preview_new($0 - ) - }) - } - - open func details() -> ConfirmDetails { - try! FfiConverterTypeConfirmDetails.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_details(self.uniffiClonePointer(), $0) - }) - } - - open func id() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_id(self.uniffiClonePointer(), $0) - }) - } - - open func label() -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_label(self.uniffiClonePointer(), $0) - }) - } + +public static func previewNew() -> UnsignedTransaction { + return try! FfiConverterTypeUnsignedTransaction.lift(try! rustCall() { + uniffi_cove_fn_constructor_unsignedtransaction_preview_new($0 + ) +}) +} + - open func sendingAmount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_sending_amount(self.uniffiClonePointer(), $0) - }) - } + +open func details() -> ConfirmDetails { + return try! FfiConverterTypeConfirmDetails.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_details(self.uniffiClonePointer(),$0 + ) +}) +} + +open func id() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func label() -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_label(self.uniffiClonePointer(),$0 + ) +}) +} + +open func sendingAmount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_sending_amount(self.uniffiClonePointer(),$0 + ) +}) +} + +open func spendingAmount() -> Amount { + return try! FfiConverterTypeAmount.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransaction_spending_amount(self.uniffiClonePointer(),$0 + ) +}) +} + - open func spendingAmount() -> Amount { - try! FfiConverterTypeAmount.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransaction_spending_amount(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransaction: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnsignedTransaction public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransaction { - UnsignedTransaction(unsafeFromRawPointer: pointer) + return UnsignedTransaction(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnsignedTransaction) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransaction { @@ -8428,7 +9294,7 @@ public struct FfiConverterTypeUnsignedTransaction: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8441,39 +9307,46 @@ public struct FfiConverterTypeUnsignedTransaction: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransaction_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransaction { - try FfiConverterTypeUnsignedTransaction.lift(pointer) + return try FfiConverterTypeUnsignedTransaction.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransaction_lower(_ value: UnsignedTransaction) -> UnsafeMutableRawPointer { - FfiConverterTypeUnsignedTransaction.lower(value) + return FfiConverterTypeUnsignedTransaction.lower(value) } -public protocol UnsignedTransactionRecordProtocol: AnyObject { - func confirmDetails() -> ConfirmDetails - func createdAt() -> UInt64 - func txId() -> TxId - func walletId() -> WalletId +public protocol UnsignedTransactionRecordProtocol : AnyObject { + + func confirmDetails() -> ConfirmDetails + + func createdAt() -> UInt64 + + func txId() -> TxId + + func walletId() -> WalletId + } open class UnsignedTransactionRecord: - UnsignedTransactionRecordProtocol -{ + UnsignedTransactionRecordProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8481,7 +9354,7 @@ open class UnsignedTransactionRecord: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8490,68 +9363,77 @@ open class UnsignedTransactionRecord: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_unsignedtransactionrecord(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_unsignedtransactionrecord(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_unsignedtransactionrecord(pointer, $0) } } - open func confirmDetails() -> ConfirmDetails { - try! FfiConverterTypeConfirmDetails.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionrecord_confirm_details(self.uniffiClonePointer(), $0) - }) - } - - open func createdAt() -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionrecord_created_at(self.uniffiClonePointer(), $0) - }) - } + - open func txId() -> TxId { - try! FfiConverterTypeTxId.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionrecord_tx_id(self.uniffiClonePointer(), $0) - }) - } + +open func confirmDetails() -> ConfirmDetails { + return try! FfiConverterTypeConfirmDetails.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionrecord_confirm_details(self.uniffiClonePointer(),$0 + ) +}) +} + +open func createdAt() -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionrecord_created_at(self.uniffiClonePointer(),$0 + ) +}) +} + +open func txId() -> TxId { + return try! FfiConverterTypeTxId.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionrecord_tx_id(self.uniffiClonePointer(),$0 + ) +}) +} + +open func walletId() -> WalletId { + return try! FfiConverterTypeWalletId.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionrecord_wallet_id(self.uniffiClonePointer(),$0 + ) +}) +} + - open func walletId() -> WalletId { - try! FfiConverterTypeWalletId.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionrecord_wallet_id(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransactionRecord: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnsignedTransactionRecord public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionRecord { - UnsignedTransactionRecord(unsafeFromRawPointer: pointer) + return UnsignedTransactionRecord(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnsignedTransactionRecord) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransactionRecord { @@ -8559,7 +9441,7 @@ public struct FfiConverterTypeUnsignedTransactionRecord: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8572,35 +9454,42 @@ public struct FfiConverterTypeUnsignedTransactionRecord: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionRecord_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionRecord { - try FfiConverterTypeUnsignedTransactionRecord.lift(pointer) + return try FfiConverterTypeUnsignedTransactionRecord.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionRecord_lower(_ value: UnsignedTransactionRecord) -> UnsafeMutableRawPointer { - FfiConverterTypeUnsignedTransactionRecord.lower(value) + return FfiConverterTypeUnsignedTransactionRecord.lower(value) } -public protocol UnsignedTransactionsTableProtocol: AnyObject { - func getTx(txId: TxId) -> UnsignedTransactionRecord? - func getTxThrow(txId: TxId) throws -> UnsignedTransactionRecord + + +public protocol UnsignedTransactionsTableProtocol : AnyObject { + + func getTx(txId: TxId) -> UnsignedTransactionRecord? + + func getTxThrow(txId: TxId) throws -> UnsignedTransactionRecord + } open class UnsignedTransactionsTable: - UnsignedTransactionsTableProtocol -{ + UnsignedTransactionsTableProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8608,7 +9497,7 @@ open class UnsignedTransactionsTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8617,58 +9506,65 @@ open class UnsignedTransactionsTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_unsignedtransactionstable(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_unsignedtransactionstable(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_unsignedtransactionstable(pointer, $0) } } - open func getTx(txId: TxId) -> UnsignedTransactionRecord? { - try! FfiConverterOptionTypeUnsignedTransactionRecord.lift(try! rustCall { - uniffi_cove_fn_method_unsignedtransactionstable_gettx(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(txId), $0) - }) - } + + + +open func getTx(txId: TxId) -> UnsignedTransactionRecord? { + return try! FfiConverterOptionTypeUnsignedTransactionRecord.lift(try! rustCall() { + uniffi_cove_fn_method_unsignedtransactionstable_gettx(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(txId),$0 + ) +}) +} + +open func getTxThrow(txId: TxId)throws -> UnsignedTransactionRecord { + return try FfiConverterTypeUnsignedTransactionRecord.lift(try rustCallWithError(FfiConverterTypeUnsignedTransactionsTableError.lift) { + uniffi_cove_fn_method_unsignedtransactionstable_gettxthrow(self.uniffiClonePointer(), + FfiConverterTypeTxId.lower(txId),$0 + ) +}) +} + - open func getTxThrow(txId: TxId) throws -> UnsignedTransactionRecord { - try FfiConverterTypeUnsignedTransactionRecord.lift(rustCallWithError(FfiConverterTypeUnsignedTransactionsTableError.lift) { - uniffi_cove_fn_method_unsignedtransactionstable_gettxthrow(self.uniffiClonePointer(), - FfiConverterTypeTxId.lower(txId), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransactionsTable: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = UnsignedTransactionsTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionsTable { - UnsignedTransactionsTable(unsafeFromRawPointer: pointer) + return UnsignedTransactionsTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: UnsignedTransactionsTable) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransactionsTable { @@ -8676,7 +9572,7 @@ public struct FfiConverterTypeUnsignedTransactionsTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8689,33 +9585,40 @@ public struct FfiConverterTypeUnsignedTransactionsTable: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionsTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> UnsignedTransactionsTable { - try FfiConverterTypeUnsignedTransactionsTable.lift(pointer) + return try FfiConverterTypeUnsignedTransactionsTable.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnsignedTransactionsTable_lower(_ value: UnsignedTransactionsTable) -> UnsafeMutableRawPointer { - FfiConverterTypeUnsignedTransactionsTable.lower(value) + return FfiConverterTypeUnsignedTransactionsTable.lower(value) } -public protocol WalletProtocol: AnyObject { - func id() -> WalletId + + + +public protocol WalletProtocol : AnyObject { + + func id() -> WalletId + } open class Wallet: - WalletProtocol -{ + WalletProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8723,7 +9626,7 @@ open class Wallet: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8732,73 +9635,79 @@ open class Wallet: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_wallet(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_wallet(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_wallet(pointer, $0) } } - public static func newFromExport(export: HardwareExport) throws -> Wallet { - try FfiConverterTypeWallet.lift(rustCallWithError(FfiConverterTypeWalletError.lift) { - uniffi_cove_fn_constructor_wallet_new_from_export( - FfiConverterTypeHardwareExport.lower(export), $0 - ) - }) - } - - public static func newFromXpub(xpub: String) throws -> Wallet { - try FfiConverterTypeWallet.lift(rustCallWithError(FfiConverterTypeWalletError.lift) { - uniffi_cove_fn_constructor_wallet_new_from_xpub( - FfiConverterString.lower(xpub), $0 - ) - }) - } + +public static func newFromExport(export: HardwareExport)throws -> Wallet { + return try FfiConverterTypeWallet.lift(try rustCallWithError(FfiConverterTypeWalletError.lift) { + uniffi_cove_fn_constructor_wallet_new_from_export( + FfiConverterTypeHardwareExport.lower(export),$0 + ) +}) +} + +public static func newFromXpub(xpub: String)throws -> Wallet { + return try FfiConverterTypeWallet.lift(try rustCallWithError(FfiConverterTypeWalletError.lift) { + uniffi_cove_fn_constructor_wallet_new_from_xpub( + FfiConverterString.lower(xpub),$0 + ) +}) +} + +public static func previewNewWallet() -> Wallet { + return try! FfiConverterTypeWallet.lift(try! rustCall() { + uniffi_cove_fn_constructor_wallet_previewnewwallet($0 + ) +}) +} + - public static func previewNewWallet() -> Wallet { - try! FfiConverterTypeWallet.lift(try! rustCall { - uniffi_cove_fn_constructor_wallet_previewnewwallet($0 - ) - }) - } + +open func id() -> WalletId { + return try! FfiConverterTypeWalletId.lift(try! rustCall() { + uniffi_cove_fn_method_wallet_id(self.uniffiClonePointer(),$0 + ) +}) +} + - open func id() -> WalletId { - try! FfiConverterTypeWalletId.lift(try! rustCall { - uniffi_cove_fn_method_wallet_id(self.uniffiClonePointer(), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWallet: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = Wallet public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Wallet { - Wallet(unsafeFromRawPointer: pointer) + return Wallet(unsafeFromRawPointer: pointer) } public static func lower(_ value: Wallet) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Wallet { @@ -8806,7 +9715,7 @@ public struct FfiConverterTypeWallet: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8819,31 +9728,38 @@ public struct FfiConverterTypeWallet: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWallet_lift(_ pointer: UnsafeMutableRawPointer) throws -> Wallet { - try FfiConverterTypeWallet.lift(pointer) + return try FfiConverterTypeWallet.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWallet_lower(_ value: Wallet) -> UnsafeMutableRawPointer { - FfiConverterTypeWallet.lower(value) + return FfiConverterTypeWallet.lower(value) } -public protocol WalletDataDbProtocol: AnyObject {} + + + +public protocol WalletDataDbProtocol : AnyObject { + +} open class WalletDataDb: - WalletDataDbProtocol -{ + WalletDataDbProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8851,7 +9767,7 @@ open class WalletDataDb: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8860,44 +9776,49 @@ open class WalletDataDb: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_walletdatadb(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_walletdatadb(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_walletdatadb(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletDataDb: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WalletDataDb public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletDataDb { - WalletDataDb(unsafeFromRawPointer: pointer) + return WalletDataDb(unsafeFromRawPointer: pointer) } public static func lower(_ value: WalletDataDb) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletDataDb { @@ -8905,7 +9826,7 @@ public struct FfiConverterTypeWalletDataDb: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -8918,31 +9839,38 @@ public struct FfiConverterTypeWalletDataDb: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataDb_lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletDataDb { - try FfiConverterTypeWalletDataDb.lift(pointer) + return try FfiConverterTypeWalletDataDb.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataDb_lower(_ value: WalletDataDb) -> UnsafeMutableRawPointer { - FfiConverterTypeWalletDataDb.lower(value) + return FfiConverterTypeWalletDataDb.lower(value) } -public protocol WalletKeyProtocol: AnyObject {} + + + +public protocol WalletKeyProtocol : AnyObject { + +} open class WalletKey: - WalletKeyProtocol -{ + WalletKeyProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -8950,7 +9878,7 @@ open class WalletKey: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -8959,44 +9887,49 @@ open class WalletKey: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_walletkey(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_walletkey(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_walletkey(pointer, $0) } } + + + + + } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletKey: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WalletKey public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletKey { - WalletKey(unsafeFromRawPointer: pointer) + return WalletKey(unsafeFromRawPointer: pointer) } public static func lower(_ value: WalletKey) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletKey { @@ -9004,7 +9937,7 @@ public struct FfiConverterTypeWalletKey: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9017,37 +9950,44 @@ public struct FfiConverterTypeWalletKey: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletKey_lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletKey { - try FfiConverterTypeWalletKey.lift(pointer) + return try FfiConverterTypeWalletKey.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletKey_lower(_ value: WalletKey) -> UnsafeMutableRawPointer { - FfiConverterTypeWalletKey.lower(value) + return FfiConverterTypeWalletKey.lower(value) } -public protocol WalletsTableProtocol: AnyObject { - func all() throws -> [WalletMetadata] - func isEmpty() throws -> Bool - func len(network: Network) throws -> UInt16 + +public protocol WalletsTableProtocol : AnyObject { + + func all() throws -> [WalletMetadata] + + func isEmpty() throws -> Bool + + func len(network: Network) throws -> UInt16 + } open class WalletsTable: - WalletsTableProtocol -{ + WalletsTableProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -9055,7 +9995,7 @@ open class WalletsTable: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9064,63 +10004,71 @@ open class WalletsTable: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_walletstable(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_walletstable(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_walletstable(pointer, $0) } } - open func all() throws -> [WalletMetadata] { - try FfiConverterSequenceTypeWalletMetadata.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_walletstable_all(self.uniffiClonePointer(), $0) - }) - } + - open func isEmpty() throws -> Bool { - try FfiConverterBool.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_walletstable_is_empty(self.uniffiClonePointer(), $0) - }) - } + +open func all()throws -> [WalletMetadata] { + return try FfiConverterSequenceTypeWalletMetadata.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_walletstable_all(self.uniffiClonePointer(),$0 + ) +}) +} + +open func isEmpty()throws -> Bool { + return try FfiConverterBool.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_walletstable_is_empty(self.uniffiClonePointer(),$0 + ) +}) +} + +open func len(network: Network)throws -> UInt16 { + return try FfiConverterUInt16.lift(try rustCallWithError(FfiConverterTypeDatabaseError.lift) { + uniffi_cove_fn_method_walletstable_len(self.uniffiClonePointer(), + FfiConverterTypeNetwork.lower(network),$0 + ) +}) +} + - open func len(network: Network) throws -> UInt16 { - try FfiConverterUInt16.lift(rustCallWithError(FfiConverterTypeDatabaseError.lift) { - uniffi_cove_fn_method_walletstable_len(self.uniffiClonePointer(), - FfiConverterTypeNetwork.lower(network), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletsTable: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WalletsTable public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletsTable { - WalletsTable(unsafeFromRawPointer: pointer) + return WalletsTable(unsafeFromRawPointer: pointer) } public static func lower(_ value: WalletsTable) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletsTable { @@ -9128,7 +10076,7 @@ public struct FfiConverterTypeWalletsTable: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9141,39 +10089,46 @@ public struct FfiConverterTypeWalletsTable: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletsTable_lift(_ pointer: UnsafeMutableRawPointer) throws -> WalletsTable { - try FfiConverterTypeWalletsTable.lift(pointer) + return try FfiConverterTypeWalletsTable.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletsTable_lower(_ value: WalletsTable) -> UnsafeMutableRawPointer { - FfiConverterTypeWalletsTable.lower(value) + return FfiConverterTypeWalletsTable.lower(value) } -public protocol WordValidatorProtocol: AnyObject { - func groupedWords() -> [[GroupedWord]] - func invalidWordsString(enteredWords: [[String]]) -> String - func isAllWordsValid(enteredWords: [[String]]) -> Bool - func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool +public protocol WordValidatorProtocol : AnyObject { + + func groupedWords() -> [[GroupedWord]] + + func invalidWordsString(enteredWords: [[String]]) -> String + + func isAllWordsValid(enteredWords: [[String]]) -> Bool + + func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool + } open class WordValidator: - WordValidatorProtocol -{ + WordValidatorProtocol { fileprivate let pointer: UnsafeMutableRawPointer! /// Used to instantiate a [FFIObject] without an actual pointer, for fakes in tests, mostly. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public struct NoPointer { public init() {} } @@ -9181,7 +10136,7 @@ open class WordValidator: // TODO: We'd like this to be `private` but for Swifty reasons, // we can't implement `FfiConverter` without making this `required` and we can't // make it `required` without making it `public`. - public required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { + required public init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { self.pointer = pointer } @@ -9190,72 +10145,81 @@ open class WordValidator: // // - Warning: // Any object instantiated with this constructor cannot be passed to an actual Rust-backed object. Since there isn't a backing [Pointer] the FFI lower functions will crash. - #if swift(>=5.8) - @_documentation(visibility: private) - #endif - public init(noPointer _: NoPointer) { - pointer = nil +#if swift(>=5.8) + @_documentation(visibility: private) +#endif + public init(noPointer: NoPointer) { + self.pointer = nil } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public func uniffiClonePointer() -> UnsafeMutableRawPointer { - try! rustCall { uniffi_cove_fn_clone_wordvalidator(self.pointer, $0) } + return try! rustCall { uniffi_cove_fn_clone_wordvalidator(self.pointer, $0) } } - // No primary constructor declared for this class. deinit { - guard let pointer else { + guard let pointer = pointer else { return } try! rustCall { uniffi_cove_fn_free_wordvalidator(pointer, $0) } } - open func groupedWords() -> [[GroupedWord]] { - try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall { - uniffi_cove_fn_method_wordvalidator_grouped_words(self.uniffiClonePointer(), $0) - }) - } - - open func invalidWordsString(enteredWords: [[String]]) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_method_wordvalidator_invalid_words_string(self.uniffiClonePointer(), - FfiConverterSequenceSequenceString.lower(enteredWords), $0) - }) - } + - open func isAllWordsValid(enteredWords: [[String]]) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_wordvalidator_is_all_words_valid(self.uniffiClonePointer(), - FfiConverterSequenceSequenceString.lower(enteredWords), $0) - }) - } + +open func groupedWords() -> [[GroupedWord]] { + return try! FfiConverterSequenceSequenceTypeGroupedWord.lift(try! rustCall() { + uniffi_cove_fn_method_wordvalidator_grouped_words(self.uniffiClonePointer(),$0 + ) +}) +} + +open func invalidWordsString(enteredWords: [[String]]) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_method_wordvalidator_invalid_words_string(self.uniffiClonePointer(), + FfiConverterSequenceSequenceString.lower(enteredWords),$0 + ) +}) +} + +open func isAllWordsValid(enteredWords: [[String]]) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_wordvalidator_is_all_words_valid(self.uniffiClonePointer(), + FfiConverterSequenceSequenceString.lower(enteredWords),$0 + ) +}) +} + +open func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_method_wordvalidator_is_valid_word_group(self.uniffiClonePointer(), + FfiConverterUInt8.lower(groupNumber), + FfiConverterSequenceString.lower(enteredWords),$0 + ) +}) +} + - open func isValidWordGroup(groupNumber: UInt8, enteredWords: [String]) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_method_wordvalidator_is_valid_word_group(self.uniffiClonePointer(), - FfiConverterUInt8.lower(groupNumber), - FfiConverterSequenceString.lower(enteredWords), $0) - }) - } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWordValidator: FfiConverter { + typealias FfiType = UnsafeMutableRawPointer typealias SwiftType = WordValidator public static func lift(_ pointer: UnsafeMutableRawPointer) throws -> WordValidator { - WordValidator(unsafeFromRawPointer: pointer) + return WordValidator(unsafeFromRawPointer: pointer) } public static func lower(_ value: WordValidator) -> UnsafeMutableRawPointer { - value.uniffiClonePointer() + return value.uniffiClonePointer() } public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WordValidator { @@ -9263,7 +10227,7 @@ public struct FfiConverterTypeWordValidator: FfiConverter { // The Rust code won't compile if a pointer won't fit in a UInt64. // We have to go via `UInt` because that's the thing that's the size of a pointer. let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) - if ptr == nil { + if (ptr == nil) { throw UniffiInternalError.unexpectedNullPointer } return try lift(ptr!) @@ -9276,20 +10240,24 @@ public struct FfiConverterTypeWordValidator: FfiConverter { } } + + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWordValidator_lift(_ pointer: UnsafeMutableRawPointer) throws -> WordValidator { - try FfiConverterTypeWordValidator.lift(pointer) + return try FfiConverterTypeWordValidator.lift(pointer) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWordValidator_lower(_ value: WordValidator) -> UnsafeMutableRawPointer { - FfiConverterTypeWordValidator.lower(value) + return FfiConverterTypeWordValidator.lower(value) } + public struct AddressIndex { public var lastSeenIndex: UInt8 public var addressListHash: UInt64 @@ -9302,8 +10270,10 @@ public struct AddressIndex { } } + + extension AddressIndex: Equatable, Hashable { - public static func == (lhs: AddressIndex, rhs: AddressIndex) -> Bool { + public static func ==(lhs: AddressIndex, rhs: AddressIndex) -> Bool { if lhs.lastSeenIndex != rhs.lastSeenIndex { return false } @@ -9319,14 +10289,16 @@ extension AddressIndex: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddressIndex: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressIndex { - try AddressIndex( - lastSeenIndex: FfiConverterUInt8.read(from: &buf), - addressListHash: FfiConverterUInt64.read(from: &buf) + return + try AddressIndex( + lastSeenIndex: FfiConverterUInt8.read(from: &buf), + addressListHash: FfiConverterUInt64.read(from: &buf) ) } @@ -9336,20 +10308,22 @@ public struct FfiConverterTypeAddressIndex: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressIndex_lift(_ buf: RustBuffer) throws -> AddressIndex { - try FfiConverterTypeAddressIndex.lift(buf) + return try FfiConverterTypeAddressIndex.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAddressIndex_lower(_ value: AddressIndex) -> RustBuffer { - FfiConverterTypeAddressIndex.lower(value) + return FfiConverterTypeAddressIndex.lower(value) } + public struct AppState { public var router: Router @@ -9360,13 +10334,16 @@ public struct AppState { } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAppState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppState { - try AppState( - router: FfiConverterTypeRouter.read(from: &buf) + return + try AppState( + router: FfiConverterTypeRouter.read(from: &buf) ) } @@ -9375,20 +10352,22 @@ public struct FfiConverterTypeAppState: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppState_lift(_ buf: RustBuffer) throws -> AppState { - try FfiConverterTypeAppState.lift(buf) + return try FfiConverterTypeAppState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppState_lower(_ value: AppState) -> RustBuffer { - FfiConverterTypeAppState.lower(value) + return FfiConverterTypeAppState.lower(value) } + public struct Balance { public var immature: Amount public var trustedPending: Amount @@ -9405,16 +10384,19 @@ public struct Balance { } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBalance: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Balance { - try Balance( - immature: FfiConverterTypeAmount.read(from: &buf), - trustedPending: FfiConverterTypeAmount.read(from: &buf), - untrustedPending: FfiConverterTypeAmount.read(from: &buf), - confirmed: FfiConverterTypeAmount.read(from: &buf) + return + try Balance( + immature: FfiConverterTypeAmount.read(from: &buf), + trustedPending: FfiConverterTypeAmount.read(from: &buf), + untrustedPending: FfiConverterTypeAmount.read(from: &buf), + confirmed: FfiConverterTypeAmount.read(from: &buf) ) } @@ -9426,20 +10408,22 @@ public struct FfiConverterTypeBalance: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBalance_lift(_ buf: RustBuffer) throws -> Balance { - try FfiConverterTypeBalance.lift(buf) + return try FfiConverterTypeBalance.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBalance_lower(_ value: Balance) -> RustBuffer { - FfiConverterTypeBalance.lower(value) + return FfiConverterTypeBalance.lower(value) } + public struct BlockSizeLast { public var blockHeight: UInt64 public var lastSeen: TimeInterval @@ -9452,8 +10436,10 @@ public struct BlockSizeLast { } } + + extension BlockSizeLast: Equatable, Hashable { - public static func == (lhs: BlockSizeLast, rhs: BlockSizeLast) -> Bool { + public static func ==(lhs: BlockSizeLast, rhs: BlockSizeLast) -> Bool { if lhs.blockHeight != rhs.blockHeight { return false } @@ -9469,14 +10455,16 @@ extension BlockSizeLast: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBlockSizeLast: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BlockSizeLast { - try BlockSizeLast( - blockHeight: FfiConverterUInt64.read(from: &buf), - lastSeen: FfiConverterDuration.read(from: &buf) + return + try BlockSizeLast( + blockHeight: FfiConverterUInt64.read(from: &buf), + lastSeen: FfiConverterDuration.read(from: &buf) ) } @@ -9486,20 +10474,22 @@ public struct FfiConverterTypeBlockSizeLast: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBlockSizeLast_lift(_ buf: RustBuffer) throws -> BlockSizeLast { - try FfiConverterTypeBlockSizeLast.lift(buf) + return try FfiConverterTypeBlockSizeLast.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeBlockSizeLast_lower(_ value: BlockSizeLast) -> RustBuffer { - FfiConverterTypeBlockSizeLast.lower(value) + return FfiConverterTypeBlockSizeLast.lower(value) } + public struct ConfirmedDetails { public var blockNumber: UInt32 public var confirmationTime: UInt64 @@ -9512,8 +10502,10 @@ public struct ConfirmedDetails { } } + + extension ConfirmedDetails: Equatable, Hashable { - public static func == (lhs: ConfirmedDetails, rhs: ConfirmedDetails) -> Bool { + public static func ==(lhs: ConfirmedDetails, rhs: ConfirmedDetails) -> Bool { if lhs.blockNumber != rhs.blockNumber { return false } @@ -9529,14 +10521,16 @@ extension ConfirmedDetails: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmedDetails: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmedDetails { - try ConfirmedDetails( - blockNumber: FfiConverterUInt32.read(from: &buf), - confirmationTime: FfiConverterUInt64.read(from: &buf) + return + try ConfirmedDetails( + blockNumber: FfiConverterUInt32.read(from: &buf), + confirmationTime: FfiConverterUInt64.read(from: &buf) ) } @@ -9546,20 +10540,22 @@ public struct FfiConverterTypeConfirmedDetails: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedDetails_lift(_ buf: RustBuffer) throws -> ConfirmedDetails { - try FfiConverterTypeConfirmedDetails.lift(buf) + return try FfiConverterTypeConfirmedDetails.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeConfirmedDetails_lower(_ value: ConfirmedDetails) -> RustBuffer { - FfiConverterTypeConfirmedDetails.lower(value) + return FfiConverterTypeConfirmedDetails.lower(value) } + public struct FeeResponse { public var fastestFee: UInt64 public var halfHourFee: UInt64 @@ -9578,8 +10574,10 @@ public struct FeeResponse { } } + + extension FeeResponse: Equatable, Hashable { - public static func == (lhs: FeeResponse, rhs: FeeResponse) -> Bool { + public static func ==(lhs: FeeResponse, rhs: FeeResponse) -> Bool { if lhs.fastestFee != rhs.fastestFee { return false } @@ -9607,17 +10605,19 @@ extension FeeResponse: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeResponse: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeResponse { - try FeeResponse( - fastestFee: FfiConverterUInt64.read(from: &buf), - halfHourFee: FfiConverterUInt64.read(from: &buf), - hourFee: FfiConverterUInt64.read(from: &buf), - economyFee: FfiConverterUInt64.read(from: &buf), - minimumFee: FfiConverterUInt64.read(from: &buf) + return + try FeeResponse( + fastestFee: FfiConverterUInt64.read(from: &buf), + halfHourFee: FfiConverterUInt64.read(from: &buf), + hourFee: FfiConverterUInt64.read(from: &buf), + economyFee: FfiConverterUInt64.read(from: &buf), + minimumFee: FfiConverterUInt64.read(from: &buf) ) } @@ -9630,20 +10630,22 @@ public struct FfiConverterTypeFeeResponse: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeResponse_lift(_ buf: RustBuffer) throws -> FeeResponse { - try FfiConverterTypeFeeResponse.lift(buf) + return try FfiConverterTypeFeeResponse.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeResponse_lower(_ value: FeeResponse) -> RustBuffer { - FfiConverterTypeFeeResponse.lower(value) + return FfiConverterTypeFeeResponse.lower(value) } + public struct FiatAmount { public var amount: Double public var currency: FiatCurrency @@ -9656,8 +10658,10 @@ public struct FiatAmount { } } + + extension FiatAmount: Equatable, Hashable { - public static func == (lhs: FiatAmount, rhs: FiatAmount) -> Bool { + public static func ==(lhs: FiatAmount, rhs: FiatAmount) -> Bool { if lhs.amount != rhs.amount { return false } @@ -9673,14 +10677,16 @@ extension FiatAmount: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatAmount: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatAmount { - try FiatAmount( - amount: FfiConverterDouble.read(from: &buf), - currency: FfiConverterTypeFiatCurrency.read(from: &buf) + return + try FiatAmount( + amount: FfiConverterDouble.read(from: &buf), + currency: FfiConverterTypeFiatCurrency.read(from: &buf) ) } @@ -9690,20 +10696,22 @@ public struct FfiConverterTypeFiatAmount: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatAmount_lift(_ buf: RustBuffer) throws -> FiatAmount { - try FfiConverterTypeFiatAmount.lift(buf) + return try FfiConverterTypeFiatAmount.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatAmount_lower(_ value: FiatAmount) -> RustBuffer { - FfiConverterTypeFiatAmount.lower(value) + return FfiConverterTypeFiatAmount.lower(value) } + public struct FoundAddress { public var type: WalletAddressType public var firstAddress: String @@ -9716,8 +10724,10 @@ public struct FoundAddress { } } + + extension FoundAddress: Equatable, Hashable { - public static func == (lhs: FoundAddress, rhs: FoundAddress) -> Bool { + public static func ==(lhs: FoundAddress, rhs: FoundAddress) -> Bool { if lhs.type != rhs.type { return false } @@ -9733,14 +10743,16 @@ extension FoundAddress: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFoundAddress: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FoundAddress { - try FoundAddress( - type: FfiConverterTypeWalletAddressType.read(from: &buf), - firstAddress: FfiConverterString.read(from: &buf) + return + try FoundAddress( + type: FfiConverterTypeWalletAddressType.read(from: &buf), + firstAddress: FfiConverterString.read(from: &buf) ) } @@ -9750,20 +10762,22 @@ public struct FfiConverterTypeFoundAddress: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFoundAddress_lift(_ buf: RustBuffer) throws -> FoundAddress { - try FfiConverterTypeFoundAddress.lift(buf) + return try FfiConverterTypeFoundAddress.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFoundAddress_lower(_ value: FoundAddress) -> RustBuffer { - FfiConverterTypeFoundAddress.lower(value) + return FfiConverterTypeFoundAddress.lower(value) } + public struct GroupedWord { public var number: UInt8 public var word: String @@ -9776,8 +10790,10 @@ public struct GroupedWord { } } + + extension GroupedWord: Equatable, Hashable { - public static func == (lhs: GroupedWord, rhs: GroupedWord) -> Bool { + public static func ==(lhs: GroupedWord, rhs: GroupedWord) -> Bool { if lhs.number != rhs.number { return false } @@ -9793,14 +10809,16 @@ extension GroupedWord: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGroupedWord: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GroupedWord { - try GroupedWord( - number: FfiConverterUInt8.read(from: &buf), - word: FfiConverterString.read(from: &buf) + return + try GroupedWord( + number: FfiConverterUInt8.read(from: &buf), + word: FfiConverterString.read(from: &buf) ) } @@ -9810,59 +10828,71 @@ public struct FfiConverterTypeGroupedWord: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGroupedWord_lift(_ buf: RustBuffer) throws -> GroupedWord { - try FfiConverterTypeGroupedWord.lift(buf) + return try FfiConverterTypeGroupedWord.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGroupedWord_lower(_ value: GroupedWord) -> RustBuffer { - FfiConverterTypeGroupedWord.lower(value) + return FfiConverterTypeGroupedWord.lower(value) } + public struct ImportWalletViewModelState { + // Default memberwise initializers are never public by default, so we // declare one manually. - public init() {} + public init() { + } } + + extension ImportWalletViewModelState: Equatable, Hashable { - public static func == (_: ImportWalletViewModelState, _: ImportWalletViewModelState) -> Bool { - true + public static func ==(lhs: ImportWalletViewModelState, rhs: ImportWalletViewModelState) -> Bool { + return true } - public func hash(into _: inout Hasher) {} + public func hash(into hasher: inout Hasher) { + } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletViewModelState: FfiConverterRustBuffer { - public static func read(from _: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelState { - ImportWalletViewModelState() + public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelState { + return + ImportWalletViewModelState() } - public static func write(_: ImportWalletViewModelState, into _: inout [UInt8]) {} + public static func write(_ value: ImportWalletViewModelState, into buf: inout [UInt8]) { + } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelState_lift(_ buf: RustBuffer) throws -> ImportWalletViewModelState { - try FfiConverterTypeImportWalletViewModelState.lift(buf) + return try FfiConverterTypeImportWalletViewModelState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelState_lower(_ value: ImportWalletViewModelState) -> RustBuffer { - FfiConverterTypeImportWalletViewModelState.lower(value) + return FfiConverterTypeImportWalletViewModelState.lower(value) } + public struct InternalOnlyMetadata { public var addressIndex: AddressIndex? public var lastScanFinished: TimeInterval? @@ -9877,8 +10907,10 @@ public struct InternalOnlyMetadata { } } + + extension InternalOnlyMetadata: Equatable, Hashable { - public static func == (lhs: InternalOnlyMetadata, rhs: InternalOnlyMetadata) -> Bool { + public static func ==(lhs: InternalOnlyMetadata, rhs: InternalOnlyMetadata) -> Bool { if lhs.addressIndex != rhs.addressIndex { return false } @@ -9898,15 +10930,17 @@ extension InternalOnlyMetadata: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeInternalOnlyMetadata: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> InternalOnlyMetadata { - try InternalOnlyMetadata( - addressIndex: FfiConverterOptionTypeAddressIndex.read(from: &buf), - lastScanFinished: FfiConverterOptionDuration.read(from: &buf), - lastHeightFetched: FfiConverterOptionTypeBlockSizeLast.read(from: &buf) + return + try InternalOnlyMetadata( + addressIndex: FfiConverterOptionTypeAddressIndex.read(from: &buf), + lastScanFinished: FfiConverterOptionDuration.read(from: &buf), + lastHeightFetched: FfiConverterOptionTypeBlockSizeLast.read(from: &buf) ) } @@ -9917,20 +10951,22 @@ public struct FfiConverterTypeInternalOnlyMetadata: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeInternalOnlyMetadata_lift(_ buf: RustBuffer) throws -> InternalOnlyMetadata { - try FfiConverterTypeInternalOnlyMetadata.lift(buf) + return try FfiConverterTypeInternalOnlyMetadata.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeInternalOnlyMetadata_lower(_ value: InternalOnlyMetadata) -> RustBuffer { - FfiConverterTypeInternalOnlyMetadata.lower(value) + return FfiConverterTypeInternalOnlyMetadata.lower(value) } + public struct MessageInfo { /** * The payload length of the message, including the header info @@ -9947,19 +10983,20 @@ public struct MessageInfo { public init( /** * The payload length of the message, including the header info - */ fullMessageLength: UInt16, + */fullMessageLength: UInt16, /** - * The payload length of the message, reported in the info header - * This is the length of the payload, without the header info - */ payloadLength: UInt16 - ) { + * The payload length of the message, reported in the info header + * This is the length of the payload, without the header info + */payloadLength: UInt16) { self.fullMessageLength = fullMessageLength self.payloadLength = payloadLength } } + + extension MessageInfo: Equatable, Hashable { - public static func == (lhs: MessageInfo, rhs: MessageInfo) -> Bool { + public static func ==(lhs: MessageInfo, rhs: MessageInfo) -> Bool { if lhs.fullMessageLength != rhs.fullMessageLength { return false } @@ -9975,14 +11012,16 @@ extension MessageInfo: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMessageInfo: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MessageInfo { - try MessageInfo( - fullMessageLength: FfiConverterUInt16.read(from: &buf), - payloadLength: FfiConverterUInt16.read(from: &buf) + return + try MessageInfo( + fullMessageLength: FfiConverterUInt16.read(from: &buf), + payloadLength: FfiConverterUInt16.read(from: &buf) ) } @@ -9992,20 +11031,22 @@ public struct FfiConverterTypeMessageInfo: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMessageInfo_lift(_ buf: RustBuffer) throws -> MessageInfo { - try FfiConverterTypeMessageInfo.lift(buf) + return try FfiConverterTypeMessageInfo.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMessageInfo_lower(_ value: MessageInfo) -> RustBuffer { - FfiConverterTypeMessageInfo.lower(value) + return FfiConverterTypeMessageInfo.lower(value) } + public struct NdefHeader { public var messageBegin: Bool public var messageEnd: Bool @@ -10032,8 +11073,10 @@ public struct NdefHeader { } } + + extension NdefHeader: Equatable, Hashable { - public static func == (lhs: NdefHeader, rhs: NdefHeader) -> Bool { + public static func ==(lhs: NdefHeader, rhs: NdefHeader) -> Bool { if lhs.messageBegin != rhs.messageBegin { return false } @@ -10077,21 +11120,23 @@ extension NdefHeader: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefHeader: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefHeader { - try NdefHeader( - messageBegin: FfiConverterBool.read(from: &buf), - messageEnd: FfiConverterBool.read(from: &buf), - chunked: FfiConverterBool.read(from: &buf), - shortRecord: FfiConverterBool.read(from: &buf), - hasIdLength: FfiConverterBool.read(from: &buf), - typeNameFormat: FfiConverterTypeNdefType.read(from: &buf), - typeLength: FfiConverterUInt8.read(from: &buf), - payloadLength: FfiConverterUInt32.read(from: &buf), - idLength: FfiConverterOptionUInt8.read(from: &buf) + return + try NdefHeader( + messageBegin: FfiConverterBool.read(from: &buf), + messageEnd: FfiConverterBool.read(from: &buf), + chunked: FfiConverterBool.read(from: &buf), + shortRecord: FfiConverterBool.read(from: &buf), + hasIdLength: FfiConverterBool.read(from: &buf), + typeNameFormat: FfiConverterTypeNdefType.read(from: &buf), + typeLength: FfiConverterUInt8.read(from: &buf), + payloadLength: FfiConverterUInt32.read(from: &buf), + idLength: FfiConverterOptionUInt8.read(from: &buf) ) } @@ -10108,20 +11153,22 @@ public struct FfiConverterTypeNdefHeader: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefHeader_lift(_ buf: RustBuffer) throws -> NdefHeader { - try FfiConverterTypeNdefHeader.lift(buf) + return try FfiConverterTypeNdefHeader.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefHeader_lower(_ value: NdefHeader) -> RustBuffer { - FfiConverterTypeNdefHeader.lower(value) + return FfiConverterTypeNdefHeader.lower(value) } + public struct NdefRecord { public var header: NdefHeader public var type: Data @@ -10138,8 +11185,10 @@ public struct NdefRecord { } } + + extension NdefRecord: Equatable, Hashable { - public static func == (lhs: NdefRecord, rhs: NdefRecord) -> Bool { + public static func ==(lhs: NdefRecord, rhs: NdefRecord) -> Bool { if lhs.header != rhs.header { return false } @@ -10163,16 +11212,18 @@ extension NdefRecord: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefRecord: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefRecord { - try NdefRecord( - header: FfiConverterTypeNdefHeader.read(from: &buf), - type: FfiConverterData.read(from: &buf), - id: FfiConverterOptionData.read(from: &buf), - payload: FfiConverterTypeNdefPayload.read(from: &buf) + return + try NdefRecord( + header: FfiConverterTypeNdefHeader.read(from: &buf), + type: FfiConverterData.read(from: &buf), + id: FfiConverterOptionData.read(from: &buf), + payload: FfiConverterTypeNdefPayload.read(from: &buf) ) } @@ -10184,20 +11235,22 @@ public struct FfiConverterTypeNdefRecord: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecord_lift(_ buf: RustBuffer) throws -> NdefRecord { - try FfiConverterTypeNdefRecord.lift(buf) + return try FfiConverterTypeNdefRecord.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefRecord_lower(_ value: NdefRecord) -> RustBuffer { - FfiConverterTypeNdefRecord.lower(value) + return FfiConverterTypeNdefRecord.lower(value) } + public struct Node { public var name: String public var network: Network @@ -10214,8 +11267,10 @@ public struct Node { } } + + extension Node: Equatable, Hashable { - public static func == (lhs: Node, rhs: Node) -> Bool { + public static func ==(lhs: Node, rhs: Node) -> Bool { if lhs.name != rhs.name { return false } @@ -10239,16 +11294,18 @@ extension Node: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNode: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Node { - try Node( - name: FfiConverterString.read(from: &buf), - network: FfiConverterTypeNetwork.read(from: &buf), - apiType: FfiConverterTypeApiType.read(from: &buf), - url: FfiConverterString.read(from: &buf) + return + try Node( + name: FfiConverterString.read(from: &buf), + network: FfiConverterTypeNetwork.read(from: &buf), + apiType: FfiConverterTypeApiType.read(from: &buf), + url: FfiConverterString.read(from: &buf) ) } @@ -10260,20 +11317,22 @@ public struct FfiConverterTypeNode: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNode_lift(_ buf: RustBuffer) throws -> Node { - try FfiConverterTypeNode.lift(buf) + return try FfiConverterTypeNode.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNode_lower(_ value: Node) -> RustBuffer { - FfiConverterTypeNode.lower(value) + return FfiConverterTypeNode.lower(value) } + public struct ParsingContext { public var messageInfo: MessageInfo public var needed: UInt16 @@ -10288,8 +11347,10 @@ public struct ParsingContext { } } + + extension ParsingContext: Equatable, Hashable { - public static func == (lhs: ParsingContext, rhs: ParsingContext) -> Bool { + public static func ==(lhs: ParsingContext, rhs: ParsingContext) -> Bool { if lhs.messageInfo != rhs.messageInfo { return false } @@ -10309,15 +11370,17 @@ extension ParsingContext: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeParsingContext: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParsingContext { - try ParsingContext( - messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), - needed: FfiConverterUInt16.read(from: &buf), - firstBlockHash: FfiConverterOptionString.read(from: &buf) + return + try ParsingContext( + messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), + needed: FfiConverterUInt16.read(from: &buf), + firstBlockHash: FfiConverterOptionString.read(from: &buf) ) } @@ -10328,20 +11391,22 @@ public struct FfiConverterTypeParsingContext: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParsingContext_lift(_ buf: RustBuffer) throws -> ParsingContext { - try FfiConverterTypeParsingContext.lift(buf) + return try FfiConverterTypeParsingContext.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParsingContext_lower(_ value: ParsingContext) -> RustBuffer { - FfiConverterTypeParsingContext.lower(value) + return FfiConverterTypeParsingContext.lower(value) } + public struct ParsingMessage { public var messageInfo: MessageInfo public var leftOverBytes: Data @@ -10354,8 +11419,10 @@ public struct ParsingMessage { } } + + extension ParsingMessage: Equatable, Hashable { - public static func == (lhs: ParsingMessage, rhs: ParsingMessage) -> Bool { + public static func ==(lhs: ParsingMessage, rhs: ParsingMessage) -> Bool { if lhs.messageInfo != rhs.messageInfo { return false } @@ -10371,14 +11438,16 @@ extension ParsingMessage: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeParsingMessage: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParsingMessage { - try ParsingMessage( - messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), - leftOverBytes: FfiConverterData.read(from: &buf) + return + try ParsingMessage( + messageInfo: FfiConverterTypeMessageInfo.read(from: &buf), + leftOverBytes: FfiConverterData.read(from: &buf) ) } @@ -10388,20 +11457,22 @@ public struct FfiConverterTypeParsingMessage: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParsingMessage_lift(_ buf: RustBuffer) throws -> ParsingMessage { - try FfiConverterTypeParsingMessage.lift(buf) + return try FfiConverterTypeParsingMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParsingMessage_lower(_ value: ParsingMessage) -> RustBuffer { - FfiConverterTypeParsingMessage.lower(value) + return FfiConverterTypeParsingMessage.lower(value) } + public struct PendingDetails { public var lastSeen: UInt64 @@ -10412,8 +11483,10 @@ public struct PendingDetails { } } + + extension PendingDetails: Equatable, Hashable { - public static func == (lhs: PendingDetails, rhs: PendingDetails) -> Bool { + public static func ==(lhs: PendingDetails, rhs: PendingDetails) -> Bool { if lhs.lastSeen != rhs.lastSeen { return false } @@ -10425,13 +11498,15 @@ extension PendingDetails: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingDetails: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingDetails { - try PendingDetails( - lastSeen: FfiConverterUInt64.read(from: &buf) + return + try PendingDetails( + lastSeen: FfiConverterUInt64.read(from: &buf) ) } @@ -10440,20 +11515,22 @@ public struct FfiConverterTypePendingDetails: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingDetails_lift(_ buf: RustBuffer) throws -> PendingDetails { - try FfiConverterTypePendingDetails.lift(buf) + return try FfiConverterTypePendingDetails.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingDetails_lower(_ value: PendingDetails) -> RustBuffer { - FfiConverterTypePendingDetails.lower(value) + return FfiConverterTypePendingDetails.lower(value) } + public struct PendingWalletViewModelState { public var numberOfWords: NumberOfBip39Words public var wallet: PendingWallet @@ -10466,14 +11543,17 @@ public struct PendingWalletViewModelState { } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelState { - try PendingWalletViewModelState( - numberOfWords: FfiConverterTypeNumberOfBip39Words.read(from: &buf), - wallet: FfiConverterTypePendingWallet.read(from: &buf) + return + try PendingWalletViewModelState( + numberOfWords: FfiConverterTypeNumberOfBip39Words.read(from: &buf), + wallet: FfiConverterTypePendingWallet.read(from: &buf) ) } @@ -10483,20 +11563,22 @@ public struct FfiConverterTypePendingWalletViewModelState: FfiConverterRustBuffe } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelState_lift(_ buf: RustBuffer) throws -> PendingWalletViewModelState { - try FfiConverterTypePendingWalletViewModelState.lift(buf) + return try FfiConverterTypePendingWalletViewModelState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelState_lower(_ value: PendingWalletViewModelState) -> RustBuffer { - FfiConverterTypePendingWalletViewModelState.lower(value) + return FfiConverterTypePendingWalletViewModelState.lower(value) } + public struct PriceResponse { public var time: UInt64 public var usd: UInt64 @@ -10521,8 +11603,10 @@ public struct PriceResponse { } } + + extension PriceResponse: Equatable, Hashable { - public static func == (lhs: PriceResponse, rhs: PriceResponse) -> Bool { + public static func ==(lhs: PriceResponse, rhs: PriceResponse) -> Bool { if lhs.time != rhs.time { return false } @@ -10562,20 +11646,22 @@ extension PriceResponse: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePriceResponse: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PriceResponse { - try PriceResponse( - time: FfiConverterUInt64.read(from: &buf), - usd: FfiConverterUInt64.read(from: &buf), - eur: FfiConverterUInt64.read(from: &buf), - gbp: FfiConverterUInt64.read(from: &buf), - cad: FfiConverterUInt64.read(from: &buf), - chf: FfiConverterUInt64.read(from: &buf), - aud: FfiConverterUInt64.read(from: &buf), - jpy: FfiConverterUInt64.read(from: &buf) + return + try PriceResponse( + time: FfiConverterUInt64.read(from: &buf), + usd: FfiConverterUInt64.read(from: &buf), + eur: FfiConverterUInt64.read(from: &buf), + gbp: FfiConverterUInt64.read(from: &buf), + cad: FfiConverterUInt64.read(from: &buf), + chf: FfiConverterUInt64.read(from: &buf), + aud: FfiConverterUInt64.read(from: &buf), + jpy: FfiConverterUInt64.read(from: &buf) ) } @@ -10591,20 +11677,22 @@ public struct FfiConverterTypePriceResponse: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePriceResponse_lift(_ buf: RustBuffer) throws -> PriceResponse { - try FfiConverterTypePriceResponse.lift(buf) + return try FfiConverterTypePriceResponse.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePriceResponse_lower(_ value: PriceResponse) -> RustBuffer { - FfiConverterTypePriceResponse.lower(value) + return FfiConverterTypePriceResponse.lower(value) } + public struct Rgb { public var r: UInt8 public var g: UInt8 @@ -10619,8 +11707,10 @@ public struct Rgb { } } + + extension Rgb: Equatable, Hashable { - public static func == (lhs: Rgb, rhs: Rgb) -> Bool { + public static func ==(lhs: Rgb, rhs: Rgb) -> Bool { if lhs.r != rhs.r { return false } @@ -10640,15 +11730,17 @@ extension Rgb: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRgb: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Rgb { - try Rgb( - r: FfiConverterUInt8.read(from: &buf), - g: FfiConverterUInt8.read(from: &buf), - b: FfiConverterUInt8.read(from: &buf) + return + try Rgb( + r: FfiConverterUInt8.read(from: &buf), + g: FfiConverterUInt8.read(from: &buf), + b: FfiConverterUInt8.read(from: &buf) ) } @@ -10659,20 +11751,22 @@ public struct FfiConverterTypeRgb: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRgb_lift(_ buf: RustBuffer) throws -> Rgb { - try FfiConverterTypeRgb.lift(buf) + return try FfiConverterTypeRgb.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRgb_lower(_ value: Rgb) -> RustBuffer { - FfiConverterTypeRgb.lower(value) + return FfiConverterTypeRgb.lower(value) } + public struct Router { public var app: FfiApp public var `default`: Route @@ -10680,46 +11774,51 @@ public struct Router { // Default memberwise initializers are never public by default, so we // declare one manually. - public init(app: FfiApp, default: Route, routes: [Route]) { + public init(app: FfiApp, `default`: Route, routes: [Route]) { self.app = app - self.default = `default` + self.`default` = `default` self.routes = routes } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRouter: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Router { - try Router( - app: FfiConverterTypeFfiApp.read(from: &buf), - default: FfiConverterTypeRoute.read(from: &buf), - routes: FfiConverterSequenceTypeRoute.read(from: &buf) + return + try Router( + app: FfiConverterTypeFfiApp.read(from: &buf), + default: FfiConverterTypeRoute.read(from: &buf), + routes: FfiConverterSequenceTypeRoute.read(from: &buf) ) } public static func write(_ value: Router, into buf: inout [UInt8]) { FfiConverterTypeFfiApp.write(value.app, into: &buf) - FfiConverterTypeRoute.write(value.default, into: &buf) + FfiConverterTypeRoute.write(value.`default`, into: &buf) FfiConverterSequenceTypeRoute.write(value.routes, into: &buf) } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRouter_lift(_ buf: RustBuffer) throws -> Router { - try FfiConverterTypeRouter.lift(buf) + return try FfiConverterTypeRouter.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRouter_lower(_ value: Router) -> RustBuffer { - FfiConverterTypeRouter.lower(value) + return FfiConverterTypeRouter.lower(value) } + public struct ScanningInfo { public var addressType: WalletAddressType public var count: UInt32 @@ -10732,8 +11831,10 @@ public struct ScanningInfo { } } + + extension ScanningInfo: Equatable, Hashable { - public static func == (lhs: ScanningInfo, rhs: ScanningInfo) -> Bool { + public static func ==(lhs: ScanningInfo, rhs: ScanningInfo) -> Bool { if lhs.addressType != rhs.addressType { return false } @@ -10749,14 +11850,16 @@ extension ScanningInfo: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeScanningInfo: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ScanningInfo { - try ScanningInfo( - addressType: FfiConverterTypeWalletAddressType.read(from: &buf), - count: FfiConverterUInt32.read(from: &buf) + return + try ScanningInfo( + addressType: FfiConverterTypeWalletAddressType.read(from: &buf), + count: FfiConverterUInt32.read(from: &buf) ) } @@ -10766,20 +11869,22 @@ public struct FfiConverterTypeScanningInfo: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScanningInfo_lift(_ buf: RustBuffer) throws -> ScanningInfo { - try FfiConverterTypeScanningInfo.lift(buf) + return try FfiConverterTypeScanningInfo.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScanningInfo_lower(_ value: ScanningInfo) -> RustBuffer { - FfiConverterTypeScanningInfo.lower(value) + return FfiConverterTypeScanningInfo.lower(value) } + public struct TextPayload { public var format: TextPayloadFormat public var language: String @@ -10794,8 +11899,10 @@ public struct TextPayload { } } + + extension TextPayload: Equatable, Hashable { - public static func == (lhs: TextPayload, rhs: TextPayload) -> Bool { + public static func ==(lhs: TextPayload, rhs: TextPayload) -> Bool { if lhs.format != rhs.format { return false } @@ -10815,15 +11922,17 @@ extension TextPayload: Equatable, Hashable { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTextPayload: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TextPayload { - try TextPayload( - format: FfiConverterTypeTextPayloadFormat.read(from: &buf), - language: FfiConverterString.read(from: &buf), - text: FfiConverterString.read(from: &buf) + return + try TextPayload( + format: FfiConverterTypeTextPayloadFormat.read(from: &buf), + language: FfiConverterString.read(from: &buf), + text: FfiConverterString.read(from: &buf) ) } @@ -10834,20 +11943,22 @@ public struct FfiConverterTypeTextPayload: FfiConverterRustBuffer { } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTextPayload_lift(_ buf: RustBuffer) throws -> TextPayload { - try FfiConverterTypeTextPayload.lift(buf) + return try FfiConverterTypeTextPayload.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTextPayload_lower(_ value: TextPayload) -> RustBuffer { - FfiConverterTypeTextPayload.lower(value) + return FfiConverterTypeTextPayload.lower(value) } + public struct WalletMetadata { public var id: WalletId public var name: String @@ -10868,7 +11979,7 @@ public struct WalletMetadata { // Default memberwise initializers are never public by default, so we // declare one manually. - public init(id: WalletId, name: String, color: WalletColor, verified: Bool, network: Network, performedFullScan: Bool, masterFingerprint: Fingerprint?, selectedUnit: Unit, selectedFiatCurrency: FiatCurrency, sensitiveVisible: Bool, detailsExpanded: Bool, walletType: WalletType, discoveryState: DiscoveryState, addressType: WalletAddressType, fiatOrBtc: FiatOrBtc, internal: InternalOnlyMetadata) { + public init(id: WalletId, name: String, color: WalletColor, verified: Bool, network: Network, performedFullScan: Bool, masterFingerprint: Fingerprint?, selectedUnit: Unit, selectedFiatCurrency: FiatCurrency, sensitiveVisible: Bool, detailsExpanded: Bool, walletType: WalletType, discoveryState: DiscoveryState, addressType: WalletAddressType, fiatOrBtc: FiatOrBtc, `internal`: InternalOnlyMetadata) { self.id = id self.name = name self.color = color @@ -10884,32 +11995,35 @@ public struct WalletMetadata { self.discoveryState = discoveryState self.addressType = addressType self.fiatOrBtc = fiatOrBtc - self.internal = `internal` + self.`internal` = `internal` } } + + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletMetadata: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletMetadata { - try WalletMetadata( - id: FfiConverterTypeWalletId.read(from: &buf), - name: FfiConverterString.read(from: &buf), - color: FfiConverterTypeWalletColor.read(from: &buf), - verified: FfiConverterBool.read(from: &buf), - network: FfiConverterTypeNetwork.read(from: &buf), - performedFullScan: FfiConverterBool.read(from: &buf), - masterFingerprint: FfiConverterOptionTypeFingerprint.read(from: &buf), - selectedUnit: FfiConverterTypeUnit.read(from: &buf), - selectedFiatCurrency: FfiConverterTypeFiatCurrency.read(from: &buf), - sensitiveVisible: FfiConverterBool.read(from: &buf), - detailsExpanded: FfiConverterBool.read(from: &buf), - walletType: FfiConverterTypeWalletType.read(from: &buf), - discoveryState: FfiConverterTypeDiscoveryState.read(from: &buf), - addressType: FfiConverterTypeWalletAddressType.read(from: &buf), - fiatOrBtc: FfiConverterTypeFiatOrBtc.read(from: &buf), - internal: FfiConverterTypeInternalOnlyMetadata.read(from: &buf) + return + try WalletMetadata( + id: FfiConverterTypeWalletId.read(from: &buf), + name: FfiConverterString.read(from: &buf), + color: FfiConverterTypeWalletColor.read(from: &buf), + verified: FfiConverterBool.read(from: &buf), + network: FfiConverterTypeNetwork.read(from: &buf), + performedFullScan: FfiConverterBool.read(from: &buf), + masterFingerprint: FfiConverterOptionTypeFingerprint.read(from: &buf), + selectedUnit: FfiConverterTypeUnit.read(from: &buf), + selectedFiatCurrency: FfiConverterTypeFiatCurrency.read(from: &buf), + sensitiveVisible: FfiConverterBool.read(from: &buf), + detailsExpanded: FfiConverterBool.read(from: &buf), + walletType: FfiConverterTypeWalletType.read(from: &buf), + discoveryState: FfiConverterTypeDiscoveryState.read(from: &buf), + addressType: FfiConverterTypeWalletAddressType.read(from: &buf), + fiatOrBtc: FfiConverterTypeFiatOrBtc.read(from: &buf), + internal: FfiConverterTypeInternalOnlyMetadata.read(from: &buf) ) } @@ -10929,25 +12043,30 @@ public struct FfiConverterTypeWalletMetadata: FfiConverterRustBuffer { FfiConverterTypeDiscoveryState.write(value.discoveryState, into: &buf) FfiConverterTypeWalletAddressType.write(value.addressType, into: &buf) FfiConverterTypeFiatOrBtc.write(value.fiatOrBtc, into: &buf) - FfiConverterTypeInternalOnlyMetadata.write(value.internal, into: &buf) + FfiConverterTypeInternalOnlyMetadata.write(value.`internal`, into: &buf) } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletMetadata_lift(_ buf: RustBuffer) throws -> WalletMetadata { - try FfiConverterTypeWalletMetadata.lift(buf) + return try FfiConverterTypeWalletMetadata.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletMetadata_lower(_ value: WalletMetadata) -> RustBuffer { - FfiConverterTypeWalletMetadata.lower(value) + return FfiConverterTypeWalletMetadata.lower(value) } + public enum AddressError { + + + case NoOutputs case ScriptError(String ) @@ -10958,8 +12077,9 @@ public enum AddressError { case EmptyAddress } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAddressError: FfiConverterRustBuffer { typealias SwiftType = AddressError @@ -10967,45 +12087,62 @@ public struct FfiConverterTypeAddressError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AddressError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .NoOutputs - case 2: return try .ScriptError( - FfiConverterString.read(from: &buf) + case 2: return .ScriptError( + try FfiConverterString.read(from: &buf) ) case 3: return .InvalidAddress case 4: return .UnsupportedNetwork - case 5: return try .WrongNetwork( - current: FfiConverterTypeNetwork.read(from: &buf) + case 5: return .WrongNetwork( + current: try FfiConverterTypeNetwork.read(from: &buf) ) case 6: return .EmptyAddress - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AddressError, into buf: inout [UInt8]) { switch value { + + + + + case .NoOutputs: writeInt(&buf, Int32(1)) - + + case let .ScriptError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case .InvalidAddress: writeInt(&buf, Int32(3)) - + + case .UnsupportedNetwork: writeInt(&buf, Int32(4)) - + + case let .WrongNetwork(current): writeInt(&buf, Int32(5)) FfiConverterTypeNetwork.write(current, into: &buf) - + + case .EmptyAddress: writeInt(&buf, Int32(6)) + } } } + extension AddressError: Equatable, Hashable {} extension AddressError: Foundation.LocalizedError { @@ -11018,13 +12155,15 @@ extension AddressError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ApiType { + case esplora case electrum case rpc } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeApiType: FfiConverterRustBuffer { typealias SwiftType = ApiType @@ -11032,50 +12171,62 @@ public struct FfiConverterTypeApiType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ApiType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .esplora - + case 2: return .electrum - + case 3: return .rpc - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ApiType, into buf: inout [UInt8]) { switch value { + + case .esplora: writeInt(&buf, Int32(1)) - + + case .electrum: writeInt(&buf, Int32(2)) - + + case .rpc: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeApiType_lift(_ buf: RustBuffer) throws -> ApiType { - try FfiConverterTypeApiType.lift(buf) + return try FfiConverterTypeApiType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeApiType_lower(_ value: ApiType) -> RustBuffer { - FfiConverterTypeApiType.lower(value) + return FfiConverterTypeApiType.lower(value) } + + extension ApiType: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum AppAction { + case updateRoute(routes: [Route] ) case changeNetwork(network: Network @@ -11088,8 +12239,9 @@ public enum AppAction { case updateFees } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAppAction: FfiConverterRustBuffer { typealias SwiftType = AppAction @@ -11097,76 +12249,94 @@ public struct FfiConverterTypeAppAction: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppAction { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .updateRoute(routes: FfiConverterSequenceTypeRoute.read(from: &buf) - ) - - case 2: return try .changeNetwork(network: FfiConverterTypeNetwork.read(from: &buf) - ) - - case 3: return try .changeColorScheme(FfiConverterTypeColorSchemeSelection.read(from: &buf) - ) - - case 4: return try .setSelectedNode(FfiConverterTypeNode.read(from: &buf) - ) - + + case 1: return .updateRoute(routes: try FfiConverterSequenceTypeRoute.read(from: &buf) + ) + + case 2: return .changeNetwork(network: try FfiConverterTypeNetwork.read(from: &buf) + ) + + case 3: return .changeColorScheme(try FfiConverterTypeColorSchemeSelection.read(from: &buf) + ) + + case 4: return .setSelectedNode(try FfiConverterTypeNode.read(from: &buf) + ) + case 5: return .updateFiatPrices - + case 6: return .updateFees - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AppAction, into buf: inout [UInt8]) { switch value { + + case let .updateRoute(routes): writeInt(&buf, Int32(1)) FfiConverterSequenceTypeRoute.write(routes, into: &buf) - + + case let .changeNetwork(network): writeInt(&buf, Int32(2)) FfiConverterTypeNetwork.write(network, into: &buf) - + + case let .changeColorScheme(v1): writeInt(&buf, Int32(3)) FfiConverterTypeColorSchemeSelection.write(v1, into: &buf) - + + case let .setSelectedNode(v1): writeInt(&buf, Int32(4)) FfiConverterTypeNode.write(v1, into: &buf) - + + case .updateFiatPrices: writeInt(&buf, Int32(5)) - + + case .updateFees: writeInt(&buf, Int32(6)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppAction_lift(_ buf: RustBuffer) throws -> AppAction { - try FfiConverterTypeAppAction.lift(buf) + return try FfiConverterTypeAppAction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppAction_lower(_ value: AppAction) -> RustBuffer { - FfiConverterTypeAppAction.lower(value) + return FfiConverterTypeAppAction.lower(value) } + + + + public enum AppError { + + + case PricesError(String ) case FeesError(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAppError: FfiConverterRustBuffer { typealias SwiftType = AppError @@ -11174,31 +12344,42 @@ public struct FfiConverterTypeAppError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .PricesError( - FfiConverterString.read(from: &buf) - ) - case 2: return try .FeesError( - FfiConverterString.read(from: &buf) + + + + case 1: return .PricesError( + try FfiConverterString.read(from: &buf) + ) + case 2: return .FeesError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AppError, into buf: inout [UInt8]) { switch value { + + + + + case let .PricesError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .FeesError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension AppError: Equatable, Hashable {} extension AppError: Foundation.LocalizedError { @@ -11211,6 +12392,7 @@ extension AppError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum AppStateReconcileMessage { + case defaultRouteChanged(Route ) case routeUpdated([Route] @@ -11226,8 +12408,9 @@ public enum AppStateReconcileMessage { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeAppStateReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = AppStateReconcileMessage @@ -11235,77 +12418,95 @@ public struct FfiConverterTypeAppStateReconcileMessage: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> AppStateReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .defaultRouteChanged(FfiConverterTypeRoute.read(from: &buf) - ) - - case 2: return try .routeUpdated(FfiConverterSequenceTypeRoute.read(from: &buf) - ) - + + case 1: return .defaultRouteChanged(try FfiConverterTypeRoute.read(from: &buf) + ) + + case 2: return .routeUpdated(try FfiConverterSequenceTypeRoute.read(from: &buf) + ) + case 3: return .databaseUpdated - - case 4: return try .colorSchemeChanged(FfiConverterTypeColorSchemeSelection.read(from: &buf) - ) - - case 5: return try .selectedNodeChanged(FfiConverterTypeNode.read(from: &buf) - ) - - case 6: return try .fiatPricesChanged(FfiConverterTypePriceResponse.read(from: &buf) - ) - - case 7: return try .feesChanged(FfiConverterTypeFeeResponse.read(from: &buf) - ) - + + case 4: return .colorSchemeChanged(try FfiConverterTypeColorSchemeSelection.read(from: &buf) + ) + + case 5: return .selectedNodeChanged(try FfiConverterTypeNode.read(from: &buf) + ) + + case 6: return .fiatPricesChanged(try FfiConverterTypePriceResponse.read(from: &buf) + ) + + case 7: return .feesChanged(try FfiConverterTypeFeeResponse.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: AppStateReconcileMessage, into buf: inout [UInt8]) { switch value { + + case let .defaultRouteChanged(v1): writeInt(&buf, Int32(1)) FfiConverterTypeRoute.write(v1, into: &buf) - + + case let .routeUpdated(v1): writeInt(&buf, Int32(2)) FfiConverterSequenceTypeRoute.write(v1, into: &buf) - + + case .databaseUpdated: writeInt(&buf, Int32(3)) - + + case let .colorSchemeChanged(v1): writeInt(&buf, Int32(4)) FfiConverterTypeColorSchemeSelection.write(v1, into: &buf) - + + case let .selectedNodeChanged(v1): writeInt(&buf, Int32(5)) FfiConverterTypeNode.write(v1, into: &buf) - + + case let .fiatPricesChanged(v1): writeInt(&buf, Int32(6)) FfiConverterTypePriceResponse.write(v1, into: &buf) - + + case let .feesChanged(v1): writeInt(&buf, Int32(7)) FfiConverterTypeFeeResponse.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppStateReconcileMessage_lift(_ buf: RustBuffer) throws -> AppStateReconcileMessage { - try FfiConverterTypeAppStateReconcileMessage.lift(buf) + return try FfiConverterTypeAppStateReconcileMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeAppStateReconcileMessage_lower(_ value: AppStateReconcileMessage) -> RustBuffer { - FfiConverterTypeAppStateReconcileMessage.lower(value) + return FfiConverterTypeAppStateReconcileMessage.lower(value) } + + + + public enum Bip39Error { + + + /** * Mnemonic has a word count that is not a multiple of 6, found {0}. */ @@ -11333,8 +12534,9 @@ public enum Bip39Error { case AmbiguousLanguages } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBip39Error: FfiConverterRustBuffer { typealias SwiftType = Bip39Error @@ -11342,44 +12544,60 @@ public struct FfiConverterTypeBip39Error: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bip39Error { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .BadWordCount( - FfiConverterUInt32.read(from: &buf) + + + + + case 1: return .BadWordCount( + try FfiConverterUInt32.read(from: &buf) ) - case 2: return try .UnknownWord( - FfiConverterUInt32.read(from: &buf) + case 2: return .UnknownWord( + try FfiConverterUInt32.read(from: &buf) ) - case 3: return try .BadEntropyBitCount( - FfiConverterUInt32.read(from: &buf) + case 3: return .BadEntropyBitCount( + try FfiConverterUInt32.read(from: &buf) ) case 4: return .InvalidChecksum case 5: return .AmbiguousLanguages - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Bip39Error, into buf: inout [UInt8]) { switch value { + + + + + case let .BadWordCount(v1): writeInt(&buf, Int32(1)) FfiConverterUInt32.write(v1, into: &buf) - + + case let .UnknownWord(v1): writeInt(&buf, Int32(2)) FfiConverterUInt32.write(v1, into: &buf) - + + case let .BadEntropyBitCount(v1): writeInt(&buf, Int32(3)) FfiConverterUInt32.write(v1, into: &buf) - + + case .InvalidChecksum: writeInt(&buf, Int32(4)) - + + case .AmbiguousLanguages: writeInt(&buf, Int32(5)) + } } } + extension Bip39Error: Equatable, Hashable {} extension Bip39Error: Foundation.LocalizedError { @@ -11388,15 +12606,20 @@ extension Bip39Error: Foundation.LocalizedError { } } + public enum BitcoinTransactionError { + + + case HexDecodeError(String ) case ParseTransactionError(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeBitcoinTransactionError: FfiConverterRustBuffer { typealias SwiftType = BitcoinTransactionError @@ -11404,31 +12627,42 @@ public struct FfiConverterTypeBitcoinTransactionError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> BitcoinTransactionError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .HexDecodeError( - FfiConverterString.read(from: &buf) - ) - case 2: return try .ParseTransactionError( - FfiConverterString.read(from: &buf) + + + + case 1: return .HexDecodeError( + try FfiConverterString.read(from: &buf) + ) + case 2: return .ParseTransactionError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: BitcoinTransactionError, into buf: inout [UInt8]) { switch value { + + + + + case let .HexDecodeError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .ParseTransactionError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension BitcoinTransactionError: Equatable, Hashable {} extension BitcoinTransactionError: Foundation.LocalizedError { @@ -11441,11 +12675,13 @@ extension BitcoinTransactionError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ColdWalletRoute { + case qrCode } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeColdWalletRoute: FfiConverterRustBuffer { typealias SwiftType = ColdWalletRoute @@ -11453,47 +12689,58 @@ public struct FfiConverterTypeColdWalletRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ColdWalletRoute { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .qrCode - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ColdWalletRoute, into buf: inout [UInt8]) { switch value { + + case .qrCode: writeInt(&buf, Int32(1)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeColdWalletRoute_lift(_ buf: RustBuffer) throws -> ColdWalletRoute { - try FfiConverterTypeColdWalletRoute.lift(buf) + return try FfiConverterTypeColdWalletRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeColdWalletRoute_lower(_ value: ColdWalletRoute) -> RustBuffer { - FfiConverterTypeColdWalletRoute.lower(value) + return FfiConverterTypeColdWalletRoute.lower(value) } + + extension ColdWalletRoute: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ColorSchemeSelection { + case light case dark case system } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeColorSchemeSelection: FfiConverterRustBuffer { typealias SwiftType = ColorSchemeSelection @@ -11501,53 +12748,69 @@ public struct FfiConverterTypeColorSchemeSelection: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ColorSchemeSelection { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .light - + case 2: return .dark - + case 3: return .system - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ColorSchemeSelection, into buf: inout [UInt8]) { switch value { + + case .light: writeInt(&buf, Int32(1)) - + + case .dark: writeInt(&buf, Int32(2)) - + + case .system: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeColorSchemeSelection_lift(_ buf: RustBuffer) throws -> ColorSchemeSelection { - try FfiConverterTypeColorSchemeSelection.lift(buf) + return try FfiConverterTypeColorSchemeSelection.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeColorSchemeSelection_lower(_ value: ColorSchemeSelection) -> RustBuffer { - FfiConverterTypeColorSchemeSelection.lower(value) + return FfiConverterTypeColorSchemeSelection.lower(value) } + + extension ColorSchemeSelection: Equatable, Hashable {} + + + public enum ConfirmDetailsError { + + + case QrCodeCreation(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeConfirmDetailsError: FfiConverterRustBuffer { typealias SwiftType = ConfirmDetailsError @@ -11555,23 +12818,34 @@ public struct FfiConverterTypeConfirmDetailsError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ConfirmDetailsError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .QrCodeCreation( - FfiConverterString.read(from: &buf) + + + + + case 1: return .QrCodeCreation( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ConfirmDetailsError, into buf: inout [UInt8]) { switch value { + + + + + case let .QrCodeCreation(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) + } } } + extension ConfirmDetailsError: Equatable, Hashable {} extension ConfirmDetailsError: Foundation.LocalizedError { @@ -11580,7 +12854,11 @@ extension ConfirmDetailsError: Foundation.LocalizedError { } } + public enum DatabaseError { + + + case DatabaseAccess(String ) case TableAccess(String @@ -11599,8 +12877,9 @@ public enum DatabaseError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeDatabaseError: FfiConverterRustBuffer { typealias SwiftType = DatabaseError @@ -11608,71 +12887,90 @@ public struct FfiConverterTypeDatabaseError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DatabaseError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .DatabaseAccess( - FfiConverterString.read(from: &buf) + + + + + case 1: return .DatabaseAccess( + try FfiConverterString.read(from: &buf) ) - case 2: return try .TableAccess( - FfiConverterString.read(from: &buf) + case 2: return .TableAccess( + try FfiConverterString.read(from: &buf) ) - case 3: return try .Wallets( - FfiConverterTypeWalletTableError.read(from: &buf) + case 3: return .Wallets( + try FfiConverterTypeWalletTableError.read(from: &buf) ) - case 4: return try .GlobalFlag( - FfiConverterTypeGlobalFlagTableError.read(from: &buf) + case 4: return .GlobalFlag( + try FfiConverterTypeGlobalFlagTableError.read(from: &buf) ) - case 5: return try .GlobalConfig( - FfiConverterTypeGlobalConfigTableError.read(from: &buf) + case 5: return .GlobalConfig( + try FfiConverterTypeGlobalConfigTableError.read(from: &buf) ) - case 6: return try .GlobalCache( - FfiConverterTypeGlobalCacheTableError.read(from: &buf) + case 6: return .GlobalCache( + try FfiConverterTypeGlobalCacheTableError.read(from: &buf) ) - case 7: return try .UnsignedTransactions( - FfiConverterTypeUnsignedTransactionsTableError.read(from: &buf) + case 7: return .UnsignedTransactions( + try FfiConverterTypeUnsignedTransactionsTableError.read(from: &buf) ) - case 8: return try .Serialization( - FfiConverterTypeSerdeError.read(from: &buf) + case 8: return .Serialization( + try FfiConverterTypeSerdeError.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: DatabaseError, into buf: inout [UInt8]) { switch value { + + + + + case let .DatabaseAccess(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .TableAccess(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .Wallets(v1): writeInt(&buf, Int32(3)) FfiConverterTypeWalletTableError.write(v1, into: &buf) - + + case let .GlobalFlag(v1): writeInt(&buf, Int32(4)) FfiConverterTypeGlobalFlagTableError.write(v1, into: &buf) - + + case let .GlobalConfig(v1): writeInt(&buf, Int32(5)) FfiConverterTypeGlobalConfigTableError.write(v1, into: &buf) - + + case let .GlobalCache(v1): writeInt(&buf, Int32(6)) FfiConverterTypeGlobalCacheTableError.write(v1, into: &buf) - + + case let .UnsignedTransactions(v1): writeInt(&buf, Int32(7)) FfiConverterTypeUnsignedTransactionsTableError.write(v1, into: &buf) - + + case let .Serialization(v1): writeInt(&buf, Int32(8)) FfiConverterTypeSerdeError.write(v1, into: &buf) + } } } + extension DatabaseError: Equatable, Hashable {} extension DatabaseError: Foundation.LocalizedError { @@ -11681,7 +12979,11 @@ extension DatabaseError: Foundation.LocalizedError { } } + public enum DescriptorError { + + + case InvalidDescriptor(String ) case MissingKeys @@ -11702,8 +13004,9 @@ public enum DescriptorError { case SinglePubkeyNotSupported } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeDescriptorError: FfiConverterRustBuffer { typealias SwiftType = DescriptorError @@ -11711,82 +13014,106 @@ public struct FfiConverterTypeDescriptorError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DescriptorError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .InvalidDescriptor( - FfiConverterString.read(from: &buf) + + + + + case 1: return .InvalidDescriptor( + try FfiConverterString.read(from: &buf) ) case 2: return .MissingKeys - case 3: return try .TooManyKeys( - FfiConverterUInt32.read(from: &buf) + case 3: return .TooManyKeys( + try FfiConverterUInt32.read(from: &buf) ) - case 4: return try .InvalidDescriptorParse( - FfiConverterString.read(from: &buf) + case 4: return .InvalidDescriptorParse( + try FfiConverterString.read(from: &buf) ) case 5: return .MissingDescriptor case 6: return .MissingXpub case 7: return .MissingDerivationPath case 8: return .MissingScriptType case 9: return .MissingFingerprint - case 10: return try .InvalidXpub( - FfiConverterString.read(from: &buf) + case 10: return .InvalidXpub( + try FfiConverterString.read(from: &buf) ) - case 11: return try .UnableToParseXpub( - FfiConverterString.read(from: &buf) + case 11: return .UnableToParseXpub( + try FfiConverterString.read(from: &buf) ) case 12: return .NoXpubInDescriptor case 13: return .SinglePubkeyNotSupported - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: DescriptorError, into buf: inout [UInt8]) { switch value { + + + + + case let .InvalidDescriptor(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case .MissingKeys: writeInt(&buf, Int32(2)) - + + case let .TooManyKeys(v1): writeInt(&buf, Int32(3)) FfiConverterUInt32.write(v1, into: &buf) - + + case let .InvalidDescriptorParse(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case .MissingDescriptor: writeInt(&buf, Int32(5)) - + + case .MissingXpub: writeInt(&buf, Int32(6)) - + + case .MissingDerivationPath: writeInt(&buf, Int32(7)) - + + case .MissingScriptType: writeInt(&buf, Int32(8)) - + + case .MissingFingerprint: writeInt(&buf, Int32(9)) - + + case let .InvalidXpub(v1): writeInt(&buf, Int32(10)) FfiConverterString.write(v1, into: &buf) - + + case let .UnableToParseXpub(v1): writeInt(&buf, Int32(11)) FfiConverterString.write(v1, into: &buf) - + + case .NoXpubInDescriptor: writeInt(&buf, Int32(12)) - + + case .SinglePubkeyNotSupported: writeInt(&buf, Int32(13)) + } } } + extension DescriptorError: Equatable, Hashable {} extension DescriptorError: Foundation.LocalizedError { @@ -11799,19 +13126,22 @@ extension DescriptorError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum DiscoveryState { + case single case startedJson(FoundJson ) case startedMnemonic - case foundAddressesFromJson([FoundAddress], FoundJson) + case foundAddressesFromJson([FoundAddress],FoundJson + ) case foundAddressesFromMnemonic([FoundAddress] ) case noneFound case choseAdressType } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeDiscoveryState: FfiConverterRustBuffer { typealias SwiftType = DiscoveryState @@ -11819,81 +13149,98 @@ public struct FfiConverterTypeDiscoveryState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> DiscoveryState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .single - - case 2: return try .startedJson(FfiConverterTypeFoundJson.read(from: &buf) - ) - + + case 2: return .startedJson(try FfiConverterTypeFoundJson.read(from: &buf) + ) + case 3: return .startedMnemonic - - case 4: return try .foundAddressesFromJson(FfiConverterSequenceTypeFoundAddress.read(from: &buf), FfiConverterTypeFoundJson.read(from: &buf)) - - case 5: return try .foundAddressesFromMnemonic(FfiConverterSequenceTypeFoundAddress.read(from: &buf) - ) - + + case 4: return .foundAddressesFromJson(try FfiConverterSequenceTypeFoundAddress.read(from: &buf), try FfiConverterTypeFoundJson.read(from: &buf) + ) + + case 5: return .foundAddressesFromMnemonic(try FfiConverterSequenceTypeFoundAddress.read(from: &buf) + ) + case 6: return .noneFound - + case 7: return .choseAdressType - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: DiscoveryState, into buf: inout [UInt8]) { switch value { + + case .single: writeInt(&buf, Int32(1)) - + + case let .startedJson(v1): writeInt(&buf, Int32(2)) FfiConverterTypeFoundJson.write(v1, into: &buf) - + + case .startedMnemonic: writeInt(&buf, Int32(3)) - - case let .foundAddressesFromJson(v1, v2): + + + case let .foundAddressesFromJson(v1,v2): writeInt(&buf, Int32(4)) FfiConverterSequenceTypeFoundAddress.write(v1, into: &buf) FfiConverterTypeFoundJson.write(v2, into: &buf) - + + case let .foundAddressesFromMnemonic(v1): writeInt(&buf, Int32(5)) FfiConverterSequenceTypeFoundAddress.write(v1, into: &buf) - + + case .noneFound: writeInt(&buf, Int32(6)) - + + case .choseAdressType: writeInt(&buf, Int32(7)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeDiscoveryState_lift(_ buf: RustBuffer) throws -> DiscoveryState { - try FfiConverterTypeDiscoveryState.lift(buf) + return try FfiConverterTypeDiscoveryState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeDiscoveryState_lower(_ value: DiscoveryState) -> RustBuffer { - FfiConverterTypeDiscoveryState.lower(value) + return FfiConverterTypeDiscoveryState.lower(value) } + + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FeeSpeed { + case fast case medium case slow } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFeeSpeed: FfiConverterRustBuffer { typealias SwiftType = FeeSpeed @@ -11901,50 +13248,62 @@ public struct FfiConverterTypeFeeSpeed: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FeeSpeed { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .fast - + case 2: return .medium - + case 3: return .slow - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FeeSpeed, into buf: inout [UInt8]) { switch value { + + case .fast: writeInt(&buf, Int32(1)) - + + case .medium: writeInt(&buf, Int32(2)) - + + case .slow: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeSpeed_lift(_ buf: RustBuffer) throws -> FeeSpeed { - try FfiConverterTypeFeeSpeed.lift(buf) + return try FfiConverterTypeFeeSpeed.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFeeSpeed_lower(_ value: FeeSpeed) -> RustBuffer { - FfiConverterTypeFeeSpeed.lower(value) + return FfiConverterTypeFeeSpeed.lower(value) } + + extension FeeSpeed: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FfiColor { + case red(FfiOpacity ) case blue(FfiOpacity @@ -11967,11 +13326,13 @@ public enum FfiColor { ) case coolGray(FfiOpacity ) - case custom(Rgb, FfiOpacity) + case custom(Rgb,FfiOpacity + ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiColor: FfiConverterRustBuffer { typealias SwiftType = FfiColor @@ -11979,125 +13340,148 @@ public struct FfiConverterTypeFfiColor: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiColor { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .red(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 2: return try .blue(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 3: return try .green(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 4: return try .yellow(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 5: return try .orange(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 6: return try .purple(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 7: return try .pink(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 8: return try .white(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 9: return try .black(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 10: return try .gray(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 11: return try .coolGray(FfiConverterTypeFfiOpacity.read(from: &buf) - ) - - case 12: return try .custom(FfiConverterTypeRgb.read(from: &buf), FfiConverterTypeFfiOpacity.read(from: &buf)) - + + case 1: return .red(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 2: return .blue(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 3: return .green(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 4: return .yellow(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 5: return .orange(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 6: return .purple(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 7: return .pink(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 8: return .white(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 9: return .black(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 10: return .gray(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 11: return .coolGray(try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + + case 12: return .custom(try FfiConverterTypeRgb.read(from: &buf), try FfiConverterTypeFfiOpacity.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FfiColor, into buf: inout [UInt8]) { switch value { + + case let .red(v1): writeInt(&buf, Int32(1)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .blue(v1): writeInt(&buf, Int32(2)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .green(v1): writeInt(&buf, Int32(3)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .yellow(v1): writeInt(&buf, Int32(4)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .orange(v1): writeInt(&buf, Int32(5)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .purple(v1): writeInt(&buf, Int32(6)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .pink(v1): writeInt(&buf, Int32(7)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .white(v1): writeInt(&buf, Int32(8)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .black(v1): writeInt(&buf, Int32(9)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .gray(v1): writeInt(&buf, Int32(10)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - + + case let .coolGray(v1): writeInt(&buf, Int32(11)) FfiConverterTypeFfiOpacity.write(v1, into: &buf) - - case let .custom(v1, v2): + + + case let .custom(v1,v2): writeInt(&buf, Int32(12)) FfiConverterTypeRgb.write(v1, into: &buf) FfiConverterTypeFfiOpacity.write(v2, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiColor_lift(_ buf: RustBuffer) throws -> FfiColor { - try FfiConverterTypeFfiColor.lift(buf) + return try FfiConverterTypeFfiColor.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiColor_lower(_ value: FfiColor) -> RustBuffer { - FfiConverterTypeFfiColor.lower(value) + return FfiConverterTypeFfiColor.lower(value) } + + extension FfiColor: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FfiColorScheme { + case light case dark } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiColorScheme: FfiConverterRustBuffer { typealias SwiftType = FfiColorScheme @@ -12105,42 +13489,56 @@ public struct FfiConverterTypeFfiColorScheme: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiColorScheme { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .light - + case 2: return .dark - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FfiColorScheme, into buf: inout [UInt8]) { switch value { + + case .light: writeInt(&buf, Int32(1)) - + + case .dark: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiColorScheme_lift(_ buf: RustBuffer) throws -> FfiColorScheme { - try FfiConverterTypeFfiColorScheme.lift(buf) + return try FfiConverterTypeFfiColorScheme.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiColorScheme_lower(_ value: FfiColorScheme) -> RustBuffer { - FfiConverterTypeFfiColorScheme.lower(value) + return FfiConverterTypeFfiColorScheme.lower(value) } + + extension FfiColorScheme: Equatable, Hashable {} + + + public enum FiatAmountError { + + + /** * Unable to convert to fiat amount, prices client unavailable {0} */ @@ -12148,8 +13546,9 @@ public enum FiatAmountError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatAmountError: FfiConverterRustBuffer { typealias SwiftType = FiatAmountError @@ -12157,23 +13556,34 @@ public struct FfiConverterTypeFiatAmountError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatAmountError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .PricesUnavailable( - FfiConverterString.read(from: &buf) + + + + + case 1: return .PricesUnavailable( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FiatAmountError, into buf: inout [UInt8]) { switch value { + + + + + case let .PricesUnavailable(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) + } } } + extension FiatAmountError: Equatable, Hashable {} extension FiatAmountError: Foundation.LocalizedError { @@ -12186,6 +13596,7 @@ extension FiatAmountError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FiatCurrency { + case usd case eur case gbp @@ -12195,8 +13606,9 @@ public enum FiatCurrency { case jpy } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatCurrency: FfiConverterRustBuffer { typealias SwiftType = FiatCurrency @@ -12204,76 +13616,93 @@ public struct FfiConverterTypeFiatCurrency: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatCurrency { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .usd - + case 2: return .eur - + case 3: return .gbp - + case 4: return .cad - + case 5: return .chf - + case 6: return .aud - + case 7: return .jpy - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FiatCurrency, into buf: inout [UInt8]) { switch value { + + case .usd: writeInt(&buf, Int32(1)) - + + case .eur: writeInt(&buf, Int32(2)) - + + case .gbp: writeInt(&buf, Int32(3)) - + + case .cad: writeInt(&buf, Int32(4)) - + + case .chf: writeInt(&buf, Int32(5)) - + + case .aud: writeInt(&buf, Int32(6)) - + + case .jpy: writeInt(&buf, Int32(7)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatCurrency_lift(_ buf: RustBuffer) throws -> FiatCurrency { - try FfiConverterTypeFiatCurrency.lift(buf) + return try FfiConverterTypeFiatCurrency.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatCurrency_lower(_ value: FiatCurrency) -> RustBuffer { - FfiConverterTypeFiatCurrency.lower(value) + return FfiConverterTypeFiatCurrency.lower(value) } + + extension FiatCurrency: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum FiatOrBtc { + case btc case fiat } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFiatOrBtc: FfiConverterRustBuffer { typealias SwiftType = FiatOrBtc @@ -12281,42 +13710,56 @@ public struct FfiConverterTypeFiatOrBtc: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FiatOrBtc { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .btc - + case 2: return .fiat - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FiatOrBtc, into buf: inout [UInt8]) { switch value { + + case .btc: writeInt(&buf, Int32(1)) - + + case .fiat: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatOrBtc_lift(_ buf: RustBuffer) throws -> FiatOrBtc { - try FfiConverterTypeFiatOrBtc.lift(buf) + return try FfiConverterTypeFiatOrBtc.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFiatOrBtc_lower(_ value: FiatOrBtc) -> RustBuffer { - FfiConverterTypeFiatOrBtc.lower(value) + return FfiConverterTypeFiatOrBtc.lower(value) } + + extension FiatOrBtc: Equatable, Hashable {} + + + public enum FileHandlerError { + + + /** * File not found */ @@ -12338,8 +13781,9 @@ public enum FileHandlerError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFileHandlerError: FfiConverterRustBuffer { typealias SwiftType = FileHandlerError @@ -12347,40 +13791,55 @@ public struct FfiConverterTypeFileHandlerError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FileHandlerError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .FileNotFound - case 2: return try .OpenFile( - FfiConverterString.read(from: &buf) + case 2: return .OpenFile( + try FfiConverterString.read(from: &buf) ) - case 3: return try .ReadFile( - FfiConverterString.read(from: &buf) + case 3: return .ReadFile( + try FfiConverterString.read(from: &buf) ) - case 4: return try .NotRecognizedFormat( - FfiConverterTypeMultiFormatError.read(from: &buf) + case 4: return .NotRecognizedFormat( + try FfiConverterTypeMultiFormatError.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FileHandlerError, into buf: inout [UInt8]) { switch value { + + + + + case .FileNotFound: writeInt(&buf, Int32(1)) - + + case let .OpenFile(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .ReadFile(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .NotRecognizedFormat(v1): writeInt(&buf, Int32(4)) FfiConverterTypeMultiFormatError.write(v1, into: &buf) + } } } + extension FileHandlerError: Equatable, Hashable {} extension FileHandlerError: Foundation.LocalizedError { @@ -12389,12 +13848,17 @@ extension FileHandlerError: Foundation.LocalizedError { } } + public enum FingerprintError { + + + case WalletNotFound } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFingerprintError: FfiConverterRustBuffer { typealias SwiftType = FingerprintError @@ -12402,20 +13866,31 @@ public struct FfiConverterTypeFingerprintError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FingerprintError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .WalletNotFound - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: FingerprintError, into buf: inout [UInt8]) { switch value { + + + + + case .WalletNotFound: writeInt(&buf, Int32(1)) + } } } + extension FingerprintError: Equatable, Hashable {} extension FingerprintError: Foundation.LocalizedError { @@ -12424,15 +13899,20 @@ extension FingerprintError: Foundation.LocalizedError { } } + public enum GlobalCacheTableError { + + + case Save(String ) case Read(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalCacheTableError: FfiConverterRustBuffer { typealias SwiftType = GlobalCacheTableError @@ -12440,31 +13920,42 @@ public struct FfiConverterTypeGlobalCacheTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalCacheTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Save( - FfiConverterString.read(from: &buf) - ) - case 2: return try .Read( - FfiConverterString.read(from: &buf) + + + + case 1: return .Save( + try FfiConverterString.read(from: &buf) + ) + case 2: return .Read( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalCacheTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension GlobalCacheTableError: Equatable, Hashable {} extension GlobalCacheTableError: Foundation.LocalizedError { @@ -12477,6 +13968,7 @@ extension GlobalCacheTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum GlobalConfigKey { + case selectedWalletId case selectedNetwork case selectedNode(Network @@ -12484,8 +13976,9 @@ public enum GlobalConfigKey { case colorScheme } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalConfigKey: FfiConverterRustBuffer { typealias SwiftType = GlobalConfigKey @@ -12493,62 +13986,79 @@ public struct FfiConverterTypeGlobalConfigKey: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalConfigKey { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .selectedWalletId - + case 2: return .selectedNetwork - - case 3: return try .selectedNode(FfiConverterTypeNetwork.read(from: &buf) - ) - + + case 3: return .selectedNode(try FfiConverterTypeNetwork.read(from: &buf) + ) + case 4: return .colorScheme - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalConfigKey, into buf: inout [UInt8]) { switch value { + + case .selectedWalletId: writeInt(&buf, Int32(1)) - + + case .selectedNetwork: writeInt(&buf, Int32(2)) - + + case let .selectedNode(v1): writeInt(&buf, Int32(3)) FfiConverterTypeNetwork.write(v1, into: &buf) - + + case .colorScheme: writeInt(&buf, Int32(4)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigKey_lift(_ buf: RustBuffer) throws -> GlobalConfigKey { - try FfiConverterTypeGlobalConfigKey.lift(buf) + return try FfiConverterTypeGlobalConfigKey.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalConfigKey_lower(_ value: GlobalConfigKey) -> RustBuffer { - FfiConverterTypeGlobalConfigKey.lower(value) + return FfiConverterTypeGlobalConfigKey.lower(value) } + + extension GlobalConfigKey: Equatable, Hashable {} + + + public enum GlobalConfigTableError { + + + case Save(String ) case Read(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalConfigTableError: FfiConverterRustBuffer { typealias SwiftType = GlobalConfigTableError @@ -12556,31 +14066,42 @@ public struct FfiConverterTypeGlobalConfigTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalConfigTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Save( - FfiConverterString.read(from: &buf) - ) - case 2: return try .Read( - FfiConverterString.read(from: &buf) + + + + case 1: return .Save( + try FfiConverterString.read(from: &buf) + ) + case 2: return .Read( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalConfigTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension GlobalConfigTableError: Equatable, Hashable {} extension GlobalConfigTableError: Foundation.LocalizedError { @@ -12593,11 +14114,13 @@ extension GlobalConfigTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum GlobalFlagKey { + case completedOnboarding } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalFlagKey: FfiConverterRustBuffer { typealias SwiftType = GlobalFlagKey @@ -12605,45 +14128,59 @@ public struct FfiConverterTypeGlobalFlagKey: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalFlagKey { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .completedOnboarding - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalFlagKey, into buf: inout [UInt8]) { switch value { + + case .completedOnboarding: writeInt(&buf, Int32(1)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagKey_lift(_ buf: RustBuffer) throws -> GlobalFlagKey { - try FfiConverterTypeGlobalFlagKey.lift(buf) + return try FfiConverterTypeGlobalFlagKey.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeGlobalFlagKey_lower(_ value: GlobalFlagKey) -> RustBuffer { - FfiConverterTypeGlobalFlagKey.lower(value) + return FfiConverterTypeGlobalFlagKey.lower(value) } + + extension GlobalFlagKey: Equatable, Hashable {} + + + public enum GlobalFlagTableError { + + + case Save(String ) case Read(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeGlobalFlagTableError: FfiConverterRustBuffer { typealias SwiftType = GlobalFlagTableError @@ -12651,31 +14188,42 @@ public struct FfiConverterTypeGlobalFlagTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> GlobalFlagTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Save( - FfiConverterString.read(from: &buf) - ) - case 2: return try .Read( - FfiConverterString.read(from: &buf) + + + + case 1: return .Save( + try FfiConverterString.read(from: &buf) + ) + case 2: return .Read( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: GlobalFlagTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension GlobalFlagTableError: Equatable, Hashable {} extension GlobalFlagTableError: Foundation.LocalizedError { @@ -12688,16 +14236,19 @@ extension GlobalFlagTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum HotWalletRoute { + case select case create(NumberOfBip39Words ) - case `import`(NumberOfBip39Words, ImportType) + case `import`(NumberOfBip39Words,ImportType + ) case verifyWords(WalletId ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeHotWalletRoute: FfiConverterRustBuffer { typealias SwiftType = HotWalletRoute @@ -12705,68 +14256,83 @@ public struct FfiConverterTypeHotWalletRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> HotWalletRoute { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .select - - case 2: return try .create(FfiConverterTypeNumberOfBip39Words.read(from: &buf) - ) - - case 3: return try .import(FfiConverterTypeNumberOfBip39Words.read(from: &buf), FfiConverterTypeImportType.read(from: &buf)) - - case 4: return try .verifyWords(FfiConverterTypeWalletId.read(from: &buf) - ) - + + case 2: return .create(try FfiConverterTypeNumberOfBip39Words.read(from: &buf) + ) + + case 3: return .`import`(try FfiConverterTypeNumberOfBip39Words.read(from: &buf), try FfiConverterTypeImportType.read(from: &buf) + ) + + case 4: return .verifyWords(try FfiConverterTypeWalletId.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: HotWalletRoute, into buf: inout [UInt8]) { switch value { + + case .select: writeInt(&buf, Int32(1)) - + + case let .create(v1): writeInt(&buf, Int32(2)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) - - case let .import(v1, v2): + + + case let .`import`(v1,v2): writeInt(&buf, Int32(3)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) FfiConverterTypeImportType.write(v2, into: &buf) - + + case let .verifyWords(v1): writeInt(&buf, Int32(4)) FfiConverterTypeWalletId.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHotWalletRoute_lift(_ buf: RustBuffer) throws -> HotWalletRoute { - try FfiConverterTypeHotWalletRoute.lift(buf) + return try FfiConverterTypeHotWalletRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeHotWalletRoute_lower(_ value: HotWalletRoute) -> RustBuffer { - FfiConverterTypeHotWalletRoute.lower(value) + return FfiConverterTypeHotWalletRoute.lower(value) } + + extension HotWalletRoute: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ImportType { + case manual case nfc case qr } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportType: FfiConverterRustBuffer { typealias SwiftType = ImportType @@ -12774,47 +14340,62 @@ public struct FfiConverterTypeImportType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .manual - + case 2: return .nfc - + case 3: return .qr - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportType, into buf: inout [UInt8]) { switch value { + + case .manual: writeInt(&buf, Int32(1)) - + + case .nfc: writeInt(&buf, Int32(2)) - + + case .qr: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportType_lift(_ buf: RustBuffer) throws -> ImportType { - try FfiConverterTypeImportType.lift(buf) + return try FfiConverterTypeImportType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportType_lower(_ value: ImportType) -> RustBuffer { - FfiConverterTypeImportType.lower(value) + return FfiConverterTypeImportType.lower(value) } + + extension ImportType: Equatable, Hashable {} + + + public enum ImportWalletError { + + + case WalletImportError(String ) case InvalidWordGroup(String @@ -12829,8 +14410,9 @@ public enum ImportWalletError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletError: FfiConverterRustBuffer { typealias SwiftType = ImportWalletError @@ -12838,57 +14420,74 @@ public struct FfiConverterTypeImportWalletError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .WalletImportError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .WalletImportError( + try FfiConverterString.read(from: &buf) ) - case 2: return try .InvalidWordGroup( - FfiConverterString.read(from: &buf) + case 2: return .InvalidWordGroup( + try FfiConverterString.read(from: &buf) ) - case 3: return try .KeychainError( - FfiConverterTypeKeychainError.read(from: &buf) + case 3: return .KeychainError( + try FfiConverterTypeKeychainError.read(from: &buf) ) - case 4: return try .WalletAlreadyExists( - FfiConverterTypeWalletId.read(from: &buf) + case 4: return .WalletAlreadyExists( + try FfiConverterTypeWalletId.read(from: &buf) ) - case 5: return try .DatabaseError( - FfiConverterTypeDatabaseError.read(from: &buf) + case 5: return .DatabaseError( + try FfiConverterTypeDatabaseError.read(from: &buf) ) - case 6: return try .BdkError( - FfiConverterString.read(from: &buf) + case 6: return .BdkError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportWalletError, into buf: inout [UInt8]) { switch value { + + + + + case let .WalletImportError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .InvalidWordGroup(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .KeychainError(v1): writeInt(&buf, Int32(3)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .WalletAlreadyExists(v1): writeInt(&buf, Int32(4)) FfiConverterTypeWalletId.write(v1, into: &buf) - + + case let .DatabaseError(v1): writeInt(&buf, Int32(5)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - + + case let .BdkError(v1): writeInt(&buf, Int32(6)) FfiConverterString.write(v1, into: &buf) + } } } + extension ImportWalletError: Equatable, Hashable {} extension ImportWalletError: Foundation.LocalizedError { @@ -12901,11 +14500,13 @@ extension ImportWalletError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ImportWalletViewModelAction { + case noOp } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletViewModelAction: FfiConverterRustBuffer { typealias SwiftType = ImportWalletViewModelAction @@ -12913,45 +14514,56 @@ public struct FfiConverterTypeImportWalletViewModelAction: FfiConverterRustBuffe public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelAction { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .noOp - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportWalletViewModelAction, into buf: inout [UInt8]) { switch value { + + case .noOp: writeInt(&buf, Int32(1)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelAction_lift(_ buf: RustBuffer) throws -> ImportWalletViewModelAction { - try FfiConverterTypeImportWalletViewModelAction.lift(buf) + return try FfiConverterTypeImportWalletViewModelAction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelAction_lower(_ value: ImportWalletViewModelAction) -> RustBuffer { - FfiConverterTypeImportWalletViewModelAction.lower(value) + return FfiConverterTypeImportWalletViewModelAction.lower(value) } + + extension ImportWalletViewModelAction: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ImportWalletViewModelReconcileMessage { + case noOp } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeImportWalletViewModelReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = ImportWalletViewModelReconcileMessage @@ -12959,37 +14571,50 @@ public struct FfiConverterTypeImportWalletViewModelReconcileMessage: FfiConverte public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ImportWalletViewModelReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .noOp - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ImportWalletViewModelReconcileMessage, into buf: inout [UInt8]) { switch value { + + case .noOp: writeInt(&buf, Int32(1)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelReconcileMessage_lift(_ buf: RustBuffer) throws -> ImportWalletViewModelReconcileMessage { - try FfiConverterTypeImportWalletViewModelReconcileMessage.lift(buf) + return try FfiConverterTypeImportWalletViewModelReconcileMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeImportWalletViewModelReconcileMessage_lower(_ value: ImportWalletViewModelReconcileMessage) -> RustBuffer { - FfiConverterTypeImportWalletViewModelReconcileMessage.lower(value) + return FfiConverterTypeImportWalletViewModelReconcileMessage.lower(value) } + + extension ImportWalletViewModelReconcileMessage: Equatable, Hashable {} + + + public enum KeychainError { + + + case Save case Delete case ParseSavedValue(String @@ -13000,8 +14625,9 @@ public enum KeychainError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeKeychainError: FfiConverterRustBuffer { typealias SwiftType = KeychainError @@ -13009,44 +14635,60 @@ public struct FfiConverterTypeKeychainError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> KeychainError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .Save case 2: return .Delete - case 3: return try .ParseSavedValue( - FfiConverterString.read(from: &buf) + case 3: return .ParseSavedValue( + try FfiConverterString.read(from: &buf) ) - case 4: return try .Encrypt( - FfiConverterString.read(from: &buf) + case 4: return .Encrypt( + try FfiConverterString.read(from: &buf) ) - case 5: return try .Decrypt( - FfiConverterString.read(from: &buf) + case 5: return .Decrypt( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: KeychainError, into buf: inout [UInt8]) { switch value { + + + + + case .Save: writeInt(&buf, Int32(1)) - + + case .Delete: writeInt(&buf, Int32(2)) - + + case let .ParseSavedValue(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .Encrypt(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case let .Decrypt(v1): writeInt(&buf, Int32(5)) FfiConverterString.write(v1, into: &buf) + } } } + extension KeychainError: Equatable, Hashable {} extension KeychainError: Foundation.LocalizedError { @@ -13055,15 +14697,20 @@ extension KeychainError: Foundation.LocalizedError { } } + public enum MnemonicError { + + + case GetWalletKeychain(KeychainError ) case NotAvailable(WalletId ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMnemonicError: FfiConverterRustBuffer { typealias SwiftType = MnemonicError @@ -13071,31 +14718,42 @@ public struct FfiConverterTypeMnemonicError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MnemonicError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .GetWalletKeychain( - FfiConverterTypeKeychainError.read(from: &buf) - ) - case 2: return try .NotAvailable( - FfiConverterTypeWalletId.read(from: &buf) + + + + case 1: return .GetWalletKeychain( + try FfiConverterTypeKeychainError.read(from: &buf) + ) + case 2: return .NotAvailable( + try FfiConverterTypeWalletId.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MnemonicError, into buf: inout [UInt8]) { switch value { + + + + + case let .GetWalletKeychain(v1): writeInt(&buf, Int32(1)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .NotAvailable(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletId.write(v1, into: &buf) + } } } + extension MnemonicError: Equatable, Hashable {} extension MnemonicError: Foundation.LocalizedError { @@ -13104,12 +14762,18 @@ extension MnemonicError: Foundation.LocalizedError { } } + public enum MnemonicParseError { - case InvalidMnemonic(String, String) + + + + case InvalidMnemonic(String,String + ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMnemonicParseError: FfiConverterRustBuffer { typealias SwiftType = MnemonicParseError @@ -13117,25 +14781,36 @@ public struct FfiConverterTypeMnemonicParseError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MnemonicParseError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .InvalidMnemonic( - FfiConverterString.read(from: &buf), - FfiConverterString.read(from: &buf) + + + + + case 1: return .InvalidMnemonic( + try FfiConverterString.read(from: &buf), + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MnemonicParseError, into buf: inout [UInt8]) { switch value { - case let .InvalidMnemonic(v1, v2): + + + + + + case let .InvalidMnemonic(v1,v2): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) FfiConverterString.write(v2, into: &buf) + } } } + extension MnemonicParseError: Equatable, Hashable {} extension MnemonicParseError: Foundation.LocalizedError { @@ -13148,6 +14823,7 @@ extension MnemonicParseError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum MultiFormat { + case address(AddressWithNetwork ) case hardwareExport(HardwareExport @@ -13158,8 +14834,9 @@ public enum MultiFormat { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiFormat: FfiConverterRustBuffer { typealias SwiftType = MultiFormat @@ -13167,58 +14844,73 @@ public struct FfiConverterTypeMultiFormat: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiFormat { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .address(FfiConverterTypeAddressWithNetwork.read(from: &buf) - ) - - case 2: return try .hardwareExport(FfiConverterTypeHardwareExport.read(from: &buf) - ) - - case 3: return try .mnemonic(FfiConverterTypeMnemonic.read(from: &buf) - ) - - case 4: return try .transaction(FfiConverterTypeBitcoinTransaction.read(from: &buf) - ) - + + case 1: return .address(try FfiConverterTypeAddressWithNetwork.read(from: &buf) + ) + + case 2: return .hardwareExport(try FfiConverterTypeHardwareExport.read(from: &buf) + ) + + case 3: return .mnemonic(try FfiConverterTypeMnemonic.read(from: &buf) + ) + + case 4: return .transaction(try FfiConverterTypeBitcoinTransaction.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiFormat, into buf: inout [UInt8]) { switch value { + + case let .address(v1): writeInt(&buf, Int32(1)) FfiConverterTypeAddressWithNetwork.write(v1, into: &buf) - + + case let .hardwareExport(v1): writeInt(&buf, Int32(2)) FfiConverterTypeHardwareExport.write(v1, into: &buf) - + + case let .mnemonic(v1): writeInt(&buf, Int32(3)) FfiConverterTypeMnemonic.write(v1, into: &buf) - + + case let .transaction(v1): writeInt(&buf, Int32(4)) FfiConverterTypeBitcoinTransaction.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiFormat_lift(_ buf: RustBuffer) throws -> MultiFormat { - try FfiConverterTypeMultiFormat.lift(buf) + return try FfiConverterTypeMultiFormat.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiFormat_lower(_ value: MultiFormat) -> RustBuffer { - FfiConverterTypeMultiFormat.lower(value) + return FfiConverterTypeMultiFormat.lower(value) } + + + + public enum MultiFormatError { + + + case InvalidSeedQr(SeedQrError ) /** @@ -13231,8 +14923,9 @@ public enum MultiFormatError { case UnrecognizedFormat } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiFormatError: FfiConverterRustBuffer { typealias SwiftType = MultiFormatError @@ -13240,30 +14933,44 @@ public struct FfiConverterTypeMultiFormatError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiFormatError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .InvalidSeedQr( - FfiConverterTypeSeedQrError.read(from: &buf) + + + + + case 1: return .InvalidSeedQr( + try FfiConverterTypeSeedQrError.read(from: &buf) ) case 2: return .UnsupportedNetworkAddress case 3: return .UnrecognizedFormat - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiFormatError, into buf: inout [UInt8]) { switch value { + + + + + case let .InvalidSeedQr(v1): writeInt(&buf, Int32(1)) FfiConverterTypeSeedQrError.write(v1, into: &buf) - + + case .UnsupportedNetworkAddress: writeInt(&buf, Int32(2)) - + + case .UnrecognizedFormat: writeInt(&buf, Int32(3)) + } } } + extension MultiFormatError: Equatable, Hashable {} extension MultiFormatError: Foundation.LocalizedError { @@ -13272,7 +14979,11 @@ extension MultiFormatError: Foundation.LocalizedError { } } + public enum MultiQrError { + + + case CannotAddPartToSingleQr case CannotAddPartToSeedQr case ParseError(String @@ -13288,8 +14999,9 @@ public enum MultiQrError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiQrError: FfiConverterRustBuffer { typealias SwiftType = MultiQrError @@ -13297,63 +15009,83 @@ public struct FfiConverterTypeMultiQrError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiQrError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .CannotAddPartToSingleQr case 2: return .CannotAddPartToSeedQr - case 3: return try .ParseError( - FfiConverterString.read(from: &buf) + case 3: return .ParseError( + try FfiConverterString.read(from: &buf) ) case 4: return .InvalidUtf8 case 5: return .NotYetAvailable case 6: return .CannotAddBinaryDataToBbqr - case 7: return try .BbqrDidNotContainSeedWords( - FfiConverterString.read(from: &buf) + case 7: return .BbqrDidNotContainSeedWords( + try FfiConverterString.read(from: &buf) ) - case 8: return try .InvalidSeedQr( - FfiConverterTypeSeedQrError.read(from: &buf) + case 8: return .InvalidSeedQr( + try FfiConverterTypeSeedQrError.read(from: &buf) ) - case 9: return try .InvalidPlainTextQr( - FfiConverterString.read(from: &buf) + case 9: return .InvalidPlainTextQr( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiQrError, into buf: inout [UInt8]) { switch value { + + + + + case .CannotAddPartToSingleQr: writeInt(&buf, Int32(1)) - + + case .CannotAddPartToSeedQr: writeInt(&buf, Int32(2)) - + + case let .ParseError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case .InvalidUtf8: writeInt(&buf, Int32(4)) - + + case .NotYetAvailable: writeInt(&buf, Int32(5)) - + + case .CannotAddBinaryDataToBbqr: writeInt(&buf, Int32(6)) - + + case let .BbqrDidNotContainSeedWords(v1): writeInt(&buf, Int32(7)) FfiConverterString.write(v1, into: &buf) - + + case let .InvalidSeedQr(v1): writeInt(&buf, Int32(8)) FfiConverterTypeSeedQrError.write(v1, into: &buf) - + + case let .InvalidPlainTextQr(v1): writeInt(&buf, Int32(9)) FfiConverterString.write(v1, into: &buf) + } } } + extension MultiQrError: Equatable, Hashable {} extension MultiQrError: Foundation.LocalizedError { @@ -13366,6 +15098,7 @@ extension MultiQrError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum MultiQrScanResult { + case seedQr(SeedQr ) case single(String @@ -13376,8 +15109,9 @@ public enum MultiQrScanResult { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeMultiQrScanResult: FfiConverterRustBuffer { typealias SwiftType = MultiQrScanResult @@ -13385,69 +15119,82 @@ public struct FfiConverterTypeMultiQrScanResult: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> MultiQrScanResult { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .seedQr(FfiConverterTypeSeedQr.read(from: &buf) - ) - - case 2: return try .single(FfiConverterString.read(from: &buf) - ) - - case 3: return try .completedBBqr(FfiConverterTypeBbqrJoined.read(from: &buf) - ) - - case 4: return try .inProgressBBqr(FfiConverterUInt32.read(from: &buf) - ) - + + case 1: return .seedQr(try FfiConverterTypeSeedQr.read(from: &buf) + ) + + case 2: return .single(try FfiConverterString.read(from: &buf) + ) + + case 3: return .completedBBqr(try FfiConverterTypeBbqrJoined.read(from: &buf) + ) + + case 4: return .inProgressBBqr(try FfiConverterUInt32.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: MultiQrScanResult, into buf: inout [UInt8]) { switch value { + + case let .seedQr(v1): writeInt(&buf, Int32(1)) FfiConverterTypeSeedQr.write(v1, into: &buf) - + + case let .single(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .completedBBqr(v1): writeInt(&buf, Int32(3)) FfiConverterTypeBbqrJoined.write(v1, into: &buf) - + + case let .inProgressBBqr(v1): writeInt(&buf, Int32(4)) FfiConverterUInt32.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiQrScanResult_lift(_ buf: RustBuffer) throws -> MultiQrScanResult { - try FfiConverterTypeMultiQrScanResult.lift(buf) + return try FfiConverterTypeMultiQrScanResult.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeMultiQrScanResult_lower(_ value: MultiQrScanResult) -> RustBuffer { - FfiConverterTypeMultiQrScanResult.lower(value) + return FfiConverterTypeMultiQrScanResult.lower(value) } + + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NdefPayload { + case text(TextPayload ) case data(Data ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefPayload: FfiConverterRustBuffer { typealias SwiftType = NdefPayload @@ -13455,49 +15202,60 @@ public struct FfiConverterTypeNdefPayload: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefPayload { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .text(FfiConverterTypeTextPayload.read(from: &buf) - ) - - case 2: return try .data(FfiConverterData.read(from: &buf) - ) - + + case 1: return .text(try FfiConverterTypeTextPayload.read(from: &buf) + ) + + case 2: return .data(try FfiConverterData.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NdefPayload, into buf: inout [UInt8]) { switch value { + + case let .text(v1): writeInt(&buf, Int32(1)) FfiConverterTypeTextPayload.write(v1, into: &buf) - + + case let .data(v1): writeInt(&buf, Int32(2)) FfiConverterData.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefPayload_lift(_ buf: RustBuffer) throws -> NdefPayload { - try FfiConverterTypeNdefPayload.lift(buf) + return try FfiConverterTypeNdefPayload.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefPayload_lower(_ value: NdefPayload) -> RustBuffer { - FfiConverterTypeNdefPayload.lower(value) + return FfiConverterTypeNdefPayload.lower(value) } + + extension NdefPayload: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NdefType { + case empty case wellKnown case mime @@ -13508,8 +15266,9 @@ public enum NdefType { case reserved } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNdefType: FfiConverterRustBuffer { typealias SwiftType = NdefType @@ -13517,81 +15276,99 @@ public struct FfiConverterTypeNdefType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NdefType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .empty - + case 2: return .wellKnown - + case 3: return .mime - + case 4: return .absoluteUri - + case 5: return .external - + case 6: return .unknown - + case 7: return .unchanged - + case 8: return .reserved - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NdefType, into buf: inout [UInt8]) { switch value { + + case .empty: writeInt(&buf, Int32(1)) - + + case .wellKnown: writeInt(&buf, Int32(2)) - + + case .mime: writeInt(&buf, Int32(3)) - + + case .absoluteUri: writeInt(&buf, Int32(4)) - + + case .external: writeInt(&buf, Int32(5)) - + + case .unknown: writeInt(&buf, Int32(6)) - + + case .unchanged: writeInt(&buf, Int32(7)) - + + case .reserved: writeInt(&buf, Int32(8)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefType_lift(_ buf: RustBuffer) throws -> NdefType { - try FfiConverterTypeNdefType.lift(buf) + return try FfiConverterTypeNdefType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNdefType_lower(_ value: NdefType) -> RustBuffer { - FfiConverterTypeNdefType.lower(value) + return FfiConverterTypeNdefType.lower(value) } + + extension NdefType: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Network { + case bitcoin case testnet } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNetwork: FfiConverterRustBuffer { typealias SwiftType = Network @@ -13599,45 +15376,56 @@ public struct FfiConverterTypeNetwork: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Network { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .bitcoin - + case 2: return .testnet - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Network, into buf: inout [UInt8]) { switch value { + + case .bitcoin: writeInt(&buf, Int32(1)) - + + case .testnet: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNetwork_lift(_ buf: RustBuffer) throws -> Network { - try FfiConverterTypeNetwork.lift(buf) + return try FfiConverterTypeNetwork.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNetwork_lower(_ value: Network) -> RustBuffer { - FfiConverterTypeNetwork.lower(value) + return FfiConverterTypeNetwork.lower(value) } + + extension Network: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NewWalletRoute { + case select case hotWallet(HotWalletRoute ) @@ -13645,8 +15433,9 @@ public enum NewWalletRoute { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNewWalletRoute: FfiConverterRustBuffer { typealias SwiftType = NewWalletRoute @@ -13654,51 +15443,66 @@ public struct FfiConverterTypeNewWalletRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NewWalletRoute { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .select - - case 2: return try .hotWallet(FfiConverterTypeHotWalletRoute.read(from: &buf) - ) - - case 3: return try .coldWallet(FfiConverterTypeColdWalletRoute.read(from: &buf) - ) - + + case 2: return .hotWallet(try FfiConverterTypeHotWalletRoute.read(from: &buf) + ) + + case 3: return .coldWallet(try FfiConverterTypeColdWalletRoute.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NewWalletRoute, into buf: inout [UInt8]) { switch value { + + case .select: writeInt(&buf, Int32(1)) - + + case let .hotWallet(v1): writeInt(&buf, Int32(2)) FfiConverterTypeHotWalletRoute.write(v1, into: &buf) - + + case let .coldWallet(v1): writeInt(&buf, Int32(3)) FfiConverterTypeColdWalletRoute.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNewWalletRoute_lift(_ buf: RustBuffer) throws -> NewWalletRoute { - try FfiConverterTypeNewWalletRoute.lift(buf) + return try FfiConverterTypeNewWalletRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNewWalletRoute_lower(_ value: NewWalletRoute) -> RustBuffer { - FfiConverterTypeNewWalletRoute.lower(value) + return FfiConverterTypeNewWalletRoute.lower(value) } + + extension NewWalletRoute: Equatable, Hashable {} + + + public enum NfcReaderError { + + + /** * Error parsing the NDEF message */ @@ -13714,8 +15518,9 @@ public enum NfcReaderError { case AlreadyParsed } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNfcReaderError: FfiConverterRustBuffer { typealias SwiftType = NfcReaderError @@ -13723,30 +15528,44 @@ public struct FfiConverterTypeNfcReaderError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NfcReaderError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .ParsingError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .ParsingError( + try FfiConverterString.read(from: &buf) ) case 2: return .NotEnoughData case 3: return .AlreadyParsed - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NfcReaderError, into buf: inout [UInt8]) { switch value { + + + + + case let .ParsingError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case .NotEnoughData: writeInt(&buf, Int32(2)) - + + case .AlreadyParsed: writeInt(&buf, Int32(3)) + } } } + extension NfcReaderError: Equatable, Hashable {} extension NfcReaderError: Foundation.LocalizedError { @@ -13759,14 +15578,16 @@ extension NfcReaderError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NodeSelection { + case preset(Node ) case custom(Node ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNodeSelection: FfiConverterRustBuffer { typealias SwiftType = NodeSelection @@ -13774,46 +15595,60 @@ public struct FfiConverterTypeNodeSelection: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NodeSelection { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .preset(FfiConverterTypeNode.read(from: &buf) - ) - - case 2: return try .custom(FfiConverterTypeNode.read(from: &buf) - ) - + + case 1: return .preset(try FfiConverterTypeNode.read(from: &buf) + ) + + case 2: return .custom(try FfiConverterTypeNode.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NodeSelection, into buf: inout [UInt8]) { switch value { + + case let .preset(v1): writeInt(&buf, Int32(1)) FfiConverterTypeNode.write(v1, into: &buf) - + + case let .custom(v1): writeInt(&buf, Int32(2)) FfiConverterTypeNode.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelection_lift(_ buf: RustBuffer) throws -> NodeSelection { - try FfiConverterTypeNodeSelection.lift(buf) + return try FfiConverterTypeNodeSelection.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNodeSelection_lower(_ value: NodeSelection) -> RustBuffer { - FfiConverterTypeNodeSelection.lower(value) + return FfiConverterTypeNodeSelection.lower(value) } + + extension NodeSelection: Equatable, Hashable {} + + + public enum NodeSelectorError { + + + case NodeNotFound(String ) case SetSelectedNodeError(String @@ -13824,8 +15659,9 @@ public enum NodeSelectorError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNodeSelectorError: FfiConverterRustBuffer { typealias SwiftType = NodeSelectorError @@ -13833,43 +15669,58 @@ public struct FfiConverterTypeNodeSelectorError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NodeSelectorError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .NodeNotFound( - FfiConverterString.read(from: &buf) + + + + + case 1: return .NodeNotFound( + try FfiConverterString.read(from: &buf) ) - case 2: return try .SetSelectedNodeError( - FfiConverterString.read(from: &buf) + case 2: return .SetSelectedNodeError( + try FfiConverterString.read(from: &buf) ) - case 3: return try .NodeAccessError( - FfiConverterString.read(from: &buf) + case 3: return .NodeAccessError( + try FfiConverterString.read(from: &buf) ) - case 4: return try .ParseNodeUrlError( - FfiConverterString.read(from: &buf) + case 4: return .ParseNodeUrlError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NodeSelectorError, into buf: inout [UInt8]) { switch value { + + + + + case let .NodeNotFound(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .SetSelectedNodeError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .NodeAccessError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .ParseNodeUrlError(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) + } } } + extension NodeSelectorError: Equatable, Hashable {} extension NodeSelectorError: Foundation.LocalizedError { @@ -13882,12 +15733,14 @@ extension NodeSelectorError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum NumberOfBip39Words { + case twelve case twentyFour } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeNumberOfBip39Words: FfiConverterRustBuffer { typealias SwiftType = NumberOfBip39Words @@ -13895,49 +15748,61 @@ public struct FfiConverterTypeNumberOfBip39Words: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> NumberOfBip39Words { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .twelve - + case 2: return .twentyFour - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: NumberOfBip39Words, into buf: inout [UInt8]) { switch value { + + case .twelve: writeInt(&buf, Int32(1)) - + + case .twentyFour: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNumberOfBip39Words_lift(_ buf: RustBuffer) throws -> NumberOfBip39Words { - try FfiConverterTypeNumberOfBip39Words.lift(buf) + return try FfiConverterTypeNumberOfBip39Words.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeNumberOfBip39Words_lower(_ value: NumberOfBip39Words) -> RustBuffer { - FfiConverterTypeNumberOfBip39Words.lower(value) + return FfiConverterTypeNumberOfBip39Words.lower(value) } + + extension NumberOfBip39Words: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ParseResult { + /** * Completed The message is a NDEF message */ - case complete(MessageInfo, [NdefRecord]) + case complete(MessageInfo,[NdefRecord] + ) /** * Incomplete, need more data to parse the message */ @@ -13945,8 +15810,9 @@ public enum ParseResult { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeParseResult: FfiConverterRustBuffer { typealias SwiftType = ParseResult @@ -13954,57 +15820,70 @@ public struct FfiConverterTypeParseResult: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParseResult { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .complete(FfiConverterTypeMessageInfo.read(from: &buf), FfiConverterSequenceTypeNdefRecord.read(from: &buf)) - - case 2: return try .incomplete(FfiConverterTypeParsingMessage.read(from: &buf) - ) - + + case 1: return .complete(try FfiConverterTypeMessageInfo.read(from: &buf), try FfiConverterSequenceTypeNdefRecord.read(from: &buf) + ) + + case 2: return .incomplete(try FfiConverterTypeParsingMessage.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ParseResult, into buf: inout [UInt8]) { switch value { - case let .complete(v1, v2): + + + case let .complete(v1,v2): writeInt(&buf, Int32(1)) FfiConverterTypeMessageInfo.write(v1, into: &buf) FfiConverterSequenceTypeNdefRecord.write(v2, into: &buf) - + + case let .incomplete(v1): writeInt(&buf, Int32(2)) FfiConverterTypeParsingMessage.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParseResult_lift(_ buf: RustBuffer) throws -> ParseResult { - try FfiConverterTypeParseResult.lift(buf) + return try FfiConverterTypeParseResult.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParseResult_lower(_ value: ParseResult) -> RustBuffer { - FfiConverterTypeParseResult.lower(value) + return FfiConverterTypeParseResult.lower(value) } + + extension ParseResult: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ParserState { + case notStarted case parsing(ParsingContext ) case complete } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeParserState: FfiConverterRustBuffer { typealias SwiftType = ParserState @@ -14012,60 +15891,73 @@ public struct FfiConverterTypeParserState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ParserState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .notStarted - - case 2: return try .parsing(FfiConverterTypeParsingContext.read(from: &buf) - ) - + + case 2: return .parsing(try FfiConverterTypeParsingContext.read(from: &buf) + ) + case 3: return .complete - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ParserState, into buf: inout [UInt8]) { switch value { + + case .notStarted: writeInt(&buf, Int32(1)) - + + case let .parsing(v1): writeInt(&buf, Int32(2)) FfiConverterTypeParsingContext.write(v1, into: &buf) - + + case .complete: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParserState_lift(_ buf: RustBuffer) throws -> ParserState { - try FfiConverterTypeParserState.lift(buf) + return try FfiConverterTypeParserState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeParserState_lower(_ value: ParserState) -> RustBuffer { - FfiConverterTypeParserState.lower(value) + return FfiConverterTypeParserState.lower(value) } + + extension ParserState: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum PendingOrConfirmed { + case pending(PendingDetails ) case confirmed(ConfirmedDetails ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingOrConfirmed: FfiConverterRustBuffer { typealias SwiftType = PendingOrConfirmed @@ -14073,55 +15965,67 @@ public struct FfiConverterTypePendingOrConfirmed: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingOrConfirmed { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .pending(FfiConverterTypePendingDetails.read(from: &buf) - ) - - case 2: return try .confirmed(FfiConverterTypeConfirmedDetails.read(from: &buf) - ) - + + case 1: return .pending(try FfiConverterTypePendingDetails.read(from: &buf) + ) + + case 2: return .confirmed(try FfiConverterTypeConfirmedDetails.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingOrConfirmed, into buf: inout [UInt8]) { switch value { + + case let .pending(v1): writeInt(&buf, Int32(1)) FfiConverterTypePendingDetails.write(v1, into: &buf) - + + case let .confirmed(v1): writeInt(&buf, Int32(2)) FfiConverterTypeConfirmedDetails.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingOrConfirmed_lift(_ buf: RustBuffer) throws -> PendingOrConfirmed { - try FfiConverterTypePendingOrConfirmed.lift(buf) + return try FfiConverterTypePendingOrConfirmed.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingOrConfirmed_lower(_ value: PendingOrConfirmed) -> RustBuffer { - FfiConverterTypePendingOrConfirmed.lower(value) + return FfiConverterTypePendingOrConfirmed.lower(value) } + + extension PendingOrConfirmed: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum PendingWalletViewModelAction { + case updateWords(NumberOfBip39Words ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelAction: FfiConverterRustBuffer { typealias SwiftType = PendingWalletViewModelAction @@ -14129,47 +16033,61 @@ public struct FfiConverterTypePendingWalletViewModelAction: FfiConverterRustBuff public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelAction { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .updateWords(FfiConverterTypeNumberOfBip39Words.read(from: &buf) - ) - + + case 1: return .updateWords(try FfiConverterTypeNumberOfBip39Words.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingWalletViewModelAction, into buf: inout [UInt8]) { switch value { + + case let .updateWords(v1): writeInt(&buf, Int32(1)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelAction_lift(_ buf: RustBuffer) throws -> PendingWalletViewModelAction { - try FfiConverterTypePendingWalletViewModelAction.lift(buf) + return try FfiConverterTypePendingWalletViewModelAction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelAction_lower(_ value: PendingWalletViewModelAction) -> RustBuffer { - FfiConverterTypePendingWalletViewModelAction.lower(value) + return FfiConverterTypePendingWalletViewModelAction.lower(value) } + + extension PendingWalletViewModelAction: Equatable, Hashable {} + + + public enum PendingWalletViewModelError { + + + case BdkError(String ) case WalletCreationError(WalletCreationError ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelError: FfiConverterRustBuffer { typealias SwiftType = PendingWalletViewModelError @@ -14177,31 +16095,42 @@ public struct FfiConverterTypePendingWalletViewModelError: FfiConverterRustBuffe public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .BdkError( - FfiConverterString.read(from: &buf) - ) - case 2: return try .WalletCreationError( - FfiConverterTypeWalletCreationError.read(from: &buf) + + + + case 1: return .BdkError( + try FfiConverterString.read(from: &buf) + ) + case 2: return .WalletCreationError( + try FfiConverterTypeWalletCreationError.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingWalletViewModelError, into buf: inout [UInt8]) { switch value { + + + + + case let .BdkError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .WalletCreationError(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletCreationError.write(v1, into: &buf) + } } } + extension PendingWalletViewModelError: Equatable, Hashable {} extension PendingWalletViewModelError: Foundation.LocalizedError { @@ -14214,12 +16143,14 @@ extension PendingWalletViewModelError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum PendingWalletViewModelReconcileMessage { + case words(NumberOfBip39Words ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePendingWalletViewModelReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = PendingWalletViewModelReconcileMessage @@ -14227,39 +16158,52 @@ public struct FfiConverterTypePendingWalletViewModelReconcileMessage: FfiConvert public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PendingWalletViewModelReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .words(FfiConverterTypeNumberOfBip39Words.read(from: &buf) - ) - + + case 1: return .words(try FfiConverterTypeNumberOfBip39Words.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PendingWalletViewModelReconcileMessage, into buf: inout [UInt8]) { switch value { + + case let .words(v1): writeInt(&buf, Int32(1)) FfiConverterTypeNumberOfBip39Words.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelReconcileMessage_lift(_ buf: RustBuffer) throws -> PendingWalletViewModelReconcileMessage { - try FfiConverterTypePendingWalletViewModelReconcileMessage.lift(buf) + return try FfiConverterTypePendingWalletViewModelReconcileMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypePendingWalletViewModelReconcileMessage_lower(_ value: PendingWalletViewModelReconcileMessage) -> RustBuffer { - FfiConverterTypePendingWalletViewModelReconcileMessage.lower(value) + return FfiConverterTypePendingWalletViewModelReconcileMessage.lower(value) } + + extension PendingWalletViewModelReconcileMessage: Equatable, Hashable {} + + + public enum PsbtError { + + + /** * Missing UTXO */ @@ -14279,8 +16223,9 @@ public enum PsbtError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypePsbtError: FfiConverterRustBuffer { typealias SwiftType = PsbtError @@ -14288,34 +16233,49 @@ public struct FfiConverterTypePsbtError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> PsbtError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .MissingUtxo case 2: return .NegativeFee case 3: return .FeeOverflow - case 4: return try .Other( - FfiConverterString.read(from: &buf) + case 4: return .Other( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: PsbtError, into buf: inout [UInt8]) { switch value { + + + + + case .MissingUtxo: writeInt(&buf, Int32(1)) - + + case .NegativeFee: writeInt(&buf, Int32(2)) - + + case .FeeOverflow: writeInt(&buf, Int32(3)) - + + case let .Other(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) + } } } + extension PsbtError: Equatable, Hashable {} extension PsbtError: Foundation.LocalizedError { @@ -14324,7 +16284,11 @@ extension PsbtError: Foundation.LocalizedError { } } + public enum ResumeError { + + + /** * Blocks do not match * @@ -14346,15 +16310,17 @@ public enum ResumeError { * The bytes passed in needs to be a multiple of crate::cove_nfc::BYTES_PER_BLOCK * The bytes passed in needs to be the same size as the bytes in the old message (NUMBER_OF_BLOCKS_PER_CHUNK * BYTES_PER_BLOCK) */ - case BlockSizeMismatch(expected: UInt16, actual: UInt16) + case BlockSizeMismatch(expected: UInt16, actual: UInt16 + ) /** * Unable to get first block hash */ case UnableToGetFirstBlockHash } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeResumeError: FfiConverterRustBuffer { typealias SwiftType = ResumeError @@ -14362,43 +16328,59 @@ public struct FfiConverterTypeResumeError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ResumeError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .BlocksDoNotMatch case 2: return .AlreadyParsed - case 3: return try .ParsingError( - FfiConverterString.read(from: &buf) + case 3: return .ParsingError( + try FfiConverterString.read(from: &buf) ) - case 4: return try .BlockSizeMismatch( - expected: FfiConverterUInt16.read(from: &buf), - actual: FfiConverterUInt16.read(from: &buf) + case 4: return .BlockSizeMismatch( + expected: try FfiConverterUInt16.read(from: &buf), + actual: try FfiConverterUInt16.read(from: &buf) ) case 5: return .UnableToGetFirstBlockHash - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ResumeError, into buf: inout [UInt8]) { switch value { + + + + + case .BlocksDoNotMatch: writeInt(&buf, Int32(1)) - + + case .AlreadyParsed: writeInt(&buf, Int32(2)) - + + case let .ParsingError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - - case let .BlockSizeMismatch(expected, actual): + + + case let .BlockSizeMismatch(expected,actual): writeInt(&buf, Int32(4)) FfiConverterUInt16.write(expected, into: &buf) FfiConverterUInt16.write(actual, into: &buf) - + + case .UnableToGetFirstBlockHash: writeInt(&buf, Int32(5)) + } } } + extension ResumeError: Equatable, Hashable {} extension ResumeError: Foundation.LocalizedError { @@ -14411,7 +16393,9 @@ extension ResumeError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Route { - case loadAndReset(resetTo: BoxedRoute, afterMillis: UInt32) + + case loadAndReset(resetTo: BoxedRoute, afterMillis: UInt32 + ) case listWallets case selectedWallet(WalletId ) @@ -14420,13 +16404,15 @@ public enum Route { case settings case secretWords(WalletId ) - case transactionDetails(id: WalletId, details: TransactionDetails) + case transactionDetails(id: WalletId, details: TransactionDetails + ) case send(SendRoute ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeRoute: FfiConverterRustBuffer { typealias SwiftType = Route @@ -14434,93 +16420,112 @@ public struct FfiConverterTypeRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Route { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .loadAndReset(resetTo: FfiConverterTypeBoxedRoute.read(from: &buf), afterMillis: FfiConverterUInt32.read(from: &buf)) - + + case 1: return .loadAndReset(resetTo: try FfiConverterTypeBoxedRoute.read(from: &buf), afterMillis: try FfiConverterUInt32.read(from: &buf) + ) + case 2: return .listWallets - - case 3: return try .selectedWallet(FfiConverterTypeWalletId.read(from: &buf) - ) - - case 4: return try .newWallet(FfiConverterTypeNewWalletRoute.read(from: &buf) - ) - + + case 3: return .selectedWallet(try FfiConverterTypeWalletId.read(from: &buf) + ) + + case 4: return .newWallet(try FfiConverterTypeNewWalletRoute.read(from: &buf) + ) + case 5: return .settings - - case 6: return try .secretWords(FfiConverterTypeWalletId.read(from: &buf) - ) - - case 7: return try .transactionDetails(id: FfiConverterTypeWalletId.read(from: &buf), details: FfiConverterTypeTransactionDetails.read(from: &buf)) - - case 8: return try .send(FfiConverterTypeSendRoute.read(from: &buf) - ) - + + case 6: return .secretWords(try FfiConverterTypeWalletId.read(from: &buf) + ) + + case 7: return .transactionDetails(id: try FfiConverterTypeWalletId.read(from: &buf), details: try FfiConverterTypeTransactionDetails.read(from: &buf) + ) + + case 8: return .send(try FfiConverterTypeSendRoute.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Route, into buf: inout [UInt8]) { switch value { - case let .loadAndReset(resetTo, afterMillis): + + + case let .loadAndReset(resetTo,afterMillis): writeInt(&buf, Int32(1)) FfiConverterTypeBoxedRoute.write(resetTo, into: &buf) FfiConverterUInt32.write(afterMillis, into: &buf) - + + case .listWallets: writeInt(&buf, Int32(2)) - + + case let .selectedWallet(v1): writeInt(&buf, Int32(3)) FfiConverterTypeWalletId.write(v1, into: &buf) - + + case let .newWallet(v1): writeInt(&buf, Int32(4)) FfiConverterTypeNewWalletRoute.write(v1, into: &buf) - + + case .settings: writeInt(&buf, Int32(5)) - + + case let .secretWords(v1): writeInt(&buf, Int32(6)) FfiConverterTypeWalletId.write(v1, into: &buf) - - case let .transactionDetails(id, details): + + + case let .transactionDetails(id,details): writeInt(&buf, Int32(7)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterTypeTransactionDetails.write(details, into: &buf) - + + case let .send(v1): writeInt(&buf, Int32(8)) FfiConverterTypeSendRoute.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRoute_lift(_ buf: RustBuffer) throws -> Route { - try FfiConverterTypeRoute.lift(buf) + return try FfiConverterTypeRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeRoute_lower(_ value: Route) -> RustBuffer { - FfiConverterTypeRoute.lower(value) + return FfiConverterTypeRoute.lower(value) } + + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ScanState { + case notStarted case scanning(ScanningInfo ) case completed } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeScanState: FfiConverterRustBuffer { typealias SwiftType = ScanState @@ -14528,59 +16533,72 @@ public struct FfiConverterTypeScanState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ScanState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .notStarted - - case 2: return try .scanning(FfiConverterTypeScanningInfo.read(from: &buf) - ) - + + case 2: return .scanning(try FfiConverterTypeScanningInfo.read(from: &buf) + ) + case 3: return .completed - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ScanState, into buf: inout [UInt8]) { switch value { + + case .notStarted: writeInt(&buf, Int32(1)) - + + case let .scanning(v1): writeInt(&buf, Int32(2)) FfiConverterTypeScanningInfo.write(v1, into: &buf) - + + case .completed: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScanState_lift(_ buf: RustBuffer) throws -> ScanState { - try FfiConverterTypeScanState.lift(buf) + return try FfiConverterTypeScanState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScanState_lower(_ value: ScanState) -> RustBuffer { - FfiConverterTypeScanState.lower(value) + return FfiConverterTypeScanState.lower(value) } + + extension ScanState: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum ScannerResponse { + case foundAddresses([FoundAddress] ) case noneFound } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeScannerResponse: FfiConverterRustBuffer { typealias SwiftType = ScannerResponse @@ -14588,44 +16606,58 @@ public struct FfiConverterTypeScannerResponse: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> ScannerResponse { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .foundAddresses(FfiConverterSequenceTypeFoundAddress.read(from: &buf) - ) - + + case 1: return .foundAddresses(try FfiConverterSequenceTypeFoundAddress.read(from: &buf) + ) + case 2: return .noneFound - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: ScannerResponse, into buf: inout [UInt8]) { switch value { + + case let .foundAddresses(v1): writeInt(&buf, Int32(1)) FfiConverterSequenceTypeFoundAddress.write(v1, into: &buf) - + + case .noneFound: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScannerResponse_lift(_ buf: RustBuffer) throws -> ScannerResponse { - try FfiConverterTypeScannerResponse.lift(buf) + return try FfiConverterTypeScannerResponse.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeScannerResponse_lower(_ value: ScannerResponse) -> RustBuffer { - FfiConverterTypeScannerResponse.lower(value) + return FfiConverterTypeScannerResponse.lower(value) } + + extension ScannerResponse: Equatable, Hashable {} + + + public enum SeedQrError { + + + case ContainsNonNumericChars case IndexOutOfBounds(UInt16 ) @@ -14635,8 +16667,9 @@ public enum SeedQrError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSeedQrError: FfiConverterRustBuffer { typealias SwiftType = SeedQrError @@ -14644,40 +16677,55 @@ public struct FfiConverterTypeSeedQrError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SeedQrError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .ContainsNonNumericChars - case 2: return try .IndexOutOfBounds( - FfiConverterUInt16.read(from: &buf) + case 2: return .IndexOutOfBounds( + try FfiConverterUInt16.read(from: &buf) ) - case 3: return try .IncorrectWordLength( - FfiConverterUInt16.read(from: &buf) + case 3: return .IncorrectWordLength( + try FfiConverterUInt16.read(from: &buf) ) - case 4: return try .InvalidMnemonic( - FfiConverterTypeBip39Error.read(from: &buf) + case 4: return .InvalidMnemonic( + try FfiConverterTypeBip39Error.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: SeedQrError, into buf: inout [UInt8]) { switch value { + + + + + case .ContainsNonNumericChars: writeInt(&buf, Int32(1)) - + + case let .IndexOutOfBounds(v1): writeInt(&buf, Int32(2)) FfiConverterUInt16.write(v1, into: &buf) - + + case let .IncorrectWordLength(v1): writeInt(&buf, Int32(3)) FfiConverterUInt16.write(v1, into: &buf) - + + case let .InvalidMnemonic(v1): writeInt(&buf, Int32(4)) FfiConverterTypeBip39Error.write(v1, into: &buf) + } } } + extension SeedQrError: Equatable, Hashable {} extension SeedQrError: Foundation.LocalizedError { @@ -14690,13 +16738,18 @@ extension SeedQrError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum SendRoute { - case setAmount(id: WalletId, address: Address?, amount: Amount?) - case hardwareExport(id: WalletId, details: ConfirmDetails) - case confirm(id: WalletId, details: ConfirmDetails) + + case setAmount(id: WalletId, address: Address?, amount: Amount? + ) + case hardwareExport(id: WalletId, details: ConfirmDetails + ) + case confirm(id: WalletId, details: ConfirmDetails + ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSendRoute: FfiConverterRustBuffer { typealias SwiftType = SendRoute @@ -14704,60 +16757,78 @@ public struct FfiConverterTypeSendRoute: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SendRoute { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .setAmount(id: FfiConverterTypeWalletId.read(from: &buf), address: FfiConverterOptionTypeAddress.read(from: &buf), amount: FfiConverterOptionTypeAmount.read(from: &buf)) - - case 2: return try .hardwareExport(id: FfiConverterTypeWalletId.read(from: &buf), details: FfiConverterTypeConfirmDetails.read(from: &buf)) - - case 3: return try .confirm(id: FfiConverterTypeWalletId.read(from: &buf), details: FfiConverterTypeConfirmDetails.read(from: &buf)) - + + case 1: return .setAmount(id: try FfiConverterTypeWalletId.read(from: &buf), address: try FfiConverterOptionTypeAddress.read(from: &buf), amount: try FfiConverterOptionTypeAmount.read(from: &buf) + ) + + case 2: return .hardwareExport(id: try FfiConverterTypeWalletId.read(from: &buf), details: try FfiConverterTypeConfirmDetails.read(from: &buf) + ) + + case 3: return .confirm(id: try FfiConverterTypeWalletId.read(from: &buf), details: try FfiConverterTypeConfirmDetails.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: SendRoute, into buf: inout [UInt8]) { switch value { - case let .setAmount(id, address, amount): + + + case let .setAmount(id,address,amount): writeInt(&buf, Int32(1)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterOptionTypeAddress.write(address, into: &buf) FfiConverterOptionTypeAmount.write(amount, into: &buf) - - case let .hardwareExport(id, details): + + + case let .hardwareExport(id,details): writeInt(&buf, Int32(2)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterTypeConfirmDetails.write(details, into: &buf) - - case let .confirm(id, details): + + + case let .confirm(id,details): writeInt(&buf, Int32(3)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterTypeConfirmDetails.write(details, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSendRoute_lift(_ buf: RustBuffer) throws -> SendRoute { - try FfiConverterTypeSendRoute.lift(buf) + return try FfiConverterTypeSendRoute.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeSendRoute_lower(_ value: SendRoute) -> RustBuffer { - FfiConverterTypeSendRoute.lower(value) + return FfiConverterTypeSendRoute.lower(value) } + + + + public enum SerdeError { + + + case SerializationError(String ) case DeserializationError(String ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeSerdeError: FfiConverterRustBuffer { typealias SwiftType = SerdeError @@ -14765,31 +16836,42 @@ public struct FfiConverterTypeSerdeError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SerdeError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .SerializationError( - FfiConverterString.read(from: &buf) - ) - case 2: return try .DeserializationError( - FfiConverterString.read(from: &buf) + + + + case 1: return .SerializationError( + try FfiConverterString.read(from: &buf) + ) + case 2: return .DeserializationError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: SerdeError, into buf: inout [UInt8]) { switch value { + + + + + case let .SerializationError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .DeserializationError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) + } } } + extension SerdeError: Equatable, Hashable {} extension SerdeError: Foundation.LocalizedError { @@ -14802,14 +16884,16 @@ extension SerdeError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum StringOrData { + case string(String ) case data(Data ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeStringOrData: FfiConverterRustBuffer { typealias SwiftType = StringOrData @@ -14817,55 +16901,67 @@ public struct FfiConverterTypeStringOrData: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> StringOrData { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .string(FfiConverterString.read(from: &buf) - ) - - case 2: return try .data(FfiConverterData.read(from: &buf) - ) - + + case 1: return .string(try FfiConverterString.read(from: &buf) + ) + + case 2: return .data(try FfiConverterData.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: StringOrData, into buf: inout [UInt8]) { switch value { + + case let .string(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .data(v1): writeInt(&buf, Int32(2)) FfiConverterData.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeStringOrData_lift(_ buf: RustBuffer) throws -> StringOrData { - try FfiConverterTypeStringOrData.lift(buf) + return try FfiConverterTypeStringOrData.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeStringOrData_lower(_ value: StringOrData) -> RustBuffer { - FfiConverterTypeStringOrData.lower(value) + return FfiConverterTypeStringOrData.lower(value) } + + extension StringOrData: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum TextPayloadFormat { + case utf8 case utf16 } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTextPayloadFormat: FfiConverterRustBuffer { typealias SwiftType = TextPayloadFormat @@ -14873,53 +16969,65 @@ public struct FfiConverterTypeTextPayloadFormat: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TextPayloadFormat { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .utf8 - + case 2: return .utf16 - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TextPayloadFormat, into buf: inout [UInt8]) { switch value { + + case .utf8: writeInt(&buf, Int32(1)) - + + case .utf16: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTextPayloadFormat_lift(_ buf: RustBuffer) throws -> TextPayloadFormat { - try FfiConverterTypeTextPayloadFormat.lift(buf) + return try FfiConverterTypeTextPayloadFormat.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTextPayloadFormat_lower(_ value: TextPayloadFormat) -> RustBuffer { - FfiConverterTypeTextPayloadFormat.lower(value) + return FfiConverterTypeTextPayloadFormat.lower(value) } + + extension TextPayloadFormat: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Transaction { + case confirmed(ConfirmedTransaction ) case unconfirmed(UnconfirmedTransaction ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransaction: FfiConverterRustBuffer { typealias SwiftType = Transaction @@ -14927,44 +17035,57 @@ public struct FfiConverterTypeTransaction: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Transaction { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .confirmed(FfiConverterTypeConfirmedTransaction.read(from: &buf) - ) - - case 2: return try .unconfirmed(FfiConverterTypeUnconfirmedTransaction.read(from: &buf) - ) - + + case 1: return .confirmed(try FfiConverterTypeConfirmedTransaction.read(from: &buf) + ) + + case 2: return .unconfirmed(try FfiConverterTypeUnconfirmedTransaction.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Transaction, into buf: inout [UInt8]) { switch value { + + case let .confirmed(v1): writeInt(&buf, Int32(1)) FfiConverterTypeConfirmedTransaction.write(v1, into: &buf) - + + case let .unconfirmed(v1): writeInt(&buf, Int32(2)) FfiConverterTypeUnconfirmedTransaction.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransaction_lift(_ buf: RustBuffer) throws -> Transaction { - try FfiConverterTypeTransaction.lift(buf) + return try FfiConverterTypeTransaction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransaction_lower(_ value: Transaction) -> RustBuffer { - FfiConverterTypeTransaction.lower(value) + return FfiConverterTypeTransaction.lower(value) } + + + + public enum TransactionDetailError { + + + case Fee(String ) case FeeRate(String @@ -14975,8 +17096,9 @@ public enum TransactionDetailError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionDetailError: FfiConverterRustBuffer { typealias SwiftType = TransactionDetailError @@ -14984,43 +17106,58 @@ public struct FfiConverterTypeTransactionDetailError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionDetailError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Fee( - FfiConverterString.read(from: &buf) + + + + + case 1: return .Fee( + try FfiConverterString.read(from: &buf) ) - case 2: return try .FeeRate( - FfiConverterString.read(from: &buf) + case 2: return .FeeRate( + try FfiConverterString.read(from: &buf) ) - case 3: return try .Address( - FfiConverterTypeAddressError.read(from: &buf) + case 3: return .Address( + try FfiConverterTypeAddressError.read(from: &buf) ) - case 4: return try .FiatAmount( - FfiConverterString.read(from: &buf) + case 4: return .FiatAmount( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TransactionDetailError, into buf: inout [UInt8]) { switch value { + + + + + case let .Fee(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .FeeRate(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .Address(v1): writeInt(&buf, Int32(3)) FfiConverterTypeAddressError.write(v1, into: &buf) - + + case let .FiatAmount(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) + } } } + extension TransactionDetailError: Equatable, Hashable {} extension TransactionDetailError: Foundation.LocalizedError { @@ -15033,12 +17170,14 @@ extension TransactionDetailError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum TransactionDirection { + case incoming case outgoing } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionDirection: FfiConverterRustBuffer { typealias SwiftType = TransactionDirection @@ -15046,51 +17185,63 @@ public struct FfiConverterTypeTransactionDirection: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionDirection { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .incoming - + case 2: return .outgoing - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TransactionDirection, into buf: inout [UInt8]) { switch value { + + case .incoming: writeInt(&buf, Int32(1)) - + + case .outgoing: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDirection_lift(_ buf: RustBuffer) throws -> TransactionDirection { - try FfiConverterTypeTransactionDirection.lift(buf) + return try FfiConverterTypeTransactionDirection.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionDirection_lower(_ value: TransactionDirection) -> RustBuffer { - FfiConverterTypeTransactionDirection.lower(value) + return FfiConverterTypeTransactionDirection.lower(value) } + + extension TransactionDirection: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum TransactionState { + case pending case confirmed } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeTransactionState: FfiConverterRustBuffer { typealias SwiftType = TransactionState @@ -15098,51 +17249,63 @@ public struct FfiConverterTypeTransactionState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> TransactionState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .pending - + case 2: return .confirmed - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: TransactionState, into buf: inout [UInt8]) { switch value { + + case .pending: writeInt(&buf, Int32(1)) - + + case .confirmed: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionState_lift(_ buf: RustBuffer) throws -> TransactionState { - try FfiConverterTypeTransactionState.lift(buf) + return try FfiConverterTypeTransactionState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeTransactionState_lower(_ value: TransactionState) -> RustBuffer { - FfiConverterTypeTransactionState.lower(value) + return FfiConverterTypeTransactionState.lower(value) } + + extension TransactionState: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum Unit { + case btc case sat } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnit: FfiConverterRustBuffer { typealias SwiftType = Unit @@ -15150,42 +17313,56 @@ public struct FfiConverterTypeUnit: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Unit { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .btc - + case 2: return .sat - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: Unit, into buf: inout [UInt8]) { switch value { + + case .btc: writeInt(&buf, Int32(1)) - + + case .sat: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnit_lift(_ buf: RustBuffer) throws -> Unit { - try FfiConverterTypeUnit.lift(buf) + return try FfiConverterTypeUnit.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeUnit_lower(_ value: Unit) -> RustBuffer { - FfiConverterTypeUnit.lower(value) + return FfiConverterTypeUnit.lower(value) } + + extension Unit: Equatable, Hashable {} + + + public enum UnsignedTransactionsTableError { + + + case Save(String ) case Read(String @@ -15193,8 +17370,9 @@ public enum UnsignedTransactionsTableError { case NoRecordFound } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeUnsignedTransactionsTableError: FfiConverterRustBuffer { typealias SwiftType = UnsignedTransactionsTableError @@ -15202,33 +17380,47 @@ public struct FfiConverterTypeUnsignedTransactionsTableError: FfiConverterRustBu public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> UnsignedTransactionsTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Save( - FfiConverterString.read(from: &buf) + + + + + case 1: return .Save( + try FfiConverterString.read(from: &buf) ) - case 2: return try .Read( - FfiConverterString.read(from: &buf) + case 2: return .Read( + try FfiConverterString.read(from: &buf) ) case 3: return .NoRecordFound - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: UnsignedTransactionsTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .Save(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case .NoRecordFound: writeInt(&buf, Int32(3)) + } } } + extension UnsignedTransactionsTableError: Equatable, Hashable {} extension UnsignedTransactionsTableError: Foundation.LocalizedError { @@ -15241,13 +17433,15 @@ extension UnsignedTransactionsTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletAddressType { + case nativeSegwit case wrappedSegwit case legacy } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletAddressType: FfiConverterRustBuffer { typealias SwiftType = WalletAddressType @@ -15255,50 +17449,62 @@ public struct FfiConverterTypeWalletAddressType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletAddressType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .nativeSegwit - + case 2: return .wrappedSegwit - + case 3: return .legacy - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletAddressType, into buf: inout [UInt8]) { switch value { + + case .nativeSegwit: writeInt(&buf, Int32(1)) - + + case .wrappedSegwit: writeInt(&buf, Int32(2)) - + + case .legacy: writeInt(&buf, Int32(3)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletAddressType_lift(_ buf: RustBuffer) throws -> WalletAddressType { - try FfiConverterTypeWalletAddressType.lift(buf) + return try FfiConverterTypeWalletAddressType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletAddressType_lower(_ value: WalletAddressType) -> RustBuffer { - FfiConverterTypeWalletAddressType.lower(value) + return FfiConverterTypeWalletAddressType.lower(value) } + + extension WalletAddressType: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletColor { + case red case blue case green @@ -15306,11 +17512,13 @@ public enum WalletColor { case orange case purple case pink - case custom(r: UInt8, g: UInt8, b: UInt8) + case custom(r: UInt8, g: UInt8, b: UInt8 + ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletColor: FfiConverterRustBuffer { typealias SwiftType = WalletColor @@ -15318,75 +17526,96 @@ public struct FfiConverterTypeWalletColor: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletColor { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .red - + case 2: return .blue - + case 3: return .green - + case 4: return .yellow - + case 5: return .orange - + case 6: return .purple - + case 7: return .pink - - case 8: return try .custom(r: FfiConverterUInt8.read(from: &buf), g: FfiConverterUInt8.read(from: &buf), b: FfiConverterUInt8.read(from: &buf)) - + + case 8: return .custom(r: try FfiConverterUInt8.read(from: &buf), g: try FfiConverterUInt8.read(from: &buf), b: try FfiConverterUInt8.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletColor, into buf: inout [UInt8]) { switch value { + + case .red: writeInt(&buf, Int32(1)) - + + case .blue: writeInt(&buf, Int32(2)) - + + case .green: writeInt(&buf, Int32(3)) - + + case .yellow: writeInt(&buf, Int32(4)) - + + case .orange: writeInt(&buf, Int32(5)) - + + case .purple: writeInt(&buf, Int32(6)) - + + case .pink: writeInt(&buf, Int32(7)) - - case let .custom(r, g, b): + + + case let .custom(r,g,b): writeInt(&buf, Int32(8)) FfiConverterUInt8.write(r, into: &buf) FfiConverterUInt8.write(g, into: &buf) FfiConverterUInt8.write(b, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletColor_lift(_ buf: RustBuffer) throws -> WalletColor { - try FfiConverterTypeWalletColor.lift(buf) + return try FfiConverterTypeWalletColor.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletColor_lower(_ value: WalletColor) -> RustBuffer { - FfiConverterTypeWalletColor.lower(value) + return FfiConverterTypeWalletColor.lower(value) } + + extension WalletColor: Equatable, Hashable {} + + + public enum WalletCreationError { + + + case Bdk(String ) case Keychain(KeychainError @@ -15399,8 +17628,9 @@ public enum WalletCreationError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletCreationError: FfiConverterRustBuffer { typealias SwiftType = WalletCreationError @@ -15408,50 +17638,66 @@ public struct FfiConverterTypeWalletCreationError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletCreationError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .Bdk( - FfiConverterString.read(from: &buf) + + + + + case 1: return .Bdk( + try FfiConverterString.read(from: &buf) ) - case 2: return try .Keychain( - FfiConverterTypeKeychainError.read(from: &buf) + case 2: return .Keychain( + try FfiConverterTypeKeychainError.read(from: &buf) ) - case 3: return try .Database( - FfiConverterTypeDatabaseError.read(from: &buf) + case 3: return .Database( + try FfiConverterTypeDatabaseError.read(from: &buf) ) - case 4: return try .Persist( - FfiConverterString.read(from: &buf) + case 4: return .Persist( + try FfiConverterString.read(from: &buf) ) - case 5: return try .Import( - FfiConverterString.read(from: &buf) + case 5: return .Import( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletCreationError, into buf: inout [UInt8]) { switch value { + + + + + case let .Bdk(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .Keychain(v1): writeInt(&buf, Int32(2)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .Database(v1): writeInt(&buf, Int32(3)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - + + case let .Persist(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case let .Import(v1): writeInt(&buf, Int32(5)) FfiConverterString.write(v1, into: &buf) + } } } + extension WalletCreationError: Equatable, Hashable {} extension WalletCreationError: Foundation.LocalizedError { @@ -15460,9 +17706,15 @@ extension WalletCreationError: Foundation.LocalizedError { } } + public enum WalletDataError { - case DatabaseAccess(id: WalletId, error: String) - case TableAccess(id: WalletId, error: String) + + + + case DatabaseAccess(id: WalletId, error: String + ) + case TableAccess(id: WalletId, error: String + ) /** * Unable to read: {0} */ @@ -15475,8 +17727,9 @@ public enum WalletDataError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletDataError: FfiConverterRustBuffer { typealias SwiftType = WalletDataError @@ -15484,47 +17737,62 @@ public struct FfiConverterTypeWalletDataError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletDataError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .DatabaseAccess( - id: FfiConverterTypeWalletId.read(from: &buf), - error: FfiConverterString.read(from: &buf) + + + + + case 1: return .DatabaseAccess( + id: try FfiConverterTypeWalletId.read(from: &buf), + error: try FfiConverterString.read(from: &buf) ) - case 2: return try .TableAccess( - id: FfiConverterTypeWalletId.read(from: &buf), - error: FfiConverterString.read(from: &buf) + case 2: return .TableAccess( + id: try FfiConverterTypeWalletId.read(from: &buf), + error: try FfiConverterString.read(from: &buf) ) - case 3: return try .Read( - FfiConverterString.read(from: &buf) + case 3: return .Read( + try FfiConverterString.read(from: &buf) ) - case 4: return try .Save( - FfiConverterString.read(from: &buf) + case 4: return .Save( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletDataError, into buf: inout [UInt8]) { switch value { - case let .DatabaseAccess(id, error): + + + + + + case let .DatabaseAccess(id,error): writeInt(&buf, Int32(1)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterString.write(error, into: &buf) - - case let .TableAccess(id, error): + + + case let .TableAccess(id,error): writeInt(&buf, Int32(2)) FfiConverterTypeWalletId.write(id, into: &buf) FfiConverterString.write(error, into: &buf) - + + case let .Read(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .Save(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) + } } } + extension WalletDataError: Equatable, Hashable {} extension WalletDataError: Foundation.LocalizedError { @@ -15537,12 +17805,14 @@ extension WalletDataError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletDataKey { + case scanState(WalletAddressType ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletDataKey: FfiConverterRustBuffer { typealias SwiftType = WalletDataKey @@ -15550,39 +17820,52 @@ public struct FfiConverterTypeWalletDataKey: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletDataKey { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .scanState(FfiConverterTypeWalletAddressType.read(from: &buf) - ) - + + case 1: return .scanState(try FfiConverterTypeWalletAddressType.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletDataKey, into buf: inout [UInt8]) { switch value { + + case let .scanState(v1): writeInt(&buf, Int32(1)) FfiConverterTypeWalletAddressType.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataKey_lift(_ buf: RustBuffer) throws -> WalletDataKey { - try FfiConverterTypeWalletDataKey.lift(buf) + return try FfiConverterTypeWalletDataKey.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletDataKey_lower(_ value: WalletDataKey) -> RustBuffer { - FfiConverterTypeWalletDataKey.lower(value) + return FfiConverterTypeWalletDataKey.lower(value) } + + extension WalletDataKey: Equatable, Hashable {} + + + public enum WalletError { + + + case BdkError(String ) case UnsupportedWallet(String @@ -15603,8 +17886,9 @@ public enum WalletError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletError: FfiConverterRustBuffer { typealias SwiftType = WalletError @@ -15612,79 +17896,100 @@ public struct FfiConverterTypeWalletError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .BdkError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .BdkError( + try FfiConverterString.read(from: &buf) ) - case 2: return try .UnsupportedWallet( - FfiConverterString.read(from: &buf) + case 2: return .UnsupportedWallet( + try FfiConverterString.read(from: &buf) ) - case 3: return try .PersistError( - FfiConverterString.read(from: &buf) + case 3: return .PersistError( + try FfiConverterString.read(from: &buf) ) - case 4: return try .LoadError( - FfiConverterString.read(from: &buf) + case 4: return .LoadError( + try FfiConverterString.read(from: &buf) ) - case 5: return try .KeychainError( - FfiConverterTypeKeychainError.read(from: &buf) + case 5: return .KeychainError( + try FfiConverterTypeKeychainError.read(from: &buf) ) - case 6: return try .DatabaseError( - FfiConverterTypeDatabaseError.read(from: &buf) + case 6: return .DatabaseError( + try FfiConverterTypeDatabaseError.read(from: &buf) ) case 7: return .WalletNotFound case 8: return .MetadataNotFound - case 9: return try .ParseXpubError( - FfiConverterTypeXpubError.read(from: &buf) + case 9: return .ParseXpubError( + try FfiConverterTypeXpubError.read(from: &buf) ) - case 10: return try .WalletAlreadyExists( - FfiConverterTypeWalletId.read(from: &buf) + case 10: return .WalletAlreadyExists( + try FfiConverterTypeWalletId.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletError, into buf: inout [UInt8]) { switch value { + + + + + case let .BdkError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .UnsupportedWallet(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case let .PersistError(v1): writeInt(&buf, Int32(3)) FfiConverterString.write(v1, into: &buf) - + + case let .LoadError(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case let .KeychainError(v1): writeInt(&buf, Int32(5)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .DatabaseError(v1): writeInt(&buf, Int32(6)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - + + case .WalletNotFound: writeInt(&buf, Int32(7)) - + + case .MetadataNotFound: writeInt(&buf, Int32(8)) - + + case let .ParseXpubError(v1): writeInt(&buf, Int32(9)) FfiConverterTypeXpubError.write(v1, into: &buf) - + + case let .WalletAlreadyExists(v1): writeInt(&buf, Int32(10)) FfiConverterTypeWalletId.write(v1, into: &buf) + } } } + extension WalletError: Equatable, Hashable {} extension WalletError: Foundation.LocalizedError { @@ -15697,13 +18002,15 @@ extension WalletError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletErrorAlert { + case nodeConnectionFailed(String ) case noBalance } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletErrorAlert: FfiConverterRustBuffer { typealias SwiftType = WalletErrorAlert @@ -15711,47 +18018,58 @@ public struct FfiConverterTypeWalletErrorAlert: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletErrorAlert { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .nodeConnectionFailed(FfiConverterString.read(from: &buf) - ) - + + case 1: return .nodeConnectionFailed(try FfiConverterString.read(from: &buf) + ) + case 2: return .noBalance - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletErrorAlert, into buf: inout [UInt8]) { switch value { + + case let .nodeConnectionFailed(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case .noBalance: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletErrorAlert_lift(_ buf: RustBuffer) throws -> WalletErrorAlert { - try FfiConverterTypeWalletErrorAlert.lift(buf) + return try FfiConverterTypeWalletErrorAlert.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletErrorAlert_lower(_ value: WalletErrorAlert) -> RustBuffer { - FfiConverterTypeWalletErrorAlert.lower(value) + return FfiConverterTypeWalletErrorAlert.lower(value) } + + extension WalletErrorAlert: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletLoadState { + case loading case scanning([Transaction] ) @@ -15759,8 +18077,9 @@ public enum WalletLoadState { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletLoadState: FfiConverterRustBuffer { typealias SwiftType = WalletLoadState @@ -15768,49 +18087,63 @@ public struct FfiConverterTypeWalletLoadState: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletLoadState { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .loading - - case 2: return try .scanning(FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - - case 3: return try .loaded(FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - + + case 2: return .scanning(try FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + + case 3: return .loaded(try FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletLoadState, into buf: inout [UInt8]) { switch value { + + case .loading: writeInt(&buf, Int32(1)) - + + case let .scanning(v1): writeInt(&buf, Int32(2)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - + + case let .loaded(v1): writeInt(&buf, Int32(3)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletLoadState_lift(_ buf: RustBuffer) throws -> WalletLoadState { - try FfiConverterTypeWalletLoadState.lift(buf) + return try FfiConverterTypeWalletLoadState.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletLoadState_lower(_ value: WalletLoadState) -> RustBuffer { - FfiConverterTypeWalletLoadState.lower(value) + return FfiConverterTypeWalletLoadState.lower(value) } + + + + public enum WalletScannerError { + + + /** * No address types to scan */ @@ -15827,8 +18160,9 @@ public enum WalletScannerError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletScannerError: FfiConverterRustBuffer { typealias SwiftType = WalletScannerError @@ -15836,33 +18170,47 @@ public struct FfiConverterTypeWalletScannerError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletScannerError { let variant: Int32 = try readInt(&buf) switch variant { + + + + case 1: return .NoAddressTypes - case 2: return try .WalletCreationError( - FfiConverterTypeWalletError.read(from: &buf) + case 2: return .WalletCreationError( + try FfiConverterTypeWalletError.read(from: &buf) ) - case 3: return try .NoMnemonicAvailable( - FfiConverterTypeWalletId.read(from: &buf) + case 3: return .NoMnemonicAvailable( + try FfiConverterTypeWalletId.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletScannerError, into buf: inout [UInt8]) { switch value { + + + + + case .NoAddressTypes: writeInt(&buf, Int32(1)) - + + case let .WalletCreationError(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletError.write(v1, into: &buf) - + + case let .NoMnemonicAvailable(v1): writeInt(&buf, Int32(3)) FfiConverterTypeWalletId.write(v1, into: &buf) + } } } + extension WalletScannerError: Equatable, Hashable {} extension WalletScannerError: Foundation.LocalizedError { @@ -15871,7 +18219,11 @@ extension WalletScannerError: Foundation.LocalizedError { } } + public enum WalletTableError { + + + case SaveError(String ) case ReadError(String @@ -15879,8 +18231,9 @@ public enum WalletTableError { case WalletAlreadyExists } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletTableError: FfiConverterRustBuffer { typealias SwiftType = WalletTableError @@ -15888,33 +18241,47 @@ public struct FfiConverterTypeWalletTableError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletTableError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .SaveError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .SaveError( + try FfiConverterString.read(from: &buf) ) - case 2: return try .ReadError( - FfiConverterString.read(from: &buf) + case 2: return .ReadError( + try FfiConverterString.read(from: &buf) ) case 3: return .WalletAlreadyExists - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletTableError, into buf: inout [UInt8]) { switch value { + + + + + case let .SaveError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .ReadError(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case .WalletAlreadyExists: writeInt(&buf, Int32(3)) + } } } + extension WalletTableError: Equatable, Hashable {} extension WalletTableError: Foundation.LocalizedError { @@ -15927,12 +18294,14 @@ extension WalletTableError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletType { + case hot case cold } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletType: FfiConverterRustBuffer { typealias SwiftType = WalletType @@ -15940,45 +18309,56 @@ public struct FfiConverterTypeWalletType: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletType { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .hot - + case 2: return .cold - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletType, into buf: inout [UInt8]) { switch value { + + case .hot: writeInt(&buf, Int32(1)) - + + case .cold: writeInt(&buf, Int32(2)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletType_lift(_ buf: RustBuffer) throws -> WalletType { - try FfiConverterTypeWalletType.lift(buf) + return try FfiConverterTypeWalletType.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletType_lower(_ value: WalletType) -> RustBuffer { - FfiConverterTypeWalletType.lower(value) + return FfiConverterTypeWalletType.lower(value) } + + extension WalletType: Equatable, Hashable {} + + // Note that we don't yet support `indirect` for enums. // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletViewModelAction { + case updateName(String ) case updateColor(WalletColor @@ -15998,8 +18378,9 @@ public enum WalletViewModelAction { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletViewModelAction: FfiConverterRustBuffer { typealias SwiftType = WalletViewModelAction @@ -16007,99 +18388,122 @@ public struct FfiConverterTypeWalletViewModelAction: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletViewModelAction { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .updateName(FfiConverterString.read(from: &buf) - ) - - case 2: return try .updateColor(FfiConverterTypeWalletColor.read(from: &buf) - ) - - case 3: return try .updateUnit(FfiConverterTypeUnit.read(from: &buf) - ) - - case 4: return try .updateFiatCurrency(FfiConverterTypeFiatCurrency.read(from: &buf) - ) - - case 5: return try .updateFiatOrBtc(FfiConverterTypeFiatOrBtc.read(from: &buf) - ) - + + case 1: return .updateName(try FfiConverterString.read(from: &buf) + ) + + case 2: return .updateColor(try FfiConverterTypeWalletColor.read(from: &buf) + ) + + case 3: return .updateUnit(try FfiConverterTypeUnit.read(from: &buf) + ) + + case 4: return .updateFiatCurrency(try FfiConverterTypeFiatCurrency.read(from: &buf) + ) + + case 5: return .updateFiatOrBtc(try FfiConverterTypeFiatOrBtc.read(from: &buf) + ) + case 6: return .toggleSensitiveVisibility - + case 7: return .toggleDetailsExpanded - + case 8: return .toggleFiatOrBtc - + case 9: return .toggleFiatBtcPrimarySecondary - + case 10: return .selectCurrentWalletAddressType - - case 11: return try .selectDifferentWalletAddressType(FfiConverterTypeWalletAddressType.read(from: &buf) - ) - + + case 11: return .selectDifferentWalletAddressType(try FfiConverterTypeWalletAddressType.read(from: &buf) + ) + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletViewModelAction, into buf: inout [UInt8]) { switch value { + + case let .updateName(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case let .updateColor(v1): writeInt(&buf, Int32(2)) FfiConverterTypeWalletColor.write(v1, into: &buf) - + + case let .updateUnit(v1): writeInt(&buf, Int32(3)) FfiConverterTypeUnit.write(v1, into: &buf) - + + case let .updateFiatCurrency(v1): writeInt(&buf, Int32(4)) FfiConverterTypeFiatCurrency.write(v1, into: &buf) - + + case let .updateFiatOrBtc(v1): writeInt(&buf, Int32(5)) FfiConverterTypeFiatOrBtc.write(v1, into: &buf) - + + case .toggleSensitiveVisibility: writeInt(&buf, Int32(6)) - + + case .toggleDetailsExpanded: writeInt(&buf, Int32(7)) - + + case .toggleFiatOrBtc: writeInt(&buf, Int32(8)) - + + case .toggleFiatBtcPrimarySecondary: writeInt(&buf, Int32(9)) - + + case .selectCurrentWalletAddressType: writeInt(&buf, Int32(10)) - + + case let .selectDifferentWalletAddressType(v1): writeInt(&buf, Int32(11)) FfiConverterTypeWalletAddressType.write(v1, into: &buf) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelAction_lift(_ buf: RustBuffer) throws -> WalletViewModelAction { - try FfiConverterTypeWalletViewModelAction.lift(buf) + return try FfiConverterTypeWalletViewModelAction.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelAction_lower(_ value: WalletViewModelAction) -> RustBuffer { - FfiConverterTypeWalletViewModelAction.lower(value) + return FfiConverterTypeWalletViewModelAction.lower(value) } + + extension WalletViewModelAction: Equatable, Hashable {} + + + public enum WalletViewModelError { + + + case GetSelectedWalletError(String ) case WalletDoesNotExist @@ -16123,7 +18527,8 @@ public enum WalletViewModelError { case TransactionDetailsError(String ) case ActorNotFound - case UnableToSwitch(WalletAddressType, String) + case UnableToSwitch(WalletAddressType,String + ) case FiatError(String ) case FeesError(String @@ -16136,8 +18541,9 @@ public enum WalletViewModelError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletViewModelError: FfiConverterRustBuffer { typealias SwiftType = WalletViewModelError @@ -16145,141 +18551,171 @@ public struct FfiConverterTypeWalletViewModelError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletViewModelError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .GetSelectedWalletError( - FfiConverterString.read(from: &buf) + + + + + case 1: return .GetSelectedWalletError( + try FfiConverterString.read(from: &buf) ) case 2: return .WalletDoesNotExist - case 3: return try .SecretRetrievalError( - FfiConverterTypeKeychainError.read(from: &buf) + case 3: return .SecretRetrievalError( + try FfiConverterTypeKeychainError.read(from: &buf) ) - case 4: return try .MarkWalletAsVerifiedError( - FfiConverterTypeDatabaseError.read(from: &buf) + case 4: return .MarkWalletAsVerifiedError( + try FfiConverterTypeDatabaseError.read(from: &buf) ) - case 5: return try .LoadWalletError( - FfiConverterTypeWalletError.read(from: &buf) + case 5: return .LoadWalletError( + try FfiConverterTypeWalletError.read(from: &buf) ) - case 6: return try .NodeConnectionFailed( - FfiConverterString.read(from: &buf) + case 6: return .NodeConnectionFailed( + try FfiConverterString.read(from: &buf) ) - case 7: return try .WalletScanError( - FfiConverterString.read(from: &buf) + case 7: return .WalletScanError( + try FfiConverterString.read(from: &buf) ) - case 8: return try .TransactionsRetrievalError( - FfiConverterString.read(from: &buf) + case 8: return .TransactionsRetrievalError( + try FfiConverterString.read(from: &buf) ) - case 9: return try .WalletBalanceError( - FfiConverterString.read(from: &buf) + case 9: return .WalletBalanceError( + try FfiConverterString.read(from: &buf) ) - case 10: return try .NextAddressError( - FfiConverterString.read(from: &buf) + case 10: return .NextAddressError( + try FfiConverterString.read(from: &buf) ) case 11: return .GetHeightError - case 12: return try .TransactionDetailsError( - FfiConverterString.read(from: &buf) + case 12: return .TransactionDetailsError( + try FfiConverterString.read(from: &buf) ) case 13: return .ActorNotFound - case 14: return try .UnableToSwitch( - FfiConverterTypeWalletAddressType.read(from: &buf), - FfiConverterString.read(from: &buf) + case 14: return .UnableToSwitch( + try FfiConverterTypeWalletAddressType.read(from: &buf), + try FfiConverterString.read(from: &buf) ) - case 15: return try .FiatError( - FfiConverterString.read(from: &buf) + case 15: return .FiatError( + try FfiConverterString.read(from: &buf) ) - case 16: return try .FeesError( - FfiConverterString.read(from: &buf) + case 16: return .FeesError( + try FfiConverterString.read(from: &buf) ) - case 17: return try .BuildTxError( - FfiConverterString.read(from: &buf) + case 17: return .BuildTxError( + try FfiConverterString.read(from: &buf) ) - case 18: return try .InsufficientFunds( - FfiConverterString.read(from: &buf) + case 18: return .InsufficientFunds( + try FfiConverterString.read(from: &buf) ) - case 19: return try .GetConfirmDetailsError( - FfiConverterString.read(from: &buf) + case 19: return .GetConfirmDetailsError( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletViewModelError, into buf: inout [UInt8]) { switch value { + + + + + case let .GetSelectedWalletError(v1): writeInt(&buf, Int32(1)) FfiConverterString.write(v1, into: &buf) - + + case .WalletDoesNotExist: writeInt(&buf, Int32(2)) - + + case let .SecretRetrievalError(v1): writeInt(&buf, Int32(3)) FfiConverterTypeKeychainError.write(v1, into: &buf) - + + case let .MarkWalletAsVerifiedError(v1): writeInt(&buf, Int32(4)) FfiConverterTypeDatabaseError.write(v1, into: &buf) - + + case let .LoadWalletError(v1): writeInt(&buf, Int32(5)) FfiConverterTypeWalletError.write(v1, into: &buf) - + + case let .NodeConnectionFailed(v1): writeInt(&buf, Int32(6)) FfiConverterString.write(v1, into: &buf) - + + case let .WalletScanError(v1): writeInt(&buf, Int32(7)) FfiConverterString.write(v1, into: &buf) - + + case let .TransactionsRetrievalError(v1): writeInt(&buf, Int32(8)) FfiConverterString.write(v1, into: &buf) - + + case let .WalletBalanceError(v1): writeInt(&buf, Int32(9)) FfiConverterString.write(v1, into: &buf) - + + case let .NextAddressError(v1): writeInt(&buf, Int32(10)) FfiConverterString.write(v1, into: &buf) - + + case .GetHeightError: writeInt(&buf, Int32(11)) - + + case let .TransactionDetailsError(v1): writeInt(&buf, Int32(12)) FfiConverterString.write(v1, into: &buf) - + + case .ActorNotFound: writeInt(&buf, Int32(13)) - - case let .UnableToSwitch(v1, v2): + + + case let .UnableToSwitch(v1,v2): writeInt(&buf, Int32(14)) FfiConverterTypeWalletAddressType.write(v1, into: &buf) FfiConverterString.write(v2, into: &buf) - + + case let .FiatError(v1): writeInt(&buf, Int32(15)) FfiConverterString.write(v1, into: &buf) - + + case let .FeesError(v1): writeInt(&buf, Int32(16)) FfiConverterString.write(v1, into: &buf) - + + case let .BuildTxError(v1): writeInt(&buf, Int32(17)) FfiConverterString.write(v1, into: &buf) - + + case let .InsufficientFunds(v1): writeInt(&buf, Int32(18)) FfiConverterString.write(v1, into: &buf) - + + case let .GetConfirmDetailsError(v1): writeInt(&buf, Int32(19)) FfiConverterString.write(v1, into: &buf) + } } } + extension WalletViewModelError: Equatable, Hashable {} extension WalletViewModelError: Foundation.LocalizedError { @@ -16292,6 +18728,7 @@ extension WalletViewModelError: Foundation.LocalizedError { // See https://github.com/mozilla/uniffi-rs/issues/396 for further discussion. public enum WalletViewModelReconcileMessage { + case startedWalletScan case availableTransactions([Transaction] ) @@ -16312,8 +18749,9 @@ public enum WalletViewModelReconcileMessage { case unsignedTransactionsChanged } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletViewModelReconcileMessage: FfiConverterRustBuffer { typealias SwiftType = WalletViewModelReconcileMessage @@ -16321,96 +18759,117 @@ public struct FfiConverterTypeWalletViewModelReconcileMessage: FfiConverterRustB public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletViewModelReconcileMessage { let variant: Int32 = try readInt(&buf) switch variant { + case 1: return .startedWalletScan - - case 2: return try .availableTransactions(FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - - case 3: return try .scanComplete(FfiConverterSequenceTypeTransaction.read(from: &buf) - ) - - case 4: return try .nodeConnectionFailed(FfiConverterString.read(from: &buf) - ) - - case 5: return try .walletMetadataChanged(FfiConverterTypeWalletMetadata.read(from: &buf) - ) - - case 6: return try .walletBalanceChanged(FfiConverterTypeBalance.read(from: &buf) - ) - - case 7: return try .walletError(FfiConverterTypeWalletViewModelError.read(from: &buf) - ) - - case 8: return try .unknownError(FfiConverterString.read(from: &buf) - ) - - case 9: return try .walletScannerResponse(FfiConverterTypeScannerResponse.read(from: &buf) - ) - + + case 2: return .availableTransactions(try FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + + case 3: return .scanComplete(try FfiConverterSequenceTypeTransaction.read(from: &buf) + ) + + case 4: return .nodeConnectionFailed(try FfiConverterString.read(from: &buf) + ) + + case 5: return .walletMetadataChanged(try FfiConverterTypeWalletMetadata.read(from: &buf) + ) + + case 6: return .walletBalanceChanged(try FfiConverterTypeBalance.read(from: &buf) + ) + + case 7: return .walletError(try FfiConverterTypeWalletViewModelError.read(from: &buf) + ) + + case 8: return .unknownError(try FfiConverterString.read(from: &buf) + ) + + case 9: return .walletScannerResponse(try FfiConverterTypeScannerResponse.read(from: &buf) + ) + case 10: return .unsignedTransactionsChanged - + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: WalletViewModelReconcileMessage, into buf: inout [UInt8]) { switch value { + + case .startedWalletScan: writeInt(&buf, Int32(1)) - + + case let .availableTransactions(v1): writeInt(&buf, Int32(2)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - + + case let .scanComplete(v1): writeInt(&buf, Int32(3)) FfiConverterSequenceTypeTransaction.write(v1, into: &buf) - + + case let .nodeConnectionFailed(v1): writeInt(&buf, Int32(4)) FfiConverterString.write(v1, into: &buf) - + + case let .walletMetadataChanged(v1): writeInt(&buf, Int32(5)) FfiConverterTypeWalletMetadata.write(v1, into: &buf) - + + case let .walletBalanceChanged(v1): writeInt(&buf, Int32(6)) FfiConverterTypeBalance.write(v1, into: &buf) - + + case let .walletError(v1): writeInt(&buf, Int32(7)) FfiConverterTypeWalletViewModelError.write(v1, into: &buf) - + + case let .unknownError(v1): writeInt(&buf, Int32(8)) FfiConverterString.write(v1, into: &buf) - + + case let .walletScannerResponse(v1): writeInt(&buf, Int32(9)) FfiConverterTypeScannerResponse.write(v1, into: &buf) - + + case .unsignedTransactionsChanged: writeInt(&buf, Int32(10)) + } } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelReconcileMessage_lift(_ buf: RustBuffer) throws -> WalletViewModelReconcileMessage { - try FfiConverterTypeWalletViewModelReconcileMessage.lift(buf) + return try FfiConverterTypeWalletViewModelReconcileMessage.lift(buf) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletViewModelReconcileMessage_lower(_ value: WalletViewModelReconcileMessage) -> RustBuffer { - FfiConverterTypeWalletViewModelReconcileMessage.lower(value) + return FfiConverterTypeWalletViewModelReconcileMessage.lower(value) } + + + + public enum XpubError { + + + case InvalidDescriptor(DescriptorError ) case InvalidJson(String @@ -16421,8 +18880,9 @@ public enum XpubError { ) } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeXpubError: FfiConverterRustBuffer { typealias SwiftType = XpubError @@ -16430,44 +18890,60 @@ public struct FfiConverterTypeXpubError: FfiConverterRustBuffer { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> XpubError { let variant: Int32 = try readInt(&buf) switch variant { - case 1: return try .InvalidDescriptor( - FfiConverterTypeDescriptorError.read(from: &buf) + + + + + case 1: return .InvalidDescriptor( + try FfiConverterTypeDescriptorError.read(from: &buf) ) - case 2: return try .InvalidJson( - FfiConverterString.read(from: &buf) + case 2: return .InvalidJson( + try FfiConverterString.read(from: &buf) ) case 3: return .InvalidDescriptorInJson case 4: return .JsonNoDecriptor - case 5: return try .MissingXpub( - FfiConverterString.read(from: &buf) + case 5: return .MissingXpub( + try FfiConverterString.read(from: &buf) ) - default: throw UniffiInternalError.unexpectedEnumCase + + default: throw UniffiInternalError.unexpectedEnumCase } } public static func write(_ value: XpubError, into buf: inout [UInt8]) { switch value { + + + + + case let .InvalidDescriptor(v1): writeInt(&buf, Int32(1)) FfiConverterTypeDescriptorError.write(v1, into: &buf) - + + case let .InvalidJson(v1): writeInt(&buf, Int32(2)) FfiConverterString.write(v1, into: &buf) - + + case .InvalidDescriptorInJson: writeInt(&buf, Int32(3)) - + + case .JsonNoDecriptor: writeInt(&buf, Int32(4)) - + + case let .MissingXpub(v1): writeInt(&buf, Int32(5)) FfiConverterString.write(v1, into: &buf) + } } } + extension XpubError: Equatable, Hashable {} extension XpubError: Foundation.LocalizedError { @@ -16476,15 +18952,23 @@ extension XpubError: Foundation.LocalizedError { } } -public protocol FfiReconcile: AnyObject { + + + +public protocol FfiReconcile : AnyObject { + /** * Essentially a callback to the frontend */ - func reconcile(message: AppStateReconcileMessage) + func reconcile(message: AppStateReconcileMessage) + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceFfiReconcile { +fileprivate struct UniffiCallbackInterfaceFfiReconcile { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16494,19 +18978,20 @@ private enum UniffiCallbackInterfaceFfiReconcile { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfaceFfiReconcile.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.reconcile( - message: FfiConverterTypeAppStateReconcileMessage.lift(message) + return uniffiObj.reconcile( + message: try FfiConverterTypeAppStateReconcileMessage.lift(message) ) } + let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16514,7 +18999,7 @@ private enum UniffiCallbackInterfaceFfiReconcile { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfaceFfiReconcile.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface FfiReconcile: handle missing in uniffiFree") @@ -16529,58 +19014,66 @@ private func uniffiCallbackInitFfiReconcile() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfaceFfiReconcile { +fileprivate struct FfiConverterCallbackInterfaceFfiReconcile { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceFfiReconcile: FfiConverter { +extension FfiConverterCallbackInterfaceFfiReconcile : FfiConverter { typealias SwiftType = FfiReconcile typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } -public protocol ImportWalletViewModelReconciler: AnyObject { + + + +public protocol ImportWalletViewModelReconciler : AnyObject { + /** * Tells the frontend to reconcile the view model changes */ - func reconcile(message: ImportWalletViewModelReconcileMessage) + func reconcile(message: ImportWalletViewModelReconcileMessage) + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceImportWalletViewModelReconciler { +fileprivate struct UniffiCallbackInterfaceImportWalletViewModelReconciler { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16590,19 +19083,20 @@ private enum UniffiCallbackInterfaceImportWalletViewModelReconciler { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfaceImportWalletViewModelReconciler.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.reconcile( - message: FfiConverterTypeImportWalletViewModelReconcileMessage.lift(message) + return uniffiObj.reconcile( + message: try FfiConverterTypeImportWalletViewModelReconcileMessage.lift(message) ) } + let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16610,7 +19104,7 @@ private enum UniffiCallbackInterfaceImportWalletViewModelReconciler { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfaceImportWalletViewModelReconciler.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface ImportWalletViewModelReconciler: handle missing in uniffiFree") @@ -16625,59 +19119,67 @@ private func uniffiCallbackInitImportWalletViewModelReconciler() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfaceImportWalletViewModelReconciler { +fileprivate struct FfiConverterCallbackInterfaceImportWalletViewModelReconciler { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceImportWalletViewModelReconciler: FfiConverter { +extension FfiConverterCallbackInterfaceImportWalletViewModelReconciler : FfiConverter { typealias SwiftType = ImportWalletViewModelReconciler typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } -public protocol KeychainAccess: AnyObject { - func save(key: String, value: String) throws - func get(key: String) -> String? - func delete(key: String) -> Bool + +public protocol KeychainAccess : AnyObject { + + func save(key: String, value: String) throws + + func get(key: String) -> String? + + func delete(key: String) -> Bool + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceKeychainAccess { +fileprivate struct UniffiCallbackInterfaceKeychainAccess { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16688,20 +19190,21 @@ private enum UniffiCallbackInterfaceKeychainAccess { uniffiHandle: UInt64, key: RustBuffer, value: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } return try uniffiObj.save( - key: FfiConverterString.lift(key), - value: FfiConverterString.lift(value) + key: try FfiConverterString.lift(key), + value: try FfiConverterString.lift(value) ) } + let writeReturn = { () } uniffiTraitInterfaceCallWithError( callStatus: uniffiCallStatus, @@ -16721,11 +19224,12 @@ private enum UniffiCallbackInterfaceKeychainAccess { guard let uniffiObj = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.get( - key: FfiConverterString.lift(key) + return uniffiObj.get( + key: try FfiConverterString.lift(key) ) } + let writeReturn = { uniffiOutReturn.pointee = FfiConverterOptionString.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16744,11 +19248,12 @@ private enum UniffiCallbackInterfaceKeychainAccess { guard let uniffiObj = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.delete( - key: FfiConverterString.lift(key) + return uniffiObj.delete( + key: try FfiConverterString.lift(key) ) } + let writeReturn = { uniffiOutReturn.pointee = FfiConverterBool.lower($0) } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16756,7 +19261,7 @@ private enum UniffiCallbackInterfaceKeychainAccess { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfaceKeychainAccess.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface KeychainAccess: handle missing in uniffiFree") @@ -16771,58 +19276,66 @@ private func uniffiCallbackInitKeychainAccess() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfaceKeychainAccess { +fileprivate struct FfiConverterCallbackInterfaceKeychainAccess { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceKeychainAccess: FfiConverter { +extension FfiConverterCallbackInterfaceKeychainAccess : FfiConverter { typealias SwiftType = KeychainAccess typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } -public protocol PendingWalletViewModelReconciler: AnyObject { + + + +public protocol PendingWalletViewModelReconciler : AnyObject { + /** * Tells the frontend to reconcile the view model changes */ - func reconcile(message: PendingWalletViewModelReconcileMessage) + func reconcile(message: PendingWalletViewModelReconcileMessage) + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfacePendingWalletViewModelReconciler { +fileprivate struct UniffiCallbackInterfacePendingWalletViewModelReconciler { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16832,19 +19345,20 @@ private enum UniffiCallbackInterfacePendingWalletViewModelReconciler { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfacePendingWalletViewModelReconciler.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.reconcile( - message: FfiConverterTypePendingWalletViewModelReconcileMessage.lift(message) + return uniffiObj.reconcile( + message: try FfiConverterTypePendingWalletViewModelReconcileMessage.lift(message) ) } + let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16852,7 +19366,7 @@ private enum UniffiCallbackInterfacePendingWalletViewModelReconciler { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfacePendingWalletViewModelReconciler.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface PendingWalletViewModelReconciler: handle missing in uniffiFree") @@ -16867,58 +19381,66 @@ private func uniffiCallbackInitPendingWalletViewModelReconciler() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfacePendingWalletViewModelReconciler { +fileprivate struct FfiConverterCallbackInterfacePendingWalletViewModelReconciler { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfacePendingWalletViewModelReconciler: FfiConverter { +extension FfiConverterCallbackInterfacePendingWalletViewModelReconciler : FfiConverter { typealias SwiftType = PendingWalletViewModelReconciler typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } -public protocol WalletViewModelReconciler: AnyObject { + + + +public protocol WalletViewModelReconciler : AnyObject { + /** * Tells the frontend to reconcile the view model changes */ - func reconcile(message: WalletViewModelReconcileMessage) + func reconcile(message: WalletViewModelReconcileMessage) + } + + // Put the implementation in a struct so we don't pollute the top-level namespace -private enum UniffiCallbackInterfaceWalletViewModelReconciler { +fileprivate struct UniffiCallbackInterfaceWalletViewModelReconciler { + // Create the VTable using a series of closures. // Swift automatically converts these into C callback functions. // @@ -16928,19 +19450,20 @@ private enum UniffiCallbackInterfaceWalletViewModelReconciler { reconcile: { ( uniffiHandle: UInt64, message: RustBuffer, - _: UnsafeMutableRawPointer, + uniffiOutReturn: UnsafeMutableRawPointer, uniffiCallStatus: UnsafeMutablePointer ) in let makeCall = { - () throws in + () throws -> () in guard let uniffiObj = try? FfiConverterCallbackInterfaceWalletViewModelReconciler.handleMap.get(handle: uniffiHandle) else { throw UniffiInternalError.unexpectedStaleHandle } - return try uniffiObj.reconcile( - message: FfiConverterTypeWalletViewModelReconcileMessage.lift(message) + return uniffiObj.reconcile( + message: try FfiConverterTypeWalletViewModelReconcileMessage.lift(message) ) } + let writeReturn = { () } uniffiTraitInterfaceCall( callStatus: uniffiCallStatus, @@ -16948,7 +19471,7 @@ private enum UniffiCallbackInterfaceWalletViewModelReconciler { writeReturn: writeReturn ) }, - uniffiFree: { (uniffiHandle: UInt64) in + uniffiFree: { (uniffiHandle: UInt64) -> () in let result = try? FfiConverterCallbackInterfaceWalletViewModelReconciler.handleMap.remove(handle: uniffiHandle) if result == nil { print("Uniffi callback interface WalletViewModelReconciler: handle missing in uniffiFree") @@ -16963,57 +19486,57 @@ private func uniffiCallbackInitWalletViewModelReconciler() { // FfiConverter protocol for callback interfaces #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private enum FfiConverterCallbackInterfaceWalletViewModelReconciler { +fileprivate struct FfiConverterCallbackInterfaceWalletViewModelReconciler { fileprivate static let handleMap = UniffiHandleMap() } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -extension FfiConverterCallbackInterfaceWalletViewModelReconciler: FfiConverter { +extension FfiConverterCallbackInterfaceWalletViewModelReconciler : FfiConverter { typealias SwiftType = WalletViewModelReconciler typealias FfiType = UInt64 - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lift(_ handle: UInt64) throws -> SwiftType { try handleMap.get(handle: handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType { let handle: UInt64 = try readInt(&buf) return try lift(handle) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func lower(_ v: SwiftType) -> UInt64 { - handleMap.insert(obj: v) + return handleMap.insert(obj: v) } - #if swift(>=5.8) - @_documentation(visibility: private) - #endif +#if swift(>=5.8) + @_documentation(visibility: private) +#endif public static func write(_ v: SwiftType, into buf: inout [UInt8]) { writeInt(&buf, lower(v)) } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionUInt8: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionUInt8: FfiConverterRustBuffer { typealias SwiftType = UInt8? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17031,13 +19554,13 @@ private struct FfiConverterOptionUInt8: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionUInt32: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionUInt32: FfiConverterRustBuffer { typealias SwiftType = UInt32? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17055,13 +19578,13 @@ private struct FfiConverterOptionUInt32: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionString: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionString: FfiConverterRustBuffer { typealias SwiftType = String? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17079,13 +19602,13 @@ private struct FfiConverterOptionString: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionData: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionData: FfiConverterRustBuffer { typealias SwiftType = Data? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17103,13 +19626,13 @@ private struct FfiConverterOptionData: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionDuration: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionDuration: FfiConverterRustBuffer { typealias SwiftType = TimeInterval? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17127,13 +19650,13 @@ private struct FfiConverterOptionDuration: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeAddress: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeAddress: FfiConverterRustBuffer { typealias SwiftType = Address? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17151,13 +19674,13 @@ private struct FfiConverterOptionTypeAddress: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeAmount: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeAmount: FfiConverterRustBuffer { typealias SwiftType = Amount? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17175,13 +19698,13 @@ private struct FfiConverterOptionTypeAmount: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeFeeRateOptions: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeFeeRateOptions: FfiConverterRustBuffer { typealias SwiftType = FeeRateOptions? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17199,13 +19722,13 @@ private struct FfiConverterOptionTypeFeeRateOptions: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeFingerprint: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeFingerprint: FfiConverterRustBuffer { typealias SwiftType = Fingerprint? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17223,13 +19746,13 @@ private struct FfiConverterOptionTypeFingerprint: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeUnsignedTransactionRecord: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeUnsignedTransactionRecord: FfiConverterRustBuffer { typealias SwiftType = UnsignedTransactionRecord? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17247,13 +19770,13 @@ private struct FfiConverterOptionTypeUnsignedTransactionRecord: FfiConverterRust } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeAddressIndex: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeAddressIndex: FfiConverterRustBuffer { typealias SwiftType = AddressIndex? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17271,13 +19794,13 @@ private struct FfiConverterOptionTypeAddressIndex: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeBlockSizeLast: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeBlockSizeLast: FfiConverterRustBuffer { typealias SwiftType = BlockSizeLast? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17295,13 +19818,13 @@ private struct FfiConverterOptionTypeBlockSizeLast: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeFeeResponse: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeFeeResponse: FfiConverterRustBuffer { typealias SwiftType = FeeResponse? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17319,13 +19842,13 @@ private struct FfiConverterOptionTypeFeeResponse: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeFiatAmount: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeFiatAmount: FfiConverterRustBuffer { typealias SwiftType = FiatAmount? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17343,13 +19866,13 @@ private struct FfiConverterOptionTypeFiatAmount: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeMessageInfo: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeMessageInfo: FfiConverterRustBuffer { typealias SwiftType = MessageInfo? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17367,13 +19890,13 @@ private struct FfiConverterOptionTypeMessageInfo: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionSequenceSequenceString: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionSequenceSequenceString: FfiConverterRustBuffer { typealias SwiftType = [[String]]? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17391,13 +19914,13 @@ private struct FfiConverterOptionSequenceSequenceString: FfiConverterRustBuffer } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterOptionTypeWalletId: FfiConverterRustBuffer { +fileprivate struct FfiConverterOptionTypeWalletId: FfiConverterRustBuffer { typealias SwiftType = WalletId? public static func write(_ value: SwiftType, into buf: inout [UInt8]) { - guard let value else { + guard let value = value else { writeInt(&buf, Int8(0)) return } @@ -17415,9 +19938,9 @@ private struct FfiConverterOptionTypeWalletId: FfiConverterRustBuffer { } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceString: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceString: FfiConverterRustBuffer { typealias SwiftType = [String] public static func write(_ value: [String], into buf: inout [UInt8]) { @@ -17433,16 +19956,16 @@ private struct FfiConverterSequenceString: FfiConverterRustBuffer { var seq = [String]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterString.read(from: &buf)) + seq.append(try FfiConverterString.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeUnsignedTransaction: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeUnsignedTransaction: FfiConverterRustBuffer { typealias SwiftType = [UnsignedTransaction] public static func write(_ value: [UnsignedTransaction], into buf: inout [UInt8]) { @@ -17458,16 +19981,16 @@ private struct FfiConverterSequenceTypeUnsignedTransaction: FfiConverterRustBuff var seq = [UnsignedTransaction]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeUnsignedTransaction.read(from: &buf)) + seq.append(try FfiConverterTypeUnsignedTransaction.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeFoundAddress: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeFoundAddress: FfiConverterRustBuffer { typealias SwiftType = [FoundAddress] public static func write(_ value: [FoundAddress], into buf: inout [UInt8]) { @@ -17483,16 +20006,16 @@ private struct FfiConverterSequenceTypeFoundAddress: FfiConverterRustBuffer { var seq = [FoundAddress]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeFoundAddress.read(from: &buf)) + seq.append(try FfiConverterTypeFoundAddress.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeGroupedWord: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeGroupedWord: FfiConverterRustBuffer { typealias SwiftType = [GroupedWord] public static func write(_ value: [GroupedWord], into buf: inout [UInt8]) { @@ -17508,16 +20031,16 @@ private struct FfiConverterSequenceTypeGroupedWord: FfiConverterRustBuffer { var seq = [GroupedWord]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeGroupedWord.read(from: &buf)) + seq.append(try FfiConverterTypeGroupedWord.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeNdefRecord: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeNdefRecord: FfiConverterRustBuffer { typealias SwiftType = [NdefRecord] public static func write(_ value: [NdefRecord], into buf: inout [UInt8]) { @@ -17533,16 +20056,16 @@ private struct FfiConverterSequenceTypeNdefRecord: FfiConverterRustBuffer { var seq = [NdefRecord]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeNdefRecord.read(from: &buf)) + seq.append(try FfiConverterTypeNdefRecord.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeWalletMetadata: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeWalletMetadata: FfiConverterRustBuffer { typealias SwiftType = [WalletMetadata] public static func write(_ value: [WalletMetadata], into buf: inout [UInt8]) { @@ -17558,16 +20081,16 @@ private struct FfiConverterSequenceTypeWalletMetadata: FfiConverterRustBuffer { var seq = [WalletMetadata]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeWalletMetadata.read(from: &buf)) + seq.append(try FfiConverterTypeWalletMetadata.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeColorSchemeSelection: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeColorSchemeSelection: FfiConverterRustBuffer { typealias SwiftType = [ColorSchemeSelection] public static func write(_ value: [ColorSchemeSelection], into buf: inout [UInt8]) { @@ -17583,16 +20106,16 @@ private struct FfiConverterSequenceTypeColorSchemeSelection: FfiConverterRustBuf var seq = [ColorSchemeSelection]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeColorSchemeSelection.read(from: &buf)) + seq.append(try FfiConverterTypeColorSchemeSelection.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeNetwork: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeNetwork: FfiConverterRustBuffer { typealias SwiftType = [Network] public static func write(_ value: [Network], into buf: inout [UInt8]) { @@ -17608,16 +20131,16 @@ private struct FfiConverterSequenceTypeNetwork: FfiConverterRustBuffer { var seq = [Network]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeNetwork.read(from: &buf)) + seq.append(try FfiConverterTypeNetwork.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeNodeSelection: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeNodeSelection: FfiConverterRustBuffer { typealias SwiftType = [NodeSelection] public static func write(_ value: [NodeSelection], into buf: inout [UInt8]) { @@ -17633,16 +20156,16 @@ private struct FfiConverterSequenceTypeNodeSelection: FfiConverterRustBuffer { var seq = [NodeSelection]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeNodeSelection.read(from: &buf)) + seq.append(try FfiConverterTypeNodeSelection.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeRoute: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeRoute: FfiConverterRustBuffer { typealias SwiftType = [Route] public static func write(_ value: [Route], into buf: inout [UInt8]) { @@ -17658,16 +20181,16 @@ private struct FfiConverterSequenceTypeRoute: FfiConverterRustBuffer { var seq = [Route]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeRoute.read(from: &buf)) + seq.append(try FfiConverterTypeRoute.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer { typealias SwiftType = [Transaction] public static func write(_ value: [Transaction], into buf: inout [UInt8]) { @@ -17683,16 +20206,16 @@ private struct FfiConverterSequenceTypeTransaction: FfiConverterRustBuffer { var seq = [Transaction]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeTransaction.read(from: &buf)) + seq.append(try FfiConverterTypeTransaction.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceTypeUnit: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceTypeUnit: FfiConverterRustBuffer { typealias SwiftType = [Unit] public static func write(_ value: [Unit], into buf: inout [UInt8]) { @@ -17708,16 +20231,16 @@ private struct FfiConverterSequenceTypeUnit: FfiConverterRustBuffer { var seq = [Unit]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterTypeUnit.read(from: &buf)) + seq.append(try FfiConverterTypeUnit.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceSequenceString: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceSequenceString: FfiConverterRustBuffer { typealias SwiftType = [[String]] public static func write(_ value: [[String]], into buf: inout [UInt8]) { @@ -17733,16 +20256,16 @@ private struct FfiConverterSequenceSequenceString: FfiConverterRustBuffer { var seq = [[String]]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterSequenceString.read(from: &buf)) + seq.append(try FfiConverterSequenceString.read(from: &buf)) } return seq } } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif -private struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuffer { +fileprivate struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuffer { typealias SwiftType = [[GroupedWord]] public static func write(_ value: [[GroupedWord]], into buf: inout [UInt8]) { @@ -17758,12 +20281,13 @@ private struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuff var seq = [[GroupedWord]]() seq.reserveCapacity(Int(len)) for _ in 0 ..< len { - try seq.append(FfiConverterSequenceTypeGroupedWord.read(from: &buf)) + seq.append(try FfiConverterSequenceTypeGroupedWord.read(from: &buf)) } return seq } } + /** * Typealias from the type name used in the UDL file to the builtin type. This * is needed because the UDL type name is used in function/method signatures. @@ -17771,40 +20295,43 @@ private struct FfiConverterSequenceSequenceTypeGroupedWord: FfiConverterRustBuff public typealias FfiOpacity = UInt8 #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeFfiOpacity: FfiConverter { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> FfiOpacity { - try FfiConverterUInt8.read(from: &buf) + return try FfiConverterUInt8.read(from: &buf) } public static func write(_ value: FfiOpacity, into buf: inout [UInt8]) { - FfiConverterUInt8.write(value, into: &buf) + return FfiConverterUInt8.write(value, into: &buf) } public static func lift(_ value: UInt8) throws -> FfiOpacity { - try FfiConverterUInt8.lift(value) + return try FfiConverterUInt8.lift(value) } public static func lower(_ value: FfiOpacity) -> UInt8 { - FfiConverterUInt8.lower(value) + return FfiConverterUInt8.lower(value) } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiOpacity_lift(_ value: UInt8) throws -> FfiOpacity { - try FfiConverterTypeFfiOpacity.lift(value) + return try FfiConverterTypeFfiOpacity.lift(value) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeFfiOpacity_lower(_ value: FfiOpacity) -> UInt8 { - FfiConverterTypeFfiOpacity.lower(value) + return FfiConverterTypeFfiOpacity.lower(value) } + + /** * Typealias from the type name used in the UDL file to the builtin type. This * is needed because the UDL type name is used in function/method signatures. @@ -17812,50 +20339,51 @@ public func FfiConverterTypeFfiOpacity_lower(_ value: FfiOpacity) -> UInt8 { public typealias WalletId = String #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public struct FfiConverterTypeWalletId: FfiConverter { public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> WalletId { - try FfiConverterString.read(from: &buf) + return try FfiConverterString.read(from: &buf) } public static func write(_ value: WalletId, into buf: inout [UInt8]) { - FfiConverterString.write(value, into: &buf) + return FfiConverterString.write(value, into: &buf) } public static func lift(_ value: RustBuffer) throws -> WalletId { - try FfiConverterString.lift(value) + return try FfiConverterString.lift(value) } public static func lower(_ value: WalletId) -> RustBuffer { - FfiConverterString.lower(value) + return FfiConverterString.lower(value) } } + #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletId_lift(_ value: RustBuffer) throws -> WalletId { - try FfiConverterTypeWalletId.lift(value) + return try FfiConverterTypeWalletId.lift(value) } #if swift(>=5.8) - @_documentation(visibility: private) +@_documentation(visibility: private) #endif public func FfiConverterTypeWalletId_lower(_ value: WalletId) -> RustBuffer { - FfiConverterTypeWalletId.lower(value) + return FfiConverterTypeWalletId.lower(value) } private let UNIFFI_RUST_FUTURE_POLL_READY: Int8 = 0 private let UNIFFI_RUST_FUTURE_POLL_MAYBE_READY: Int8 = 1 -private let uniffiContinuationHandleMap = UniffiHandleMap>() +fileprivate let uniffiContinuationHandleMap = UniffiHandleMap>() -private func uniffiRustCallAsync( +fileprivate func uniffiRustCallAsync( rustFutureFunc: () -> UInt64, - pollFunc: (UInt64, @escaping UniffiRustFutureContinuationCallback, UInt64) -> Void, + pollFunc: (UInt64, @escaping UniffiRustFutureContinuationCallback, UInt64) -> (), completeFunc: (UInt64, UnsafeMutablePointer) -> F, - freeFunc: (UInt64) -> Void, + freeFunc: (UInt64) -> (), liftFunc: (F) throws -> T, errorHandler: ((RustBuffer) throws -> Swift.Error)? ) async throws -> T { @@ -17866,7 +20394,7 @@ private func uniffiRustCallAsync( defer { freeFunc(rustFuture) } - var pollResult: Int8 + var pollResult: Int8; repeat { pollResult = await withUnsafeContinuation { pollFunc( @@ -17885,286 +20413,254 @@ private func uniffiRustCallAsync( // Callback handlers for an async calls. These are invoked by Rust when the future is ready. They // lift the return value or error and resume the suspended function. -private func uniffiFutureContinuationCallback(handle: UInt64, pollResult: Int8) { +fileprivate func uniffiFutureContinuationCallback(handle: UInt64, pollResult: Int8) { if let continuation = try? uniffiContinuationHandleMap.remove(handle: handle) { continuation.resume(returning: pollResult) } else { print("uniffiFutureContinuationCallback invalid handle") } } - -public func addressIsEqual(lhs: Address, rhs: Address) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_address_is_equal( - FfiConverterTypeAddress.lower(lhs), - FfiConverterTypeAddress.lower(rhs), $0 - ) - }) +public func addressIsEqual(lhs: Address, rhs: Address) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_address_is_equal( + FfiConverterTypeAddress.lower(lhs), + FfiConverterTypeAddress.lower(rhs),$0 + ) +}) } - -public func addressIsValid(address: String) throws { try rustCallWithError(FfiConverterTypeAddressError.lift) { +public func addressIsValid(address: String)throws {try rustCallWithError(FfiConverterTypeAddressError.lift) { uniffi_cove_fn_func_address_is_valid( - FfiConverterString.lower(address), $0 + FfiConverterString.lower(address),$0 ) } } - -public func addressIsValidForNetwork(address: String, network: Network) throws { try rustCallWithError(FfiConverterTypeAddressError.lift) { +public func addressIsValidForNetwork(address: String, network: Network)throws {try rustCallWithError(FfiConverterTypeAddressError.lift) { uniffi_cove_fn_func_address_is_valid_for_network( FfiConverterString.lower(address), - FfiConverterTypeNetwork.lower(network), $0 + FfiConverterTypeNetwork.lower(network),$0 ) } } - -public func addressStringSpacedOut(address: String) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_address_string_spaced_out( - FfiConverterString.lower(address), $0 - ) - }) -} - -public func allColorSchemes() -> [ColorSchemeSelection] { - try! FfiConverterSequenceTypeColorSchemeSelection.lift(try! rustCall { - uniffi_cove_fn_func_all_color_schemes($0 - ) - }) +public func addressStringSpacedOut(address: String) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_address_string_spaced_out( + FfiConverterString.lower(address),$0 + ) +}) } - -public func allNetworks() -> [Network] { - try! FfiConverterSequenceTypeNetwork.lift(try! rustCall { - uniffi_cove_fn_func_all_networks($0 - ) - }) +public func allColorSchemes() -> [ColorSchemeSelection] { + return try! FfiConverterSequenceTypeColorSchemeSelection.lift(try! rustCall() { + uniffi_cove_fn_func_all_color_schemes($0 + ) +}) } - -public func allUnits() -> [Unit] { - try! FfiConverterSequenceTypeUnit.lift(try! rustCall { - uniffi_cove_fn_func_all_units($0 - ) - }) +public func allNetworks() -> [Network] { + return try! FfiConverterSequenceTypeNetwork.lift(try! rustCall() { + uniffi_cove_fn_func_all_networks($0 + ) +}) } - -public func balanceZero() -> Balance { - try! FfiConverterTypeBalance.lift(try! rustCall { - uniffi_cove_fn_func_balance_zero($0 - ) - }) +public func allUnits() -> [Unit] { + return try! FfiConverterSequenceTypeUnit.lift(try! rustCall() { + uniffi_cove_fn_func_all_units($0 + ) +}) } - -public func colorSchemeSelectionCapitalizedString(colorScheme: ColorSchemeSelection) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_color_scheme_selection_capitalized_string( - FfiConverterTypeColorSchemeSelection.lower(colorScheme), $0 - ) - }) +public func balanceZero() -> Balance { + return try! FfiConverterTypeBalance.lift(try! rustCall() { + uniffi_cove_fn_func_balance_zero($0 + ) +}) } - -public func defaultNodeSelection() -> NodeSelection { - try! FfiConverterTypeNodeSelection.lift(try! rustCall { - uniffi_cove_fn_func_default_node_selection($0 - ) - }) +public func colorSchemeSelectionCapitalizedString(colorScheme: ColorSchemeSelection) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_color_scheme_selection_capitalized_string( + FfiConverterTypeColorSchemeSelection.lower(colorScheme),$0 + ) +}) } - -public func discoveryStateIsEqual(lhs: DiscoveryState, rhs: DiscoveryState) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_discovery_state_is_equal( - FfiConverterTypeDiscoveryState.lower(lhs), - FfiConverterTypeDiscoveryState.lower(rhs), $0 - ) - }) +public func defaultNodeSelection() -> NodeSelection { + return try! FfiConverterTypeNodeSelection.lift(try! rustCall() { + uniffi_cove_fn_func_default_node_selection($0 + ) +}) } - -public func feeSpeedDuration(feeSpeed: FeeSpeed) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_fee_speed_duration( - FfiConverterTypeFeeSpeed.lower(feeSpeed), $0 - ) - }) +public func discoveryStateIsEqual(lhs: DiscoveryState, rhs: DiscoveryState) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_discovery_state_is_equal( + FfiConverterTypeDiscoveryState.lower(lhs), + FfiConverterTypeDiscoveryState.lower(rhs),$0 + ) +}) } - -public func feeSpeedToCircleColor(feeSpeed: FeeSpeed) -> FfiColor { - try! FfiConverterTypeFfiColor.lift(try! rustCall { - uniffi_cove_fn_func_fee_speed_to_circle_color( - FfiConverterTypeFeeSpeed.lower(feeSpeed), $0 - ) - }) +public func feeSpeedDuration(feeSpeed: FeeSpeed) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_fee_speed_duration( + FfiConverterTypeFeeSpeed.lower(feeSpeed),$0 + ) +}) } - -public func feeSpeedToString(feeSpeed: FeeSpeed) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_fee_speed_to_string( - FfiConverterTypeFeeSpeed.lower(feeSpeed), $0 - ) - }) +public func feeSpeedToCircleColor(feeSpeed: FeeSpeed) -> FfiColor { + return try! FfiConverterTypeFfiColor.lift(try! rustCall() { + uniffi_cove_fn_func_fee_speed_to_circle_color( + FfiConverterTypeFeeSpeed.lower(feeSpeed),$0 + ) +}) } - -public func fiatAmountPreviewNew() -> FiatAmount { - try! FfiConverterTypeFiatAmount.lift(try! rustCall { - uniffi_cove_fn_func_fiat_amount_preview_new($0 - ) - }) +public func feeSpeedToString(feeSpeed: FeeSpeed) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_fee_speed_to_string( + FfiConverterTypeFeeSpeed.lower(feeSpeed),$0 + ) +}) } - -public func groupedPlainWordsOf(mnemonic: String, groups: UInt8) throws -> [[String]] { - try FfiConverterSequenceSequenceString.lift(rustCallWithError(FfiConverterTypeMnemonicParseError.lift) { - uniffi_cove_fn_func_grouped_plain_words_of( - FfiConverterString.lower(mnemonic), - FfiConverterUInt8.lower(groups), $0 - ) - }) +public func fiatAmountPreviewNew() -> FiatAmount { + return try! FfiConverterTypeFiatAmount.lift(try! rustCall() { + uniffi_cove_fn_func_fiat_amount_preview_new($0 + ) +}) } - -public func hashRoute(route: Route) -> UInt64 { - try! FfiConverterUInt64.lift(try! rustCall { - uniffi_cove_fn_func_hash_route( - FfiConverterTypeRoute.lower(route), $0 - ) - }) +public func groupedPlainWordsOf(mnemonic: String, groups: UInt8)throws -> [[String]] { + return try FfiConverterSequenceSequenceString.lift(try rustCallWithError(FfiConverterTypeMnemonicParseError.lift) { + uniffi_cove_fn_func_grouped_plain_words_of( + FfiConverterString.lower(mnemonic), + FfiConverterUInt8.lower(groups),$0 + ) +}) } - -public func isRouteEqual(route: Route, routeToCheck: Route) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_is_route_equal( - FfiConverterTypeRoute.lower(route), - FfiConverterTypeRoute.lower(routeToCheck), $0 - ) - }) +public func hashRoute(route: Route) -> UInt64 { + return try! FfiConverterUInt64.lift(try! rustCall() { + uniffi_cove_fn_func_hash_route( + FfiConverterTypeRoute.lower(route),$0 + ) +}) } - -public func networkToString(network: Network) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_network_to_string( - FfiConverterTypeNetwork.lower(network), $0 - ) - }) +public func isRouteEqual(route: Route, routeToCheck: Route) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_is_route_equal( + FfiConverterTypeRoute.lower(route), + FfiConverterTypeRoute.lower(routeToCheck),$0 + ) +}) } - -public func nodeSelectionToNode(node: NodeSelection) -> Node { - try! FfiConverterTypeNode.lift(try! rustCall { - uniffi_cove_fn_func_node_selection_to_node( - FfiConverterTypeNodeSelection.lower(node), $0 - ) - }) +public func networkToString(network: Network) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_network_to_string( + FfiConverterTypeNetwork.lower(network),$0 + ) +}) } - -public func numberOfWordsInGroups(me: NumberOfBip39Words, of: UInt8) -> [[String]] { - try! FfiConverterSequenceSequenceString.lift(try! rustCall { - uniffi_cove_fn_func_number_of_words_in_groups( - FfiConverterTypeNumberOfBip39Words.lower(me), - FfiConverterUInt8.lower(of), $0 - ) - }) +public func nodeSelectionToNode(node: NodeSelection) -> Node { + return try! FfiConverterTypeNode.lift(try! rustCall() { + uniffi_cove_fn_func_node_selection_to_node( + FfiConverterTypeNodeSelection.lower(node),$0 + ) +}) } - -public func numberOfWordsToWordCount(me: NumberOfBip39Words) -> UInt8 { - try! FfiConverterUInt8.lift(try! rustCall { - uniffi_cove_fn_func_number_of_words_to_word_count( - FfiConverterTypeNumberOfBip39Words.lower(me), $0 - ) - }) +public func numberOfWordsInGroups(me: NumberOfBip39Words, of: UInt8) -> [[String]] { + return try! FfiConverterSequenceSequenceString.lift(try! rustCall() { + uniffi_cove_fn_func_number_of_words_in_groups( + FfiConverterTypeNumberOfBip39Words.lower(me), + FfiConverterUInt8.lower(of),$0 + ) +}) } - -public func previewNewLegacyFoundAddress() -> FoundAddress { - try! FfiConverterTypeFoundAddress.lift(try! rustCall { - uniffi_cove_fn_func_preview_new_legacy_found_address($0 - ) - }) +public func numberOfWordsToWordCount(me: NumberOfBip39Words) -> UInt8 { + return try! FfiConverterUInt8.lift(try! rustCall() { + uniffi_cove_fn_func_number_of_words_to_word_count( + FfiConverterTypeNumberOfBip39Words.lower(me),$0 + ) +}) } - -public func previewNewWrappedFoundAddress() -> FoundAddress { - try! FfiConverterTypeFoundAddress.lift(try! rustCall { - uniffi_cove_fn_func_preview_new_wrapped_found_address($0 - ) - }) +public func previewNewLegacyFoundAddress() -> FoundAddress { + return try! FfiConverterTypeFoundAddress.lift(try! rustCall() { + uniffi_cove_fn_func_preview_new_legacy_found_address($0 + ) +}) } - -public func stringOrDataTryIntoMultiFormat(stringOrData: StringOrData) throws -> MultiFormat { - try FfiConverterTypeMultiFormat.lift(rustCallWithError(FfiConverterTypeMultiFormatError.lift) { - uniffi_cove_fn_func_string_or_data_try_into_multi_format( - FfiConverterTypeStringOrData.lower(stringOrData), $0 - ) - }) +public func previewNewWrappedFoundAddress() -> FoundAddress { + return try! FfiConverterTypeFoundAddress.lift(try! rustCall() { + uniffi_cove_fn_func_preview_new_wrapped_found_address($0 + ) +}) } - -public func transactionPreviewConfirmedNew() -> Transaction { - try! FfiConverterTypeTransaction.lift(try! rustCall { - uniffi_cove_fn_func_transaction_preview_confirmed_new($0 - ) - }) +public func stringOrDataTryIntoMultiFormat(stringOrData: StringOrData)throws -> MultiFormat { + return try FfiConverterTypeMultiFormat.lift(try rustCallWithError(FfiConverterTypeMultiFormatError.lift) { + uniffi_cove_fn_func_string_or_data_try_into_multi_format( + FfiConverterTypeStringOrData.lower(stringOrData),$0 + ) +}) } - -public func transactionPreviewUnconfirmedNew() -> Transaction { - try! FfiConverterTypeTransaction.lift(try! rustCall { - uniffi_cove_fn_func_transaction_preview_unconfirmed_new($0 - ) - }) +public func transactionPreviewConfirmedNew() -> Transaction { + return try! FfiConverterTypeTransaction.lift(try! rustCall() { + uniffi_cove_fn_func_transaction_preview_confirmed_new($0 + ) +}) } - -public func transactionsPreviewNew(confirmed: UInt8, unconfirmed: UInt8) -> [Transaction] { - try! FfiConverterSequenceTypeTransaction.lift(try! rustCall { - uniffi_cove_fn_func_transactions_preview_new( - FfiConverterUInt8.lower(confirmed), - FfiConverterUInt8.lower(unconfirmed), $0 - ) - }) +public func transactionPreviewUnconfirmedNew() -> Transaction { + return try! FfiConverterTypeTransaction.lift(try! rustCall() { + uniffi_cove_fn_func_transaction_preview_unconfirmed_new($0 + ) +}) } - -public func unitToString(unit: Unit) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_unit_to_string( - FfiConverterTypeUnit.lower(unit), $0 - ) - }) +public func transactionsPreviewNew(confirmed: UInt8, unconfirmed: UInt8) -> [Transaction] { + return try! FfiConverterSequenceTypeTransaction.lift(try! rustCall() { + uniffi_cove_fn_func_transactions_preview_new( + FfiConverterUInt8.lower(confirmed), + FfiConverterUInt8.lower(unconfirmed),$0 + ) +}) } - -public func updatePricesIfNeeded() async { - try! await uniffiRustCallAsync( - rustFutureFunc: { - uniffi_cove_fn_func_update_prices_if_needed( - ) - }, - pollFunc: ffi_cove_rust_future_poll_void, - completeFunc: ffi_cove_rust_future_complete_void, - freeFunc: ffi_cove_rust_future_free_void, - liftFunc: { $0 }, - errorHandler: nil +public func unitToString(unit: Unit) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_unit_to_string( + FfiConverterTypeUnit.lower(unit),$0 ) +}) } - -public func walletAddressTypeLessThan(lhs: WalletAddressType, rhs: WalletAddressType) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_wallet_address_type_less_than( - FfiConverterTypeWalletAddressType.lower(lhs), - FfiConverterTypeWalletAddressType.lower(rhs), $0 +public func updatePricesIfNeeded()async { + return + try! await uniffiRustCallAsync( + rustFutureFunc: { + uniffi_cove_fn_func_update_prices_if_needed( + ) + }, + pollFunc: ffi_cove_rust_future_poll_void, + completeFunc: ffi_cove_rust_future_complete_void, + freeFunc: ffi_cove_rust_future_free_void, + liftFunc: { $0 }, + errorHandler: nil + ) - }) } - -public func walletAddressTypeToString(walletAddressType: WalletAddressType) -> String { - try! FfiConverterString.lift(try! rustCall { - uniffi_cove_fn_func_wallet_address_type_to_string( - FfiConverterTypeWalletAddressType.lower(walletAddressType), $0 - ) - }) +public func walletAddressTypeLessThan(lhs: WalletAddressType, rhs: WalletAddressType) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_wallet_address_type_less_than( + FfiConverterTypeWalletAddressType.lower(lhs), + FfiConverterTypeWalletAddressType.lower(rhs),$0 + ) +}) } - -public func walletMetadataPreview() -> WalletMetadata { - try! FfiConverterTypeWalletMetadata.lift(try! rustCall { - uniffi_cove_fn_func_wallet_metadata_preview($0 - ) - }) +public func walletAddressTypeToString(walletAddressType: WalletAddressType) -> String { + return try! FfiConverterString.lift(try! rustCall() { + uniffi_cove_fn_func_wallet_address_type_to_string( + FfiConverterTypeWalletAddressType.lower(walletAddressType),$0 + ) +}) } - -public func walletStateIsEqual(lhs: WalletLoadState, rhs: WalletLoadState) -> Bool { - try! FfiConverterBool.lift(try! rustCall { - uniffi_cove_fn_func_wallet_state_is_equal( - FfiConverterTypeWalletLoadState.lower(lhs), - FfiConverterTypeWalletLoadState.lower(rhs), $0 - ) - }) +public func walletMetadataPreview() -> WalletMetadata { + return try! FfiConverterTypeWalletMetadata.lift(try! rustCall() { + uniffi_cove_fn_func_wallet_metadata_preview($0 + ) +}) +} +public func walletStateIsEqual(lhs: WalletLoadState, rhs: WalletLoadState) -> Bool { + return try! FfiConverterBool.lift(try! rustCall() { + uniffi_cove_fn_func_wallet_state_is_equal( + FfiConverterTypeWalletLoadState.lower(lhs), + FfiConverterTypeWalletLoadState.lower(rhs),$0 + ) +}) } private enum InitializationResult { @@ -18172,7 +20668,6 @@ private enum InitializationResult { case contractVersionMismatch case apiChecksumMismatch } - // Use a global variable to perform the versioning checks. Swift ensures that // the code inside is only computed once. private let initializationResult: InitializationResult = { @@ -18183,1027 +20678,1027 @@ private let initializationResult: InitializationResult = { if bindings_contract_version != scaffolding_contract_version { return InitializationResult.contractVersionMismatch } - if uniffi_cove_checksum_func_address_is_equal() != 63981 { + if (uniffi_cove_checksum_func_address_is_equal() != 63981) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_address_is_valid() != 22920 { + if (uniffi_cove_checksum_func_address_is_valid() != 22920) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_address_is_valid_for_network() != 41522 { + if (uniffi_cove_checksum_func_address_is_valid_for_network() != 41522) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_address_string_spaced_out() != 60902 { + if (uniffi_cove_checksum_func_address_string_spaced_out() != 60902) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_all_color_schemes() != 24835 { + if (uniffi_cove_checksum_func_all_color_schemes() != 24835) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_all_networks() != 30650 { + if (uniffi_cove_checksum_func_all_networks() != 30650) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_all_units() != 36925 { + if (uniffi_cove_checksum_func_all_units() != 36925) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_balance_zero() != 63807 { + if (uniffi_cove_checksum_func_balance_zero() != 63807) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_color_scheme_selection_capitalized_string() != 42247 { + if (uniffi_cove_checksum_func_color_scheme_selection_capitalized_string() != 42247) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_default_node_selection() != 14665 { + if (uniffi_cove_checksum_func_default_node_selection() != 14665) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_discovery_state_is_equal() != 12390 { + if (uniffi_cove_checksum_func_discovery_state_is_equal() != 12390) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_fee_speed_duration() != 28599 { + if (uniffi_cove_checksum_func_fee_speed_duration() != 28599) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_fee_speed_to_circle_color() != 46076 { + if (uniffi_cove_checksum_func_fee_speed_to_circle_color() != 46076) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_fee_speed_to_string() != 21405 { + if (uniffi_cove_checksum_func_fee_speed_to_string() != 21405) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_fiat_amount_preview_new() != 6422 { + if (uniffi_cove_checksum_func_fiat_amount_preview_new() != 6422) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_grouped_plain_words_of() != 45802 { + if (uniffi_cove_checksum_func_grouped_plain_words_of() != 45802) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_hash_route() != 32817 { + if (uniffi_cove_checksum_func_hash_route() != 32817) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_is_route_equal() != 25732 { + if (uniffi_cove_checksum_func_is_route_equal() != 25732) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_network_to_string() != 60660 { + if (uniffi_cove_checksum_func_network_to_string() != 60660) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_node_selection_to_node() != 57209 { + if (uniffi_cove_checksum_func_node_selection_to_node() != 57209) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_number_of_words_in_groups() != 14214 { + if (uniffi_cove_checksum_func_number_of_words_in_groups() != 14214) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_number_of_words_to_word_count() != 24846 { + if (uniffi_cove_checksum_func_number_of_words_to_word_count() != 24846) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_preview_new_legacy_found_address() != 36773 { + if (uniffi_cove_checksum_func_preview_new_legacy_found_address() != 36773) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_preview_new_wrapped_found_address() != 57500 { + if (uniffi_cove_checksum_func_preview_new_wrapped_found_address() != 57500) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_string_or_data_try_into_multi_format() != 34953 { + if (uniffi_cove_checksum_func_string_or_data_try_into_multi_format() != 34953) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_transaction_preview_confirmed_new() != 43706 { + if (uniffi_cove_checksum_func_transaction_preview_confirmed_new() != 43706) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_transaction_preview_unconfirmed_new() != 49725 { + if (uniffi_cove_checksum_func_transaction_preview_unconfirmed_new() != 49725) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_transactions_preview_new() != 60166 { + if (uniffi_cove_checksum_func_transactions_preview_new() != 60166) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_unit_to_string() != 63080 { + if (uniffi_cove_checksum_func_unit_to_string() != 63080) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_update_prices_if_needed() != 27986 { + if (uniffi_cove_checksum_func_update_prices_if_needed() != 27986) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_wallet_address_type_less_than() != 14566 { + if (uniffi_cove_checksum_func_wallet_address_type_less_than() != 14566) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_wallet_address_type_to_string() != 36064 { + if (uniffi_cove_checksum_func_wallet_address_type_to_string() != 36064) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_wallet_metadata_preview() != 1229 { + if (uniffi_cove_checksum_func_wallet_metadata_preview() != 1229) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_func_wallet_state_is_equal() != 27037 { + if (uniffi_cove_checksum_func_wallet_state_is_equal() != 27037) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_address_spaced_out() != 29461 { + if (uniffi_cove_checksum_method_address_spaced_out() != 29461) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_address_string() != 10597 { + if (uniffi_cove_checksum_method_address_string() != 10597) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addressinfo_address() != 59376 { + if (uniffi_cove_checksum_method_addressinfo_address() != 59376) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addressinfo_adress_string() != 41627 { + if (uniffi_cove_checksum_method_addressinfo_adress_string() != 41627) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addressinfo_index() != 45529 { + if (uniffi_cove_checksum_method_addressinfo_index() != 45529) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addresswithnetwork_address() != 33477 { + if (uniffi_cove_checksum_method_addresswithnetwork_address() != 33477) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addresswithnetwork_amount() != 23019 { + if (uniffi_cove_checksum_method_addresswithnetwork_amount() != 23019) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_addresswithnetwork_network() != 64145 { + if (uniffi_cove_checksum_method_addresswithnetwork_network() != 64145) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_as_btc() != 7531 { + if (uniffi_cove_checksum_method_amount_as_btc() != 7531) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_as_sats() != 62969 { + if (uniffi_cove_checksum_method_amount_as_sats() != 62969) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_btc_string() != 21387 { + if (uniffi_cove_checksum_method_amount_btc_string() != 21387) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_btc_string_with_unit() != 10939 { + if (uniffi_cove_checksum_method_amount_btc_string_with_unit() != 10939) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_fmt_string_with_unit() != 14497 { + if (uniffi_cove_checksum_method_amount_fmt_string_with_unit() != 14497) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_sats_string() != 36019 { + if (uniffi_cove_checksum_method_amount_sats_string() != 36019) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_amount_sats_string_with_unit() != 34409 { + if (uniffi_cove_checksum_method_amount_sats_string_with_unit() != 34409) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_autocomplete_autocomplete() != 4748 { + if (uniffi_cove_checksum_method_autocomplete_autocomplete() != 4748) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_autocomplete_is_valid_word() != 18021 { + if (uniffi_cove_checksum_method_autocomplete_is_valid_word() != 18021) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoinresult_final_result() != 44157 { + if (uniffi_cove_checksum_method_bbqrjoinresult_final_result() != 44157) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoinresult_is_complete() != 4119 { + if (uniffi_cove_checksum_method_bbqrjoinresult_is_complete() != 4119) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoinresult_parts_left() != 39828 { + if (uniffi_cove_checksum_method_bbqrjoinresult_parts_left() != 39828) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoined_get_grouped_words() != 36018 { + if (uniffi_cove_checksum_method_bbqrjoined_get_grouped_words() != 36018) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bbqrjoined_get_seed_words() != 64693 { + if (uniffi_cove_checksum_method_bbqrjoined_get_seed_words() != 64693) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39autocomplete_autocomplete() != 21847 { + if (uniffi_cove_checksum_method_bip39autocomplete_autocomplete() != 21847) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39autocomplete_is_valid_word() != 19081 { + if (uniffi_cove_checksum_method_bip39autocomplete_is_valid_word() != 19081) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39wordspecificautocomplete_autocomplete() != 34680 { + if (uniffi_cove_checksum_method_bip39wordspecificautocomplete_autocomplete() != 34680) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_bip39_word() != 59249 { + if (uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_bip39_word() != 59249) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_valid_word() != 4400 { + if (uniffi_cove_checksum_method_bip39wordspecificautocomplete_is_valid_word() != 4400) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bitcointransaction_normalize_tx_id() != 15620 { + if (uniffi_cove_checksum_method_bitcointransaction_normalize_tx_id() != 15620) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bitcointransaction_tx_id() != 39904 { + if (uniffi_cove_checksum_method_bitcointransaction_tx_id() != 39904) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_bitcointransaction_tx_id_hash() != 59940 { + if (uniffi_cove_checksum_method_bitcointransaction_tx_id_hash() != 59940) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_boxedroute_route() != 26050 { + if (uniffi_cove_checksum_method_boxedroute_route() != 26050) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_fee_rate() != 32230 { + if (uniffi_cove_checksum_method_confirmdetails_fee_rate() != 32230) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_fee_total() != 15069 { + if (uniffi_cove_checksum_method_confirmdetails_fee_total() != 15069) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_id() != 46525 { + if (uniffi_cove_checksum_method_confirmdetails_id() != 46525) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_id_hash() != 11280 { + if (uniffi_cove_checksum_method_confirmdetails_id_hash() != 11280) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_is_equal() != 16719 { + if (uniffi_cove_checksum_method_confirmdetails_is_equal() != 16719) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_normalized_id() != 32961 { + if (uniffi_cove_checksum_method_confirmdetails_normalized_id() != 32961) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_psbt_bytes() != 48686 { + if (uniffi_cove_checksum_method_confirmdetails_psbt_bytes() != 48686) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_psbt_to_bbqr() != 44579 { + if (uniffi_cove_checksum_method_confirmdetails_psbt_to_bbqr() != 44579) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_psbt_to_hex() != 3021 { + if (uniffi_cove_checksum_method_confirmdetails_psbt_to_hex() != 3021) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_sending_amount() != 58788 { + if (uniffi_cove_checksum_method_confirmdetails_sending_amount() != 58788) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_sending_to() != 43075 { + if (uniffi_cove_checksum_method_confirmdetails_sending_to() != 43075) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmdetails_spending_amount() != 62205 { + if (uniffi_cove_checksum_method_confirmdetails_spending_amount() != 62205) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_block_height() != 62845 { + if (uniffi_cove_checksum_method_confirmedtransaction_block_height() != 62845) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_block_height_fmt() != 22839 { + if (uniffi_cove_checksum_method_confirmedtransaction_block_height_fmt() != 22839) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_confirmed_at() != 21481 { + if (uniffi_cove_checksum_method_confirmedtransaction_confirmed_at() != 21481) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt() != 28835 { + if (uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt() != 28835) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt_with_time() != 36703 { + if (uniffi_cove_checksum_method_confirmedtransaction_confirmed_at_fmt_with_time() != 36703) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_fiat_amount() != 31522 { + if (uniffi_cove_checksum_method_confirmedtransaction_fiat_amount() != 31522) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_id() != 63537 { + if (uniffi_cove_checksum_method_confirmedtransaction_id() != 63537) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_label() != 17010 { + if (uniffi_cove_checksum_method_confirmedtransaction_label() != 17010) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_confirmedtransaction_sent_and_received() != 3525 { + if (uniffi_cove_checksum_method_confirmedtransaction_sent_and_received() != 3525) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_database_global_config() != 4476 { + if (uniffi_cove_checksum_method_database_global_config() != 4476) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_database_unsigned_transactions() != 8913 { + if (uniffi_cove_checksum_method_database_unsigned_transactions() != 8913) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_database_wallets() != 38115 { + if (uniffi_cove_checksum_method_database_wallets() != 38115) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerate_sat_per_vb() != 31119 { + if (uniffi_cove_checksum_method_feerate_sat_per_vb() != 31119) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_duration() != 58541 { + if (uniffi_cove_checksum_method_feerateoption_duration() != 58541) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_fee_rate() != 56298 { + if (uniffi_cove_checksum_method_feerateoption_fee_rate() != 56298) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_fee_speed() != 22536 { + if (uniffi_cove_checksum_method_feerateoption_fee_speed() != 22536) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_is_equal() != 48538 { + if (uniffi_cove_checksum_method_feerateoption_is_equal() != 48538) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoption_sat_per_vb() != 60748 { + if (uniffi_cove_checksum_method_feerateoption_sat_per_vb() != 60748) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_duration() != 26593 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_duration() != 26593) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate() != 14029 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate() != 14029) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate_options() != 29806 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_rate_options() != 29806) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_speed() != 32155 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_fee_speed() != 32155) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_is_equal() != 47764 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_is_equal() != 47764) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_sat_per_vb() != 40506 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_sat_per_vb() != 40506) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionwithtotalfee_total_fee() != 40202 { + if (uniffi_cove_checksum_method_feerateoptionwithtotalfee_total_fee() != 40202) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptions_fast() != 29009 { + if (uniffi_cove_checksum_method_feerateoptions_fast() != 29009) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptions_medium() != 5747 { + if (uniffi_cove_checksum_method_feerateoptions_medium() != 5747) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptions_slow() != 58269 { + if (uniffi_cove_checksum_method_feerateoptions_slow() != 58269) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionswithtotalfee_fast() != 15779 { + if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_fast() != 15779) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionswithtotalfee_fee_rate_options() != 7503 { + if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_fee_rate_options() != 7503) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionswithtotalfee_medium() != 444 { + if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_medium() != 444) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_feerateoptionswithtotalfee_slow() != 1762 { + if (uniffi_cove_checksum_method_feerateoptionswithtotalfee_slow() != 1762) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_dispatch() != 48712 { + if (uniffi_cove_checksum_method_ffiapp_dispatch() != 48712) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_fees() != 44559 { + if (uniffi_cove_checksum_method_ffiapp_fees() != 44559) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_go_to_selected_wallet() != 36820 { + if (uniffi_cove_checksum_method_ffiapp_go_to_selected_wallet() != 36820) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_has_wallets() != 3792 { + if (uniffi_cove_checksum_method_ffiapp_has_wallets() != 3792) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_init_on_start() != 44630 { + if (uniffi_cove_checksum_method_ffiapp_init_on_start() != 44630) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_listen_for_updates() != 48795 { + if (uniffi_cove_checksum_method_ffiapp_listen_for_updates() != 48795) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route() != 16043 { + if (uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route() != 16043) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route_after() != 14335 { + if (uniffi_cove_checksum_method_ffiapp_load_and_reset_default_route_after() != 14335) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_network() != 26747 { + if (uniffi_cove_checksum_method_ffiapp_network() != 26747) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_num_wallets() != 28903 { + if (uniffi_cove_checksum_method_ffiapp_num_wallets() != 28903) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_prices() != 58350 { + if (uniffi_cove_checksum_method_ffiapp_prices() != 58350) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_reset_default_route_to() != 40613 { + if (uniffi_cove_checksum_method_ffiapp_reset_default_route_to() != 40613) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_select_wallet() != 4478 { + if (uniffi_cove_checksum_method_ffiapp_select_wallet() != 4478) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffiapp_state() != 19551 { + if (uniffi_cove_checksum_method_ffiapp_state() != 19551) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_data_from_records() != 32962 { + if (uniffi_cove_checksum_method_ffinfcreader_data_from_records() != 32962) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_is_resumeable() != 21759 { + if (uniffi_cove_checksum_method_ffinfcreader_is_resumeable() != 21759) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_is_started() != 956 { + if (uniffi_cove_checksum_method_ffinfcreader_is_started() != 956) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_message_info() != 7402 { + if (uniffi_cove_checksum_method_ffinfcreader_message_info() != 7402) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_parse() != 39581 { + if (uniffi_cove_checksum_method_ffinfcreader_parse() != 39581) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffinfcreader_string_from_record() != 60818 { + if (uniffi_cove_checksum_method_ffinfcreader_string_from_record() != 60818) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_filehandler_read() != 31508 { + if (uniffi_cove_checksum_method_filehandler_read() != 31508) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_fingerprint_as_lowercase() != 25321 { + if (uniffi_cove_checksum_method_fingerprint_as_lowercase() != 25321) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_fingerprint_as_uppercase() != 11522 { + if (uniffi_cove_checksum_method_fingerprint_as_uppercase() != 11522) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_clear_selected_wallet() != 22146 { + if (uniffi_cove_checksum_method_globalconfigtable_clear_selected_wallet() != 22146) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_color_scheme() != 18859 { + if (uniffi_cove_checksum_method_globalconfigtable_color_scheme() != 18859) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_delete() != 13364 { + if (uniffi_cove_checksum_method_globalconfigtable_delete() != 13364) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_get() != 52128 { + if (uniffi_cove_checksum_method_globalconfigtable_get() != 52128) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_select_wallet() != 52001 { + if (uniffi_cove_checksum_method_globalconfigtable_select_wallet() != 52001) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_selected_network() != 7657 { + if (uniffi_cove_checksum_method_globalconfigtable_selected_network() != 7657) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_selected_node() != 31353 { + if (uniffi_cove_checksum_method_globalconfigtable_selected_node() != 31353) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_selected_wallet() != 51568 { + if (uniffi_cove_checksum_method_globalconfigtable_selected_wallet() != 51568) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_set() != 31033 { + if (uniffi_cove_checksum_method_globalconfigtable_set() != 31033) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_set_color_scheme() != 24086 { + if (uniffi_cove_checksum_method_globalconfigtable_set_color_scheme() != 24086) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_set_selected_network() != 34312 { + if (uniffi_cove_checksum_method_globalconfigtable_set_selected_network() != 34312) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalconfigtable_set_selected_node() != 35090 { + if (uniffi_cove_checksum_method_globalconfigtable_set_selected_node() != 35090) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalflagtable_get() != 42810 { + if (uniffi_cove_checksum_method_globalflagtable_get() != 42810) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalflagtable_set() != 23016 { + if (uniffi_cove_checksum_method_globalflagtable_set() != 23016) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_globalflagtable_toggle_bool_config() != 12062 { + if (uniffi_cove_checksum_method_globalflagtable_toggle_bool_config() != 12062) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_headericonpresenter_background_color() != 61819 { + if (uniffi_cove_checksum_method_headericonpresenter_background_color() != 61819) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_headericonpresenter_icon_color() != 52203 { + if (uniffi_cove_checksum_method_headericonpresenter_icon_color() != 52203) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_headericonpresenter_ring_color() != 23010 { + if (uniffi_cove_checksum_method_headericonpresenter_ring_color() != 23010) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_mnemonic_all_words() != 45039 { + if (uniffi_cove_checksum_method_mnemonic_all_words() != 45039) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_mnemonic_words() != 35319 { + if (uniffi_cove_checksum_method_mnemonic_words() != 35319) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_add_part() != 11179 { + if (uniffi_cove_checksum_method_multiqr_add_part() != 11179) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_get_grouped_words() != 21029 { + if (uniffi_cove_checksum_method_multiqr_get_grouped_words() != 21029) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_handle_scan_result() != 3857 { + if (uniffi_cove_checksum_method_multiqr_handle_scan_result() != 3857) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_is_bbqr() != 22296 { + if (uniffi_cove_checksum_method_multiqr_is_bbqr() != 22296) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_is_seed_qr() != 10256 { + if (uniffi_cove_checksum_method_multiqr_is_seed_qr() != 10256) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_multiqr_total_parts() != 51119 { + if (uniffi_cove_checksum_method_multiqr_total_parts() != 51119) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ndefrecordreader_id() != 37849 { + if (uniffi_cove_checksum_method_ndefrecordreader_id() != 37849) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ndefrecordreader_type_() != 27060 { + if (uniffi_cove_checksum_method_ndefrecordreader_type_() != 27060) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nfcconst_bytes_per_block() != 35854 { + if (uniffi_cove_checksum_method_nfcconst_bytes_per_block() != 35854) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nfcconst_number_of_blocks_per_chunk() != 48258 { + if (uniffi_cove_checksum_method_nfcconst_number_of_blocks_per_chunk() != 48258) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nfcconst_total_bytes_per_chunk() != 41799 { + if (uniffi_cove_checksum_method_nfcconst_total_bytes_per_chunk() != 41799) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_check_and_save_node() != 48519 { + if (uniffi_cove_checksum_method_nodeselector_check_and_save_node() != 48519) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_check_selected_node() != 19872 { + if (uniffi_cove_checksum_method_nodeselector_check_selected_node() != 19872) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_node_list() != 23402 { + if (uniffi_cove_checksum_method_nodeselector_node_list() != 23402) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_parse_custom_node() != 54190 { + if (uniffi_cove_checksum_method_nodeselector_parse_custom_node() != 54190) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_select_preset_node() != 36330 { + if (uniffi_cove_checksum_method_nodeselector_select_preset_node() != 36330) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_nodeselector_selected_node() != 29849 { + if (uniffi_cove_checksum_method_nodeselector_selected_node() != 29849) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_psbt_fee() != 37973 { + if (uniffi_cove_checksum_method_psbt_fee() != 37973) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_psbt_tx_id() != 61047 { + if (uniffi_cove_checksum_method_psbt_tx_id() != 61047) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_psbt_weight() != 5696 { + if (uniffi_cove_checksum_method_psbt_weight() != 5696) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_cold_wallet_import() != 14120 { + if (uniffi_cove_checksum_method_routefactory_cold_wallet_import() != 14120) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_hot_wallet() != 7846 { + if (uniffi_cove_checksum_method_routefactory_hot_wallet() != 7846) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_hot_wallet_import_from_scan() != 63262 { + if (uniffi_cove_checksum_method_routefactory_hot_wallet_import_from_scan() != 63262) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_is_same_parent_route() != 43168 { + if (uniffi_cove_checksum_method_routefactory_is_same_parent_route() != 43168) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_load_and_reset_to() != 41201 { + if (uniffi_cove_checksum_method_routefactory_load_and_reset_to() != 41201) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_load_and_reset_to_after() != 39743 { + if (uniffi_cove_checksum_method_routefactory_load_and_reset_to_after() != 39743) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_new_hot_wallet() != 51032 { + if (uniffi_cove_checksum_method_routefactory_new_hot_wallet() != 51032) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_new_wallet_select() != 21343 { + if (uniffi_cove_checksum_method_routefactory_new_wallet_select() != 21343) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_qr_import() != 17980 { + if (uniffi_cove_checksum_method_routefactory_qr_import() != 17980) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_secret_words() != 64915 { + if (uniffi_cove_checksum_method_routefactory_secret_words() != 64915) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_send() != 62083 { + if (uniffi_cove_checksum_method_routefactory_send() != 62083) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_send_confirm() != 14299 { + if (uniffi_cove_checksum_method_routefactory_send_confirm() != 14299) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_send_hardware_export() != 34735 { + if (uniffi_cove_checksum_method_routefactory_send_hardware_export() != 34735) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_routefactory_send_set_amount() != 33578 { + if (uniffi_cove_checksum_method_routefactory_send_set_amount() != 33578) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustimportwalletviewmodel_dispatch() != 54003 { + if (uniffi_cove_checksum_method_rustimportwalletviewmodel_dispatch() != 54003) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustimportwalletviewmodel_import_wallet() != 22388 { + if (uniffi_cove_checksum_method_rustimportwalletviewmodel_import_wallet() != 22388) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustimportwalletviewmodel_listen_for_updates() != 3156 { + if (uniffi_cove_checksum_method_rustimportwalletviewmodel_listen_for_updates() != 3156) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words() != 43976 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words() != 43976) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words_grouped() != 45204 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_bip_39_words_grouped() != 45204) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_card_indexes() != 33165 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_card_indexes() != 33165) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_dispatch() != 8422 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_dispatch() != 8422) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_get_state() != 22652 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_get_state() != 22652) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_listen_for_updates() != 25486 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_listen_for_updates() != 25486) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_number_of_words_count() != 47399 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_number_of_words_count() != 47399) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustpendingwalletviewmodel_save_wallet() != 45300 { + if (uniffi_cove_checksum_method_rustpendingwalletviewmodel_save_wallet() != 45300) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_address_at() != 38561 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_address_at() != 38561) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_amount_in_fiat() != 53684 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_amount_in_fiat() != 53684) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_balance() != 10059 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_balance() != 10059) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_balance_in_fiat() != 18683 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_balance_in_fiat() != 18683) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction() != 22450 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction() != 22450) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction_with_fee_rate() != 28947 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_build_transaction_with_fee_rate() != 28947) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_current_block_height() != 59265 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_current_block_height() != 59265) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_delete_unsigned_transaction() != 60038 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_delete_unsigned_transaction() != 60038) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_delete_wallet() != 30016 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_delete_wallet() != 30016) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_dispatch() != 35864 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_dispatch() != 35864) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_display_amount() != 59974 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_display_amount() != 59974) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_display_fiat_amount() != 40818 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_display_fiat_amount() != 40818) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_display_sent_and_received_amount() != 30788 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_display_sent_and_received_amount() != 30788) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options() != 44766 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options() != 44766) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options_with_total_fee() != 22160 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_fee_rate_options_with_total_fee() != 22160) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_fees() != 36596 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_fees() != 36596) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_fingerprint() != 38447 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_fingerprint() != 38447) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_force_update_height() != 17709 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_force_update_height() != 17709) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_force_wallet_scan() != 47434 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_force_wallet_scan() != 47434) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_get_confirm_details() != 13990 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_get_confirm_details() != 13990) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_get_fee_options() != 47126 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_get_fee_options() != 47126) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_get_max_send_amount() != 1655 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_get_max_send_amount() != 1655) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_get_unsigned_transactions() != 23375 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_get_unsigned_transactions() != 23375) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_listen_for_updates() != 31064 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_listen_for_updates() != 31064) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_mark_wallet_as_verified() != 64306 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_mark_wallet_as_verified() != 64306) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_next_address() != 23410 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_next_address() != 23410) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations() != 21053 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations() != 21053) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations_fmt() != 20695 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_number_of_confirmations_fmt() != 20695) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_save_unsigned_transaction() != 20775 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_save_unsigned_transaction() != 20775) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_sent_and_received_fiat() != 25413 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_sent_and_received_fiat() != 25413) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_set_wallet_metadata() != 16289 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_set_wallet_metadata() != 16289) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_start_wallet_scan() != 46525 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_start_wallet_scan() != 46525) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_switch_to_different_wallet_address_type() != 46868 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_switch_to_different_wallet_address_type() != 46868) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_transaction_details() != 62006 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_transaction_details() != 62006) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_validate_metadata() != 62915 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_validate_metadata() != 62915) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_wallet_metadata() != 44518 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_wallet_metadata() != 44518) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_rustwalletviewmodel_word_validator() != 32309 { + if (uniffi_cove_checksum_method_rustwalletviewmodel_word_validator() != 32309) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_seedqr_get_words() != 64188 { + if (uniffi_cove_checksum_method_seedqr_get_words() != 64188) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_seedqr_grouped_plain_words() != 35569 { + if (uniffi_cove_checksum_method_seedqr_grouped_plain_words() != 35569) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_amount() != 29581 { + if (uniffi_cove_checksum_method_sentandreceived_amount() != 29581) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_amount_fmt() != 55767 { + if (uniffi_cove_checksum_method_sentandreceived_amount_fmt() != 55767) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_direction() != 63307 { + if (uniffi_cove_checksum_method_sentandreceived_direction() != 63307) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_label() != 28947 { + if (uniffi_cove_checksum_method_sentandreceived_label() != 28947) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_received() != 12400 { + if (uniffi_cove_checksum_method_sentandreceived_received() != 12400) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_sentandreceived_sent() != 29124 { + if (uniffi_cove_checksum_method_sentandreceived_sent() != 29124) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_address() != 31151 { + if (uniffi_cove_checksum_method_transactiondetails_address() != 31151) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_address_spaced_out() != 61966 { + if (uniffi_cove_checksum_method_transactiondetails_address_spaced_out() != 61966) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_amount() != 16978 { + if (uniffi_cove_checksum_method_transactiondetails_amount() != 16978) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_amount_fiat() != 34436 { + if (uniffi_cove_checksum_method_transactiondetails_amount_fiat() != 34436) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_amount_fiat_fmt() != 60211 { + if (uniffi_cove_checksum_method_transactiondetails_amount_fiat_fmt() != 60211) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_amount_fmt() != 3569 { + if (uniffi_cove_checksum_method_transactiondetails_amount_fmt() != 3569) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_block_number() != 61262 { + if (uniffi_cove_checksum_method_transactiondetails_block_number() != 61262) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_block_number_fmt() != 52006 { + if (uniffi_cove_checksum_method_transactiondetails_block_number_fmt() != 52006) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_confirmation_date_time() != 54859 { + if (uniffi_cove_checksum_method_transactiondetails_confirmation_date_time() != 54859) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_fee_fiat_fmt() != 62198 { + if (uniffi_cove_checksum_method_transactiondetails_fee_fiat_fmt() != 62198) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_fee_fmt() != 46565 { + if (uniffi_cove_checksum_method_transactiondetails_fee_fmt() != 46565) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_is_confirmed() != 54031 { + if (uniffi_cove_checksum_method_transactiondetails_is_confirmed() != 54031) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_is_received() != 54839 { + if (uniffi_cove_checksum_method_transactiondetails_is_received() != 54839) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_is_sent() != 7556 { + if (uniffi_cove_checksum_method_transactiondetails_is_sent() != 7556) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fiat_fmt() != 62275 { + if (uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fiat_fmt() != 62275) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fmt() != 54855 { + if (uniffi_cove_checksum_method_transactiondetails_sent_sans_fee_fmt() != 54855) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_transactiondetails_transaction_url() != 12235 { + if (uniffi_cove_checksum_method_transactiondetails_transaction_url() != 12235) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_txid_as_hash_string() != 50846 { + if (uniffi_cove_checksum_method_txid_as_hash_string() != 50846) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_txid_is_equal() != 5460 { + if (uniffi_cove_checksum_method_txid_is_equal() != 5460) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_fiat_amount() != 59016 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_fiat_amount() != 59016) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_id() != 59175 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_id() != 59175) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_label() != 12913 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_label() != 12913) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_last_seen() != 29089 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_last_seen() != 29089) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unconfirmedtransaction_sent_and_received() != 24593 { + if (uniffi_cove_checksum_method_unconfirmedtransaction_sent_and_received() != 24593) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_details() != 5504 { + if (uniffi_cove_checksum_method_unsignedtransaction_details() != 5504) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_id() != 29504 { + if (uniffi_cove_checksum_method_unsignedtransaction_id() != 29504) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_label() != 12609 { + if (uniffi_cove_checksum_method_unsignedtransaction_label() != 12609) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_sending_amount() != 15688 { + if (uniffi_cove_checksum_method_unsignedtransaction_sending_amount() != 15688) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransaction_spending_amount() != 36292 { + if (uniffi_cove_checksum_method_unsignedtransaction_spending_amount() != 36292) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionrecord_confirm_details() != 25286 { + if (uniffi_cove_checksum_method_unsignedtransactionrecord_confirm_details() != 25286) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionrecord_created_at() != 62407 { + if (uniffi_cove_checksum_method_unsignedtransactionrecord_created_at() != 62407) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionrecord_tx_id() != 61639 { + if (uniffi_cove_checksum_method_unsignedtransactionrecord_tx_id() != 61639) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionrecord_wallet_id() != 32815 { + if (uniffi_cove_checksum_method_unsignedtransactionrecord_wallet_id() != 32815) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionstable_gettx() != 8611 { + if (uniffi_cove_checksum_method_unsignedtransactionstable_gettx() != 8611) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_unsignedtransactionstable_gettxthrow() != 32085 { + if (uniffi_cove_checksum_method_unsignedtransactionstable_gettxthrow() != 32085) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wallet_id() != 39072 { + if (uniffi_cove_checksum_method_wallet_id() != 39072) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_walletstable_all() != 19569 { + if (uniffi_cove_checksum_method_walletstable_all() != 19569) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_walletstable_is_empty() != 57763 { + if (uniffi_cove_checksum_method_walletstable_is_empty() != 57763) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_walletstable_len() != 35149 { + if (uniffi_cove_checksum_method_walletstable_len() != 35149) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wordvalidator_grouped_words() != 32035 { + if (uniffi_cove_checksum_method_wordvalidator_grouped_words() != 32035) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wordvalidator_invalid_words_string() != 7159 { + if (uniffi_cove_checksum_method_wordvalidator_invalid_words_string() != 7159) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wordvalidator_is_all_words_valid() != 17704 { + if (uniffi_cove_checksum_method_wordvalidator_is_all_words_valid() != 17704) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_wordvalidator_is_valid_word_group() != 6393 { + if (uniffi_cove_checksum_method_wordvalidator_is_valid_word_group() != 6393) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_address_from_string() != 47046 { + if (uniffi_cove_checksum_constructor_address_from_string() != 47046) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_address_preview_new() != 14015 { + if (uniffi_cove_checksum_constructor_address_preview_new() != 14015) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_addresswithnetwork_new() != 36898 { + if (uniffi_cove_checksum_constructor_addresswithnetwork_new() != 36898) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_amount_from_sat() != 58319 { + if (uniffi_cove_checksum_constructor_amount_from_sat() != 58319) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_amount_one_btc() != 59586 { + if (uniffi_cove_checksum_constructor_amount_one_btc() != 59586) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_amount_one_sat() != 58118 { + if (uniffi_cove_checksum_constructor_amount_one_sat() != 58118) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_bip39autocomplete_new() != 41839 { + if (uniffi_cove_checksum_constructor_bip39autocomplete_new() != 41839) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_bip39wordspecificautocomplete_new() != 49814 { + if (uniffi_cove_checksum_constructor_bip39wordspecificautocomplete_new() != 49814) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_bitcointransaction_new() != 54397 { + if (uniffi_cove_checksum_constructor_bitcointransaction_new() != 54397) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_bitcointransaction_tryfromdata() != 16116 { + if (uniffi_cove_checksum_constructor_bitcointransaction_tryfromdata() != 16116) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_boxedroute_new() != 62486 { + if (uniffi_cove_checksum_constructor_boxedroute_new() != 62486) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_confirmdetails_preview_new() != 31485 { + if (uniffi_cove_checksum_constructor_confirmdetails_preview_new() != 31485) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_database_new() != 41458 { + if (uniffi_cove_checksum_constructor_database_new() != 41458) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_feerate_from_sat_per_vb() != 58499 { + if (uniffi_cove_checksum_constructor_feerate_from_sat_per_vb() != 58499) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_feerateoption_new() != 49009 { + if (uniffi_cove_checksum_constructor_feerateoption_new() != 49009) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_feerateoptions_preview_new() != 9368 { + if (uniffi_cove_checksum_constructor_feerateoptions_preview_new() != 9368) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_feerateoptionswithtotalfee_preview_new() != 15548 { + if (uniffi_cove_checksum_constructor_feerateoptionswithtotalfee_preview_new() != 15548) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_ffiapp_new() != 11955 { + if (uniffi_cove_checksum_constructor_ffiapp_new() != 11955) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_ffinfcreader_new() != 27409 { + if (uniffi_cove_checksum_constructor_ffinfcreader_new() != 27409) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_filehandler_new() != 50695 { + if (uniffi_cove_checksum_constructor_filehandler_new() != 50695) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_fingerprint_new() != 20831 { + if (uniffi_cove_checksum_constructor_fingerprint_new() != 20831) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_headericonpresenter_new() != 10425 { + if (uniffi_cove_checksum_constructor_headericonpresenter_new() != 10425) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_keychain_new() != 34449 { + if (uniffi_cove_checksum_constructor_keychain_new() != 34449) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_mnemonic_new() != 56597 { + if (uniffi_cove_checksum_constructor_mnemonic_new() != 56597) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_mnemonic_preview() != 3882 { + if (uniffi_cove_checksum_constructor_mnemonic_preview() != 3882) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_multiqr_new_from_string() != 2028 { + if (uniffi_cove_checksum_constructor_multiqr_new_from_string() != 2028) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_multiqr_try_new() != 18617 { + if (uniffi_cove_checksum_constructor_multiqr_try_new() != 18617) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_multiqr_try_new_from_data() != 36957 { + if (uniffi_cove_checksum_constructor_multiqr_try_new_from_data() != 36957) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_ndefrecordreader_new() != 36791 { + if (uniffi_cove_checksum_constructor_ndefrecordreader_new() != 36791) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_nfcconst_new() != 22455 { + if (uniffi_cove_checksum_constructor_nfcconst_new() != 22455) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_nodeselector_new() != 61659 { + if (uniffi_cove_checksum_constructor_nodeselector_new() != 61659) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_psbt_new() != 25544 { + if (uniffi_cove_checksum_constructor_psbt_new() != 25544) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_routefactory_new() != 4959 { + if (uniffi_cove_checksum_constructor_routefactory_new() != 4959) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustimportwalletviewmodel_new() != 30630 { + if (uniffi_cove_checksum_constructor_rustimportwalletviewmodel_new() != 30630) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustpendingwalletviewmodel_new() != 47075 { + if (uniffi_cove_checksum_constructor_rustpendingwalletviewmodel_new() != 47075) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustwalletviewmodel_new() != 37675 { + if (uniffi_cove_checksum_constructor_rustwalletviewmodel_new() != 37675) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustwalletviewmodel_preview_new_wallet() != 37026 { + if (uniffi_cove_checksum_constructor_rustwalletviewmodel_preview_new_wallet() != 37026) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_rustwalletviewmodel_try_new_from_xpub() != 6171 { + if (uniffi_cove_checksum_constructor_rustwalletviewmodel_try_new_from_xpub() != 6171) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_seedqr_new_from_data() != 13640 { + if (uniffi_cove_checksum_constructor_seedqr_new_from_data() != 13640) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_seedqr_new_from_str() != 6520 { + if (uniffi_cove_checksum_constructor_seedqr_new_from_str() != 6520) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_received() != 6979 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_received() != 6979) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_sent() != 20500 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_confirmed_sent() != 20500) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_new_confirmed() != 2385 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_new_confirmed() != 2385) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_pending_received() != 1731 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_pending_received() != 1731) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_transactiondetails_preview_pending_sent() != 378 { + if (uniffi_cove_checksum_constructor_transactiondetails_preview_pending_sent() != 378) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_unsignedtransaction_preview_new() != 1909 { + if (uniffi_cove_checksum_constructor_unsignedtransaction_preview_new() != 1909) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_wallet_new_from_export() != 11192 { + if (uniffi_cove_checksum_constructor_wallet_new_from_export() != 11192) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_wallet_new_from_xpub() != 31726 { + if (uniffi_cove_checksum_constructor_wallet_new_from_xpub() != 31726) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_constructor_wallet_previewnewwallet() != 56877 { + if (uniffi_cove_checksum_constructor_wallet_previewnewwallet() != 56877) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_ffireconcile_reconcile() != 54238 { + if (uniffi_cove_checksum_method_ffireconcile_reconcile() != 54238) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_importwalletviewmodelreconciler_reconcile() != 63459 { + if (uniffi_cove_checksum_method_importwalletviewmodelreconciler_reconcile() != 63459) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_keychainaccess_save() != 63039 { + if (uniffi_cove_checksum_method_keychainaccess_save() != 63039) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_keychainaccess_get() != 3155 { + if (uniffi_cove_checksum_method_keychainaccess_get() != 3155) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_keychainaccess_delete() != 11466 { + if (uniffi_cove_checksum_method_keychainaccess_delete() != 11466) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_pendingwalletviewmodelreconciler_reconcile() != 37929 { + if (uniffi_cove_checksum_method_pendingwalletviewmodelreconciler_reconcile() != 37929) { return InitializationResult.apiChecksumMismatch } - if uniffi_cove_checksum_method_walletviewmodelreconciler_reconcile() != 28159 { + if (uniffi_cove_checksum_method_walletviewmodelreconciler_reconcile() != 28159) { return InitializationResult.apiChecksumMismatch } @@ -19227,4 +21722,4 @@ private func uniffiEnsureInitialized() { } } -// swiftlint:enable all +// swiftlint:enable all \ No newline at end of file diff --git a/rust/src/view_model/wallet.rs b/rust/src/view_model/wallet.rs index 62e1c407..b8485c92 100644 --- a/rust/src/view_model/wallet.rs +++ b/rust/src/view_model/wallet.rs @@ -520,8 +520,8 @@ impl RustWalletViewModel { .metadata .read() .master_fingerprint - .as_ref() - .map(|f| f.as_uppercase()) + .as_deref() + .map(Fingerprint::as_uppercase) .unwrap_or_else(|| "Unnamed Wallet".to_string()); self.dispatch(WalletViewModelAction::UpdateName(name)); diff --git a/scripts/build-ios.sh b/scripts/build-ios.sh index 80457cd2..9a7e1aae 100644 --- a/scripts/build-ios.sh +++ b/scripts/build-ios.sh @@ -60,6 +60,7 @@ mv ./bindings/coveFFI.modulemap ./bindings/module.modulemap # Move the Swift file to the project rm ../ios/Cove/Cove.swift || true mv ./bindings/cove.swift ../ios/Cove/Cove.swift +swiftformat ../ios/Cove/Cove.swift --swiftversion 6 & # Recreate XCFramework rm -rf "ios/Cove.xcframework" || true From 760784103f4d9cc4732c2f6a564f9d779e67efca Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 14:53:24 -0600 Subject: [PATCH 13/15] Validate metadata when selecting wallet --- ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift | 1 + ios/Cove/WalletSettingsSheet.swift | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift index a2146f11..fdb4bad1 100644 --- a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift +++ b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift @@ -207,6 +207,7 @@ struct SelectedWalletScreen: View { newValue in setSheetState(newValue) } .onAppear { setSheetState(model.walletMetadata.discoveryState) } + .onAppear(perform: model.validateMetadata) .alert( item: Binding(get: { model.errorAlert }, set: { model.errorAlert = $0 }), content: DisplayErrorAlert diff --git a/ios/Cove/WalletSettingsSheet.swift b/ios/Cove/WalletSettingsSheet.swift index e4cce3ef..eea04542 100644 --- a/ios/Cove/WalletSettingsSheet.swift +++ b/ios/Cove/WalletSettingsSheet.swift @@ -99,7 +99,6 @@ struct WalletSettingsSheet: View { leading: Button { dismiss() - model.validateMetadata() navigate(Route.settings) } label: { Label("App Settings", systemImage: "gear") @@ -109,6 +108,7 @@ struct WalletSettingsSheet: View { .navigationBarItems( trailing: Button("Done") { dismiss() + model.validateMetadata() } ) .foregroundColor(.primary) @@ -137,6 +137,9 @@ struct WalletSettingsSheet: View { ) } } + .onDisappear { + model.validateMetadata() + } } } From 558fbd3986fa91eb4068ddb3134469b0f25fd005 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 15:03:07 -0600 Subject: [PATCH 14/15] Don't format the generated swift file --- .github/workflows/ci.yml | 2 +- justfile | 4 ++-- scripts/build-ios.sh | 2 -- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03b57263..20e4108e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: SwiftFormat - run: swiftformat --lint . --reporter github-actions-log --swiftversion 6 + run: swiftformat --lint . --reporter github-actions-log --swiftversion 6 --exclude ios/Cove/Cove.swift test: strategy: diff --git a/justfile b/justfile index 369ff075..bf09a589 100644 --- a/justfile +++ b/justfile @@ -31,7 +31,7 @@ clean: fmt: cd rust && cargo fmt --all - swiftformat . --swiftversion 6 + swiftformat . --swiftversion 6 --exclude ios/Cove/Cove.swift clippy *flags="": cd rust && cargo clippy {{flags}} @@ -49,7 +49,7 @@ ci: just test cd rust && cargo clippy --all-targets --all-features -- -D warnings cd rust && cargo fmt --check - swiftformat --lint . --swiftversion 6 + swiftformat --lint . --swiftversion 6 --exclude ios/Cove/Cove.swift xcode-reset: killAll Xcode || true diff --git a/scripts/build-ios.sh b/scripts/build-ios.sh index 9a7e1aae..165b6ee9 100644 --- a/scripts/build-ios.sh +++ b/scripts/build-ios.sh @@ -60,7 +60,6 @@ mv ./bindings/coveFFI.modulemap ./bindings/module.modulemap # Move the Swift file to the project rm ../ios/Cove/Cove.swift || true mv ./bindings/cove.swift ../ios/Cove/Cove.swift -swiftformat ../ios/Cove/Cove.swift --swiftversion 6 & # Recreate XCFramework rm -rf "ios/Cove.xcframework" || true @@ -71,7 +70,6 @@ xcodebuild -create-xcframework \ # Cleanup rm -rf bindings - # if [ ! -z $SIGN ] && [ ! -z $SIGNING_IDENTITY ] || [ $SIGN == "--sign" ]; then # echo "Signing for distribution: identity: $SIGNING_IDENTITY" # codesign --timestamp -v --sign "$SIGNING_IDENTITY" "ios/Cove.xcframework" From e0f827af4e8db9c1c5e6971856c68f866947c9a8 Mon Sep 17 00:00:00 2001 From: Praveen Perera Date: Sun, 1 Dec 2024 15:13:07 -0600 Subject: [PATCH 15/15] Make the wallet name context hit area larger --- .../Flows/SelectedWalletFlow/SelectedWalletScreen.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift index fdb4bad1..c1844f6c 100644 --- a/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift +++ b/ios/Cove/Flows/SelectedWalletFlow/SelectedWalletScreen.swift @@ -158,7 +158,13 @@ struct SelectedWalletScreen: View { .font(.callout) .fontWeight(.semibold) } - .contentShape(.contextMenuPreview, RoundedRectangle(cornerRadius: 8).inset(by: -8)) + .padding(.vertical, 20) + .padding(.horizontal, 28) + .contentShape(Rectangle()) + .contentShape( + .contextMenuPreview, + RoundedRectangle(cornerRadius: 8) + ) .contextMenu { Button("Settings") { sheetState = .init(.settings)