fidl_test_unknown_interactions__common/
fidl_test_unknown_interactions__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#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
12#[repr(C)]
13pub struct UnknownInteractionsProtocolFlexibleEventFieldsRequest {
14    pub some_field: i32,
15}
16
17impl fidl::Persistable for UnknownInteractionsProtocolFlexibleEventFieldsRequest {}
18
19#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
20#[repr(C)]
21pub struct UnknownInteractionsProtocolStrictEventFieldsRequest {
22    pub some_field: i32,
23}
24
25impl fidl::Persistable for UnknownInteractionsProtocolStrictEventFieldsRequest {}
26
27#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
28#[repr(C)]
29pub struct UnknownInteractionsProtocolStrictTwoWayFieldsResponse {
30    pub some_field: i32,
31}
32
33impl fidl::Persistable for UnknownInteractionsProtocolStrictTwoWayFieldsResponse {}
34
35#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
36#[repr(C)]
37pub struct UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse {
38    pub some_field: i32,
39}
40
41impl fidl::Persistable for UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse {}
42
43#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
44#[repr(C)]
45pub struct UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse {
46    pub some_field: i32,
47}
48
49impl fidl::Persistable for UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse {}
50
51#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
52#[repr(C)]
53pub struct UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse {
54    pub some_field: i32,
55}
56
57impl fidl::Persistable for UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse {}
58
59pub mod unknown_interactions_ajar_protocol_ordinals {}
60
61pub mod unknown_interactions_closed_protocol_ordinals {}
62
63pub mod unknown_interactions_protocol_ordinals {
64    pub const STRICT_ONE_WAY: u64 = 0x1fa581504cb382d5;
65    pub const FLEXIBLE_ONE_WAY: u64 = 0x2793277ae2bb90fc;
66    pub const STRICT_TWO_WAY: u64 = 0x73ba6f957055b0dc;
67    pub const STRICT_TWO_WAY_FIELDS: u64 = 0x21513db78c6597f7;
68    pub const STRICT_TWO_WAY_ERR: u64 = 0x2e9beb4e08e058bb;
69    pub const STRICT_TWO_WAY_FIELDS_ERR: u64 = 0x6dd97948e8f69be4;
70    pub const FLEXIBLE_TWO_WAY: u64 = 0x1f33517a0395609d;
71    pub const FLEXIBLE_TWO_WAY_FIELDS: u64 = 0x58ed18873e28b84d;
72    pub const FLEXIBLE_TWO_WAY_ERR: u64 = 0x706905decb20bd62;
73    pub const FLEXIBLE_TWO_WAY_FIELDS_ERR: u64 = 0x681fcbbead668390;
74    pub const STRICT_EVENT: u64 = 0x584b419891a32738;
75    pub const STRICT_EVENT_FIELDS: u64 = 0x4c622afb12e4a13b;
76    pub const FLEXIBLE_EVENT: u64 = 0x317a1a8e0b802c6c;
77    pub const FLEXIBLE_EVENT_FIELDS: u64 = 0x40620b164591af9e;
78}
79
80mod internal {
81    use super::*;
82
83    impl fidl::encoding::ValueTypeMarker for UnknownInteractionsProtocolFlexibleEventFieldsRequest {
84        type Borrowed<'a> = &'a Self;
85        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
86            value
87        }
88    }
89
90    unsafe impl fidl::encoding::TypeMarker for UnknownInteractionsProtocolFlexibleEventFieldsRequest {
91        type Owned = Self;
92
93        #[inline(always)]
94        fn inline_align(_context: fidl::encoding::Context) -> usize {
95            4
96        }
97
98        #[inline(always)]
99        fn inline_size(_context: fidl::encoding::Context) -> usize {
100            4
101        }
102        #[inline(always)]
103        fn encode_is_copy() -> bool {
104            true
105        }
106
107        #[inline(always)]
108        fn decode_is_copy() -> bool {
109            true
110        }
111    }
112
113    unsafe impl<D: fidl::encoding::ResourceDialect>
114        fidl::encoding::Encode<UnknownInteractionsProtocolFlexibleEventFieldsRequest, D>
115        for &UnknownInteractionsProtocolFlexibleEventFieldsRequest
116    {
117        #[inline]
118        unsafe fn encode(
119            self,
120            encoder: &mut fidl::encoding::Encoder<'_, D>,
121            offset: usize,
122            _depth: fidl::encoding::Depth,
123        ) -> fidl::Result<()> {
124            encoder.debug_check_bounds::<UnknownInteractionsProtocolFlexibleEventFieldsRequest>(
125                offset,
126            );
127            unsafe {
128                // Copy the object into the buffer.
129                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
130                (buf_ptr as *mut UnknownInteractionsProtocolFlexibleEventFieldsRequest)
131                    .write_unaligned(
132                        (self as *const UnknownInteractionsProtocolFlexibleEventFieldsRequest)
133                            .read(),
134                    );
135                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
136                // done second because the memcpy will write garbage to these bytes.
137            }
138            Ok(())
139        }
140    }
141    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
142        fidl::encoding::Encode<UnknownInteractionsProtocolFlexibleEventFieldsRequest, D> for (T0,)
143    {
144        #[inline]
145        unsafe fn encode(
146            self,
147            encoder: &mut fidl::encoding::Encoder<'_, D>,
148            offset: usize,
149            depth: fidl::encoding::Depth,
150        ) -> fidl::Result<()> {
151            encoder.debug_check_bounds::<UnknownInteractionsProtocolFlexibleEventFieldsRequest>(
152                offset,
153            );
154            // Zero out padding regions. There's no need to apply masks
155            // because the unmasked parts will be overwritten by fields.
156            // Write the fields.
157            self.0.encode(encoder, offset + 0, depth)?;
158            Ok(())
159        }
160    }
161
162    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
163        for UnknownInteractionsProtocolFlexibleEventFieldsRequest
164    {
165        #[inline(always)]
166        fn new_empty() -> Self {
167            Self { some_field: fidl::new_empty!(i32, D) }
168        }
169
170        #[inline]
171        unsafe fn decode(
172            &mut self,
173            decoder: &mut fidl::encoding::Decoder<'_, D>,
174            offset: usize,
175            _depth: fidl::encoding::Depth,
176        ) -> fidl::Result<()> {
177            decoder.debug_check_bounds::<Self>(offset);
178            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
179            // Verify that padding bytes are zero.
180            // Copy from the buffer into the object.
181            unsafe {
182                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
183            }
184            Ok(())
185        }
186    }
187
188    impl fidl::encoding::ValueTypeMarker for UnknownInteractionsProtocolStrictEventFieldsRequest {
189        type Borrowed<'a> = &'a Self;
190        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
191            value
192        }
193    }
194
195    unsafe impl fidl::encoding::TypeMarker for UnknownInteractionsProtocolStrictEventFieldsRequest {
196        type Owned = Self;
197
198        #[inline(always)]
199        fn inline_align(_context: fidl::encoding::Context) -> usize {
200            4
201        }
202
203        #[inline(always)]
204        fn inline_size(_context: fidl::encoding::Context) -> usize {
205            4
206        }
207        #[inline(always)]
208        fn encode_is_copy() -> bool {
209            true
210        }
211
212        #[inline(always)]
213        fn decode_is_copy() -> bool {
214            true
215        }
216    }
217
218    unsafe impl<D: fidl::encoding::ResourceDialect>
219        fidl::encoding::Encode<UnknownInteractionsProtocolStrictEventFieldsRequest, D>
220        for &UnknownInteractionsProtocolStrictEventFieldsRequest
221    {
222        #[inline]
223        unsafe fn encode(
224            self,
225            encoder: &mut fidl::encoding::Encoder<'_, D>,
226            offset: usize,
227            _depth: fidl::encoding::Depth,
228        ) -> fidl::Result<()> {
229            encoder
230                .debug_check_bounds::<UnknownInteractionsProtocolStrictEventFieldsRequest>(offset);
231            unsafe {
232                // Copy the object into the buffer.
233                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
234                (buf_ptr as *mut UnknownInteractionsProtocolStrictEventFieldsRequest)
235                    .write_unaligned(
236                        (self as *const UnknownInteractionsProtocolStrictEventFieldsRequest).read(),
237                    );
238                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
239                // done second because the memcpy will write garbage to these bytes.
240            }
241            Ok(())
242        }
243    }
244    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
245        fidl::encoding::Encode<UnknownInteractionsProtocolStrictEventFieldsRequest, D> for (T0,)
246    {
247        #[inline]
248        unsafe fn encode(
249            self,
250            encoder: &mut fidl::encoding::Encoder<'_, D>,
251            offset: usize,
252            depth: fidl::encoding::Depth,
253        ) -> fidl::Result<()> {
254            encoder
255                .debug_check_bounds::<UnknownInteractionsProtocolStrictEventFieldsRequest>(offset);
256            // Zero out padding regions. There's no need to apply masks
257            // because the unmasked parts will be overwritten by fields.
258            // Write the fields.
259            self.0.encode(encoder, offset + 0, depth)?;
260            Ok(())
261        }
262    }
263
264    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
265        for UnknownInteractionsProtocolStrictEventFieldsRequest
266    {
267        #[inline(always)]
268        fn new_empty() -> Self {
269            Self { some_field: fidl::new_empty!(i32, D) }
270        }
271
272        #[inline]
273        unsafe fn decode(
274            &mut self,
275            decoder: &mut fidl::encoding::Decoder<'_, D>,
276            offset: usize,
277            _depth: fidl::encoding::Depth,
278        ) -> fidl::Result<()> {
279            decoder.debug_check_bounds::<Self>(offset);
280            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
281            // Verify that padding bytes are zero.
282            // Copy from the buffer into the object.
283            unsafe {
284                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
285            }
286            Ok(())
287        }
288    }
289
290    impl fidl::encoding::ValueTypeMarker for UnknownInteractionsProtocolStrictTwoWayFieldsResponse {
291        type Borrowed<'a> = &'a Self;
292        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
293            value
294        }
295    }
296
297    unsafe impl fidl::encoding::TypeMarker for UnknownInteractionsProtocolStrictTwoWayFieldsResponse {
298        type Owned = Self;
299
300        #[inline(always)]
301        fn inline_align(_context: fidl::encoding::Context) -> usize {
302            4
303        }
304
305        #[inline(always)]
306        fn inline_size(_context: fidl::encoding::Context) -> usize {
307            4
308        }
309        #[inline(always)]
310        fn encode_is_copy() -> bool {
311            true
312        }
313
314        #[inline(always)]
315        fn decode_is_copy() -> bool {
316            true
317        }
318    }
319
320    unsafe impl<D: fidl::encoding::ResourceDialect>
321        fidl::encoding::Encode<UnknownInteractionsProtocolStrictTwoWayFieldsResponse, D>
322        for &UnknownInteractionsProtocolStrictTwoWayFieldsResponse
323    {
324        #[inline]
325        unsafe fn encode(
326            self,
327            encoder: &mut fidl::encoding::Encoder<'_, D>,
328            offset: usize,
329            _depth: fidl::encoding::Depth,
330        ) -> fidl::Result<()> {
331            encoder.debug_check_bounds::<UnknownInteractionsProtocolStrictTwoWayFieldsResponse>(
332                offset,
333            );
334            unsafe {
335                // Copy the object into the buffer.
336                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
337                (buf_ptr as *mut UnknownInteractionsProtocolStrictTwoWayFieldsResponse)
338                    .write_unaligned(
339                        (self as *const UnknownInteractionsProtocolStrictTwoWayFieldsResponse)
340                            .read(),
341                    );
342                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
343                // done second because the memcpy will write garbage to these bytes.
344            }
345            Ok(())
346        }
347    }
348    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
349        fidl::encoding::Encode<UnknownInteractionsProtocolStrictTwoWayFieldsResponse, D> for (T0,)
350    {
351        #[inline]
352        unsafe fn encode(
353            self,
354            encoder: &mut fidl::encoding::Encoder<'_, D>,
355            offset: usize,
356            depth: fidl::encoding::Depth,
357        ) -> fidl::Result<()> {
358            encoder.debug_check_bounds::<UnknownInteractionsProtocolStrictTwoWayFieldsResponse>(
359                offset,
360            );
361            // Zero out padding regions. There's no need to apply masks
362            // because the unmasked parts will be overwritten by fields.
363            // Write the fields.
364            self.0.encode(encoder, offset + 0, depth)?;
365            Ok(())
366        }
367    }
368
369    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
370        for UnknownInteractionsProtocolStrictTwoWayFieldsResponse
371    {
372        #[inline(always)]
373        fn new_empty() -> Self {
374            Self { some_field: fidl::new_empty!(i32, D) }
375        }
376
377        #[inline]
378        unsafe fn decode(
379            &mut self,
380            decoder: &mut fidl::encoding::Decoder<'_, D>,
381            offset: usize,
382            _depth: fidl::encoding::Depth,
383        ) -> fidl::Result<()> {
384            decoder.debug_check_bounds::<Self>(offset);
385            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
386            // Verify that padding bytes are zero.
387            // Copy from the buffer into the object.
388            unsafe {
389                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
390            }
391            Ok(())
392        }
393    }
394
395    impl fidl::encoding::ValueTypeMarker
396        for UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse
397    {
398        type Borrowed<'a> = &'a Self;
399        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
400            value
401        }
402    }
403
404    unsafe impl fidl::encoding::TypeMarker
405        for UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse
406    {
407        type Owned = Self;
408
409        #[inline(always)]
410        fn inline_align(_context: fidl::encoding::Context) -> usize {
411            4
412        }
413
414        #[inline(always)]
415        fn inline_size(_context: fidl::encoding::Context) -> usize {
416            4
417        }
418        #[inline(always)]
419        fn encode_is_copy() -> bool {
420            true
421        }
422
423        #[inline(always)]
424        fn decode_is_copy() -> bool {
425            true
426        }
427    }
428
429    unsafe impl<D: fidl::encoding::ResourceDialect>
430        fidl::encoding::Encode<UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse, D>
431        for &UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse
432    {
433        #[inline]
434        unsafe fn encode(
435            self,
436            encoder: &mut fidl::encoding::Encoder<'_, D>,
437            offset: usize,
438            _depth: fidl::encoding::Depth,
439        ) -> fidl::Result<()> {
440            encoder
441                .debug_check_bounds::<UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse>(
442                    offset,
443                );
444            unsafe {
445                // Copy the object into the buffer.
446                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
447                (buf_ptr as *mut UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse)
448                    .write_unaligned(
449                        (self as *const UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse)
450                            .read(),
451                    );
452                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
453                // done second because the memcpy will write garbage to these bytes.
454            }
455            Ok(())
456        }
457    }
458    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
459        fidl::encoding::Encode<UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse, D>
460        for (T0,)
461    {
462        #[inline]
463        unsafe fn encode(
464            self,
465            encoder: &mut fidl::encoding::Encoder<'_, D>,
466            offset: usize,
467            depth: fidl::encoding::Depth,
468        ) -> fidl::Result<()> {
469            encoder
470                .debug_check_bounds::<UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse>(
471                    offset,
472                );
473            // Zero out padding regions. There's no need to apply masks
474            // because the unmasked parts will be overwritten by fields.
475            // Write the fields.
476            self.0.encode(encoder, offset + 0, depth)?;
477            Ok(())
478        }
479    }
480
481    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
482        for UnknownInteractionsProtocolFlexibleTwoWayFieldsErrResponse
483    {
484        #[inline(always)]
485        fn new_empty() -> Self {
486            Self { some_field: fidl::new_empty!(i32, D) }
487        }
488
489        #[inline]
490        unsafe fn decode(
491            &mut self,
492            decoder: &mut fidl::encoding::Decoder<'_, D>,
493            offset: usize,
494            _depth: fidl::encoding::Depth,
495        ) -> fidl::Result<()> {
496            decoder.debug_check_bounds::<Self>(offset);
497            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
498            // Verify that padding bytes are zero.
499            // Copy from the buffer into the object.
500            unsafe {
501                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
502            }
503            Ok(())
504        }
505    }
506
507    impl fidl::encoding::ValueTypeMarker for UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse {
508        type Borrowed<'a> = &'a Self;
509        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
510            value
511        }
512    }
513
514    unsafe impl fidl::encoding::TypeMarker for UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse {
515        type Owned = Self;
516
517        #[inline(always)]
518        fn inline_align(_context: fidl::encoding::Context) -> usize {
519            4
520        }
521
522        #[inline(always)]
523        fn inline_size(_context: fidl::encoding::Context) -> usize {
524            4
525        }
526        #[inline(always)]
527        fn encode_is_copy() -> bool {
528            true
529        }
530
531        #[inline(always)]
532        fn decode_is_copy() -> bool {
533            true
534        }
535    }
536
537    unsafe impl<D: fidl::encoding::ResourceDialect>
538        fidl::encoding::Encode<UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse, D>
539        for &UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse
540    {
541        #[inline]
542        unsafe fn encode(
543            self,
544            encoder: &mut fidl::encoding::Encoder<'_, D>,
545            offset: usize,
546            _depth: fidl::encoding::Depth,
547        ) -> fidl::Result<()> {
548            encoder.debug_check_bounds::<UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse>(
549                offset,
550            );
551            unsafe {
552                // Copy the object into the buffer.
553                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
554                (buf_ptr as *mut UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse)
555                    .write_unaligned(
556                        (self as *const UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse)
557                            .read(),
558                    );
559                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
560                // done second because the memcpy will write garbage to these bytes.
561            }
562            Ok(())
563        }
564    }
565    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
566        fidl::encoding::Encode<UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse, D>
567        for (T0,)
568    {
569        #[inline]
570        unsafe fn encode(
571            self,
572            encoder: &mut fidl::encoding::Encoder<'_, D>,
573            offset: usize,
574            depth: fidl::encoding::Depth,
575        ) -> fidl::Result<()> {
576            encoder.debug_check_bounds::<UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse>(
577                offset,
578            );
579            // Zero out padding regions. There's no need to apply masks
580            // because the unmasked parts will be overwritten by fields.
581            // Write the fields.
582            self.0.encode(encoder, offset + 0, depth)?;
583            Ok(())
584        }
585    }
586
587    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
588        for UnknownInteractionsProtocolFlexibleTwoWayFieldsResponse
589    {
590        #[inline(always)]
591        fn new_empty() -> Self {
592            Self { some_field: fidl::new_empty!(i32, D) }
593        }
594
595        #[inline]
596        unsafe fn decode(
597            &mut self,
598            decoder: &mut fidl::encoding::Decoder<'_, D>,
599            offset: usize,
600            _depth: fidl::encoding::Depth,
601        ) -> fidl::Result<()> {
602            decoder.debug_check_bounds::<Self>(offset);
603            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
604            // Verify that padding bytes are zero.
605            // Copy from the buffer into the object.
606            unsafe {
607                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
608            }
609            Ok(())
610        }
611    }
612
613    impl fidl::encoding::ValueTypeMarker for UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse {
614        type Borrowed<'a> = &'a Self;
615        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
616            value
617        }
618    }
619
620    unsafe impl fidl::encoding::TypeMarker
621        for UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse
622    {
623        type Owned = Self;
624
625        #[inline(always)]
626        fn inline_align(_context: fidl::encoding::Context) -> usize {
627            4
628        }
629
630        #[inline(always)]
631        fn inline_size(_context: fidl::encoding::Context) -> usize {
632            4
633        }
634        #[inline(always)]
635        fn encode_is_copy() -> bool {
636            true
637        }
638
639        #[inline(always)]
640        fn decode_is_copy() -> bool {
641            true
642        }
643    }
644
645    unsafe impl<D: fidl::encoding::ResourceDialect>
646        fidl::encoding::Encode<UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse, D>
647        for &UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse
648    {
649        #[inline]
650        unsafe fn encode(
651            self,
652            encoder: &mut fidl::encoding::Encoder<'_, D>,
653            offset: usize,
654            _depth: fidl::encoding::Depth,
655        ) -> fidl::Result<()> {
656            encoder.debug_check_bounds::<UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse>(
657                offset,
658            );
659            unsafe {
660                // Copy the object into the buffer.
661                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
662                (buf_ptr as *mut UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse)
663                    .write_unaligned(
664                        (self as *const UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse)
665                            .read(),
666                    );
667                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
668                // done second because the memcpy will write garbage to these bytes.
669            }
670            Ok(())
671        }
672    }
673    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
674        fidl::encoding::Encode<UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse, D>
675        for (T0,)
676    {
677        #[inline]
678        unsafe fn encode(
679            self,
680            encoder: &mut fidl::encoding::Encoder<'_, D>,
681            offset: usize,
682            depth: fidl::encoding::Depth,
683        ) -> fidl::Result<()> {
684            encoder.debug_check_bounds::<UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse>(
685                offset,
686            );
687            // Zero out padding regions. There's no need to apply masks
688            // because the unmasked parts will be overwritten by fields.
689            // Write the fields.
690            self.0.encode(encoder, offset + 0, depth)?;
691            Ok(())
692        }
693    }
694
695    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
696        for UnknownInteractionsProtocolStrictTwoWayFieldsErrResponse
697    {
698        #[inline(always)]
699        fn new_empty() -> Self {
700            Self { some_field: fidl::new_empty!(i32, D) }
701        }
702
703        #[inline]
704        unsafe fn decode(
705            &mut self,
706            decoder: &mut fidl::encoding::Decoder<'_, D>,
707            offset: usize,
708            _depth: fidl::encoding::Depth,
709        ) -> fidl::Result<()> {
710            decoder.debug_check_bounds::<Self>(offset);
711            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
712            // Verify that padding bytes are zero.
713            // Copy from the buffer into the object.
714            unsafe {
715                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
716            }
717            Ok(())
718        }
719    }
720}