Trait wayland_client::Proxy

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

Show 14 methods // Required methods fn interface() -> &'static Interface; fn id(&self) -> ObjectId; fn version(&self) -> u32; fn data<U: Send + Sync + 'static>(&self) -> Option<&U>; fn object_data(&self) -> Option<&Arc<dyn ObjectData>>; fn backend(&self) -> &WeakBackend; fn from_id(conn: &Connection, id: ObjectId) -> Result<Self, InvalidId>; fn inert(backend: WeakBackend) -> Self; fn send_request(&self, req: Self::Request<'_>) -> Result<(), InvalidId>; fn send_constructor<I: Proxy>( &self, req: Self::Request<'_>, data: Arc<dyn ObjectData> ) -> Result<I, InvalidId>; fn parse_event( conn: &Connection, msg: Message<ObjectId, OwnedFd> ) -> Result<(Self, Self::Event), DispatchError>; fn write_request<'a>( &self, conn: &Connection, req: Self::Request<'a> ) -> Result<(Message<ObjectId, BorrowedFd<'a>>, Option<(&'static Interface, u32)>), InvalidId>; // Provided methods fn is_alive(&self) -> bool { ... } fn downgrade(&self) -> Weak<Self> { ... }
}
Expand description

Trait representing a Wayland interface

Required Associated Types§

source

type Event

The event enum for this interface

source

type Request<'a>

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: Send + Sync + 'static>(&self) -> Option<&U>

Access the user-data associated with this object

source

fn object_data(&self) -> Option<&Arc<dyn ObjectData>>

Access the raw data associated with this object.

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

source

fn backend(&self) -> &WeakBackend

Access the backend associated with this object

source

fn from_id(conn: &Connection, id: ObjectId) -> Result<Self, InvalidId>

Create an object proxy 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 inert(backend: WeakBackend) -> Self

Create an inert object proxy

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

source

fn send_request(&self, req: Self::Request<'_>) -> Result<(), InvalidId>

Send a request for this object.

It is an error to use this function on requests that create objects; use Proxy::send_constructor for such requests.

source

fn send_constructor<I: Proxy>( &self, req: Self::Request<'_>, data: Arc<dyn ObjectData> ) -> Result<I, InvalidId>

Send a request for this object that creates another object.

It is an error to use this function on requests that do not create objects; use Proxy::send_request for such requests.

source

fn parse_event( conn: &Connection, msg: Message<ObjectId, OwnedFd> ) -> Result<(Self, Self::Event), 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_request<'a>( &self, conn: &Connection, req: Self::Request<'a> ) -> Result<(Message<ObjectId, BorrowedFd<'a>>, Option<(&'static Interface, u32)>), InvalidId>

Serialize a request 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 is_alive(&self) -> bool

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

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 proxy using Weak::upgrade().

This can be of use if you need to store proxies 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 Proxy for WlBuffer

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlCallback

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlCompositor

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlDataDevice

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlDataDeviceManager

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlDataOffer

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlDataSource

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlDisplay

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlKeyboard

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlOutput

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlPointer

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlRegion

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlRegistry

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlSeat

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlShell

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlShellSurface

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlShm

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlShmPool

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlSubcompositor

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlSubsurface

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlSurface

§

type Request<'request> = Request<'request>

§

type Event = Event

source§

impl Proxy for WlTouch

§

type Request<'request> = Request<'request>

§

type Event = Event