Struct thread_local::ThreadLocal
source · [−]pub struct ThreadLocal<T: Send> { /* private fields */ }
Expand description
Thread-local variable wrapper
See the module-level documentation for more.
Implementations
sourceimpl<T: Send> ThreadLocal<T>
impl<T: Send> ThreadLocal<T>
sourcepub fn new() -> ThreadLocal<T>
pub fn new() -> ThreadLocal<T>
Creates a new empty ThreadLocal
.
sourcepub fn with_capacity(capacity: usize) -> ThreadLocal<T>
pub fn with_capacity(capacity: usize) -> ThreadLocal<T>
Creates a new ThreadLocal
with an initial capacity. If less than the capacity threads
access the thread local it will never reallocate. The capacity may be rounded up to the
nearest power of two.
sourcepub fn get_or<F>(&self, create: F) -> &T where
F: FnOnce() -> T,
pub fn get_or<F>(&self, create: F) -> &T where
F: FnOnce() -> T,
Returns the element for the current thread, or creates it if it doesn’t exist.
sourcepub fn get_or_try<F, E>(&self, create: F) -> Result<&T, E> where
F: FnOnce() -> Result<T, E>,
pub fn get_or_try<F, E>(&self, create: F) -> Result<&T, E> where
F: FnOnce() -> Result<T, E>,
Returns the element for the current thread, or creates it if it doesn’t
exist. If create
fails, that error is returned and no element is
added.
sourcepub fn iter(&self) -> Iter<'_, T>ⓘNotable traits for Iter<'a, T>impl<'a, T: Send + Sync> Iterator for Iter<'a, T> type Item = &'a T;
where
T: Sync,
pub fn iter(&self) -> Iter<'_, T>ⓘNotable traits for Iter<'a, T>impl<'a, T: Send + Sync> Iterator for Iter<'a, T> type Item = &'a T;
where
T: Sync,
Returns an iterator over the local values of all threads in unspecified order.
This call can be done safely, as T
is required to implement Sync
.
sourcepub fn iter_mut(&mut self) -> IterMut<'_, T>ⓘNotable traits for IterMut<'a, T>impl<'a, T: Send> Iterator for IterMut<'a, T> type Item = &'a mut T;
pub fn iter_mut(&mut self) -> IterMut<'_, T>ⓘNotable traits for IterMut<'a, T>impl<'a, T: Send> Iterator for IterMut<'a, T> type Item = &'a mut T;
Returns a mutable iterator over the local values of all threads in unspecified order.
Since this call borrows the ThreadLocal
mutably, this operation can
be done safely—the mutable borrow statically guarantees no other
threads are currently accessing their associated values.
sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Removes all thread-specific values from the ThreadLocal
, effectively
reseting it to its original state.
Since this call borrows the ThreadLocal
mutably, this operation can
be done safely—the mutable borrow statically guarantees no other
threads are currently accessing their associated values.
sourceimpl<T: Send + Default> ThreadLocal<T>
impl<T: Send + Default> ThreadLocal<T>
sourcepub fn get_or_default(&self) -> &T
pub fn get_or_default(&self) -> &T
Returns the element for the current thread, or creates a default one if it doesn’t exist.
Trait Implementations
sourceimpl<T: Send + Debug> Debug for ThreadLocal<T>
impl<T: Send + Debug> Debug for ThreadLocal<T>
sourceimpl<T: Send> Default for ThreadLocal<T>
impl<T: Send> Default for ThreadLocal<T>
sourcefn default() -> ThreadLocal<T>
fn default() -> ThreadLocal<T>
Returns the “default value” for a type. Read more
sourceimpl<T: Send> Drop for ThreadLocal<T>
impl<T: Send> Drop for ThreadLocal<T>
sourceimpl<T: Send> IntoIterator for ThreadLocal<T>
impl<T: Send> IntoIterator for ThreadLocal<T>
type Item = T
type Item = T
The type of the elements being iterated over.
sourceimpl<'a, T: Send + Sync> IntoIterator for &'a ThreadLocal<T>
impl<'a, T: Send + Sync> IntoIterator for &'a ThreadLocal<T>
sourceimpl<'a, T: Send> IntoIterator for &'a mut ThreadLocal<T>
impl<'a, T: Send> IntoIterator for &'a mut ThreadLocal<T>
impl<T: Send> Sync for ThreadLocal<T>
impl<T: Send + UnwindSafe> UnwindSafe for ThreadLocal<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for ThreadLocal<T>
impl<T> Send for ThreadLocal<T>
impl<T> Unpin for ThreadLocal<T>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more