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 { ... }
fn data_as_any(&self) -> &dyn Any { ... }
}
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
fn debug(&self, f: &mut Formatter<'_>) -> Result
Helper for forwarding a Debug implementation of your ObjectData
type
By default will just print ObjectData { ... }
sourcefn data_as_any(&self) -> &dyn Any
fn data_as_any(&self) -> &dyn Any
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: ObjectData>(&self) -> bool
pub fn is<__T: ObjectData>(&self) -> bool
Returns true if the trait object wraps an object of type __T
.
sourcepub fn downcast<__T: ObjectData>(self: Box<Self>) -> Result<Box<__T>, Box<Self>>
pub fn downcast<__T: ObjectData>(self: Box<Self>) -> Result<Box<__T>, Box<Self>>
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: ObjectData>(self: Rc<Self>) -> Result<Rc<__T>, Rc<Self>>
pub fn downcast_rc<__T: ObjectData>(self: Rc<Self>) -> Result<Rc<__T>, Rc<Self>>
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: ObjectData>(&self) -> Option<&__T>
pub fn downcast_ref<__T: ObjectData>(&self) -> Option<&__T>
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: ObjectData>(&mut self) -> Option<&mut __T>
pub fn downcast_mut<__T: ObjectData>(&mut self) -> Option<&mut __T>
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: ObjectData + Any + Send + Sync>(
self: Arc<Self>,
) -> Result<Arc<__T>, Arc<Self>>
pub fn downcast_arc<__T: ObjectData + Any + Send + Sync>( self: Arc<Self>, ) -> Result<Arc<__T>, Arc<Self>>
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.