From 003644bc9b4c0af4b14b8907a3540efcac1002fa Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 25 Jul 2022 15:35:21 +0100 Subject: [PATCH] Add E2EPartitionSize functor --- Sources/ElixxirDAppsSDK/E2E.swift | 7 +++-- .../ElixxirDAppsSDK/E2EPartitionSize.swift | 30 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 Sources/ElixxirDAppsSDK/E2EPartitionSize.swift diff --git a/Sources/ElixxirDAppsSDK/E2E.swift b/Sources/ElixxirDAppsSDK/E2E.swift index 1a0617ae..d98b72c0 100644 --- a/Sources/ElixxirDAppsSDK/E2E.swift +++ b/Sources/ElixxirDAppsSDK/E2E.swift @@ -4,6 +4,7 @@ public struct E2E { public var getId: E2EGetId public var getReceptionId: E2EGetReceptionId public var payloadSize: E2EPayloadSize + public var partitionSize: E2EPartitionSize // TODO: } @@ -13,7 +14,8 @@ extension E2E { E2E( getId: .live(bindingsE2E: bindingsE2E), getReceptionId: .live(bindingsE2E: bindingsE2E), - payloadSize: .live(bindingsE2E: bindingsE2E) + payloadSize: .live(bindingsE2E: bindingsE2E), + partitionSize: .live(bindingsE2E: bindingsE2E) ) } } @@ -22,6 +24,7 @@ extension E2E { public static let unimplemented = E2E( getId: .unimplemented, getReceptionId: .unimplemented, - payloadSize: .unimplemented + payloadSize: .unimplemented, + partitionSize: .unimplemented ) } diff --git a/Sources/ElixxirDAppsSDK/E2EPartitionSize.swift b/Sources/ElixxirDAppsSDK/E2EPartitionSize.swift new file mode 100644 index 00000000..a3d8d722 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/E2EPartitionSize.swift @@ -0,0 +1,30 @@ +import Bindings +import XCTestDynamicOverlay + +public struct E2EPartitionSize { + public var first: () -> Int + public var second: () -> Int + public var atIndex: (Int) -> Int + + subscript(payloadIndex payloadIndex: Int) -> Int { + atIndex(payloadIndex) + } +} + +extension E2EPartitionSize { + public static func live(bindingsE2E: BindingsE2e) -> E2EPartitionSize { + E2EPartitionSize( + first: bindingsE2E.firstPartitionSize, + second: bindingsE2E.secondPartitionSize, + atIndex: bindingsE2E.partitionSize(_:) + ) + } +} + +extension E2EPartitionSize { + public static let unimplemented = E2EPartitionSize( + first: XCTUnimplemented("\(Self.self).first"), + second: XCTUnimplemented("\(Self.self).second"), + atIndex: XCTUnimplemented("\(Self.self).atIndex") + ) +} -- GitLab