pub struct ScopedKey<T> { /* private fields */ }
Expand description
Type representing a thread local storage key corresponding to a 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.
Implementations§
Source§impl<T> ScopedKey<T>
impl<T> ScopedKey<T>
Sourcepub fn set<F, R>(&'static self, t: &T, f: F) -> Rwhere
F: FnOnce() -> R,
pub fn set<F, R>(&'static self, t: &T, f: F) -> Rwhere
F: FnOnce() -> R,
Inserts a value into this scoped thread local storage slot for a duration of a closure.
While cb
is running, the value t
will be returned by get
unless
this function is called recursively inside of cb
.
Upon return, this function will restore the previous value, if any was available.
Sourcepub fn with<F, R>(&'static self, f: F) -> R
pub fn with<F, R>(&'static self, f: F) -> R
Gets a value out of this scoped variable.
This function takes a closure which receives the value of this variable.
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for ScopedKey<T>
impl<T> RefUnwindSafe for ScopedKey<T>where
T: RefUnwindSafe,
impl<T> Send for ScopedKey<T>where
T: Send,
impl<T> Unpin for ScopedKey<T>where
T: Unpin,
impl<T> UnwindSafe for ScopedKey<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more