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