1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub type Point2 = [f32; 2];
14
15#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
17#[repr(u32)]
18pub enum ErrorReason {
19 Denied = 1,
21}
22
23impl ErrorReason {
24 #[inline]
25 pub fn from_primitive(prim: u32) -> Option<Self> {
26 match prim {
27 1 => Some(Self::Denied),
28 _ => None,
29 }
30 }
31
32 #[inline]
33 pub const fn into_primitive(self) -> u32 {
34 self as u32
35 }
36}
37
38#[derive(Clone, Debug, PartialEq)]
46pub struct TouchEventWithLocalHit {
47 pub touch_event: fidl_fuchsia_ui_pointer__common::TouchEvent,
49 pub local_viewref_koid: u64,
52 pub local_point: [f32; 2],
55}
56
57impl fidl::Persistable for TouchEventWithLocalHit {}
58
59#[derive(Clone, Debug, PartialEq)]
60pub struct TouchSourceWithLocalHitUpdateResponseRequest {
61 pub interaction: fidl_fuchsia_ui_pointer__common::TouchInteractionId,
62 pub response: fidl_fuchsia_ui_pointer__common::TouchResponse,
63}
64
65impl fidl::Persistable for TouchSourceWithLocalHitUpdateResponseRequest {}
66
67#[derive(Clone, Debug, PartialEq)]
68pub struct TouchSourceWithLocalHitWatchRequest {
69 pub responses: Vec<fidl_fuchsia_ui_pointer__common::TouchResponse>,
70}
71
72impl fidl::Persistable for TouchSourceWithLocalHitWatchRequest {}
73
74#[derive(Clone, Debug, PartialEq)]
75pub struct TouchSourceWithLocalHitWatchResponse {
76 pub events: Vec<TouchEventWithLocalHit>,
77}
78
79impl fidl::Persistable for TouchSourceWithLocalHitWatchResponse {}
80
81mod internal {
82 use super::*;
83 unsafe impl fidl::encoding::TypeMarker for ErrorReason {
84 type Owned = Self;
85
86 #[inline(always)]
87 fn inline_align(_context: fidl::encoding::Context) -> usize {
88 std::mem::align_of::<u32>()
89 }
90
91 #[inline(always)]
92 fn inline_size(_context: fidl::encoding::Context) -> usize {
93 std::mem::size_of::<u32>()
94 }
95
96 #[inline(always)]
97 fn encode_is_copy() -> bool {
98 true
99 }
100
101 #[inline(always)]
102 fn decode_is_copy() -> bool {
103 false
104 }
105 }
106
107 impl fidl::encoding::ValueTypeMarker for ErrorReason {
108 type Borrowed<'a> = Self;
109 #[inline(always)]
110 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
111 *value
112 }
113 }
114
115 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ErrorReason {
116 #[inline]
117 unsafe fn encode(
118 self,
119 encoder: &mut fidl::encoding::Encoder<'_, D>,
120 offset: usize,
121 _depth: fidl::encoding::Depth,
122 ) -> fidl::Result<()> {
123 encoder.debug_check_bounds::<Self>(offset);
124 encoder.write_num(self.into_primitive(), offset);
125 Ok(())
126 }
127 }
128
129 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ErrorReason {
130 #[inline(always)]
131 fn new_empty() -> Self {
132 Self::Denied
133 }
134
135 #[inline]
136 unsafe fn decode(
137 &mut self,
138 decoder: &mut fidl::encoding::Decoder<'_, D>,
139 offset: usize,
140 _depth: fidl::encoding::Depth,
141 ) -> fidl::Result<()> {
142 decoder.debug_check_bounds::<Self>(offset);
143 let prim = decoder.read_num::<u32>(offset);
144
145 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
146 Ok(())
147 }
148 }
149
150 impl fidl::encoding::ValueTypeMarker for TouchEventWithLocalHit {
151 type Borrowed<'a> = &'a Self;
152 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
153 value
154 }
155 }
156
157 unsafe impl fidl::encoding::TypeMarker for TouchEventWithLocalHit {
158 type Owned = Self;
159
160 #[inline(always)]
161 fn inline_align(_context: fidl::encoding::Context) -> usize {
162 8
163 }
164
165 #[inline(always)]
166 fn inline_size(_context: fidl::encoding::Context) -> usize {
167 32
168 }
169 }
170
171 unsafe impl<D: fidl::encoding::ResourceDialect>
172 fidl::encoding::Encode<TouchEventWithLocalHit, D> for &TouchEventWithLocalHit
173 {
174 #[inline]
175 unsafe fn encode(
176 self,
177 encoder: &mut fidl::encoding::Encoder<'_, D>,
178 offset: usize,
179 _depth: fidl::encoding::Depth,
180 ) -> fidl::Result<()> {
181 encoder.debug_check_bounds::<TouchEventWithLocalHit>(offset);
182 fidl::encoding::Encode::<TouchEventWithLocalHit, D>::encode(
184 (
185 <fidl_fuchsia_ui_pointer__common::TouchEvent as fidl::encoding::ValueTypeMarker>::borrow(&self.touch_event),
186 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.local_viewref_koid),
187 <fidl::encoding::Array<f32, 2> as fidl::encoding::ValueTypeMarker>::borrow(&self.local_point),
188 ),
189 encoder, offset, _depth
190 )
191 }
192 }
193 unsafe impl<
194 D: fidl::encoding::ResourceDialect,
195 T0: fidl::encoding::Encode<fidl_fuchsia_ui_pointer__common::TouchEvent, D>,
196 T1: fidl::encoding::Encode<u64, D>,
197 T2: fidl::encoding::Encode<fidl::encoding::Array<f32, 2>, D>,
198 > fidl::encoding::Encode<TouchEventWithLocalHit, D> for (T0, T1, T2)
199 {
200 #[inline]
201 unsafe fn encode(
202 self,
203 encoder: &mut fidl::encoding::Encoder<'_, D>,
204 offset: usize,
205 depth: fidl::encoding::Depth,
206 ) -> fidl::Result<()> {
207 encoder.debug_check_bounds::<TouchEventWithLocalHit>(offset);
208 self.0.encode(encoder, offset + 0, depth)?;
212 self.1.encode(encoder, offset + 16, depth)?;
213 self.2.encode(encoder, offset + 24, depth)?;
214 Ok(())
215 }
216 }
217
218 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
219 for TouchEventWithLocalHit
220 {
221 #[inline(always)]
222 fn new_empty() -> Self {
223 Self {
224 touch_event: fidl::new_empty!(fidl_fuchsia_ui_pointer__common::TouchEvent, D),
225 local_viewref_koid: fidl::new_empty!(u64, D),
226 local_point: fidl::new_empty!(fidl::encoding::Array<f32, 2>, D),
227 }
228 }
229
230 #[inline]
231 unsafe fn decode(
232 &mut self,
233 decoder: &mut fidl::encoding::Decoder<'_, D>,
234 offset: usize,
235 _depth: fidl::encoding::Depth,
236 ) -> fidl::Result<()> {
237 decoder.debug_check_bounds::<Self>(offset);
238 fidl::decode!(
240 fidl_fuchsia_ui_pointer__common::TouchEvent,
241 D,
242 &mut self.touch_event,
243 decoder,
244 offset + 0,
245 _depth
246 )?;
247 fidl::decode!(u64, D, &mut self.local_viewref_koid, decoder, offset + 16, _depth)?;
248 fidl::decode!(fidl::encoding::Array<f32, 2>, D, &mut self.local_point, decoder, offset + 24, _depth)?;
249 Ok(())
250 }
251 }
252
253 impl fidl::encoding::ValueTypeMarker for TouchSourceWithLocalHitUpdateResponseRequest {
254 type Borrowed<'a> = &'a Self;
255 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
256 value
257 }
258 }
259
260 unsafe impl fidl::encoding::TypeMarker for TouchSourceWithLocalHitUpdateResponseRequest {
261 type Owned = Self;
262
263 #[inline(always)]
264 fn inline_align(_context: fidl::encoding::Context) -> usize {
265 8
266 }
267
268 #[inline(always)]
269 fn inline_size(_context: fidl::encoding::Context) -> usize {
270 32
271 }
272 }
273
274 unsafe impl<D: fidl::encoding::ResourceDialect>
275 fidl::encoding::Encode<TouchSourceWithLocalHitUpdateResponseRequest, D>
276 for &TouchSourceWithLocalHitUpdateResponseRequest
277 {
278 #[inline]
279 unsafe fn encode(
280 self,
281 encoder: &mut fidl::encoding::Encoder<'_, D>,
282 offset: usize,
283 _depth: fidl::encoding::Depth,
284 ) -> fidl::Result<()> {
285 encoder.debug_check_bounds::<TouchSourceWithLocalHitUpdateResponseRequest>(offset);
286 fidl::encoding::Encode::<TouchSourceWithLocalHitUpdateResponseRequest, D>::encode(
288 (
289 <fidl_fuchsia_ui_pointer__common::TouchInteractionId as fidl::encoding::ValueTypeMarker>::borrow(&self.interaction),
290 <fidl_fuchsia_ui_pointer__common::TouchResponse as fidl::encoding::ValueTypeMarker>::borrow(&self.response),
291 ),
292 encoder, offset, _depth
293 )
294 }
295 }
296 unsafe impl<
297 D: fidl::encoding::ResourceDialect,
298 T0: fidl::encoding::Encode<fidl_fuchsia_ui_pointer__common::TouchInteractionId, D>,
299 T1: fidl::encoding::Encode<fidl_fuchsia_ui_pointer__common::TouchResponse, D>,
300 > fidl::encoding::Encode<TouchSourceWithLocalHitUpdateResponseRequest, D> for (T0, T1)
301 {
302 #[inline]
303 unsafe fn encode(
304 self,
305 encoder: &mut fidl::encoding::Encoder<'_, D>,
306 offset: usize,
307 depth: fidl::encoding::Depth,
308 ) -> fidl::Result<()> {
309 encoder.debug_check_bounds::<TouchSourceWithLocalHitUpdateResponseRequest>(offset);
310 unsafe {
313 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
314 (ptr as *mut u64).write_unaligned(0);
315 }
316 self.0.encode(encoder, offset + 0, depth)?;
318 self.1.encode(encoder, offset + 16, depth)?;
319 Ok(())
320 }
321 }
322
323 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
324 for TouchSourceWithLocalHitUpdateResponseRequest
325 {
326 #[inline(always)]
327 fn new_empty() -> Self {
328 Self {
329 interaction: fidl::new_empty!(
330 fidl_fuchsia_ui_pointer__common::TouchInteractionId,
331 D
332 ),
333 response: fidl::new_empty!(fidl_fuchsia_ui_pointer__common::TouchResponse, D),
334 }
335 }
336
337 #[inline]
338 unsafe fn decode(
339 &mut self,
340 decoder: &mut fidl::encoding::Decoder<'_, D>,
341 offset: usize,
342 _depth: fidl::encoding::Depth,
343 ) -> fidl::Result<()> {
344 decoder.debug_check_bounds::<Self>(offset);
345 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
347 let padval = unsafe { (ptr as *const u64).read_unaligned() };
348 let mask = 0xffffffff00000000u64;
349 let maskedval = padval & mask;
350 if maskedval != 0 {
351 return Err(fidl::Error::NonZeroPadding {
352 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
353 });
354 }
355 fidl::decode!(
356 fidl_fuchsia_ui_pointer__common::TouchInteractionId,
357 D,
358 &mut self.interaction,
359 decoder,
360 offset + 0,
361 _depth
362 )?;
363 fidl::decode!(
364 fidl_fuchsia_ui_pointer__common::TouchResponse,
365 D,
366 &mut self.response,
367 decoder,
368 offset + 16,
369 _depth
370 )?;
371 Ok(())
372 }
373 }
374
375 impl fidl::encoding::ValueTypeMarker for TouchSourceWithLocalHitWatchRequest {
376 type Borrowed<'a> = &'a Self;
377 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
378 value
379 }
380 }
381
382 unsafe impl fidl::encoding::TypeMarker for TouchSourceWithLocalHitWatchRequest {
383 type Owned = Self;
384
385 #[inline(always)]
386 fn inline_align(_context: fidl::encoding::Context) -> usize {
387 8
388 }
389
390 #[inline(always)]
391 fn inline_size(_context: fidl::encoding::Context) -> usize {
392 16
393 }
394 }
395
396 unsafe impl<D: fidl::encoding::ResourceDialect>
397 fidl::encoding::Encode<TouchSourceWithLocalHitWatchRequest, D>
398 for &TouchSourceWithLocalHitWatchRequest
399 {
400 #[inline]
401 unsafe fn encode(
402 self,
403 encoder: &mut fidl::encoding::Encoder<'_, D>,
404 offset: usize,
405 _depth: fidl::encoding::Depth,
406 ) -> fidl::Result<()> {
407 encoder.debug_check_bounds::<TouchSourceWithLocalHitWatchRequest>(offset);
408 fidl::encoding::Encode::<TouchSourceWithLocalHitWatchRequest, D>::encode(
410 (
411 <fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128> as fidl::encoding::ValueTypeMarker>::borrow(&self.responses),
412 ),
413 encoder, offset, _depth
414 )
415 }
416 }
417 unsafe impl<
418 D: fidl::encoding::ResourceDialect,
419 T0: fidl::encoding::Encode<
420 fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128>,
421 D,
422 >,
423 > fidl::encoding::Encode<TouchSourceWithLocalHitWatchRequest, D> for (T0,)
424 {
425 #[inline]
426 unsafe fn encode(
427 self,
428 encoder: &mut fidl::encoding::Encoder<'_, D>,
429 offset: usize,
430 depth: fidl::encoding::Depth,
431 ) -> fidl::Result<()> {
432 encoder.debug_check_bounds::<TouchSourceWithLocalHitWatchRequest>(offset);
433 self.0.encode(encoder, offset + 0, depth)?;
437 Ok(())
438 }
439 }
440
441 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
442 for TouchSourceWithLocalHitWatchRequest
443 {
444 #[inline(always)]
445 fn new_empty() -> Self {
446 Self {
447 responses: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128>, D),
448 }
449 }
450
451 #[inline]
452 unsafe fn decode(
453 &mut self,
454 decoder: &mut fidl::encoding::Decoder<'_, D>,
455 offset: usize,
456 _depth: fidl::encoding::Depth,
457 ) -> fidl::Result<()> {
458 decoder.debug_check_bounds::<Self>(offset);
459 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128>, D, &mut self.responses, decoder, offset + 0, _depth)?;
461 Ok(())
462 }
463 }
464
465 impl fidl::encoding::ValueTypeMarker for TouchSourceWithLocalHitWatchResponse {
466 type Borrowed<'a> = &'a Self;
467 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
468 value
469 }
470 }
471
472 unsafe impl fidl::encoding::TypeMarker for TouchSourceWithLocalHitWatchResponse {
473 type Owned = Self;
474
475 #[inline(always)]
476 fn inline_align(_context: fidl::encoding::Context) -> usize {
477 8
478 }
479
480 #[inline(always)]
481 fn inline_size(_context: fidl::encoding::Context) -> usize {
482 16
483 }
484 }
485
486 unsafe impl<D: fidl::encoding::ResourceDialect>
487 fidl::encoding::Encode<TouchSourceWithLocalHitWatchResponse, D>
488 for &TouchSourceWithLocalHitWatchResponse
489 {
490 #[inline]
491 unsafe fn encode(
492 self,
493 encoder: &mut fidl::encoding::Encoder<'_, D>,
494 offset: usize,
495 _depth: fidl::encoding::Depth,
496 ) -> fidl::Result<()> {
497 encoder.debug_check_bounds::<TouchSourceWithLocalHitWatchResponse>(offset);
498 fidl::encoding::Encode::<TouchSourceWithLocalHitWatchResponse, D>::encode(
500 (
501 <fidl::encoding::Vector<TouchEventWithLocalHit, 128> as fidl::encoding::ValueTypeMarker>::borrow(&self.events),
502 ),
503 encoder, offset, _depth
504 )
505 }
506 }
507 unsafe impl<
508 D: fidl::encoding::ResourceDialect,
509 T0: fidl::encoding::Encode<fidl::encoding::Vector<TouchEventWithLocalHit, 128>, D>,
510 > fidl::encoding::Encode<TouchSourceWithLocalHitWatchResponse, D> for (T0,)
511 {
512 #[inline]
513 unsafe fn encode(
514 self,
515 encoder: &mut fidl::encoding::Encoder<'_, D>,
516 offset: usize,
517 depth: fidl::encoding::Depth,
518 ) -> fidl::Result<()> {
519 encoder.debug_check_bounds::<TouchSourceWithLocalHitWatchResponse>(offset);
520 self.0.encode(encoder, offset + 0, depth)?;
524 Ok(())
525 }
526 }
527
528 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
529 for TouchSourceWithLocalHitWatchResponse
530 {
531 #[inline(always)]
532 fn new_empty() -> Self {
533 Self {
534 events: fidl::new_empty!(fidl::encoding::Vector<TouchEventWithLocalHit, 128>, D),
535 }
536 }
537
538 #[inline]
539 unsafe fn decode(
540 &mut self,
541 decoder: &mut fidl::encoding::Decoder<'_, D>,
542 offset: usize,
543 _depth: fidl::encoding::Depth,
544 ) -> fidl::Result<()> {
545 decoder.debug_check_bounds::<Self>(offset);
546 fidl::decode!(fidl::encoding::Vector<TouchEventWithLocalHit, 128>, D, &mut self.events, decoder, offset + 0, _depth)?;
548 Ok(())
549 }
550 }
551}