pub struct Retry {
pub of: String,
pub attempt: u32,
pub cause: RetryCause,
pub backoff_ms: Option<u64>,
pub idempotency_key: Option<String>,
}Expand description
Records that an actor performed an action.
Why an action is a retry of an earlier one, signed into the statement.
Without this, attempt two of a flaky call is a sibling of attempt one
and a verifier cannot tell “recovering from a timeout” from “did the
same thing twice”. of names the attempt being retried, attempt is
the 1-based position in the chain, cause is a closed vocabulary, and
idempotency_key is what the caller sent so a verifier can check it was
the same across attempts. Omitted from the signed bytes when absent, so
every action signed before this field existed keeps its exact id.
Fields§
§of: StringArtifact id of the attempt this one retries (art_…).
attempt: u321-based attempt number; the first attempt is 1 and carries no retry.
cause: RetryCauseWhy the previous attempt was not accepted: timeout, error,
rate_limited, operator, unknown.
backoff_ms: Option<u64>Milliseconds waited before this attempt, when a backoff fired.
idempotency_key: Option<String>The idempotency key the caller sent with this attempt, if any.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Retry
impl<'de> Deserialize<'de> for Retry
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Retry
impl StructuralPartialEq for Retry
Auto Trait Implementations§
impl Freeze for Retry
impl RefUnwindSafe for Retry
impl Send for Retry
impl Sync for Retry
impl Unpin for Retry
impl UnsafeUnpin for Retry
impl UnwindSafe for Retry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.