mirror of
https://github.com/luxfhe/example-ios-demo.git
synced 2026-10-30 18:13:24 +00:00
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]>
25 lines
617 B
Swift
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
|
|
}
|
|
}
|
|
}
|