pub trait Resource: Clone + Debug + Sized {
    type Event;
    type Request;

Show 14 methods fn interface() -> &'static Interface; fn id(&self) -> ObjectId; fn version(&self) -> u32; fn data<U: 'static>(&self) -> Option<&U>; fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>; fn handle(&self) -> &WeakHandle; fn from_id(dh: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>; fn send_event(&self, evt: Self::Event) -> Result<(), InvalidId>; fn parse_request(
        dh: &DisplayHandle,
        msg: Message<ObjectId, OwnedFd>
    ) -> Result<(Self, Self::Request), DispatchError>; fn write_event(
        &self,
        dh: &DisplayHandle,
        req: Self::Event
    ) -> Result<Message<ObjectId, RawFd>, InvalidId>; fn client(&self) -> Option<Client> { ... } fn is_alive(&self) -> bool { ... } fn post_error(&self, code: impl Into<u32>, error: impl Into<String>) { ... } fn downgrade(&self) -> Weak<Self> { ... }
}
Expand description

Trait representing a Wayland interface

Required Associated Types

The event enum for this interface

The request enum for this interface

Required Methods

The interface description

The ID of this object

The version of this object

Access the user-data associated with this object

Access the raw data associated with this object.

It is given to you as a dyn Any, and you are responsible for downcasting it.

For objects created using the scanner-generated methods, this will be an instance of the ResourceData type.

Access the backend handle associated with this object

Create an object resource from its ID

Returns an error this the provided object ID does not correspond to the Self interface.

Note: This method is mostly meant as an implementation detail to be used by code generated by wayland-scanner.

Send an event to this object

Parse a event for this object

Note: This method is mostly meant as an implementation detail to be used by code generated by wayland-scanner.

Serialize an event for this object

Note: This method is mostly meant as an implementation detail to be used by code generated by wayland-scanner.

Provided Methods

The client owning this object

Returns None if the object is no longer alive.

Checks if the Wayland object associated with this proxy is still alive

Trigger a protocol error on this object

The code is intended to be from the Error enum declared alongside that object interface.

A protocol error is fatal to the Wayland connection, and the client will be disconnected.

Creates a weak handle to this object

This weak handle will not keep the user-data associated with the object alive, and can be converted back to a full resource using Weak::upgrade().

This can be of use if you need to store resources in the used data of other objects and want to be sure to avoid reference cycles that would cause memory leaks.

Implementors