zwp_relative_pointer_v1_client_protocol/
zwp_relative_pointer_v1_client_protocol.rs
1#![allow(warnings)]
26#![allow(clippy::all)]
27use anyhow;
28#[allow(unused_imports)]
29use fuchsia_wayland_core::{Array, Enum, Fixed, NewId, NewObject};
30use fuchsia_wayland_core::{ArgKind, Arg, FromArgs, IntoMessage, Message,
31 MessageGroupSpec, MessageHeader, MessageSpec, MessageType,
32 ObjectId, EncodeError, DecodeError, Interface};
33
34#[allow(unused_imports)]
35use wayland_client_protocol::*;
36pub mod zwp_relative_pointer_manager_v1 {
37use super::*;
38
39#[derive(Debug)]
44pub struct ZwpRelativePointerManagerV1;
45
46impl Interface for ZwpRelativePointerManagerV1 {
47 const NAME: &'static str = "zwp_relative_pointer_manager_v1";
48 const VERSION: u32 = 1;
49 const REQUESTS: MessageGroupSpec = MessageGroupSpec(&[
50 MessageSpec(&[
52 ]),
53 MessageSpec(&[
55 ArgKind::NewId,
56 ArgKind::Object,
57 ]),
58 ]);
59 const EVENTS: MessageGroupSpec = MessageGroupSpec(&[
60 ]);
61 type Incoming = Event;
62 type Outgoing = Request;
63}
64
65#[derive(Debug)]
66pub enum Request {
67
68 Destroy,
73
74 GetRelativePointer {
79 id: NewId,
80 pointer: ObjectId,
81 },
82}
83
84impl MessageType for Request {
85 fn log(&self, this: ObjectId) -> String {
86 match *self {
87 Request::Destroy {
88 } => {
89 format!("zwp_relative_pointer_manager_v1@{:?}::destroy()", this)
90 }
91 Request::GetRelativePointer {
92 ref id,
93 ref pointer,
94 } => {
95 format!("zwp_relative_pointer_manager_v1@{:?}::get_relative_pointer(id: {:?}, pointer: {:?})", this, id, pointer)
96 }
97 }
98 }
99 fn message_name(&self) -> &'static std::ffi::CStr{
100 match *self {
101 Request::Destroy { .. } => c"zwp_relative_pointer_manager_v1::destroy",
102 Request::GetRelativePointer { .. } => c"zwp_relative_pointer_manager_v1::get_relative_pointer",
103 }
104 }
105}
106#[derive(Debug)]
107pub enum Event {
108}
109
110impl MessageType for Event {
111 fn log(&self, this: ObjectId) -> String {
112 match *self {
113 }
114 }
115 fn message_name(&self) -> &'static std::ffi::CStr{
116 match *self {
117 }
118 }
119}
120impl IntoMessage for Request {
121 type Error = EncodeError;
122 fn into_message(self, id: u32) -> Result<Message, <Self as IntoMessage>::Error> {
123 let mut header = MessageHeader {
124 sender: id,
125 opcode: 0,
126 length: 0,
127 };
128 let mut msg = Message::new();
129 msg.write_header(&header)?;
130 match self {
131 Request::Destroy {
132 } => {
133 header.opcode = 0;
134 },
135 Request::GetRelativePointer {
136 id,
137 pointer,
138 } => {
139 msg.write_arg(Arg::NewId(id))?;
140 msg.write_arg(Arg::Object(pointer))?;
141 header.opcode = 1;
142 },
143 }
144 header.length = msg.bytes().len() as u16;
145 msg.rewind();
146 msg.write_header(&header)?;
147 Ok(msg)
148 }
149}
150impl FromArgs for Event {
151 fn from_args(op: u16, mut args: Vec<Arg>) -> Result<Self, anyhow::Error> {
152 match op {
153 _ => {
154 Err(DecodeError::InvalidOpcode(op).into())
155 },
156 }
157 }
158}
159} pub use crate::zwp_relative_pointer_manager_v1::ZwpRelativePointerManagerV1;
162pub use crate::zwp_relative_pointer_manager_v1::Request as ZwpRelativePointerManagerV1Request;
163pub use crate::zwp_relative_pointer_manager_v1::Event as ZwpRelativePointerManagerV1Event;
164pub mod zwp_relative_pointer_v1 {
165use super::*;
166
167#[derive(Debug)]
174pub struct ZwpRelativePointerV1;
175
176impl Interface for ZwpRelativePointerV1 {
177 const NAME: &'static str = "zwp_relative_pointer_v1";
178 const VERSION: u32 = 1;
179 const REQUESTS: MessageGroupSpec = MessageGroupSpec(&[
180 MessageSpec(&[
182 ]),
183 ]);
184 const EVENTS: MessageGroupSpec = MessageGroupSpec(&[
185 MessageSpec(&[
187 ArgKind::Uint,
188 ArgKind::Uint,
189 ArgKind::Fixed,
190 ArgKind::Fixed,
191 ArgKind::Fixed,
192 ArgKind::Fixed,
193 ]),
194 ]);
195 type Incoming = Event;
196 type Outgoing = Request;
197}
198
199#[derive(Debug)]
200pub enum Request {
201
202 Destroy,
205}
206
207impl MessageType for Request {
208 fn log(&self, this: ObjectId) -> String {
209 match *self {
210 Request::Destroy {
211 } => {
212 format!("zwp_relative_pointer_v1@{:?}::destroy()", this)
213 }
214 }
215 }
216 fn message_name(&self) -> &'static std::ffi::CStr{
217 match *self {
218 Request::Destroy { .. } => c"zwp_relative_pointer_v1::destroy",
219 }
220 }
221}
222#[derive(Debug)]
223pub enum Event {
224
225 RelativeMotion {
258 utime_hi: u32,
260 utime_lo: u32,
262 dx: Fixed,
264 dy: Fixed,
266 dx_unaccel: Fixed,
268 dy_unaccel: Fixed,
270 },
271}
272
273impl MessageType for Event {
274 fn log(&self, this: ObjectId) -> String {
275 match *self {
276 Event::RelativeMotion {
277 ref utime_hi,
278 ref utime_lo,
279 ref dx,
280 ref dy,
281 ref dx_unaccel,
282 ref dy_unaccel,
283 } => {
284 format!("zwp_relative_pointer_v1@{:?}::relative_motion(utime_hi: {:?}, utime_lo: {:?}, dx: {:?}, dy: {:?}, dx_unaccel: {:?}, dy_unaccel: {:?})", this, utime_hi, utime_lo, dx, dy, dx_unaccel, dy_unaccel)
285 }
286 }
287 }
288 fn message_name(&self) -> &'static std::ffi::CStr{
289 match *self {
290 Event::RelativeMotion { .. } => c"zwp_relative_pointer_v1::relative_motion",
291 }
292 }
293}
294impl IntoMessage for Request {
295 type Error = EncodeError;
296 fn into_message(self, id: u32) -> Result<Message, <Self as IntoMessage>::Error> {
297 let mut header = MessageHeader {
298 sender: id,
299 opcode: 0,
300 length: 0,
301 };
302 let mut msg = Message::new();
303 msg.write_header(&header)?;
304 match self {
305 Request::Destroy {
306 } => {
307 header.opcode = 0;
308 },
309 }
310 header.length = msg.bytes().len() as u16;
311 msg.rewind();
312 msg.write_header(&header)?;
313 Ok(msg)
314 }
315}
316impl FromArgs for Event {
317 fn from_args(op: u16, mut args: Vec<Arg>) -> Result<Self, anyhow::Error> {
318 match op {
319 0 => {
320 let mut iter = args.into_iter();
321 Ok(Event::RelativeMotion {
322 utime_hi: iter.next()
323 .ok_or(DecodeError::InsufficientArgs)?
324 .as_uint()?,
325 utime_lo: iter.next()
326 .ok_or(DecodeError::InsufficientArgs)?
327 .as_uint()?,
328 dx: iter.next()
329 .ok_or(DecodeError::InsufficientArgs)?
330 .as_fixed()?.into(),
331 dy: iter.next()
332 .ok_or(DecodeError::InsufficientArgs)?
333 .as_fixed()?.into(),
334 dx_unaccel: iter.next()
335 .ok_or(DecodeError::InsufficientArgs)?
336 .as_fixed()?.into(),
337 dy_unaccel: iter.next()
338 .ok_or(DecodeError::InsufficientArgs)?
339 .as_fixed()?.into(),
340
341 })
342 },
343 _ => {
344 Err(DecodeError::InvalidOpcode(op).into())
345 },
346 }
347 }
348}
349} pub use crate::zwp_relative_pointer_v1::ZwpRelativePointerV1;
352pub use crate::zwp_relative_pointer_v1::Request as ZwpRelativePointerV1Request;
353pub use crate::zwp_relative_pointer_v1::Event as ZwpRelativePointerV1Event;