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