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 }