fidl_cf_sc_internal_fshostconfig__common/
fidl_cf_sc_internal_fshostconfig__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 blob_max_bytes: u64,
14    pub blobfs: bool,
15    pub blobfs_initial_inodes: u64,
16    pub blobfs_use_deprecated_padded_format: bool,
17    pub check_filesystems: bool,
18    pub data: bool,
19    pub data_filesystem_format: String,
20    pub data_max_bytes: u64,
21    pub disable_automount: bool,
22    pub disable_block_watcher: bool,
23    pub factory: bool,
24    pub format_data_on_corruption: bool,
25    pub fvm: bool,
26    pub fvm_slice_size: u64,
27    pub fxfs_blob: bool,
28    pub fxfs_crypt_url: String,
29    pub gpt: bool,
30    pub gpt_all: bool,
31    pub inline_crypto: bool,
32    pub mbr: bool,
33    pub merge_super_and_userdata: bool,
34    pub no_zxcrypt: bool,
35    pub provision_fxfs: bool,
36    pub ramdisk_image: bool,
37    pub starnix_volume_name: String,
38    pub storage_host: bool,
39    pub use_disk_migration: bool,
40    pub watch_deprecated_v1_drivers: bool,
41}
42
43impl fidl::Persistable for Config {}
44
45mod internal {
46    use super::*;
47
48    impl fidl::encoding::ValueTypeMarker for Config {
49        type Borrowed<'a> = &'a Self;
50        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
51            value
52        }
53    }
54
55    unsafe impl fidl::encoding::TypeMarker for Config {
56        type Owned = Self;
57
58        #[inline(always)]
59        fn inline_align(_context: fidl::encoding::Context) -> usize {
60            8
61        }
62
63        #[inline(always)]
64        fn inline_size(_context: fidl::encoding::Context) -> usize {
65            128
66        }
67    }
68
69    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
70        #[inline]
71        unsafe fn encode(
72            self,
73            encoder: &mut fidl::encoding::Encoder<'_, D>,
74            offset: usize,
75            _depth: fidl::encoding::Depth,
76        ) -> fidl::Result<()> {
77            encoder.debug_check_bounds::<Config>(offset);
78            // Delegate to tuple encoding.
79            fidl::encoding::Encode::<Config, D>::encode(
80                (
81                    <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.blob_max_bytes),
82                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.blobfs),
83                    <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.blobfs_initial_inodes),
84                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
85                        &self.blobfs_use_deprecated_padded_format,
86                    ),
87                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.check_filesystems),
88                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.data),
89                    <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(
90                        &self.data_filesystem_format,
91                    ),
92                    <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.data_max_bytes),
93                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.disable_automount),
94                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.disable_block_watcher),
95                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.factory),
96                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
97                        &self.format_data_on_corruption,
98                    ),
99                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.fvm),
100                    <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.fvm_slice_size),
101                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.fxfs_blob),
102                    <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(
103                        &self.fxfs_crypt_url,
104                    ),
105                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.gpt),
106                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.gpt_all),
107                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.inline_crypto),
108                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.mbr),
109                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
110                        &self.merge_super_and_userdata,
111                    ),
112                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.no_zxcrypt),
113                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.provision_fxfs),
114                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.ramdisk_image),
115                    <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow(
116                        &self.starnix_volume_name,
117                    ),
118                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.storage_host),
119                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.use_disk_migration),
120                    <bool as fidl::encoding::ValueTypeMarker>::borrow(
121                        &self.watch_deprecated_v1_drivers,
122                    ),
123                ),
124                encoder,
125                offset,
126                _depth,
127            )
128        }
129    }
130    unsafe impl<
131        D: fidl::encoding::ResourceDialect,
132        T0: fidl::encoding::Encode<u64, D>,
133        T1: fidl::encoding::Encode<bool, D>,
134        T2: fidl::encoding::Encode<u64, D>,
135        T3: fidl::encoding::Encode<bool, D>,
136        T4: fidl::encoding::Encode<bool, D>,
137        T5: fidl::encoding::Encode<bool, D>,
138        T6: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
139        T7: fidl::encoding::Encode<u64, D>,
140        T8: fidl::encoding::Encode<bool, D>,
141        T9: fidl::encoding::Encode<bool, D>,
142        T10: fidl::encoding::Encode<bool, D>,
143        T11: fidl::encoding::Encode<bool, D>,
144        T12: fidl::encoding::Encode<bool, D>,
145        T13: fidl::encoding::Encode<u64, D>,
146        T14: fidl::encoding::Encode<bool, D>,
147        T15: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
148        T16: fidl::encoding::Encode<bool, D>,
149        T17: fidl::encoding::Encode<bool, D>,
150        T18: fidl::encoding::Encode<bool, D>,
151        T19: fidl::encoding::Encode<bool, D>,
152        T20: fidl::encoding::Encode<bool, D>,
153        T21: fidl::encoding::Encode<bool, D>,
154        T22: fidl::encoding::Encode<bool, D>,
155        T23: fidl::encoding::Encode<bool, D>,
156        T24: fidl::encoding::Encode<fidl::encoding::BoundedString<64>, D>,
157        T25: fidl::encoding::Encode<bool, D>,
158        T26: fidl::encoding::Encode<bool, D>,
159        T27: fidl::encoding::Encode<bool, D>,
160    > fidl::encoding::Encode<Config, D>
161        for (
162            T0,
163            T1,
164            T2,
165            T3,
166            T4,
167            T5,
168            T6,
169            T7,
170            T8,
171            T9,
172            T10,
173            T11,
174            T12,
175            T13,
176            T14,
177            T15,
178            T16,
179            T17,
180            T18,
181            T19,
182            T20,
183            T21,
184            T22,
185            T23,
186            T24,
187            T25,
188            T26,
189            T27,
190        )
191    {
192        #[inline]
193        unsafe fn encode(
194            self,
195            encoder: &mut fidl::encoding::Encoder<'_, D>,
196            offset: usize,
197            depth: fidl::encoding::Depth,
198        ) -> fidl::Result<()> {
199            encoder.debug_check_bounds::<Config>(offset);
200            // Zero out padding regions. There's no need to apply masks
201            // because the unmasked parts will be overwritten by fields.
202            unsafe {
203                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
204                (ptr as *mut u64).write_unaligned(0);
205            }
206            unsafe {
207                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
208                (ptr as *mut u64).write_unaligned(0);
209            }
210            unsafe {
211                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(56);
212                (ptr as *mut u64).write_unaligned(0);
213            }
214            unsafe {
215                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(72);
216                (ptr as *mut u64).write_unaligned(0);
217            }
218            unsafe {
219                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(120);
220                (ptr as *mut u64).write_unaligned(0);
221            }
222            // Write the fields.
223            self.0.encode(encoder, offset + 0, depth)?;
224            self.1.encode(encoder, offset + 8, depth)?;
225            self.2.encode(encoder, offset + 16, depth)?;
226            self.3.encode(encoder, offset + 24, depth)?;
227            self.4.encode(encoder, offset + 25, depth)?;
228            self.5.encode(encoder, offset + 26, depth)?;
229            self.6.encode(encoder, offset + 32, depth)?;
230            self.7.encode(encoder, offset + 48, depth)?;
231            self.8.encode(encoder, offset + 56, depth)?;
232            self.9.encode(encoder, offset + 57, depth)?;
233            self.10.encode(encoder, offset + 58, depth)?;
234            self.11.encode(encoder, offset + 59, depth)?;
235            self.12.encode(encoder, offset + 60, depth)?;
236            self.13.encode(encoder, offset + 64, depth)?;
237            self.14.encode(encoder, offset + 72, depth)?;
238            self.15.encode(encoder, offset + 80, depth)?;
239            self.16.encode(encoder, offset + 96, depth)?;
240            self.17.encode(encoder, offset + 97, depth)?;
241            self.18.encode(encoder, offset + 98, depth)?;
242            self.19.encode(encoder, offset + 99, depth)?;
243            self.20.encode(encoder, offset + 100, depth)?;
244            self.21.encode(encoder, offset + 101, depth)?;
245            self.22.encode(encoder, offset + 102, depth)?;
246            self.23.encode(encoder, offset + 103, depth)?;
247            self.24.encode(encoder, offset + 104, depth)?;
248            self.25.encode(encoder, offset + 120, depth)?;
249            self.26.encode(encoder, offset + 121, depth)?;
250            self.27.encode(encoder, offset + 122, depth)?;
251            Ok(())
252        }
253    }
254
255    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
256        #[inline(always)]
257        fn new_empty() -> Self {
258            Self {
259                blob_max_bytes: fidl::new_empty!(u64, D),
260                blobfs: fidl::new_empty!(bool, D),
261                blobfs_initial_inodes: fidl::new_empty!(u64, D),
262                blobfs_use_deprecated_padded_format: fidl::new_empty!(bool, D),
263                check_filesystems: fidl::new_empty!(bool, D),
264                data: fidl::new_empty!(bool, D),
265                data_filesystem_format: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
266                data_max_bytes: fidl::new_empty!(u64, D),
267                disable_automount: fidl::new_empty!(bool, D),
268                disable_block_watcher: fidl::new_empty!(bool, D),
269                factory: fidl::new_empty!(bool, D),
270                format_data_on_corruption: fidl::new_empty!(bool, D),
271                fvm: fidl::new_empty!(bool, D),
272                fvm_slice_size: fidl::new_empty!(u64, D),
273                fxfs_blob: fidl::new_empty!(bool, D),
274                fxfs_crypt_url: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
275                gpt: fidl::new_empty!(bool, D),
276                gpt_all: fidl::new_empty!(bool, D),
277                inline_crypto: fidl::new_empty!(bool, D),
278                mbr: fidl::new_empty!(bool, D),
279                merge_super_and_userdata: fidl::new_empty!(bool, D),
280                no_zxcrypt: fidl::new_empty!(bool, D),
281                provision_fxfs: fidl::new_empty!(bool, D),
282                ramdisk_image: fidl::new_empty!(bool, D),
283                starnix_volume_name: fidl::new_empty!(fidl::encoding::BoundedString<64>, D),
284                storage_host: fidl::new_empty!(bool, D),
285                use_disk_migration: fidl::new_empty!(bool, D),
286                watch_deprecated_v1_drivers: fidl::new_empty!(bool, D),
287            }
288        }
289
290        #[inline]
291        unsafe fn decode(
292            &mut self,
293            decoder: &mut fidl::encoding::Decoder<'_, D>,
294            offset: usize,
295            _depth: fidl::encoding::Depth,
296        ) -> fidl::Result<()> {
297            decoder.debug_check_bounds::<Self>(offset);
298            // Verify that padding bytes are zero.
299            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
300            let padval = unsafe { (ptr as *const u64).read_unaligned() };
301            let mask = 0xffffffffffffff00u64;
302            let maskedval = padval & mask;
303            if maskedval != 0 {
304                return Err(fidl::Error::NonZeroPadding {
305                    padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
306                });
307            }
308            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
309            let padval = unsafe { (ptr as *const u64).read_unaligned() };
310            let mask = 0xffffffffff000000u64;
311            let maskedval = padval & mask;
312            if maskedval != 0 {
313                return Err(fidl::Error::NonZeroPadding {
314                    padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
315                });
316            }
317            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(56) };
318            let padval = unsafe { (ptr as *const u64).read_unaligned() };
319            let mask = 0xffffff0000000000u64;
320            let maskedval = padval & mask;
321            if maskedval != 0 {
322                return Err(fidl::Error::NonZeroPadding {
323                    padding_start: offset + 56 + ((mask as u64).trailing_zeros() / 8) as usize,
324                });
325            }
326            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(72) };
327            let padval = unsafe { (ptr as *const u64).read_unaligned() };
328            let mask = 0xffffffffffffff00u64;
329            let maskedval = padval & mask;
330            if maskedval != 0 {
331                return Err(fidl::Error::NonZeroPadding {
332                    padding_start: offset + 72 + ((mask as u64).trailing_zeros() / 8) as usize,
333                });
334            }
335            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(120) };
336            let padval = unsafe { (ptr as *const u64).read_unaligned() };
337            let mask = 0xffffffffff000000u64;
338            let maskedval = padval & mask;
339            if maskedval != 0 {
340                return Err(fidl::Error::NonZeroPadding {
341                    padding_start: offset + 120 + ((mask as u64).trailing_zeros() / 8) as usize,
342                });
343            }
344            fidl::decode!(u64, D, &mut self.blob_max_bytes, decoder, offset + 0, _depth)?;
345            fidl::decode!(bool, D, &mut self.blobfs, decoder, offset + 8, _depth)?;
346            fidl::decode!(u64, D, &mut self.blobfs_initial_inodes, decoder, offset + 16, _depth)?;
347            fidl::decode!(
348                bool,
349                D,
350                &mut self.blobfs_use_deprecated_padded_format,
351                decoder,
352                offset + 24,
353                _depth
354            )?;
355            fidl::decode!(bool, D, &mut self.check_filesystems, decoder, offset + 25, _depth)?;
356            fidl::decode!(bool, D, &mut self.data, decoder, offset + 26, _depth)?;
357            fidl::decode!(
358                fidl::encoding::BoundedString<64>,
359                D,
360                &mut self.data_filesystem_format,
361                decoder,
362                offset + 32,
363                _depth
364            )?;
365            fidl::decode!(u64, D, &mut self.data_max_bytes, decoder, offset + 48, _depth)?;
366            fidl::decode!(bool, D, &mut self.disable_automount, decoder, offset + 56, _depth)?;
367            fidl::decode!(bool, D, &mut self.disable_block_watcher, decoder, offset + 57, _depth)?;
368            fidl::decode!(bool, D, &mut self.factory, decoder, offset + 58, _depth)?;
369            fidl::decode!(
370                bool,
371                D,
372                &mut self.format_data_on_corruption,
373                decoder,
374                offset + 59,
375                _depth
376            )?;
377            fidl::decode!(bool, D, &mut self.fvm, decoder, offset + 60, _depth)?;
378            fidl::decode!(u64, D, &mut self.fvm_slice_size, decoder, offset + 64, _depth)?;
379            fidl::decode!(bool, D, &mut self.fxfs_blob, decoder, offset + 72, _depth)?;
380            fidl::decode!(
381                fidl::encoding::BoundedString<64>,
382                D,
383                &mut self.fxfs_crypt_url,
384                decoder,
385                offset + 80,
386                _depth
387            )?;
388            fidl::decode!(bool, D, &mut self.gpt, decoder, offset + 96, _depth)?;
389            fidl::decode!(bool, D, &mut self.gpt_all, decoder, offset + 97, _depth)?;
390            fidl::decode!(bool, D, &mut self.inline_crypto, decoder, offset + 98, _depth)?;
391            fidl::decode!(bool, D, &mut self.mbr, decoder, offset + 99, _depth)?;
392            fidl::decode!(
393                bool,
394                D,
395                &mut self.merge_super_and_userdata,
396                decoder,
397                offset + 100,
398                _depth
399            )?;
400            fidl::decode!(bool, D, &mut self.no_zxcrypt, decoder, offset + 101, _depth)?;
401            fidl::decode!(bool, D, &mut self.provision_fxfs, decoder, offset + 102, _depth)?;
402            fidl::decode!(bool, D, &mut self.ramdisk_image, decoder, offset + 103, _depth)?;
403            fidl::decode!(
404                fidl::encoding::BoundedString<64>,
405                D,
406                &mut self.starnix_volume_name,
407                decoder,
408                offset + 104,
409                _depth
410            )?;
411            fidl::decode!(bool, D, &mut self.storage_host, decoder, offset + 120, _depth)?;
412            fidl::decode!(bool, D, &mut self.use_disk_migration, decoder, offset + 121, _depth)?;
413            fidl::decode!(
414                bool,
415                D,
416                &mut self.watch_deprecated_v1_drivers,
417                decoder,
418                offset + 122,
419                _depth
420            )?;
421            Ok(())
422        }
423    }
424}