diff --git a/Sources/ElixxirDAppsSDK/Client.swift b/Sources/ElixxirDAppsSDK/Client.swift index 30ac66be7214ee54eb01f8d4d9fd18a179daadd0..76832a86c55fb5cff6080a37320f301df55d65bd 100644 --- a/Sources/ElixxirDAppsSDK/Client.swift +++ b/Sources/ElixxirDAppsSDK/Client.swift @@ -1,6 +1,7 @@ import Bindings public struct Client { + public var getId: ClientIdProvider public var networkFollower: NetworkFollower public var waitForNetwork: NetworkWaiter public var isNetworkHealthy: NetworkHealthProvider @@ -14,6 +15,7 @@ public struct Client { extension Client { public static func live(bindingsClient: BindingsClient) -> Client { Client( + getId: .live(bindingsClient: bindingsClient), networkFollower: .live(bindingsClient: bindingsClient), waitForNetwork: .live(bindingsClient: bindingsClient), isNetworkHealthy: .live(bindingsClient: bindingsClient), @@ -29,6 +31,7 @@ extension Client { #if DEBUG extension Client { public static let failing = Client( + getId: .failing, networkFollower: .failing, waitForNetwork: .failing, isNetworkHealthy: .failing, diff --git a/Sources/ElixxirDAppsSDK/ClientIdProvider.swift b/Sources/ElixxirDAppsSDK/ClientIdProvider.swift new file mode 100644 index 0000000000000000000000000000000000000000..259a64b2510afcae200c7e49e8613bc3858fc7ca --- /dev/null +++ b/Sources/ElixxirDAppsSDK/ClientIdProvider.swift @@ -0,0 +1,23 @@ +import Bindings + +public struct ClientIdProvider { + public var get: () -> Int + + public func callAsFunction() -> Int { + get() + } +} + +extension ClientIdProvider { + public static func live(bindingsClient: BindingsClient) -> ClientIdProvider { + ClientIdProvider(get: bindingsClient.getID) + } +} + +#if DEBUG +extension ClientIdProvider { + public static let failing = ClientIdProvider { + fatalError("Not implemented") + } +} +#endif