Skip to main content

fidl_cf_sc_internal_drivermanagerconfig_common/
fidl_cf_sc_internal_drivermanagerconfig_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, Eq, Hash, Ord, PartialEq, PartialOrd)]
12pub struct Config {
13    pub delay_fallback_until_base_drivers_indexed: bool,
14    pub enable_test_shutdown_delays: bool,
15    pub power_inject_offer: bool,
16    pub power_suspend_enabled: bool,
17    pub root_driver: String,
18    pub set_root_driver_host_critical: bool,
19    pub storage_power_management_enabled: bool,
20    pub suspend_timeout_fallback: bool,
21    pub wait_for_suspending_token: bool,
22}
23
24impl fidl::Persistable for Config {}
25
26mod internal {
27    use super::*;
28
29    impl fidl::encoding::ValueTypeMarker for Config {
30        type Borrowed<'a> = &'a Self;
31        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
32            value
33        }
34    }
35
36    unsafe impl fidl::encoding::TypeMarker for Config {
37        type Owned = Self;
38
39        #[inline(always)]
40        fn inline_align(_context: fidl::encoding::Context) -> usize {
41            8
42        }
43
44        #[inline(always)]
45        fn inline_size(_context: fidl::encoding::Context) -> usize {
46            32
47        }
48    }
49
50    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
51        #[inline]
52        unsafe fn encode(
53            self,
54            encoder: &mut fidl::encoding::Encoder<'_, D>,
55            offset: usize,
56            _depth: fidl::encoding::Depth,
57        ) -> fidl::Result<()> {
58            encoder.debug_check_bounds::<Config>(offset);
59            // Delegate to tuple encoding.
60            fidl::encoding::Encode::<Config, D>::encode(
61                (
62                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
63                        &self.delay_fallback_until_base_drivers_indexed,
64                    ),
65                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
66                        &self.enable_test_shutdown_delays,
67                    ),
68                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.power_inject_offer),
69                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.power_suspend_enabled),
70                    <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
71                        &self.root_driver,
72                    ),
73                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
74                        &self.set_root_driver_host_critical,
75                    ),
76                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
77                        &self.storage_power_management_enabled,
78                    ),
79                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
80                        &self.suspend_timeout_fallback,
81                    ),
82                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
83                        &self.wait_for_suspending_token,
84                    ),
85                ),
86                encoder,
87                offset,
88                _depth,
89            )
90        }
91    }
92    unsafe impl<
93        D: fidl::encoding::ResourceDialect,
94        T0: fidl::encoding::Encode<bool, D>,
95        T1: fidl::encoding::Encode<bool, D>,
96        T2: fidl::encoding::Encode<bool, D>,
97        T3: fidl::encoding::Encode<bool, D>,
98        T4: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
99        T5: fidl::encoding::Encode<bool, D>,
100        T6: fidl::encoding::Encode<bool, D>,
101        T7: fidl::encoding::Encode<bool, D>,
102        T8: fidl::encoding::Encode<bool, D>,
103    > fidl::encoding::Encode<Config, D> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
104    {
105        #[inline]
106        unsafe fn encode(
107            self,
108            encoder: &mut fidl::encoding::Encoder<'_, D>,
109            offset: usize,
110            depth: fidl::encoding::Depth,
111        ) -> fidl::Result<()> {
112            encoder.debug_check_bounds::<Config>(offset);
113            // Zero out padding regions. There's no need to apply masks
114            // because the unmasked parts will be overwritten by fields.
115            unsafe {
116                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
117                (ptr as *mut u64).write_unaligned(0);
118            }
119            unsafe {
120                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
121                (ptr as *mut u64).write_unaligned(0);
122            }
123            // Write the fields.
124            self.0.encode(encoder, offset + 0, depth)?;
125            self.1.encode(encoder, offset + 1, depth)?;
126            self.2.encode(encoder, offset + 2, depth)?;
127            self.3.encode(encoder, offset + 3, depth)?;
128            self.4.encode(encoder, offset + 8, depth)?;
129            self.5.encode(encoder, offset + 24, depth)?;
130            self.6.encode(encoder, offset + 25, depth)?;
131            self.7.encode(encoder, offset + 26, depth)?;
132            self.8.encode(encoder, offset + 27, depth)?;
133            Ok(())
134        }
135    }
136
137    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
138        #[inline(always)]
139        fn new_empty() -> Self {
140            Self {
141                delay_fallback_until_base_drivers_indexed: fidl::new_empty!(bool, D),
142                enable_test_shutdown_delays: fidl::new_empty!(bool, D),
143                power_inject_offer: fidl::new_empty!(bool, D),
144                power_suspend_enabled: fidl::new_empty!(bool, D),
145                root_driver: fidl::new_empty!(fidl::encoding::BoundedString<100>, D),
146                set_root_driver_host_critical: fidl::new_empty!(bool, D),
147                storage_power_management_enabled: fidl::new_empty!(bool, D),
148                suspend_timeout_fallback: fidl::new_empty!(bool, D),
149                wait_for_suspending_token: fidl::new_empty!(bool, D),
150            }
151        }
152
153        #[inline]
154        unsafe fn decode(
155            &mut self,
156            decoder: &mut fidl::encoding::Decoder<'_, D>,
157            offset: usize,
158            _depth: fidl::encoding::Depth,
159        ) -> fidl::Result<()> {
160            decoder.debug_check_bounds::<Self>(offset);
161            // Verify that padding bytes are zero.
162            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
163            let padval = unsafe { (ptr as *const u64).read_unaligned() };
164            let mask = 0xffffffff00000000u64;
165            let maskedval = padval & mask;
166            if maskedval != 0 {
167                return Err(fidl::Error::NonZeroPadding {
168                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
169                });
170            }
171            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
172            let padval = unsafe { (ptr as *const u64).read_unaligned() };
173            let mask = 0xffffffff00000000u64;
174            let maskedval = padval & mask;
175            if maskedval != 0 {
176                return Err(fidl::Error::NonZeroPadding {
177                    padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
178                });
179            }
180            fidl::decode!(
181                bool,
182                D,
183                &mut self.delay_fallback_until_base_drivers_indexed,
184                decoder,
185                offset + 0,
186                _depth
187            )?;
188            fidl::decode!(
189                bool,
190                D,
191                &mut self.enable_test_shutdown_delays,
192                decoder,
193                offset + 1,
194                _depth
195            )?;
196            fidl::decode!(bool, D, &mut self.power_inject_offer, decoder, offset + 2, _depth)?;
197            fidl::decode!(bool, D, &mut self.power_suspend_enabled, decoder, offset + 3, _depth)?;
198            fidl::decode!(
199                fidl::encoding::BoundedString<100>,
200                D,
201                &mut self.root_driver,
202                decoder,
203                offset + 8,
204                _depth
205            )?;
206            fidl::decode!(
207                bool,
208                D,
209                &mut self.set_root_driver_host_critical,
210                decoder,
211                offset + 24,
212                _depth
213            )?;
214            fidl::decode!(
215                bool,
216                D,
217                &mut self.storage_power_management_enabled,
218                decoder,
219                offset + 25,
220                _depth
221            )?;
222            fidl::decode!(
223                bool,
224                D,
225                &mut self.suspend_timeout_fallback,
226                decoder,
227                offset + 26,
228                _depth
229            )?;
230            fidl::decode!(
231                bool,
232                D,
233                &mut self.wait_for_suspending_token,
234                decoder,
235                offset + 27,
236                _depth
237            )?;
238            Ok(())
239        }
240    }
241}