1#![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 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 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 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 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}