Skip to main content

ObjectData

Trait ObjectData 

Source
pub trait ObjectData:
    AsAny
    + Any
    + Send
    + Sync {
    // 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§

Source

fn event( self: Arc<Self>, backend: &Backend, msg: Message<ObjectId, OwnedFd>, ) -> Option<Arc<dyn ObjectData>>

Dispatch an event for the associated object

If the event has a NewId argument, the callback must return the object data for the newly created object

Source

fn destroyed(&self, object_id: ObjectId)

Notification that the object has been destroyed and is no longer active

Provided Methods§

Source

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

Helper for forwarding a Debug implementation of your ObjectData type

By default will just print ObjectData { ... }

Source

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, but this may be overridden to allow downcasting user data without needing to have access to the full type.

Trait Implementations§

Source§

impl Debug for dyn ObjectData

Source§

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

Formats the value using the given formatter. Read more

Implementors§