field_ios

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

retry.rs (2021B)


      1 use tera_core::runtime::product_surface::{PublicationActionReason, PublicationRetryDecision};
      2 
      3 #[derive(Clone, Copy, Debug, Eq, PartialEq, uniffi::Enum)]
      4 pub enum FfiPublicationActionReason {
      5     DeadlineExceeded,
      6     AttemptLimit,
      7     AuthenticationRequired,
      8     QuotaExceeded,
      9     InvalidPayload,
     10     DeliveryRefused,
     11     CoordinateChanged,
     12 }
     13 
     14 impl From<PublicationActionReason> for FfiPublicationActionReason {
     15     fn from(value: PublicationActionReason) -> Self {
     16         match value {
     17             PublicationActionReason::CoordinateChanged => Self::CoordinateChanged,
     18             PublicationActionReason::DeadlineExceeded => Self::DeadlineExceeded,
     19             PublicationActionReason::AttemptLimit => Self::AttemptLimit,
     20             PublicationActionReason::AuthenticationRequired => Self::AuthenticationRequired,
     21             PublicationActionReason::QuotaExceeded => Self::QuotaExceeded,
     22             PublicationActionReason::InvalidPayload => Self::InvalidPayload,
     23             PublicationActionReason::DeliveryRefused => Self::DeliveryRefused,
     24         }
     25     }
     26 }
     27 
     28 #[derive(Clone, Copy, Debug, Eq, PartialEq, uniffi::Enum)]
     29 pub enum FfiPublicationRetryDecision {
     30     Ready,
     31     DeferredUntil { unix_ms: u64 },
     32     InFlightUntil { unix_ms: u64 },
     33     NeedsAction { reason: FfiPublicationActionReason },
     34     Complete,
     35     Stopped,
     36 }
     37 
     38 impl From<PublicationRetryDecision> for FfiPublicationRetryDecision {
     39     fn from(value: PublicationRetryDecision) -> Self {
     40         match value {
     41             PublicationRetryDecision::Ready => Self::Ready,
     42             PublicationRetryDecision::DeferredUntil(unix_ms) => Self::DeferredUntil { unix_ms },
     43             PublicationRetryDecision::InFlightUntil(unix_ms) => Self::InFlightUntil { unix_ms },
     44             PublicationRetryDecision::NeedsAction(reason) => Self::NeedsAction {
     45                 reason: reason.into(),
     46             },
     47             PublicationRetryDecision::Complete => Self::Complete,
     48             PublicationRetryDecision::Stopped => Self::Stopped,
     49         }
     50     }
     51 }