fidl_fuchsia_ui_pointer_augment__common/
fidl_fuchsia_ui_pointer_augment__common.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![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
11/// A floating point two-dimensional point.
12/// - The values are placed in (x, y) order.
13pub type Point2 = [f32; 2];
14
15/// Abnormal conditions for augmentation protocols.
16#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
17#[repr(u32)]
18pub enum ErrorReason {
19    /// The augmentation attempt was denied.
20    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)]
39pub struct TouchSourceWithLocalHitUpdateResponseRequest {
40    pub interaction: fidl_fuchsia_ui_pointer__common::TouchInteractionId,
41    pub response: fidl_fuchsia_ui_pointer__common::TouchResponse,
42}
43
44impl fidl::Persistable for TouchSourceWithLocalHitUpdateResponseRequest {}
45
46#[derive(Clone, Debug, PartialEq)]
47pub struct TouchSourceWithLocalHitWatchRequest {
48    pub responses: Vec<fidl_fuchsia_ui_pointer__common::TouchResponse>,
49}
50
51impl fidl::Persistable for TouchSourceWithLocalHitWatchRequest {}
52
53pub mod local_hit_ordinals {
54    pub const UPGRADE: u64 = 0x1ec0c985bbfe4e8c;
55}
56
57pub mod touch_source_with_local_hit_ordinals {
58    pub const WATCH: u64 = 0x4eb5acc052ada449;
59    pub const UPDATE_RESPONSE: u64 = 0x1f2fde6734e7da1;
60}
61
62mod internal {
63    use super::*;
64    unsafe impl fidl::encoding::TypeMarker for ErrorReason {
65        type Owned = Self;
66
67        #[inline(always)]
68        fn inline_align(_context: fidl::encoding::Context) -> usize {
69            std::mem::align_of::<u32>()
70        }
71
72        #[inline(always)]
73        fn inline_size(_context: fidl::encoding::Context) -> usize {
74            std::mem::size_of::<u32>()
75        }
76
77        #[inline(always)]
78        fn encode_is_copy() -> bool {
79            true
80        }
81
82        #[inline(always)]
83        fn decode_is_copy() -> bool {
84            false
85        }
86    }
87
88    impl fidl::encoding::ValueTypeMarker for ErrorReason {
89        type Borrowed<'a> = Self;
90        #[inline(always)]
91        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
92            *value
93        }
94    }
95
96    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ErrorReason {
97        #[inline]
98        unsafe fn encode(
99            self,
100            encoder: &mut fidl::encoding::Encoder<'_, D>,
101            offset: usize,
102            _depth: fidl::encoding::Depth,
103        ) -> fidl::Result<()> {
104            encoder.debug_check_bounds::<Self>(offset);
105            encoder.write_num(self.into_primitive(), offset);
106            Ok(())
107        }
108    }
109
110    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ErrorReason {
111        #[inline(always)]
112        fn new_empty() -> Self {
113            Self::Denied
114        }
115
116        #[inline]
117        unsafe fn decode(
118            &mut self,
119            decoder: &mut fidl::encoding::Decoder<'_, D>,
120            offset: usize,
121            _depth: fidl::encoding::Depth,
122        ) -> fidl::Result<()> {
123            decoder.debug_check_bounds::<Self>(offset);
124            let prim = decoder.read_num::<u32>(offset);
125
126            *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
127            Ok(())
128        }
129    }
130
131    impl fidl::encoding::ValueTypeMarker for TouchSourceWithLocalHitUpdateResponseRequest {
132        type Borrowed<'a> = &'a Self;
133        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
134            value
135        }
136    }
137
138    unsafe impl fidl::encoding::TypeMarker for TouchSourceWithLocalHitUpdateResponseRequest {
139        type Owned = Self;
140
141        #[inline(always)]
142        fn inline_align(_context: fidl::encoding::Context) -> usize {
143            8
144        }
145
146        #[inline(always)]
147        fn inline_size(_context: fidl::encoding::Context) -> usize {
148            32
149        }
150    }
151
152    unsafe impl<D: fidl::encoding::ResourceDialect>
153        fidl::encoding::Encode<TouchSourceWithLocalHitUpdateResponseRequest, D>
154        for &TouchSourceWithLocalHitUpdateResponseRequest
155    {
156        #[inline]
157        unsafe fn encode(
158            self,
159            encoder: &mut fidl::encoding::Encoder<'_, D>,
160            offset: usize,
161            _depth: fidl::encoding::Depth,
162        ) -> fidl::Result<()> {
163            encoder.debug_check_bounds::<TouchSourceWithLocalHitUpdateResponseRequest>(offset);
164            // Delegate to tuple encoding.
165            fidl::encoding::Encode::<TouchSourceWithLocalHitUpdateResponseRequest, D>::encode(
166                (
167                    <fidl_fuchsia_ui_pointer__common::TouchInteractionId as fidl::encoding::ValueTypeMarker>::borrow(&self.interaction),
168                    <fidl_fuchsia_ui_pointer__common::TouchResponse as fidl::encoding::ValueTypeMarker>::borrow(&self.response),
169                ),
170                encoder, offset, _depth
171            )
172        }
173    }
174    unsafe impl<
175        D: fidl::encoding::ResourceDialect,
176        T0: fidl::encoding::Encode<fidl_fuchsia_ui_pointer__common::TouchInteractionId, D>,
177        T1: fidl::encoding::Encode<fidl_fuchsia_ui_pointer__common::TouchResponse, D>,
178    > fidl::encoding::Encode<TouchSourceWithLocalHitUpdateResponseRequest, D> for (T0, T1)
179    {
180        #[inline]
181        unsafe fn encode(
182            self,
183            encoder: &mut fidl::encoding::Encoder<'_, D>,
184            offset: usize,
185            depth: fidl::encoding::Depth,
186        ) -> fidl::Result<()> {
187            encoder.debug_check_bounds::<TouchSourceWithLocalHitUpdateResponseRequest>(offset);
188            // Zero out padding regions. There's no need to apply masks
189            // because the unmasked parts will be overwritten by fields.
190            unsafe {
191                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
192                (ptr as *mut u64).write_unaligned(0);
193            }
194            // Write the fields.
195            self.0.encode(encoder, offset + 0, depth)?;
196            self.1.encode(encoder, offset + 16, depth)?;
197            Ok(())
198        }
199    }
200
201    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
202        for TouchSourceWithLocalHitUpdateResponseRequest
203    {
204        #[inline(always)]
205        fn new_empty() -> Self {
206            Self {
207                interaction: fidl::new_empty!(
208                    fidl_fuchsia_ui_pointer__common::TouchInteractionId,
209                    D
210                ),
211                response: fidl::new_empty!(fidl_fuchsia_ui_pointer__common::TouchResponse, D),
212            }
213        }
214
215        #[inline]
216        unsafe fn decode(
217            &mut self,
218            decoder: &mut fidl::encoding::Decoder<'_, D>,
219            offset: usize,
220            _depth: fidl::encoding::Depth,
221        ) -> fidl::Result<()> {
222            decoder.debug_check_bounds::<Self>(offset);
223            // Verify that padding bytes are zero.
224            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
225            let padval = unsafe { (ptr as *const u64).read_unaligned() };
226            let mask = 0xffffffff00000000u64;
227            let maskedval = padval & mask;
228            if maskedval != 0 {
229                return Err(fidl::Error::NonZeroPadding {
230                    padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
231                });
232            }
233            fidl::decode!(
234                fidl_fuchsia_ui_pointer__common::TouchInteractionId,
235                D,
236                &mut self.interaction,
237                decoder,
238                offset + 0,
239                _depth
240            )?;
241            fidl::decode!(
242                fidl_fuchsia_ui_pointer__common::TouchResponse,
243                D,
244                &mut self.response,
245                decoder,
246                offset + 16,
247                _depth
248            )?;
249            Ok(())
250        }
251    }
252
253    impl fidl::encoding::ValueTypeMarker for TouchSourceWithLocalHitWatchRequest {
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 TouchSourceWithLocalHitWatchRequest {
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            16
271        }
272    }
273
274    unsafe impl<D: fidl::encoding::ResourceDialect>
275        fidl::encoding::Encode<TouchSourceWithLocalHitWatchRequest, D>
276        for &TouchSourceWithLocalHitWatchRequest
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::<TouchSourceWithLocalHitWatchRequest>(offset);
286            // Delegate to tuple encoding.
287            fidl::encoding::Encode::<TouchSourceWithLocalHitWatchRequest, D>::encode(
288                (
289                    <fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128> as fidl::encoding::ValueTypeMarker>::borrow(&self.responses),
290                ),
291                encoder, offset, _depth
292            )
293        }
294    }
295    unsafe impl<
296        D: fidl::encoding::ResourceDialect,
297        T0: fidl::encoding::Encode<
298                fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128>,
299                D,
300            >,
301    > fidl::encoding::Encode<TouchSourceWithLocalHitWatchRequest, D> for (T0,)
302    {
303        #[inline]
304        unsafe fn encode(
305            self,
306            encoder: &mut fidl::encoding::Encoder<'_, D>,
307            offset: usize,
308            depth: fidl::encoding::Depth,
309        ) -> fidl::Result<()> {
310            encoder.debug_check_bounds::<TouchSourceWithLocalHitWatchRequest>(offset);
311            // Zero out padding regions. There's no need to apply masks
312            // because the unmasked parts will be overwritten by fields.
313            // Write the fields.
314            self.0.encode(encoder, offset + 0, depth)?;
315            Ok(())
316        }
317    }
318
319    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
320        for TouchSourceWithLocalHitWatchRequest
321    {
322        #[inline(always)]
323        fn new_empty() -> Self {
324            Self {
325                responses: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128>, D),
326            }
327        }
328
329        #[inline]
330        unsafe fn decode(
331            &mut self,
332            decoder: &mut fidl::encoding::Decoder<'_, D>,
333            offset: usize,
334            _depth: fidl::encoding::Depth,
335        ) -> fidl::Result<()> {
336            decoder.debug_check_bounds::<Self>(offset);
337            // Verify that padding bytes are zero.
338            fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_ui_pointer__common::TouchResponse, 128>, D, &mut self.responses, decoder, offset + 0, _depth)?;
339            Ok(())
340        }
341    }
342}