Struct wayland_commons::utils::UserData
source · pub struct UserData { /* private fields */ }Expand description
A wrapper for user data, able to store any type, and correctly handling access from a wrong thread
Implementations§
source§impl UserData
impl UserData
sourcepub fn new_threadsafe<T: Send + Sync + 'static>(value: T) -> UserData
pub fn new_threadsafe<T: Send + Sync + 'static>(value: T) -> UserData
Create a new UserData using a threadsafe type
Its contents can be accessed from any thread.
sourcepub fn new<T: 'static>(value: T) -> UserData
pub fn new<T: 'static>(value: T) -> UserData
Create a new UserData using a non-threadsafe type
Its contents can only be accessed from the same thread as the one you are creating it.
sourcepub fn get<T: 'static>(&self) -> Option<&T>
pub fn get<T: 'static>(&self) -> Option<&T>
Attempt to access the wrapped user data
Will return None if either:
- The requested type
Tdoes not match the type used for construction - This
UserDatahas been created using the non-threadsafe variant and access is attempted from an other thread than the one it was created on