From 341a00f872ed80a378b9a99575984cd9e1d93120 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Thu, 28 Jul 2022 20:17:53 +0100 Subject: [PATCH] Implement FilePartTracker wrapper --- .../FileTransfer/FilePartTracker.swift | 22 +++++++++++++++++ .../Functors/FilePartTrackerGetNumParts.swift | 22 +++++++++++++++++ .../FilePartTrackerGetPartStatus.swift | 24 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/FilePartTracker.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FilePartTrackerGetNumParts.swift create mode 100644 Sources/ElixxirDAppsSDK/FileTransfer/Functors/FilePartTrackerGetPartStatus.swift diff --git a/Sources/ElixxirDAppsSDK/FileTransfer/FilePartTracker.swift b/Sources/ElixxirDAppsSDK/FileTransfer/FilePartTracker.swift new file mode 100644 index 00000000..0cd9bf33 --- /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 00000000..fe1ae07d --- /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 00000000..9310d3d7 --- /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)") + ) +} -- GitLab