Select Git revision
E2EAddPartnerCallback.swift
ConnectionMaker.swift 1.10 KiB
import Bindings
public struct ConnectionMaker {
public var connect: (Bool, Data, Data) throws -> Connection
public func callAsFunction(
withAuthentication: Bool,
recipientContact: Data,
myIdentity: Data
) throws -> Connection {
try connect(withAuthentication, recipientContact, myIdentity)
}
}
extension ConnectionMaker {
public static func live(bindingsClient: BindingsClient) -> ConnectionMaker {
ConnectionMaker { withAuthentication, recipientContact, myIdentity in
if withAuthentication {
return Connection.live(
bindingsConnection: try bindingsClient.connect(
recipientContact,
myIdentity: myIdentity
)
)
} else {
return Connection.live(
bindingsAuthenticatedConnection: try bindingsClient.connect(
withAuthentication: recipientContact,
myIdentity: myIdentity
)
)
}
}
}
}
#if DEBUG
extension ConnectionMaker {
public static let failing = ConnectionMaker { _, _, _ in
struct NotImplemented: Error {}
throw NotImplemented()
}
}
#endif