Skip to main content

Completable

Struct Completable 

Source
pub struct Completable<T> { /* private fields */ }

Implementations§

Source§

impl<T> Completable<T>

Source

pub fn new(val: T) -> Self

Source

pub fn complete_exclusive(&self, f: impl FnOnce() -> T) -> bool

Completes this instance in exclusive mode, wherein the given closure is atomically invoked if and only if the instance is incomplete. No other thread may succeed in completing this instance in the meantime.

This method is used when f represents an expensive computation, the result of which should not be discarded. Conversely, if this instance is already complete, f should not be attempted.

Returns true if and only if f was invoked.

Source

pub fn complete(&self, val: T) -> bool

Completes this instance, assigning val if the instance is incomplete. Otherwise, the existing completed value is preserved.

Returns true if and only if val was assigned.

Source

pub fn is_complete(&self) -> bool

Source

pub fn get(&self) -> Completed<'_, T>

Source

pub fn peek<'a>(&'a self) -> impl Deref<Target = Option<T>> + 'a

Source

pub fn try_get<'a>( &'a self, duration: Duration, ) -> impl Deref<Target = Option<T>> + 'a

Source

pub fn into_inner(self) -> Option<T>

Trait Implementations§

Source§

impl<T: Debug> Debug for Completable<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Default> Default for Completable<T>

Source§

fn default() -> Completable<T>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<T> !Freeze for Completable<T>

§

impl<T> RefUnwindSafe for Completable<T>

§

impl<T> Send for Completable<T>
where T: Send,

§

impl<T> Sync for Completable<T>
where T: Send,

§

impl<T> Unpin for Completable<T>
where T: Unpin,

§

impl<T> UnsafeUnpin for Completable<T>
where T: UnsafeUnpin,

§

impl<T> UnwindSafe for Completable<T>

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