From 79ff55f2ed554e87b114ed14c9202ee272135a88 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 25 Jul 2022 16:18:33 +0100 Subject: [PATCH] Add E2EAddService functor --- Sources/ElixxirDAppsSDK/E2E.swift | 7 +++-- Sources/ElixxirDAppsSDK/E2EAddService.swift | 29 +++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 Sources/ElixxirDAppsSDK/E2EAddService.swift diff --git a/Sources/ElixxirDAppsSDK/E2E.swift b/Sources/ElixxirDAppsSDK/E2E.swift index 38f9d801..872b1889 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 00000000..f4b57217 --- /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)") + ) +} -- GitLab