22 lines
619 B
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] { [] }
|
|
}
|