LocalData/Sources/LocalData/Protocols/StorageKey.swift

22 lines
619 B
Swift

import Foundation
public protocol StorageKey: Sendable, CustomStringConvertible {
associatedtype Value: Codable & Sendable
var name: String { get }
var domain: StorageDomain { get }
var security: SecurityPolicy { get }
var serializer: Serializer<Value> { get }
var owner: String { get }
var availability: PlatformAvailability { get }
var syncPolicy: SyncPolicy { get }
/// Optional list of legacy keys to migrate data from if this key is empty.
var migrationSources: [AnyStorageKey] { get }
}
extension StorageKey {
public var migrationSources: [AnyStorageKey] { [] }
}