[−][src]Struct scoped_tls_hkt::ScopedKeyMut
Type representing a thread local storage key corresponding to a mutable reference
to the type parameter T
.
Keys are statically allocated and can contain a reference to an instance of
type T
scoped to a particular lifetime. Keys provides two methods, set
and with
, both of which currently use closures to control the scope of
their contents.
This differs from a ScopedKey
because it provides access through a mutable
reference. As a result, when the with(..)
method is used to access the value,
the key will appear unset whilst the closure is running. This is to prevent
the value being borrowed a second time.
Methods
impl<T: ?Sized + 'static> ScopedKeyMut<T>
[src]
pub fn set<F, R>(&'static self, t: &mut T, f: F) -> R where
F: FnOnce() -> R,
[src]
F: FnOnce() -> R,
Inserts a value into this scoped thread local storage slot for a duration of a closure.
pub fn with<F, R>(&'static self, f: F) -> R where
F: FnOnce(&mut T) -> R,
[src]
F: FnOnce(&mut T) -> R,
Gets a value out of this scoped variable.
This function takes a closure which receives the value of this variable. For the duration of the closure, the key will appear unset.
Panics
This function will panic if set
has not previously been called,
or if the call is nested inside another (multiple mutable borrows
of the same value are not allowed).
pub fn is_set(&'static self) -> bool
[src]
Test whether this TLS key has been set
for the current thread.
Trait Implementations
impl<T: ?Sized + 'static> Sync for ScopedKeyMut<T>
[src]
Auto Trait Implementations
impl<T: ?Sized> RefUnwindSafe for ScopedKeyMut<T>
impl<T: ?Sized> Send for ScopedKeyMut<T>
impl<T: ?Sized> Unpin for ScopedKeyMut<T>
impl<T: ?Sized> UnwindSafe for ScopedKeyMut<T>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,