public struct KeychainManager {
  public var set: SetValueForKey
  public var get: GetValueForKey
  public var remove: RemoveValueForKey
  public var destroy: DestroyKeychain
}

extension KeychainManager {
  public static let live = KeychainManager(
    set: .live,
    get: .live,
    remove: .live,
    destroy: .live
  )
}

extension KeychainManager {
  public static let unimplemented = KeychainManager(
    set: .unimplemented,
    get: .unimplemented,
    remove: .unimplemented,
    destroy: .unimplemented
  )
}