import Bindings public struct ClientCreator { public var create: (URL, Data, Data) throws -> Void public func callAsFunction(directoryURL: URL, ndf: Data, password: Data) throws { try create(directoryURL, ndf, password) } } extension ClientCreator { public static let live = ClientCreator { directoryURL, ndf, password in var error: NSError? let network = String(data: ndf, encoding: .utf8)! let created = BindingsNewClient(network, directoryURL.path, password, nil, &error) if let error = error { throw error } if !created { throw BindingsNewClientUnknownError() } } } #if DEBUG extension ClientCreator { public static let failing = ClientCreator { _, _, _ in struct NotImplemented: Error {} throw NotImplemented() } } #endif