field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

TeraRestoreRecovery.swift (1714B)


      1 import Foundation
      2 
      3 enum TeraRestorePhase: Sendable, Equatable { case held, reviewed, resumed }
      4 enum TeraRestoreObservation: Sendable, Equatable { case observed, notObserved, incomplete }
      5 
      6 struct TeraRestoreTarget: Sendable, Equatable {
      7   let draftID: String
      8   let eventID: String
      9   let targetFingerprint: String
     10   let observation: TeraRestoreObservation?
     11 }
     12 
     13 struct TeraRestoreStatus: Sendable, Equatable {
     14   let attemptID: String
     15   let phase: TeraRestorePhase
     16   let targets: [TeraRestoreTarget]
     17 }
     18 
     19 extension TeraRuntimeClient {
     20   func restoreStatus() async throws -> TeraRestoreStatus? {
     21     try await addOperation("runtime.restore.status") { try await $0.restoreStatus() }
     22   }
     23 
     24   func reconcileRestoredTarget(_ target: TeraRestoreTarget) async throws {
     25     try await addOperation("runtime.restore.reconcile") { try await $0.reconcileRestoredTarget(target) }
     26   }
     27 
     28   func reviewRestoredWork() async throws -> String {
     29     try await addOperation("runtime.restore.review") { try await $0.reviewRestoredWork() }
     30   }
     31 
     32   func resumeRestoredWork(reviewedInventory: String) async throws {
     33     try await addOperation("runtime.restore.resume") { try await $0.resumeRestoredWork(reviewedInventory: reviewedInventory) }
     34   }
     35 }
     36 
     37 extension TeraRuntimeBackend {
     38   func restoreStatus() async throws -> TeraRestoreStatus? {
     39     throw TeraComposerAcknowledgment.unconfirmed
     40   }
     41 
     42   func reconcileRestoredTarget(_: TeraRestoreTarget) async throws {
     43     throw TeraComposerAcknowledgment.unconfirmed
     44   }
     45 
     46   func reviewRestoredWork() async throws -> String {
     47     throw TeraComposerAcknowledgment.unconfirmed
     48   }
     49 
     50   func resumeRestoredWork(reviewedInventory _: String) async throws {
     51     throw TeraComposerAcknowledgment.unconfirmed
     52   }
     53 }