Struct perthread::ThreadMap

source ·
pub struct ThreadMap<T> { /* private fields */ }
Expand description

This is a structure that lets you define a map with thread local variables, but also gives you access to all them behind a Mutex.

Implementations§

source§

impl<T> ThreadMap<T>

source

pub fn register(&'static self, val: T) -> PerThread<T>
where T: 'static + Sync,

Register a new per-thread value with the thread map.

source

pub fn for_each<F>(&self, cb: F)
where F: FnMut(&T),

Enumerate the per-thread values

This can’t be an iterator because we need to control the lifetime of the returned reference, which is limited to the time we’re holding the mutex (which is what’s protecting the value from being destroyed while we’re using it).

Trait Implementations§

source§

impl<T> Default for ThreadMap<T>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<T> Send for ThreadMap<T>

source§

impl<T> Sync for ThreadMap<T>

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for ThreadMap<T>

§

impl<T> Unpin for ThreadMap<T>

§

impl<T> UnwindSafe for ThreadMap<T>

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>,

§

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>,

§

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.