Struct swctx::WaitCtx

source ·
pub struct WaitCtx<T, S, E>(/* private fields */);
Expand description

End-point used to wait for a value to be sent from the paired SetCtx.

Implementations§

source§

impl<T, S, E> WaitCtx<T, S, E>

source

pub fn wait(self) -> Result<T, Error<S, E>>

Wait for the paired SetCtx to set a value or fail.

§Errors

Returns application-specific error wrapped in an Error::App if the SetCtx reported failure.

source

pub fn try_get(&self) -> Result<Option<T>, Error<S, E>>

Non-blocking attempt to get the get the stored value.

Returns Ok(Some(T)) if a value has been stored. Returns Ok(None) if no value has been stored.

§Errors

Returns application-specific error wrapped in an Error::App if the SetCtx reported failure.

§Panics

This function will panic if called again after it has resolved to either data or error.

source

pub const fn wait_async(&self) -> WaitFuture<'_, T, S, E>

Return a Future that will wait for either data to be set or an error to occur.

§Cancel safety

The returned Future is cancel safe.

§Panics

This function will panic if called again after it has resolved to either data or error.

Trait Implementations§

source§

impl<T, S, E> Drop for WaitCtx<T, S, E>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<T, S, E> Future for WaitCtx<T, S, E>

source§

type Output = Result<T, Error<S, E>>

The type of value produced on completion.
source§

fn poll(self: Pin<&mut Self>, ctx: &mut Context<'_>) -> Poll<Self::Output>

Attempts to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more

Auto Trait Implementations§

§

impl<T, S, E> Freeze for WaitCtx<T, S, E>

§

impl<T, S, E> !RefUnwindSafe for WaitCtx<T, S, E>

§

impl<T, S, E> Send for WaitCtx<T, S, E>
where S: Send, T: Send, E: Send,

§

impl<T, S, E> Sync for WaitCtx<T, S, E>
where S: Send, T: Send, E: Send,

§

impl<T, S, E> Unpin for WaitCtx<T, S, E>

§

impl<T, S, E> !UnwindSafe for WaitCtx<T, S, E>

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, 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<F> IntoFuture for F
where F: Future,

source§

type Output = <F as Future>::Output

The output that the future will produce on completion.
source§

type IntoFuture = F

Which kind of future are we turning this into?
source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. Read more
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.