Skip to main content

Advance

Enum Advance 

Source
pub enum Advance<A> {
    Next(A),
    Park {
        state: A,
        wake_after: Option<Duration>,
        error: Option<AdvanceError>,
    },
    Done,
    Failed(Error),
}
Expand description

Outcome of one WalletAction::advance call.

The executor uses these to decide whether to persist, loop, schedule a wake-up or remove the checkpoint.

Variants§

§

Next(A)

Transition to a new state. Executor persists state and calls advance on it.

§

Park

Pause until something external (notification, periodic sync) or wake_after (when set) re-drives the action. Executor persists state and returns.

wake_after is a hint, not a guarantee: it lives only in this process and is lost across restarts. advance MUST tolerate being called before the hint has elapsed.

error is the error that caused the park, if any.

Fields

§state: A
§wake_after: Option<Duration>
§

Done

Terminal: executor removes the checkpoint row. Any permanent fact the action wants to retain (e.g. an “invoice paid” record) must be written to its own table before returning Done.

§

Failed(Error)

Terminal: executor removes the checkpoint row because of a fatal error. This advance should only be returned when no server change occured yet or when process has checked server status is expected one and it is safe to remove checkpoint

Auto Trait Implementations§

§

impl<A> !RefUnwindSafe for Advance<A>

§

impl<A> !UnwindSafe for Advance<A>

§

impl<A> Freeze for Advance<A>
where A: Freeze,

§

impl<A> Send for Advance<A>
where A: Send,

§

impl<A> Sync for Advance<A>
where A: Sync,

§

impl<A> Unpin for Advance<A>
where A: Unpin,

§

impl<A> UnsafeUnpin for Advance<A>
where A: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more