import Bindings public struct Client { public var getId: ClientIdProvider public var hasRunningProcesses: ClientProcessStatusProvider public var networkFollower: NetworkFollower public var waitForNetwork: NetworkWaiter public var isNetworkHealthy: NetworkHealthProvider public var monitorNetworkHealth: NetworkHealthListener public var listenErrors: ClientErrorListener public var makeIdentity: IdentityMaker public var connect: ConnectionMaker public var waitForDelivery: MessageDeliveryWaiter } extension Client { public static func live(bindingsClient: BindingsClient) -> Client { Client( getId: .live(bindingsClient: bindingsClient), hasRunningProcesses: .live(bindingsClient: bindingsClient), networkFollower: .live(bindingsClient: bindingsClient), waitForNetwork: .live(bindingsClient: bindingsClient), isNetworkHealthy: .live(bindingsClient: bindingsClient), monitorNetworkHealth: .live(bindingsClient: bindingsClient), listenErrors: .live(bindingsClient: bindingsClient), makeIdentity: .live(bindingsClient: bindingsClient), connect: .live(bindingsClient: bindingsClient), waitForDelivery: .live(bindingsClient: bindingsClient) ) } } #if DEBUG extension Client { public static let failing = Client( getId: .failing, hasRunningProcesses: .failing, networkFollower: .failing, waitForNetwork: .failing, isNetworkHealthy: .failing, monitorNetworkHealth: .failing, listenErrors: .failing, makeIdentity: .failing, connect: .failing, waitForDelivery: .failing ) } #endif