wayland_server

Struct Client

source
pub struct Client { /* private fields */ }
Expand description

A struct representing a Wayland client connected to your compositor.

Implementations§

source§

impl Client

source

pub fn id(&self) -> ClientId

The backend ClientId of this client

source

pub fn get_data<Data: ClientData + 'static>(&self) -> Option<&Data>

Access the data associated to this client

Returns None if the provided Data type parameter is not the correct one.

source

pub fn get_credentials( &self, handle: &DisplayHandle, ) -> Result<Credentials, InvalidId>

Access the pid/uid/gid of this client

Note: You should be careful if you plan tu use this for security purposes, as it is possible for programs to spoof this kind of information.

For a discussion about the subject of securely identifying clients, see https://gitlab.freedesktop.org/wayland/weston/-/issues/206

source

pub fn create_resource<I: Resource + 'static, U: Send + Sync + 'static, D: Dispatch<I, U> + 'static>( &self, handle: &DisplayHandle, version: u32, user_data: U, ) -> Result<I, InvalidId>

Create a new Wayland object in the protocol state of this client

The newly created resource should be immediately sent to the client through an associated event with a new_id argument. Not doing so risks corrupting the protocol state and causing protocol errors at a later time.

source

pub fn create_resource_from_objdata<I: Resource + 'static, D: 'static>( &self, handle: &DisplayHandle, version: u32, obj_data: Arc<dyn ObjectData<D>>, ) -> Result<I, InvalidId>

Create a new Wayland object in the protocol state of this client, from an ObjectData

This is a lower-level method than create_resource(), in case you need to bypass the Dispatch machinery.

The newly created resource should be immediately sent to the client through an associated event with a new_id argument. Not doing so risks corrupting the protocol state and causing protocol errors at a later time.

source

pub fn object_from_protocol_id<I: Resource + 'static>( &self, handle: &DisplayHandle, protocol_id: u32, ) -> Result<I, InvalidId>

Attempt to retrieve an object from this client’s protocol state from its protocol id

Will fail if either the provided protocol id does not correspond to any object, or if the corresponding object is not of the interface I.

source

pub fn kill(&self, handle: &DisplayHandle, error: ProtocolError)

Kill this client by triggering a protocol error

Trait Implementations§

source§

impl Clone for Client

source§

fn clone(&self) -> Client

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Client

source§

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

Formats the value using the given formatter. Read more
source§

impl PartialEq for Client

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl !UnwindSafe for Client

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.