Skip to main content

Wait

Struct Wait 

Source
pub struct Wait { /* private fields */ }
Expand description

Describes when Dex may invoke a Step’s execute handler.

Build waits from durable timer and Channel Condition values. Combinators consume their inputs and preserve order, which determines timer indexes used by crate::TimerId.

§Examples

use dex_sdk::{Channel, Timer, Wait};
use std::time::Duration;

let approvals = Channel::<String>::new("approvals");
let wait = Wait::any_of([
    approvals.for_one(),
    Timer::by_duration(Duration::from_secs(300)),
]);

Implementations§

Source§

impl Wait

Source

pub fn skip_immediately() -> Self

Skips wait_for and asks Dex to invoke execute immediately.

Source

pub fn until(condition: Condition) -> Self

Waits until one condition is satisfied. The Condition does not need an ID.

Source

pub fn all_of(conditions: impl IntoIterator<Item = Condition>) -> Self

Waits until every condition is satisfied. Conditions do not need IDs.

Source

pub fn any_of(conditions: impl IntoIterator<Item = Condition>) -> Self

Waits until at least one condition is satisfied. Conditions do not need IDs.

Channel consumption is not greedy across alternatives. Only the selected Channel condition consumes messages; other ready Channel conditions consume nothing.

Source

pub fn any_combination_of( combinations: impl IntoIterator<Item = ConditionCombination>, ) -> Self

Waits for every Condition in any combination.

Channel consumption is limited to Channel conditions in the selected combination. Conditions belonging only to other ready combinations consume nothing.

Every Condition needs a non-empty user ID. Clones of the same Condition may be reused across combinations; distinct Conditions need unique IDs.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Wait

§

impl !UnwindSafe for Wait

§

impl Freeze for Wait

§

impl Send for Wait

§

impl Sync for Wait

§

impl Unpin for Wait

§

impl UnsafeUnpin for Wait

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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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<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