Current

Struct Current 

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

Holds a value when entered or nothing when not.

Implementations§

Source§

impl<T> Current<T>

Source

pub const fn new() -> Self

Construct a new (empty) instance.

Source

pub fn enter<F, R>( this: &'static LocalKey<Self>, enter: &mut Enter, value: T, f: F, ) -> R
where F: FnOnce(&mut Enter) -> R,

Set instance to value while running the callback.

On exit the instance is cleared.

§Panics

Panics if the instance already was entered.

Source

pub fn with<F, R>(this: &'static LocalKey<Self>, f: F) -> R
where F: FnOnce(Option<&T>) -> R,

Run callback with a reference to the current value (if there is one)

The callback will be called while holding a shareable lock to the inner value.

§Panics

Panics if the inner value is currently locked exclusively by a with_mut call.

Source

pub fn with_mut<F, R>(this: &'static LocalKey<Self>, f: F) -> R
where F: FnOnce(Option<&mut T>) -> R,

Run callback with a reference to the current value (if there is one)

The callback will be called while holding an exclusive lock to the inner value.

§Panics

Panics if the inner value is currently locked by a with or a with_mut call.

Trait Implementations§

Source§

impl<T: Debug> Debug for Current<T>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> !Freeze for Current<T>

§

impl<T> !RefUnwindSafe for Current<T>

§

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

§

impl<T> !Sync for Current<T>

§

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

§

impl<T> UnwindSafe for Current<T>
where T: UnwindSafe,

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.