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 }