Skip to content
Snippets Groups Projects

Client management

Merged Dariusz Rybicki requested to merge feature/client-management into main
1 file
+ 17
0
Compare changes
  • Side-by-side
  • Inline
+ 30
0
 
import Bindings
 
 
public struct ClientLoader {
 
public var load: (URL, Data) throws -> Client
 
 
public func callAsFunction(directoryURL: URL, password: Data) throws -> Client {
 
try load(directoryURL, password)
 
}
 
}
 
 
extension ClientLoader {
 
public static let live = ClientLoader { directoryURL, password in
 
var error: NSError?
 
let bindingsClient = BindingsLogin(directoryURL.path, password, &error)
 
if let error = error { throw error }
 
guard let bindingsClient = bindingsClient else {
 
throw BindingsLoginUnknownError()
 
}
 
return Client.live(bindingsClient: bindingsClient)
 
}
 
}
 
 
#if DEBUG
 
extension ClientLoader {
 
public static let failing = ClientLoader { _, _ in
 
struct NotImplemented: Error {}
 
throw NotImplemented()
 
}
 
}
 
#endif
Loading