diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/FilePartTracker.swift b/Sources/ElixxirDAppsSDK/FileTransfer/FilePartTracker.swift new file mode 100644 index 0000000000000000000000000000000000000000..0cd9bf335f430365b8bf47f3c2f5924942eff12c --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/FilePartTracker.swift @@ -0,0 +1,22 @@ +import Bindings + +public struct FilePartTracker { + public var getNumParts: FilePartTrackerGetNumParts + public var getPartStatus: FilePartTrackerGetPartStatus +} + +extension FilePartTracker { + public static func live(_ bindingsTracker: BindingsFilePartTracker) -> FilePartTracker { + FilePartTracker( + getNumParts: .live(bindingsTracker), + getPartStatus: .live(bindingsTracker) + ) + } +} + +extension FilePartTracker { + public static let unimplemented = FilePartTracker( + getNumParts: .unimplemented, + getPartStatus: .unimplemented + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FilePartTrackerGetNumParts.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FilePartTrackerGetNumParts.swift new file mode 100644 index 0000000000000000000000000000000000000000..fe1ae07d70ac43d71f29ce8ec8feb7068a44e3ee --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FilePartTrackerGetNumParts.swift @@ -0,0 +1,22 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FilePartTrackerGetNumParts { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension FilePartTrackerGetNumParts { + public static func live(_ tracker: BindingsFilePartTracker) -> FilePartTrackerGetNumParts { + FilePartTrackerGetNumParts(run: tracker.getNumParts) + } +} + +extension FilePartTrackerGetNumParts { + public static let unimplemented = FilePartTrackerGetNumParts( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FilePartTrackerGetPartStatus.swift b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FilePartTrackerGetPartStatus.swift new file mode 100644 index 0000000000000000000000000000000000000000..9310d3d7a3bf781e54ac478eb9d091f1489be4e5 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/FileTransfer/Functors/FilePartTrackerGetPartStatus.swift @@ -0,0 +1,24 @@ +import Bindings +import XCTestDynamicOverlay + +public struct FilePartTrackerGetPartStatus { + public var run: (Int) -> FilePartStatus + + public func callAsFunction(partNum: Int) -> FilePartStatus { + run(partNum) + } +} + +extension FilePartTrackerGetPartStatus { + public static func live(_ tracker: BindingsFilePartTracker) -> FilePartTrackerGetPartStatus { + FilePartTrackerGetPartStatus { partNum in + FilePartStatus(rawValue: tracker.getPartStatus(partNum)) + } + } +} + +extension FilePartTrackerGetPartStatus { + public static let unimplemented = FilePartTrackerGetPartStatus( + run: XCTUnimplemented("\(Self.self)") + ) +}