import Bindings

public struct ClientIdProvider {
  public var get: () -> Int

  public func callAsFunction() -> Int {
    get()
  }
}

extension ClientIdProvider {
  public static func live(bindingsClient: BindingsClient) -> ClientIdProvider {
    ClientIdProvider(get: bindingsClient.getID)
  }
}

#if DEBUG
extension ClientIdProvider {
  public static let failing = ClientIdProvider {
    fatalError("Not implemented")
  }
}
#endif