Trait wayland_client::backend::ObjectData
source · pub trait ObjectData: DowncastSync {
// Required methods
fn event(
self: Arc<Self>,
backend: &Backend,
msg: Message<ObjectId, OwnedFd>
) -> Option<Arc<dyn ObjectData>>;
fn destroyed(&self, object_id: ObjectId);
// Provided methods
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error> { ... }
fn data_as_any(&self) -> &(dyn Any + 'static) { ... }
}
Expand description
A trait representing your data associated to an object
You will only be given access to it as a &
reference, so you
need to handle interior mutability by yourself.
The methods of this trait will be invoked internally every time a new object is created to initialize its data.
Required Methods§
Provided Methods§
sourcefn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Helper for forwarding a Debug implementation of your ObjectData
type
By default will just print ObjectData { ... }
sourcefn data_as_any(&self) -> &(dyn Any + 'static)
fn data_as_any(&self) -> &(dyn Any + 'static)
Helper for accessing user data
This function is used to back the Proxy::data
function in wayland_client
. By default,
it returns self
(via Downcast), but this may be overridden to allow downcasting user data
without needing to have access to the full type.
Implementations§
source§impl dyn ObjectData
impl dyn ObjectData
sourcepub fn is<__T>(&self) -> boolwhere
__T: ObjectData,
pub fn is<__T>(&self) -> boolwhere
__T: ObjectData,
Returns true if the trait object wraps an object of type __T
.
sourcepub fn downcast<__T>(
self: Box<dyn ObjectData>
) -> Result<Box<__T>, Box<dyn ObjectData>>where
__T: ObjectData,
pub fn downcast<__T>(
self: Box<dyn ObjectData>
) -> Result<Box<__T>, Box<dyn ObjectData>>where
__T: ObjectData,
Returns a boxed object from a boxed trait object if the underlying object is of type
__T
. Returns the original boxed trait if it isn’t.
sourcepub fn downcast_rc<__T>(
self: Rc<dyn ObjectData>
) -> Result<Rc<__T>, Rc<dyn ObjectData>>where
__T: ObjectData,
pub fn downcast_rc<__T>(
self: Rc<dyn ObjectData>
) -> Result<Rc<__T>, Rc<dyn ObjectData>>where
__T: ObjectData,
Returns an Rc
-ed object from an Rc
-ed trait object if the underlying object is of
type __T
. Returns the original Rc
-ed trait if it isn’t.
sourcepub fn downcast_ref<__T>(&self) -> Option<&__T>where
__T: ObjectData,
pub fn downcast_ref<__T>(&self) -> Option<&__T>where
__T: ObjectData,
Returns a reference to the object within the trait object if it is of type __T
, or
None
if it isn’t.
sourcepub fn downcast_mut<__T>(&mut self) -> Option<&mut __T>where
__T: ObjectData,
pub fn downcast_mut<__T>(&mut self) -> Option<&mut __T>where
__T: ObjectData,
Returns a mutable reference to the object within the trait object if it is of type
__T
, or None
if it isn’t.
sourcepub fn downcast_arc<__T>(
self: Arc<dyn ObjectData>
) -> Result<Arc<__T>, Arc<dyn ObjectData>>
pub fn downcast_arc<__T>( self: Arc<dyn ObjectData> ) -> Result<Arc<__T>, Arc<dyn ObjectData>>
Returns an Arc
-ed object from an Arc
-ed trait object if the underlying object is of
type __T
. Returns the original Arc
-ed trait if it isn’t.