Cell

Struct Cell 

Source
pub struct Cell<T> { /* private fields */ }
Expand description

Implements a thread safe data structure which can be used to temporary borrow an inner value.

Implementations§

Source§

impl<T> Cell<T>

Source

pub fn new(value: T) -> Self

Source

pub fn is_available(&self) -> bool

Returns true if the inner value is available to borrow. Returns false if value already borrowed.

§Panics

Will panic if failed to lock the inner variable.

Source

pub fn try_borrow(&self) -> Option<Borrowed<T>>

Tries to borrow the inner value. Will return None if inner value couldn’t be borrowed.

§Panics

Will panic if failed to lock the inner variable.

Source§

impl<T: Clone> Cell<T>

Source

pub fn fork(&self) -> Option<Cell<T>>

Tries to clone inner cell. Will return None if inner value is borrowed.

Auto Trait Implementations§

§

impl<T> Freeze for Cell<T>

§

impl<T> RefUnwindSafe for Cell<T>

§

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

§

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

§

impl<T> Unpin for Cell<T>

§

impl<T> UnwindSafe for Cell<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> 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, 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