Struct thread_local::CachedThreadLocal [−][src]
pub struct CachedThreadLocal<T: Send> { /* fields omitted */ }
Use ThreadLocal
instead
Wrapper around ThreadLocal
.
This used to add a fast path for a single thread, however that has been
obsoleted by performance improvements to ThreadLocal
itself.
Implementations
impl<T: Send> CachedThreadLocal<T>
[src]
impl<T: Send> CachedThreadLocal<T>
[src]pub fn new() -> CachedThreadLocal<T>
[src]
Creates a new empty CachedThreadLocal
.
pub fn get(&self) -> Option<&T>
[src]
Returns the element for the current thread, if it exists.
pub fn get_or<F>(&self, create: F) -> &T where
F: FnOnce() -> T,
[src]
F: FnOnce() -> T,
Returns the element for the current thread, or creates it if it doesn’t exist.
pub fn get_or_try<F, E>(&self, create: F) -> Result<&T, E> where
F: FnOnce() -> Result<T, E>,
[src]
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.
pub fn iter_mut(&mut self) -> CachedIterMut<'_, T>ⓘNotable traits for CachedIterMut<'a, T>
impl<'a, T: Send + 'a> Iterator for CachedIterMut<'a, T> type Item = &'a mut T;
[src]
Notable traits for CachedIterMut<'a, T>
impl<'a, T: Send + 'a> Iterator for CachedIterMut<'a, T> type Item = &'a mut T;
Returns a mutable iterator over the local values of all threads.
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.
pub fn clear(&mut self)
[src]
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.
impl<T: Send + Default> CachedThreadLocal<T>
[src]
impl<T: Send + Default> CachedThreadLocal<T>
[src]pub fn get_or_default(&self) -> &T
[src]
Returns the element for the current thread, or creates a default one if it doesn’t exist.
Trait Implementations
impl<T: Send + Debug> Debug for CachedThreadLocal<T>
[src]
impl<T: Send + Debug> Debug for CachedThreadLocal<T>
[src]impl<T: Send> Default for CachedThreadLocal<T>
[src]
impl<T: Send> Default for CachedThreadLocal<T>
[src]fn default() -> CachedThreadLocal<T>
[src]
impl<T: Send> IntoIterator for CachedThreadLocal<T>
[src]
impl<T: Send> IntoIterator for CachedThreadLocal<T>
[src]type Item = T
The type of the elements being iterated over.
type IntoIter = CachedIntoIter<T>
Which kind of iterator are we turning this into?
fn into_iter(self) -> CachedIntoIter<T>ⓘNotable traits for CachedIntoIter<T>
impl<T: Send> Iterator for CachedIntoIter<T> type Item = T;
[src]
Notable traits for CachedIntoIter<T>
impl<T: Send> Iterator for CachedIntoIter<T> type Item = T;
impl<'a, T: Send + 'a> IntoIterator for &'a mut CachedThreadLocal<T>
[src]
impl<'a, T: Send + 'a> IntoIterator for &'a mut CachedThreadLocal<T>
[src]type Item = &'a mut T
The type of the elements being iterated over.
type IntoIter = CachedIterMut<'a, T>
Which kind of iterator are we turning this into?
fn into_iter(self) -> CachedIterMut<'a, T>ⓘNotable traits for CachedIterMut<'a, T>
impl<'a, T: Send + 'a> Iterator for CachedIterMut<'a, T> type Item = &'a mut T;
[src]
Notable traits for CachedIterMut<'a, T>
impl<'a, T: Send + 'a> Iterator for CachedIterMut<'a, T> type Item = &'a mut T;