pub struct UserDataMap { /* private fields */ }
Expand description

A storage able to store several values of UserData of different types. It behaves similarly to a TypeMap.

Implementations§

source§

impl UserDataMap

source

pub fn new() -> UserDataMap

Create a new map

source

pub fn get<T: 'static>(&self) -> Option<&T>

Attempt to access the wrapped user data of a given type

Will return None if no value of type T is stored in this UserDataMap and accessible from this thread

source

pub fn insert_if_missing<T: 'static, F: FnOnce() -> T>(&self, init: F) -> bool

Insert a value in the map if it is not already there

This is the non-threadsafe variant, the type you insert don’t have to be threadsafe, but they will not be visible from other threads (even if they are actually threadsafe).

If the value does not already exists, the closure is called to create it and this function returns true. If the value already exists, the closure is not called, and this function returns false.

source

pub fn insert_if_missing_threadsafe<T: Send + Sync + 'static, F: FnOnce() -> T>( &self, init: F ) -> bool

Insert a value in the map if it is not already there

This is the threadsafe variant, the type you insert must be threadsafe and will be visible from all threads.

If the value does not already exists, the closure is called to create it and this function returns true. If the value already exists, the closure is not called, and this function returns false.

Trait Implementations§

source§

impl Debug for UserDataMap

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for UserDataMap

source§

fn default() -> UserDataMap

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

Auto Trait Implementations§

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.