pub trait Resource: Clone + Debug + Sized {
    type Event<'a>;
    type Request;

Show 14 methods // Required 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<'a>( &self, dh: &DisplayHandle, req: Self::Event<'a> ) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>; // Provided methods 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§

source

type Event<'a>

The event enum for this interface

source

type Request

The request enum for this interface

Required Methods§

source

fn interface() -> &'static Interface

The interface description

source

fn id(&self) -> ObjectId

The ID of this object

source

fn version(&self) -> u32

The version of this object

source

fn data<U: 'static>(&self) -> Option<&U>

Access the user-data associated with this object

source

fn object_data(&self) -> Option<&Arc<dyn Any + Send + Sync>>

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.

source

fn handle(&self) -> &WeakHandle

Access the backend handle associated with this object

source

fn from_id(dh: &DisplayHandle, id: ObjectId) -> Result<Self, InvalidId>

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.

source

fn send_event(&self, evt: Self::Event<'_>) -> Result<(), InvalidId>

Send an event to this object

source

fn parse_request( dh: &DisplayHandle, msg: Message<ObjectId, OwnedFd> ) -> Result<(Self, Self::Request), DispatchError>

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.

source

fn write_event<'a>( &self, dh: &DisplayHandle, req: Self::Event<'a> ) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>

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§

source

fn client(&self) -> Option<Client>

The client owning this object

Returns None if the object is no longer alive.

source

fn is_alive(&self) -> bool

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

source

fn post_error(&self, code: impl Into<u32>, error: impl Into<String>)

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.

source

fn downgrade(&self) -> Weak<Self>

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.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Resource for WlBuffer

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlCallback

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlCompositor

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlDataDevice

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlDataDeviceManager

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlDataOffer

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlDataSource

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlKeyboard

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlOutput

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlPointer

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlRegion

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlSeat

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlShell

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlShellSurface

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlShm

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlShmPool

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlSubcompositor

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlSubsurface

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlSurface

§

type Request = Request

§

type Event<'event> = Event<'event>

source§

impl Resource for WlTouch

§

type Request = Request

§

type Event<'event> = Event<'event>