field_ios

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

TeraGeneratedRevisionStatus.swift (1680B)


      1 import TeraKitBindings
      2 
      3 extension FfiRevisionStatusRecord {
      4   var appValue: TeraRevisionStatus {
      5     get throws
      6   {
      7     guard schemaVersion == 1 else { throw TeraGeneratedSubmission.mismatch() }
      8     return try TeraRevisionStatus(
      9       operationID: operationId,
     10       replacement: replacement.appValue,
     11       retraction: retraction?.appValue,
     12       policy: policy.appValue,
     13       phase: phase.appValue,
     14       original: TeraRevisionTarget(cardID: original.cardId, sourceEventID: original.sourceEventId,
     15                                    sourceAddress: original.sourceAddress, authorPublicKey: original.authorPublicKey),
     16       replacementProgress: replacementProgress.appValue,
     17       retractionProgress: retractionProgress.map { try $0.appValue },
     18       canResume: canResume, canCancel: canCancel
     19     )
     20   }
     21   }
     22 }
     23 
     24 extension FfiRevisionPolicy {
     25   fileprivate var appValue: TeraRevisionPolicy {
     26     switch self {
     27     case .replaceThenRetract: .replaceThenRetract
     28     case .addressableReplacement: .addressableReplacement
     29     }
     30   }
     31 }
     32 
     33 extension FfiRevisionPhase {
     34   fileprivate var appValue: TeraRevisionPhase {
     35     switch self {
     36     case .replacementPending: .replacementPending
     37     case .replacementFailed: .replacementFailed
     38     case .retractionPending: .retractionPending
     39     case .complete: .complete
     40     case .partialEffect: .partialEffect
     41     case .cancelled: .cancelled
     42     }
     43   }
     44 }
     45 
     46 extension FfiRevisionBranchRecord {
     47   var appValue: TeraRevisionBranchStatus {
     48     get throws {
     49       try TeraRevisionBranchStatus(stopped: stopped, canResume: canResume, canCancel: canCancel,
     50                                    targets: targets.map(TeraPublicationTargets.decode))
     51     }
     52   }
     53 }