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
81pub mod local_hit_ordinals {
82 pub const UPGRADE: u64 = 0x1ec0c985bbfe4e8c;
83}
84
85pub mod touch_source_with_local_hit_ordinals {
86 pub const WATCH: u64 = 0x4eb5acc052ada449;
87 pub const UPDATE_RESPONSE: u64 = 0x1f2fde6734e7da1;
88}
89
90mod internal {
91 use super::*;
92 unsafe impl fidl::encoding::TypeMarker for ErrorReason {
93 type Owned = Self;
94
95 #[inline(always)]
96 fn inline_align(_context: fidl::encoding::Context) -> usize {
97 std::mem::align_of::<u32>()
98 }
99
100 #[inline(always)]
101 fn inline_size(_context: fidl::encoding::Context) -> usize {
102 std::mem::size_of::<u32>()
103 }
104
105 #[inline(always)]
106 fn encode_is_copy() -> bool {
107 true
108 }
109
110 #[inline(always)]
111 fn decode_is_copy() -> bool {
112 false
113 }
114 }
115
116 impl fidl::encoding::ValueTypeMarker for ErrorReason {
117 type Borrowed<'a> = Self;
118 #[inline(always)]
119 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
120 *value
121 }
122 }
123
124 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ErrorReason {
125 #[inline]
126 unsafe fn encode(
127 self,
128 encoder: &mut fidl::encoding::Encoder<'_, D>,
129 offset: usize,
130 _depth: fidl::encoding::Depth,
131 ) -> fidl::Result<()> {
132 encoder.debug_check_bounds::<Self>(offset);
133 encoder.write_num(self.into_primitive(), offset);
134 Ok(())
135 }
136 }
137
138 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ErrorReason {
139 #[inline(always)]
140 fn new_empty() -> Self {
141 Self::Denied
142 }
143
144 #[inline]
145 unsafe fn decode(
146 &mut self,
147 decoder: &mut fidl::encoding::Decoder<'_, D>,
148 offset: usize,
149 _depth: fidl::encoding::Depth,
150 ) -> fidl::Result<()> {
151 decoder.debug_check_bounds::<Self>(offset);
152 let prim = decoder.read_num::<u32>(offset);
153
154 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
155 Ok(())
156 }
157 }
158
159 impl fidl::encoding::ValueTypeMarker for TouchEventWithLocalHit {
160 type Borrowed<'a> = &'a Self;
161 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
162 value
163 }
164 }
165
166 unsafe impl fidl::encoding::TypeMarker for TouchEventWithLocalHit {
167 type Owned = Self;
168
169 #[inline(always)]
170 fn inline_align(_context: fidl::encoding::Context) -> usize {
171 8
172 }
173
174 #[inline(always)]
175 fn inline_size(_context: fidl::encoding::Context) -> usize {
176 32
177 }
178 }
179
180 unsafe impl<D: fidl::encoding::ResourceDialect>
181 fidl::encoding::Encode<TouchEventWithLocalHit, D> for &TouchEventWithLocalHit
182 {
183 #[inline]
184 unsafe fn encode(
185 self,
186 encoder: &mut fidl::encoding::Encoder<'_, D>,
187 offset: usize,
188 _depth: fidl::encoding::Depth,
189 ) -> fidl::Result<()> {
190 encoder.debug_check_bounds::<TouchEventWithLocalHit>(offset);
191 fidl::encoding::Encode::<TouchEventWithLocalHit, D>::encode(
193 (
194 <fidl_fuchsia_ui_pointer__common::TouchEvent as fidl::encoding::ValueTypeMarker>::borrow(&self.touch_event),
195 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.local_viewref_koid),
196 <fidl::encoding::Array<f32, 2> as fidl::encoding::ValueTypeMarker>::borrow(&self.local_point),
197 ),
198 encoder, offset, _depth
199 )
200 }
201 }
202 unsafe impl<
203 D: fidl::encoding::ResourceDialect,
204 T0: fidl::encoding::Encode<fidl_fuchsia_ui_pointer__common::TouchEvent, D>,
205 T1: fidl::encoding::Encode<u64, D>,
206 T2: fidl::encoding::Encode<fidl::encoding::Array<f32, 2>, D>,
207 > fidl::encoding::Encode<TouchEventWithLocalHit, D> for (T0, T1, T2)
208 {
209 #[inline]
210 unsafe fn encode(
211 self,
212 encoder: &mut fidl::encoding::Encoder<'_, D>,
213 offset: usize,
214 depth: fidl::encoding::Depth,
215 ) -> fidl::Result<()> {
216 encoder.debug_check_bounds::<TouchEventWithLocalHit>(offset);
217 self.0.encode(encoder, offset + 0, depth)?;
221 self.1.encode(encoder, offset + 16, depth)?;
222 self.2.encode(encoder, offset + 24, depth)?;
223 Ok(())
224 }
225 }
226
227 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
228 for TouchEventWithLocalHit
229 {
230 #[inline(always)]
231 fn new_empty() -> Self {
232 Self {
233 touch_event: fidl::new_empty!(fidl_fuchsia_ui_pointer__common::TouchEvent, D),
234 local_viewref_koid: fidl::new_empty!(u64, D),
235 local_point: fidl::new_empty!(fidl::encoding::Array<f32, 2>, D),
236 }
237 }
238
239 #[inline]
240 unsafe fn decode(
241 &mut self,
242 decoder: &mut fidl::encoding::Decoder<'_, D>,
243 offset: usize,
244 _depth: fidl::encoding::Depth,
245 ) -> fidl::Result<()> {
246 decoder.debug_check_bounds::<Self>(offset);
247 fidl::decode!(
249 fidl_fuchsia_ui_pointer__common::TouchEvent,
250 D,
251 &mut self.touch_event,
252 decoder,
253 offset + 0,
254 _depth
255 )?;
256 fidl::decode!(u64, D, &mut self.local_viewref_koid, decoder, offset + 16, _depth)?;
257 fidl::decode!(fidl::encoding::Array<f32, 2>, D, &mut self.local_point, decoder, offset + 24, _depth)?;
258 Ok(())
259 }
260 }
261
262 impl fidl::encoding::ValueTypeMarker for TouchSourceWithLocalHitUpdateResponseRequest {
263 type Borrowed<'a> = &'a Self;
264 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
265 value
266 }
267 }
268
269 unsafe impl fidl::encoding::TypeMarker for TouchSourceWithLocalHitUpdateResponseRequest {
270 type Owned = Self;
271
272 #[inline(always)]
273 fn inline_align(_context: fidl::encoding::Context) -> usize {
274 8
275 }
276
277 #[inline(always)]
278 fn inline_size(_context: fidl::encoding::Context) -> usize {
279 32
280 }
281 }
282
283 unsafe impl<D: fidl::encoding::ResourceDialect>
284 fidl::encoding::Encode<TouchSourceWithLocalHitUpdateResponseRequest, D>
285 for &TouchSourceWithLocalHitUpdateResponseRequest
286 {
287 #[inline]
288 unsafe fn encode(
289 self,
290 encoder: &mut fidl::encoding::Encoder<'_, D>,
291 offset: usize,
292 _depth: fidl::encoding::Depth,
293 ) -> fidl::Result<()> {
294 encoder.debug_check_bounds::<TouchSourceWithLocalHitUpdateResponseRequest>(offset);
295 fidl::encoding::Encode::<TouchSourceWithLocalHitUpdateResponseRequest, D>::encode(
297 (
298 <fidl_fuchsia_ui_pointer__common::TouchInteractionId as fidl::encoding::ValueTypeMarker>::borrow(&self.interaction),
299 <fidl_fuchsia_ui_pointer__common::TouchResponse as fidl::encoding::ValueTypeMarker>::borrow(&self.response),
300 ),
301 encoder, offset, _depth
302 )
303 }
304 }
305 unsafe impl<
306 D: fidl::encoding::ResourceDialect,
307 T0: fidl::encoding::Encode<fidl_fuchsia_ui_pointer__common::TouchInteractionId, D>,
308 T1: fidl::encoding::Encode<fidl_fuchsia_ui_pointer__common::TouchResponse, D>,
309 > fidl::encoding::Encode<TouchSourceWithLocalHitUpdateResponseRequest, D> for (T0, T1)
310 {
311 #[inline]
312 unsafe fn encode(
313 self,
314 encoder: &mut fidl::encoding::Encoder<'_, D>,
315 offset: usize,
316 depth: fidl::encoding::Depth,
317 ) -> fidl::Result<()> {
318 encoder.debug_check_bounds::<TouchSourceWithLocalHitUpdateResponseRequest>(offset);
319 unsafe {
322 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
323 (ptr as *mut u64).write_unaligned(0);
324 }
325 self.0.encode(encoder, offset + 0, depth)?;
327 self.1.encode(encoder, offset + 16, depth)?;
328 Ok(())
329 }
330 }
331
332 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
333 for TouchSourceWithLocalHitUpdateResponseRequest
334 {
335 #[inline(always)]
336 fn new_empty() -> Self {
337 Self {
338 interaction: fidl::new_empty!(
339 fidl_fuchsia_ui_pointer__common::TouchInteractionId,
340 D
341 ),
342 response: fidl::new_empty!(fidl_fuchsia_ui_pointer__common::TouchResponse, D),
343 }
344 }
345
346 #[inline]
347 unsafe fn decode(
348 &mut self,
349 decoder: &mut fidl::encoding::Decoder<'_, D>,
350 offset: usize,
351 _depth: fidl::encoding::Depth,
352 ) -> fidl::Result<()> {
353 decoder.debug_check_bounds::<Self>(offset);
354 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
356 let padval = unsafe { (ptr as *const u64).read_unaligned() };
357 let mask = 0xffffffff00000000u64;
358 let maskedval = padval & mask;
359 if maskedval != 0 {
360 return Err(fidl::Error::NonZeroPadding {
361 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
362 });
363 }
364 fidl::decode!(
365 fidl_fuchsia_ui_pointer__common::TouchInteractionId,
366 D,
367 &mut self.interaction,
368 decoder,
369 offset + 0,
370 _depth
371 )?;
372 fidl::decode!(
373 fidl_fuchsia_ui_pointer__common::TouchResponse,
374 D,
375 &mut self.response,
376 decoder,
377 offset + 16,
378 _depth
379 )?;
380 Ok(())
381 }
382 }
383
384 impl fidl::encoding::ValueTypeMarker for TouchSourceWithLocalHitWatchRequest {
385 type Borrowed<'a> = &'a Self;
386 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
387 value
388 }
389 }
390
391 unsafe impl fidl::encoding::TypeMarker for TouchSourceWithLocalHitWatchRequest {
392 type Owned = Self;
393
394 #[inline(always)]
395 fn inline_align(_context: fidl::encoding::Context) -> usize {
396 8
397 }
398
399 #[inline(always)]
400 fn inline_size(_context: fidl::encoding::Context) -> usize {
401 16
402 }
403 }
404
405 unsafe impl<D: fidl::encoding::ResourceDialect>
406 fidl::encoding::Encode<TouchSourceWithLocalHitWatchRequest, D>
407 for &TouchSourceWithLocalHitWatchRequest
408 {
409 #[inline]
410 unsafe fn encode(
411 self,
412 encoder: &mut fidl::encoding::Encoder<'_, D>,
413 offset: usize,
414 _depth: fidl::encoding::Depth,
415 ) -> fidl::Result<()> {
416 encoder.debug_check_bounds::<TouchSourceWithLocalHitWatchRequest>(offset);
417 fidl::encoding::Encode::<TouchSourceWithLocalHitWatchRequest, D>::encode(
419 (
420 <fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128> as fidl::encoding::ValueTypeMarker>::borrow(&self.responses),
421 ),
422 encoder, offset, _depth
423 )
424 }
425 }
426 unsafe impl<
427 D: fidl::encoding::ResourceDialect,
428 T0: fidl::encoding::Encode<
429 fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128>,
430 D,
431 >,
432 > fidl::encoding::Encode<TouchSourceWithLocalHitWatchRequest, D> for (T0,)
433 {
434 #[inline]
435 unsafe fn encode(
436 self,
437 encoder: &mut fidl::encoding::Encoder<'_, D>,
438 offset: usize,
439 depth: fidl::encoding::Depth,
440 ) -> fidl::Result<()> {
441 encoder.debug_check_bounds::<TouchSourceWithLocalHitWatchRequest>(offset);
442 self.0.encode(encoder, offset + 0, depth)?;
446 Ok(())
447 }
448 }
449
450 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
451 for TouchSourceWithLocalHitWatchRequest
452 {
453 #[inline(always)]
454 fn new_empty() -> Self {
455 Self {
456 responses: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128>, D),
457 }
458 }
459
460 #[inline]
461 unsafe fn decode(
462 &mut self,
463 decoder: &mut fidl::encoding::Decoder<'_, D>,
464 offset: usize,
465 _depth: fidl::encoding::Depth,
466 ) -> fidl::Result<()> {
467 decoder.debug_check_bounds::<Self>(offset);
468 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128>, D, &mut self.responses, decoder, offset + 0, _depth)?;
470 Ok(())
471 }
472 }
473
474 impl fidl::encoding::ValueTypeMarker for TouchSourceWithLocalHitWatchResponse {
475 type Borrowed<'a> = &'a Self;
476 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
477 value
478 }
479 }
480
481 unsafe impl fidl::encoding::TypeMarker for TouchSourceWithLocalHitWatchResponse {
482 type Owned = Self;
483
484 #[inline(always)]
485 fn inline_align(_context: fidl::encoding::Context) -> usize {
486 8
487 }
488
489 #[inline(always)]
490 fn inline_size(_context: fidl::encoding::Context) -> usize {
491 16
492 }
493 }
494
495 unsafe impl<D: fidl::encoding::ResourceDialect>
496 fidl::encoding::Encode<TouchSourceWithLocalHitWatchResponse, D>
497 for &TouchSourceWithLocalHitWatchResponse
498 {
499 #[inline]
500 unsafe fn encode(
501 self,
502 encoder: &mut fidl::encoding::Encoder<'_, D>,
503 offset: usize,
504 _depth: fidl::encoding::Depth,
505 ) -> fidl::Result<()> {
506 encoder.debug_check_bounds::<TouchSourceWithLocalHitWatchResponse>(offset);
507 fidl::encoding::Encode::<TouchSourceWithLocalHitWatchResponse, D>::encode(
509 (
510 <fidl::encoding::Vector<TouchEventWithLocalHit, 128> as fidl::encoding::ValueTypeMarker>::borrow(&self.events),
511 ),
512 encoder, offset, _depth
513 )
514 }
515 }
516 unsafe impl<
517 D: fidl::encoding::ResourceDialect,
518 T0: fidl::encoding::Encode<fidl::encoding::Vector<TouchEventWithLocalHit, 128>, D>,
519 > fidl::encoding::Encode<TouchSourceWithLocalHitWatchResponse, D> for (T0,)
520 {
521 #[inline]
522 unsafe fn encode(
523 self,
524 encoder: &mut fidl::encoding::Encoder<'_, D>,
525 offset: usize,
526 depth: fidl::encoding::Depth,
527 ) -> fidl::Result<()> {
528 encoder.debug_check_bounds::<TouchSourceWithLocalHitWatchResponse>(offset);
529 self.0.encode(encoder, offset + 0, depth)?;
533 Ok(())
534 }
535 }
536
537 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
538 for TouchSourceWithLocalHitWatchResponse
539 {
540 #[inline(always)]
541 fn new_empty() -> Self {
542 Self {
543 events: fidl::new_empty!(fidl::encoding::Vector<TouchEventWithLocalHit, 128>, D),
544 }
545 }
546
547 #[inline]
548 unsafe fn decode(
549 &mut self,
550 decoder: &mut fidl::encoding::Decoder<'_, D>,
551 offset: usize,
552 _depth: fidl::encoding::Depth,
553 ) -> fidl::Result<()> {
554 decoder.debug_check_bounds::<Self>(offset);
555 fidl::decode!(fidl::encoding::Vector<TouchEventWithLocalHit, 128>, D, &mut self.events, decoder, offset + 0, _depth)?;
557 Ok(())
558 }
559 }
560}