diff --git a/Sources/ElixxirDAppsSDK/E2E.swift b/Sources/ElixxirDAppsSDK/E2E.swift index 38f9d8018437755dc1509193a41ec4153b826808..872b18895f3ae87daf235b328c66ca97e1f6a462 100644 --- a/Sources/ElixxirDAppsSDK/E2E.swift +++ b/Sources/ElixxirDAppsSDK/E2E.swift @@ -7,6 +7,7 @@ public struct E2E { public var payloadSize: E2EPayloadSize public var partitionSize: E2EPartitionSize public var addPartnerCallback: E2EAddPartnerCallback + public var addService: E2EAddService // TODO: } @@ -19,7 +20,8 @@ extension E2E { getContact: .live(bindingsE2E: bindingsE2E), payloadSize: .live(bindingsE2E: bindingsE2E), partitionSize: .live(bindingsE2E: bindingsE2E), - addPartnerCallback: .live(bindingsE2E) + addPartnerCallback: .live(bindingsE2E), + addService: .live(bindingsE2E) ) } } @@ -31,6 +33,7 @@ extension E2E { getContact: .unimplemented, payloadSize: .unimplemented, partitionSize: .unimplemented, - addPartnerCallback: .unimplemented + addPartnerCallback: .unimplemented, + addService: .unimplemented ) } diff --git a/Sources/ElixxirDAppsSDK/E2EAddService.swift b/Sources/ElixxirDAppsSDK/E2EAddService.swift new file mode 100644 index 0000000000000000000000000000000000000000..f4b57217b4da05192097e830c2e2ae37e32464b9 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/E2EAddService.swift @@ -0,0 +1,29 @@ +import Bindings +import XCTestDynamicOverlay + +public struct E2EAddService { + public var run: (ServiceProcessor) throws -> Void + + public func callAsFunction( + processor: ServiceProcessor + ) throws { + try run(processor) + } +} + +extension E2EAddService { + public static func live(_ bindingsE2E: BindingsE2e) -> E2EAddService { + E2EAddService { processor in + try bindingsE2E.addService( + processor.serviceTag, + processor: processor.makeBindingsProcessor() + ) + } + } +} + +extension E2EAddService { + public static let unimplemented = E2EAddService( + run: XCTUnimplemented("\(Self.self)") + ) +}