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