#[non_exhaustive]
pub enum Request<'a> { Motion { time: u32, dx: f64, dy: f64, }, MotionAbsolute { time: u32, x: u32, y: u32, x_extent: u32, y_extent: u32, }, Button { time: u32, button: u32, state: WEnum<ButtonState>, }, Axis { time: u32, axis: WEnum<Axis>, value: f64, }, Frame, AxisSource { axis_source: WEnum<AxisSource>, }, AxisStop { time: u32, axis: WEnum<Axis>, }, AxisDiscrete { time: u32, axis: WEnum<Axis>, value: f64, discrete: i32, }, Destroy, }

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Motion

Fields

§time: u32

timestamp with millisecond granularity

§dx: f64

displacement on the x-axis

§dy: f64

displacement on the y-axis

pointer relative motion event

The pointer has moved by a relative amount to the previous request.

Values are in the global compositor space.

§

MotionAbsolute

Fields

§time: u32

timestamp with millisecond granularity

§x: u32

position on the x-axis

§y: u32

position on the y-axis

§x_extent: u32

extent of the x-axis

§y_extent: u32

extent of the y-axis

pointer absolute motion event

The pointer has moved in an absolute coordinate frame.

Value of x can range from 0 to x_extent, value of y can range from 0 to y_extent.

§

Button

Fields

§time: u32

timestamp with millisecond granularity

§button: u32

button that produced the event

§state: WEnum<ButtonState>

physical state of the button

button event

A button was pressed or released.

§

Axis

Fields

§time: u32

timestamp with millisecond granularity

§axis: WEnum<Axis>

axis type

§value: f64

length of vector in touchpad coordinates

axis event

Scroll and other axis requests.

§

Frame

end of a pointer event sequence

Indicates the set of events that logically belong together.

§

AxisSource

Fields

§axis_source: WEnum<AxisSource>

source of the axis event

axis source event

Source information for scroll and other axis.

§

AxisStop

Fields

§time: u32

timestamp with millisecond granularity

§axis: WEnum<Axis>

the axis stopped with this event

axis stop event

Stop notification for scroll and other axes.

§

AxisDiscrete

Fields

§time: u32

timestamp with millisecond granularity

§axis: WEnum<Axis>

axis type

§value: f64

length of vector in touchpad coordinates

§discrete: i32

number of steps

axis click event

Discrete step information for scroll and other axes.

This event allows the client to extend data normally sent using the axis event with discrete value.

§

Destroy

destroy the virtual pointer object

This is a destructor, once sent this object cannot be used any longer.

Implementations§

source§

impl<'a> Request<'a>

source

pub fn opcode(&self) -> u16

Get the opcode number of this message

Trait Implementations§

source§

impl<'a> Debug for Request<'a>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for Request<'a>

§

impl<'a> Send for Request<'a>

§

impl<'a> Sync for Request<'a>

§

impl<'a> Unpin for Request<'a>

§

impl<'a> UnwindSafe for Request<'a>

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> 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 + Send + Sync>

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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.