Skip to content
Snippets Groups Projects
Select Git revision
  • d2acabe796b8be186e9680d35110d82beb2facfd
  • main default protected
  • development
  • integration
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
11 results

ClientLoader.swift

Blame
  • ClientLoader.swift 824 B
    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 {
          fatalError("BindingsLogin returned `nil` without providing error")
        }
        return Client.live(bindingsClient: bindingsClient)
      }
    }
    
    #if DEBUG
    extension ClientLoader {
      public static let failing = ClientLoader { _, _ in
        struct NotImplemented: Error {}
        throw NotImplemented()
      }
    }
    #endif