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