Struct want::Giver[][src]

pub struct Giver { /* fields omitted */ }

An entity that gives a value when wanted.

Implementations

impl Giver[src]

pub fn want<'a>(&'a mut self) -> impl Future<Output = Result<(), Closed>> + 'a[src]

Returns a Future that fulfills when the Taker has done some action.

pub fn poll_want(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Closed>>[src]

Poll whether the Taker has registered interest in another value.

  • If the Taker has called want(), this returns Async::Ready(()).
  • If the Taker has not called want() since last poll, this returns Async::NotReady, and parks the current task to be notified when the Taker does call want().
  • If the Taker has canceled (or dropped), this returns Closed.

After knowing that the Taker is wanting, the state can be reset by calling give.

pub fn give(&self) -> bool[src]

Mark the state as idle, if the Taker currently is wanting.

Returns true if Taker was wanting, false otherwise.

pub fn is_wanting(&self) -> bool[src]

Check if the Taker has called want() without parking a task.

This is safe to call outside of a futures task context, but other means of being notified is left to the user.

pub fn is_canceled(&self) -> bool[src]

Check if the Taker has canceled interest without parking a task.

pub fn shared(self) -> SharedGiver[src]

Converts this into a SharedGiver.

Trait Implementations

impl Debug for Giver[src]

Auto Trait Implementations

impl !RefUnwindSafe for Giver

impl Send for Giver

impl Sync for Giver

impl Unpin for Giver

impl !UnwindSafe for Giver

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.