import Bindings public struct ConnectionPartnerProvider { public var get: () -> Data public func callAsFunction() -> Data { get() } } extension ConnectionPartnerProvider { public static func live( bindingsConnection: BindingsConnection ) -> ConnectionPartnerProvider { ConnectionPartnerProvider { guard let data = bindingsConnection.getPartner() else { fatalError("BindingsConnection.getPartner returned `nil`") } return data } } public static func live( bindingsAuthenticatedConnection: BindingsAuthenticatedConnection ) -> ConnectionPartnerProvider { ConnectionPartnerProvider { guard let data = bindingsAuthenticatedConnection.getPartner() else { fatalError("BindingsAuthenticatedConnection.getPartner returned `nil`") } return data } } } #if DEBUG extension ConnectionPartnerProvider { public static let failing = ConnectionPartnerProvider { fatalError("Not implemented") } } #endif