Struct wayland_server::UserDataMap
source · [−]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
sourceimpl UserDataMap
impl UserDataMap
sourcepub fn new() -> UserDataMap
pub fn new() -> UserDataMap
Create a new map
sourcepub fn get<T>(&self) -> Option<&T> where
T: 'static,
pub fn get<T>(&self) -> Option<&T> where
T: 'static,
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
sourcepub fn insert_if_missing<T, F>(&self, init: F) -> bool where
T: 'static,
F: FnOnce() -> T,
pub fn insert_if_missing<T, F>(&self, init: F) -> bool where
T: 'static,
F: FnOnce() -> T,
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
.
sourcepub fn insert_if_missing_threadsafe<T, F>(&self, init: F) -> bool where
T: 'static + Send + Sync,
F: FnOnce() -> T,
pub fn insert_if_missing_threadsafe<T, F>(&self, init: F) -> bool where
T: 'static + Send + Sync,
F: FnOnce() -> T,
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
sourceimpl Debug for UserDataMap
impl Debug for UserDataMap
sourceimpl Default for UserDataMap
impl Default for UserDataMap
sourcefn default() -> UserDataMap
fn default() -> UserDataMap
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl RefUnwindSafe for UserDataMap
impl Send for UserDataMap
impl Sync for UserDataMap
impl Unpin for UserDataMap
impl !UnwindSafe for UserDataMap
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
sourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
sourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
sourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more