Files
zeekayandHanzo Dev c8bfbebc15 Keep ZAMA's copyright notices
This app is ZAMA's BSD 3-Clause Clear demo. The license requires its notices to
survive redistribution, and a rebrand had replaced every one of them with ours:
the LICENSE text, 66 source headers and the app's copyright string. They are
back, each with our line beside it for our changes.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-23 01:55:03 -07:00

25 lines
617 B
Swift

// Copyright © 2025 Zama. All rights reserved.
// Copyright © 2025 Lux Industries Inc.
import Foundation
protocol Persistable {
func toData() throws -> Data
init(fromData input: Data) throws
}
extension Persistable {
func writeToDisk(_ file: Storage.File) async throws {
let data = try self.toData()
try await Storage.write(file, data: data)
}
static func readFromDisk(_ file: Storage.File) async throws -> Self? {
if let data = await Storage.read(file) {
return try self.init(fromData: data)
} else {
return nil
}
}
}