fidl_fuchsia_net_policy_testing__common/
fidl_fuchsia_net_policy_testing__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, Debug, PartialEq)]
12pub struct FakeNetcfgUpdatePropertiesRequest {
13    pub network_id: u64,
14    pub is_default: bool,
15    pub updates: Vec<fidl_fuchsia_net_policy_properties__common::PropertyUpdate>,
16}
17
18impl fidl::Persistable for FakeNetcfgUpdatePropertiesRequest {}
19
20pub mod fake_netcfg_ordinals {
21    pub const UPDATE_PROPERTIES: u64 = 0x26b097d78652be35;
22}
23
24mod internal {
25    use super::*;
26
27    impl fidl::encoding::ValueTypeMarker for FakeNetcfgUpdatePropertiesRequest {
28        type Borrowed<'a> = &'a Self;
29        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
30            value
31        }
32    }
33
34    unsafe impl fidl::encoding::TypeMarker for FakeNetcfgUpdatePropertiesRequest {
35        type Owned = Self;
36
37        #[inline(always)]
38        fn inline_align(_context: fidl::encoding::Context) -> usize {
39            8
40        }
41
42        #[inline(always)]
43        fn inline_size(_context: fidl::encoding::Context) -> usize {
44            32
45        }
46    }
47
48    unsafe impl<D: fidl::encoding::ResourceDialect>
49        fidl::encoding::Encode<FakeNetcfgUpdatePropertiesRequest, D>
50        for &FakeNetcfgUpdatePropertiesRequest
51    {
52        #[inline]
53        unsafe fn encode(
54            self,
55            encoder: &mut fidl::encoding::Encoder<'_, D>,
56            offset: usize,
57            _depth: fidl::encoding::Depth,
58        ) -> fidl::Result<()> {
59            encoder.debug_check_bounds::<FakeNetcfgUpdatePropertiesRequest>(offset);
60            // Delegate to tuple encoding.
61            fidl::encoding::Encode::<FakeNetcfgUpdatePropertiesRequest, D>::encode(
62                (
63                    <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.network_id),
64                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.is_default),
65                    <fidl::encoding::UnboundedVector<
66                        fidl_fuchsia_net_policy_properties__common::PropertyUpdate,
67                    > as fidl::encoding::ValueTypeMarker>::borrow(&self.updates),
68                ),
69                encoder,
70                offset,
71                _depth,
72            )
73        }
74    }
75    unsafe impl<
76        D: fidl::encoding::ResourceDialect,
77        T0: fidl::encoding::Encode<u64, D>,
78        T1: fidl::encoding::Encode<bool, D>,
79        T2: fidl::encoding::Encode<
80                fidl::encoding::UnboundedVector<
81                    fidl_fuchsia_net_policy_properties__common::PropertyUpdate,
82                >,
83                D,
84            >,
85    > fidl::encoding::Encode<FakeNetcfgUpdatePropertiesRequest, D> for (T0, T1, T2)
86    {
87        #[inline]
88        unsafe fn encode(
89            self,
90            encoder: &mut fidl::encoding::Encoder<'_, D>,
91            offset: usize,
92            depth: fidl::encoding::Depth,
93        ) -> fidl::Result<()> {
94            encoder.debug_check_bounds::<FakeNetcfgUpdatePropertiesRequest>(offset);
95            // Zero out padding regions. There's no need to apply masks
96            // because the unmasked parts will be overwritten by fields.
97            unsafe {
98                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
99                (ptr as *mut u64).write_unaligned(0);
100            }
101            // Write the fields.
102            self.0.encode(encoder, offset + 0, depth)?;
103            self.1.encode(encoder, offset + 8, depth)?;
104            self.2.encode(encoder, offset + 16, depth)?;
105            Ok(())
106        }
107    }
108
109    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
110        for FakeNetcfgUpdatePropertiesRequest
111    {
112        #[inline(always)]
113        fn new_empty() -> Self {
114            Self {
115                network_id: fidl::new_empty!(u64, D),
116                is_default: fidl::new_empty!(bool, D),
117                updates: fidl::new_empty!(
118                    fidl::encoding::UnboundedVector<
119                        fidl_fuchsia_net_policy_properties__common::PropertyUpdate,
120                    >,
121                    D
122                ),
123            }
124        }
125
126        #[inline]
127        unsafe fn decode(
128            &mut self,
129            decoder: &mut fidl::encoding::Decoder<'_, D>,
130            offset: usize,
131            _depth: fidl::encoding::Depth,
132        ) -> fidl::Result<()> {
133            decoder.debug_check_bounds::<Self>(offset);
134            // Verify that padding bytes are zero.
135            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
136            let padval = unsafe { (ptr as *const u64).read_unaligned() };
137            let mask = 0xffffffffffffff00u64;
138            let maskedval = padval & mask;
139            if maskedval != 0 {
140                return Err(fidl::Error::NonZeroPadding {
141                    padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
142                });
143            }
144            fidl::decode!(u64, D, &mut self.network_id, decoder, offset + 0, _depth)?;
145            fidl::decode!(bool, D, &mut self.is_default, decoder, offset + 8, _depth)?;
146            fidl::decode!(
147                fidl::encoding::UnboundedVector<
148                    fidl_fuchsia_net_policy_properties__common::PropertyUpdate,
149                >,
150                D,
151                &mut self.updates,
152                decoder,
153                offset + 16,
154                _depth
155            )?;
156            Ok(())
157        }
158    }
159}