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(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
13pub enum CompressionAlgorithm {
14 ZstdChunked,
15 Uncompressed,
16 #[doc(hidden)]
17 __SourceBreaking {
18 unknown_ordinal: u32,
19 },
20}
21
22#[macro_export]
24macro_rules! CompressionAlgorithmUnknown {
25 () => {
26 _
27 };
28}
29
30impl CompressionAlgorithm {
31 #[inline]
32 pub fn from_primitive(prim: u32) -> Option<Self> {
33 match prim {
34 0 => Some(Self::ZstdChunked),
35 1 => Some(Self::Uncompressed),
36 _ => None,
37 }
38 }
39
40 #[inline]
41 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
42 match prim {
43 0 => Self::ZstdChunked,
44 1 => Self::Uncompressed,
45 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
46 }
47 }
48
49 #[inline]
50 pub fn unknown() -> Self {
51 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
52 }
53
54 #[inline]
55 pub const fn into_primitive(self) -> u32 {
56 match self {
57 Self::ZstdChunked => 0,
58 Self::Uncompressed => 1,
59 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
60 }
61 }
62
63 #[inline]
64 pub fn is_unknown(&self) -> bool {
65 match self {
66 Self::__SourceBreaking { unknown_ordinal: _ } => true,
67 _ => false,
68 }
69 }
70}
71
72#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
74pub enum EvictionPolicyOverride {
75 None,
77 NeverEvict,
79 EvictImmediately,
81 #[doc(hidden)]
82 __SourceBreaking { unknown_ordinal: u32 },
83}
84
85#[macro_export]
87macro_rules! EvictionPolicyOverrideUnknown {
88 () => {
89 _
90 };
91}
92
93impl EvictionPolicyOverride {
94 #[inline]
95 pub fn from_primitive(prim: u32) -> Option<Self> {
96 match prim {
97 0 => Some(Self::None),
98 1 => Some(Self::NeverEvict),
99 2 => Some(Self::EvictImmediately),
100 _ => None,
101 }
102 }
103
104 #[inline]
105 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
106 match prim {
107 0 => Self::None,
108 1 => Self::NeverEvict,
109 2 => Self::EvictImmediately,
110 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
111 }
112 }
113
114 #[inline]
115 pub fn unknown() -> Self {
116 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
117 }
118
119 #[inline]
120 pub const fn into_primitive(self) -> u32 {
121 match self {
122 Self::None => 0,
123 Self::NeverEvict => 1,
124 Self::EvictImmediately => 2,
125 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
126 }
127 }
128
129 #[inline]
130 pub fn is_unknown(&self) -> bool {
131 match self {
132 Self::__SourceBreaking { unknown_ordinal: _ } => true,
133 _ => false,
134 }
135 }
136}
137
138#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
139#[repr(C)]
140pub struct VolumeSetLimitRequest {
141 pub bytes: u64,
142}
143
144impl fidl::Persistable for VolumeSetLimitRequest {}
145
146#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
147#[repr(C)]
148pub struct VolumeGetLimitResponse {
149 pub bytes: u64,
150}
151
152impl fidl::Persistable for VolumeGetLimitResponse {}
153
154#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
155pub struct VolumesRemoveRequest {
156 pub name: String,
157}
158
159impl fidl::Persistable for VolumesRemoveRequest {}
160
161#[derive(Clone, Debug, Default, PartialEq)]
163pub struct FormatOptions {
164 pub verbose: Option<bool>,
166 pub deprecated_padded_blobfs_format: Option<bool>,
168 pub num_inodes: Option<u64>,
171 pub fvm_data_slices: Option<u32>,
173 pub sectors_per_cluster: Option<u16>,
175 #[doc(hidden)]
176 pub __source_breaking: fidl::marker::SourceBreaking,
177}
178
179impl fidl::Persistable for FormatOptions {}
180
181#[derive(Clone, Debug, Default, PartialEq)]
183pub struct StartOptions {
184 pub read_only: Option<bool>,
186 pub verbose: Option<bool>,
188 pub fsck_after_every_transaction: Option<bool>,
191 pub write_compression_algorithm: Option<CompressionAlgorithm>,
194 pub write_compression_level: Option<i32>,
198 pub cache_eviction_policy_override: Option<EvictionPolicyOverride>,
201 pub startup_profiling_seconds: Option<u32>,
206 pub inline_crypto_enabled: Option<bool>,
215 pub barriers_enabled: Option<bool>,
221 #[doc(hidden)]
222 pub __source_breaking: fidl::marker::SourceBreaking,
223}
224
225impl fidl::Persistable for StartOptions {}
226
227pub mod startup_ordinals {
228 pub const START: u64 = 0x317aa9458d3190c8;
229 pub const FORMAT: u64 = 0x3124676dd91933de;
230 pub const CHECK: u64 = 0x81e85b3190e7db3;
231}
232
233pub mod volume_ordinals {
234 pub const MOUNT: u64 = 0x3470ab56d455af0;
235 pub const CHECK: u64 = 0x5b638348f5e0418c;
236 pub const SET_LIMIT: u64 = 0x19286d83eb3cd137;
237 pub const GET_LIMIT: u64 = 0xb14e4950939f16;
238}
239
240pub mod volumes_ordinals {
241 pub const CREATE: u64 = 0x11a55097834b38e8;
242 pub const REMOVE: u64 = 0x70983b9344dc2292;
243}
244
245mod internal {
246 use super::*;
247 unsafe impl fidl::encoding::TypeMarker for CompressionAlgorithm {
248 type Owned = Self;
249
250 #[inline(always)]
251 fn inline_align(_context: fidl::encoding::Context) -> usize {
252 std::mem::align_of::<u32>()
253 }
254
255 #[inline(always)]
256 fn inline_size(_context: fidl::encoding::Context) -> usize {
257 std::mem::size_of::<u32>()
258 }
259
260 #[inline(always)]
261 fn encode_is_copy() -> bool {
262 false
263 }
264
265 #[inline(always)]
266 fn decode_is_copy() -> bool {
267 false
268 }
269 }
270
271 impl fidl::encoding::ValueTypeMarker for CompressionAlgorithm {
272 type Borrowed<'a> = Self;
273 #[inline(always)]
274 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
275 *value
276 }
277 }
278
279 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
280 for CompressionAlgorithm
281 {
282 #[inline]
283 unsafe fn encode(
284 self,
285 encoder: &mut fidl::encoding::Encoder<'_, D>,
286 offset: usize,
287 _depth: fidl::encoding::Depth,
288 ) -> fidl::Result<()> {
289 encoder.debug_check_bounds::<Self>(offset);
290 encoder.write_num(self.into_primitive(), offset);
291 Ok(())
292 }
293 }
294
295 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompressionAlgorithm {
296 #[inline(always)]
297 fn new_empty() -> Self {
298 Self::unknown()
299 }
300
301 #[inline]
302 unsafe fn decode(
303 &mut self,
304 decoder: &mut fidl::encoding::Decoder<'_, D>,
305 offset: usize,
306 _depth: fidl::encoding::Depth,
307 ) -> fidl::Result<()> {
308 decoder.debug_check_bounds::<Self>(offset);
309 let prim = decoder.read_num::<u32>(offset);
310
311 *self = Self::from_primitive_allow_unknown(prim);
312 Ok(())
313 }
314 }
315 unsafe impl fidl::encoding::TypeMarker for EvictionPolicyOverride {
316 type Owned = Self;
317
318 #[inline(always)]
319 fn inline_align(_context: fidl::encoding::Context) -> usize {
320 std::mem::align_of::<u32>()
321 }
322
323 #[inline(always)]
324 fn inline_size(_context: fidl::encoding::Context) -> usize {
325 std::mem::size_of::<u32>()
326 }
327
328 #[inline(always)]
329 fn encode_is_copy() -> bool {
330 false
331 }
332
333 #[inline(always)]
334 fn decode_is_copy() -> bool {
335 false
336 }
337 }
338
339 impl fidl::encoding::ValueTypeMarker for EvictionPolicyOverride {
340 type Borrowed<'a> = Self;
341 #[inline(always)]
342 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
343 *value
344 }
345 }
346
347 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
348 for EvictionPolicyOverride
349 {
350 #[inline]
351 unsafe fn encode(
352 self,
353 encoder: &mut fidl::encoding::Encoder<'_, D>,
354 offset: usize,
355 _depth: fidl::encoding::Depth,
356 ) -> fidl::Result<()> {
357 encoder.debug_check_bounds::<Self>(offset);
358 encoder.write_num(self.into_primitive(), offset);
359 Ok(())
360 }
361 }
362
363 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
364 for EvictionPolicyOverride
365 {
366 #[inline(always)]
367 fn new_empty() -> Self {
368 Self::unknown()
369 }
370
371 #[inline]
372 unsafe fn decode(
373 &mut self,
374 decoder: &mut fidl::encoding::Decoder<'_, D>,
375 offset: usize,
376 _depth: fidl::encoding::Depth,
377 ) -> fidl::Result<()> {
378 decoder.debug_check_bounds::<Self>(offset);
379 let prim = decoder.read_num::<u32>(offset);
380
381 *self = Self::from_primitive_allow_unknown(prim);
382 Ok(())
383 }
384 }
385
386 impl fidl::encoding::ValueTypeMarker for VolumeSetLimitRequest {
387 type Borrowed<'a> = &'a Self;
388 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
389 value
390 }
391 }
392
393 unsafe impl fidl::encoding::TypeMarker for VolumeSetLimitRequest {
394 type Owned = Self;
395
396 #[inline(always)]
397 fn inline_align(_context: fidl::encoding::Context) -> usize {
398 8
399 }
400
401 #[inline(always)]
402 fn inline_size(_context: fidl::encoding::Context) -> usize {
403 8
404 }
405 #[inline(always)]
406 fn encode_is_copy() -> bool {
407 true
408 }
409
410 #[inline(always)]
411 fn decode_is_copy() -> bool {
412 true
413 }
414 }
415
416 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VolumeSetLimitRequest, D>
417 for &VolumeSetLimitRequest
418 {
419 #[inline]
420 unsafe fn encode(
421 self,
422 encoder: &mut fidl::encoding::Encoder<'_, D>,
423 offset: usize,
424 _depth: fidl::encoding::Depth,
425 ) -> fidl::Result<()> {
426 encoder.debug_check_bounds::<VolumeSetLimitRequest>(offset);
427 unsafe {
428 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
430 (buf_ptr as *mut VolumeSetLimitRequest)
431 .write_unaligned((self as *const VolumeSetLimitRequest).read());
432 }
435 Ok(())
436 }
437 }
438 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
439 fidl::encoding::Encode<VolumeSetLimitRequest, D> for (T0,)
440 {
441 #[inline]
442 unsafe fn encode(
443 self,
444 encoder: &mut fidl::encoding::Encoder<'_, D>,
445 offset: usize,
446 depth: fidl::encoding::Depth,
447 ) -> fidl::Result<()> {
448 encoder.debug_check_bounds::<VolumeSetLimitRequest>(offset);
449 self.0.encode(encoder, offset + 0, depth)?;
453 Ok(())
454 }
455 }
456
457 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VolumeSetLimitRequest {
458 #[inline(always)]
459 fn new_empty() -> Self {
460 Self { bytes: fidl::new_empty!(u64, D) }
461 }
462
463 #[inline]
464 unsafe fn decode(
465 &mut self,
466 decoder: &mut fidl::encoding::Decoder<'_, D>,
467 offset: usize,
468 _depth: fidl::encoding::Depth,
469 ) -> fidl::Result<()> {
470 decoder.debug_check_bounds::<Self>(offset);
471 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
472 unsafe {
475 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
476 }
477 Ok(())
478 }
479 }
480
481 impl fidl::encoding::ValueTypeMarker for VolumeGetLimitResponse {
482 type Borrowed<'a> = &'a Self;
483 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
484 value
485 }
486 }
487
488 unsafe impl fidl::encoding::TypeMarker for VolumeGetLimitResponse {
489 type Owned = Self;
490
491 #[inline(always)]
492 fn inline_align(_context: fidl::encoding::Context) -> usize {
493 8
494 }
495
496 #[inline(always)]
497 fn inline_size(_context: fidl::encoding::Context) -> usize {
498 8
499 }
500 #[inline(always)]
501 fn encode_is_copy() -> bool {
502 true
503 }
504
505 #[inline(always)]
506 fn decode_is_copy() -> bool {
507 true
508 }
509 }
510
511 unsafe impl<D: fidl::encoding::ResourceDialect>
512 fidl::encoding::Encode<VolumeGetLimitResponse, D> for &VolumeGetLimitResponse
513 {
514 #[inline]
515 unsafe fn encode(
516 self,
517 encoder: &mut fidl::encoding::Encoder<'_, D>,
518 offset: usize,
519 _depth: fidl::encoding::Depth,
520 ) -> fidl::Result<()> {
521 encoder.debug_check_bounds::<VolumeGetLimitResponse>(offset);
522 unsafe {
523 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
525 (buf_ptr as *mut VolumeGetLimitResponse)
526 .write_unaligned((self as *const VolumeGetLimitResponse).read());
527 }
530 Ok(())
531 }
532 }
533 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
534 fidl::encoding::Encode<VolumeGetLimitResponse, D> for (T0,)
535 {
536 #[inline]
537 unsafe fn encode(
538 self,
539 encoder: &mut fidl::encoding::Encoder<'_, D>,
540 offset: usize,
541 depth: fidl::encoding::Depth,
542 ) -> fidl::Result<()> {
543 encoder.debug_check_bounds::<VolumeGetLimitResponse>(offset);
544 self.0.encode(encoder, offset + 0, depth)?;
548 Ok(())
549 }
550 }
551
552 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
553 for VolumeGetLimitResponse
554 {
555 #[inline(always)]
556 fn new_empty() -> Self {
557 Self { bytes: fidl::new_empty!(u64, D) }
558 }
559
560 #[inline]
561 unsafe fn decode(
562 &mut self,
563 decoder: &mut fidl::encoding::Decoder<'_, D>,
564 offset: usize,
565 _depth: fidl::encoding::Depth,
566 ) -> fidl::Result<()> {
567 decoder.debug_check_bounds::<Self>(offset);
568 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
569 unsafe {
572 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
573 }
574 Ok(())
575 }
576 }
577
578 impl fidl::encoding::ValueTypeMarker for VolumesRemoveRequest {
579 type Borrowed<'a> = &'a Self;
580 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
581 value
582 }
583 }
584
585 unsafe impl fidl::encoding::TypeMarker for VolumesRemoveRequest {
586 type Owned = Self;
587
588 #[inline(always)]
589 fn inline_align(_context: fidl::encoding::Context) -> usize {
590 8
591 }
592
593 #[inline(always)]
594 fn inline_size(_context: fidl::encoding::Context) -> usize {
595 16
596 }
597 }
598
599 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VolumesRemoveRequest, D>
600 for &VolumesRemoveRequest
601 {
602 #[inline]
603 unsafe fn encode(
604 self,
605 encoder: &mut fidl::encoding::Encoder<'_, D>,
606 offset: usize,
607 _depth: fidl::encoding::Depth,
608 ) -> fidl::Result<()> {
609 encoder.debug_check_bounds::<VolumesRemoveRequest>(offset);
610 fidl::encoding::Encode::<VolumesRemoveRequest, D>::encode(
612 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
613 &self.name,
614 ),),
615 encoder,
616 offset,
617 _depth,
618 )
619 }
620 }
621 unsafe impl<
622 D: fidl::encoding::ResourceDialect,
623 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
624 > fidl::encoding::Encode<VolumesRemoveRequest, D> for (T0,)
625 {
626 #[inline]
627 unsafe fn encode(
628 self,
629 encoder: &mut fidl::encoding::Encoder<'_, D>,
630 offset: usize,
631 depth: fidl::encoding::Depth,
632 ) -> fidl::Result<()> {
633 encoder.debug_check_bounds::<VolumesRemoveRequest>(offset);
634 self.0.encode(encoder, offset + 0, depth)?;
638 Ok(())
639 }
640 }
641
642 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VolumesRemoveRequest {
643 #[inline(always)]
644 fn new_empty() -> Self {
645 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
646 }
647
648 #[inline]
649 unsafe fn decode(
650 &mut self,
651 decoder: &mut fidl::encoding::Decoder<'_, D>,
652 offset: usize,
653 _depth: fidl::encoding::Depth,
654 ) -> fidl::Result<()> {
655 decoder.debug_check_bounds::<Self>(offset);
656 fidl::decode!(
658 fidl::encoding::BoundedString<255>,
659 D,
660 &mut self.name,
661 decoder,
662 offset + 0,
663 _depth
664 )?;
665 Ok(())
666 }
667 }
668
669 impl FormatOptions {
670 #[inline(always)]
671 fn max_ordinal_present(&self) -> u64 {
672 if let Some(_) = self.sectors_per_cluster {
673 return 5;
674 }
675 if let Some(_) = self.fvm_data_slices {
676 return 4;
677 }
678 if let Some(_) = self.num_inodes {
679 return 3;
680 }
681 if let Some(_) = self.deprecated_padded_blobfs_format {
682 return 2;
683 }
684 if let Some(_) = self.verbose {
685 return 1;
686 }
687 0
688 }
689 }
690
691 impl fidl::encoding::ValueTypeMarker for FormatOptions {
692 type Borrowed<'a> = &'a Self;
693 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
694 value
695 }
696 }
697
698 unsafe impl fidl::encoding::TypeMarker for FormatOptions {
699 type Owned = Self;
700
701 #[inline(always)]
702 fn inline_align(_context: fidl::encoding::Context) -> usize {
703 8
704 }
705
706 #[inline(always)]
707 fn inline_size(_context: fidl::encoding::Context) -> usize {
708 16
709 }
710 }
711
712 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FormatOptions, D>
713 for &FormatOptions
714 {
715 unsafe fn encode(
716 self,
717 encoder: &mut fidl::encoding::Encoder<'_, D>,
718 offset: usize,
719 mut depth: fidl::encoding::Depth,
720 ) -> fidl::Result<()> {
721 encoder.debug_check_bounds::<FormatOptions>(offset);
722 let max_ordinal: u64 = self.max_ordinal_present();
724 encoder.write_num(max_ordinal, offset);
725 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
726 if max_ordinal == 0 {
728 return Ok(());
729 }
730 depth.increment()?;
731 let envelope_size = 8;
732 let bytes_len = max_ordinal as usize * envelope_size;
733 #[allow(unused_variables)]
734 let offset = encoder.out_of_line_offset(bytes_len);
735 let mut _prev_end_offset: usize = 0;
736 if 1 > max_ordinal {
737 return Ok(());
738 }
739
740 let cur_offset: usize = (1 - 1) * envelope_size;
743
744 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
746
747 fidl::encoding::encode_in_envelope_optional::<bool, D>(
752 self.verbose.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
753 encoder,
754 offset + cur_offset,
755 depth,
756 )?;
757
758 _prev_end_offset = cur_offset + envelope_size;
759 if 2 > max_ordinal {
760 return Ok(());
761 }
762
763 let cur_offset: usize = (2 - 1) * envelope_size;
766
767 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
769
770 fidl::encoding::encode_in_envelope_optional::<bool, D>(
775 self.deprecated_padded_blobfs_format
776 .as_ref()
777 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
778 encoder,
779 offset + cur_offset,
780 depth,
781 )?;
782
783 _prev_end_offset = cur_offset + envelope_size;
784 if 3 > max_ordinal {
785 return Ok(());
786 }
787
788 let cur_offset: usize = (3 - 1) * envelope_size;
791
792 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
794
795 fidl::encoding::encode_in_envelope_optional::<u64, D>(
800 self.num_inodes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
801 encoder,
802 offset + cur_offset,
803 depth,
804 )?;
805
806 _prev_end_offset = cur_offset + envelope_size;
807 if 4 > max_ordinal {
808 return Ok(());
809 }
810
811 let cur_offset: usize = (4 - 1) * envelope_size;
814
815 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
817
818 fidl::encoding::encode_in_envelope_optional::<u32, D>(
823 self.fvm_data_slices.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
824 encoder,
825 offset + cur_offset,
826 depth,
827 )?;
828
829 _prev_end_offset = cur_offset + envelope_size;
830 if 5 > max_ordinal {
831 return Ok(());
832 }
833
834 let cur_offset: usize = (5 - 1) * envelope_size;
837
838 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
840
841 fidl::encoding::encode_in_envelope_optional::<u16, D>(
846 self.sectors_per_cluster
847 .as_ref()
848 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
849 encoder,
850 offset + cur_offset,
851 depth,
852 )?;
853
854 _prev_end_offset = cur_offset + envelope_size;
855
856 Ok(())
857 }
858 }
859
860 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FormatOptions {
861 #[inline(always)]
862 fn new_empty() -> Self {
863 Self::default()
864 }
865
866 unsafe fn decode(
867 &mut self,
868 decoder: &mut fidl::encoding::Decoder<'_, D>,
869 offset: usize,
870 mut depth: fidl::encoding::Depth,
871 ) -> fidl::Result<()> {
872 decoder.debug_check_bounds::<Self>(offset);
873 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
874 None => return Err(fidl::Error::NotNullable),
875 Some(len) => len,
876 };
877 if len == 0 {
879 return Ok(());
880 };
881 depth.increment()?;
882 let envelope_size = 8;
883 let bytes_len = len * envelope_size;
884 let offset = decoder.out_of_line_offset(bytes_len)?;
885 let mut _next_ordinal_to_read = 0;
887 let mut next_offset = offset;
888 let end_offset = offset + bytes_len;
889 _next_ordinal_to_read += 1;
890 if next_offset >= end_offset {
891 return Ok(());
892 }
893
894 while _next_ordinal_to_read < 1 {
896 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
897 _next_ordinal_to_read += 1;
898 next_offset += envelope_size;
899 }
900
901 let next_out_of_line = decoder.next_out_of_line();
902 let handles_before = decoder.remaining_handles();
903 if let Some((inlined, num_bytes, num_handles)) =
904 fidl::encoding::decode_envelope_header(decoder, next_offset)?
905 {
906 let member_inline_size =
907 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
908 if inlined != (member_inline_size <= 4) {
909 return Err(fidl::Error::InvalidInlineBitInEnvelope);
910 }
911 let inner_offset;
912 let mut inner_depth = depth.clone();
913 if inlined {
914 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
915 inner_offset = next_offset;
916 } else {
917 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
918 inner_depth.increment()?;
919 }
920 let val_ref = self.verbose.get_or_insert_with(|| fidl::new_empty!(bool, D));
921 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
922 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
923 {
924 return Err(fidl::Error::InvalidNumBytesInEnvelope);
925 }
926 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
927 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
928 }
929 }
930
931 next_offset += envelope_size;
932 _next_ordinal_to_read += 1;
933 if next_offset >= end_offset {
934 return Ok(());
935 }
936
937 while _next_ordinal_to_read < 2 {
939 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
940 _next_ordinal_to_read += 1;
941 next_offset += envelope_size;
942 }
943
944 let next_out_of_line = decoder.next_out_of_line();
945 let handles_before = decoder.remaining_handles();
946 if let Some((inlined, num_bytes, num_handles)) =
947 fidl::encoding::decode_envelope_header(decoder, next_offset)?
948 {
949 let member_inline_size =
950 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
951 if inlined != (member_inline_size <= 4) {
952 return Err(fidl::Error::InvalidInlineBitInEnvelope);
953 }
954 let inner_offset;
955 let mut inner_depth = depth.clone();
956 if inlined {
957 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
958 inner_offset = next_offset;
959 } else {
960 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
961 inner_depth.increment()?;
962 }
963 let val_ref = self
964 .deprecated_padded_blobfs_format
965 .get_or_insert_with(|| fidl::new_empty!(bool, D));
966 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
967 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
968 {
969 return Err(fidl::Error::InvalidNumBytesInEnvelope);
970 }
971 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
972 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
973 }
974 }
975
976 next_offset += envelope_size;
977 _next_ordinal_to_read += 1;
978 if next_offset >= end_offset {
979 return Ok(());
980 }
981
982 while _next_ordinal_to_read < 3 {
984 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
985 _next_ordinal_to_read += 1;
986 next_offset += envelope_size;
987 }
988
989 let next_out_of_line = decoder.next_out_of_line();
990 let handles_before = decoder.remaining_handles();
991 if let Some((inlined, num_bytes, num_handles)) =
992 fidl::encoding::decode_envelope_header(decoder, next_offset)?
993 {
994 let member_inline_size =
995 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
996 if inlined != (member_inline_size <= 4) {
997 return Err(fidl::Error::InvalidInlineBitInEnvelope);
998 }
999 let inner_offset;
1000 let mut inner_depth = depth.clone();
1001 if inlined {
1002 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1003 inner_offset = next_offset;
1004 } else {
1005 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1006 inner_depth.increment()?;
1007 }
1008 let val_ref = self.num_inodes.get_or_insert_with(|| fidl::new_empty!(u64, D));
1009 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1010 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1011 {
1012 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1013 }
1014 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1015 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1016 }
1017 }
1018
1019 next_offset += envelope_size;
1020 _next_ordinal_to_read += 1;
1021 if next_offset >= end_offset {
1022 return Ok(());
1023 }
1024
1025 while _next_ordinal_to_read < 4 {
1027 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1028 _next_ordinal_to_read += 1;
1029 next_offset += envelope_size;
1030 }
1031
1032 let next_out_of_line = decoder.next_out_of_line();
1033 let handles_before = decoder.remaining_handles();
1034 if let Some((inlined, num_bytes, num_handles)) =
1035 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1036 {
1037 let member_inline_size =
1038 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1039 if inlined != (member_inline_size <= 4) {
1040 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1041 }
1042 let inner_offset;
1043 let mut inner_depth = depth.clone();
1044 if inlined {
1045 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1046 inner_offset = next_offset;
1047 } else {
1048 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1049 inner_depth.increment()?;
1050 }
1051 let val_ref = self.fvm_data_slices.get_or_insert_with(|| fidl::new_empty!(u32, D));
1052 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
1053 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1054 {
1055 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1056 }
1057 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1058 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1059 }
1060 }
1061
1062 next_offset += envelope_size;
1063 _next_ordinal_to_read += 1;
1064 if next_offset >= end_offset {
1065 return Ok(());
1066 }
1067
1068 while _next_ordinal_to_read < 5 {
1070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1071 _next_ordinal_to_read += 1;
1072 next_offset += envelope_size;
1073 }
1074
1075 let next_out_of_line = decoder.next_out_of_line();
1076 let handles_before = decoder.remaining_handles();
1077 if let Some((inlined, num_bytes, num_handles)) =
1078 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1079 {
1080 let member_inline_size =
1081 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1082 if inlined != (member_inline_size <= 4) {
1083 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1084 }
1085 let inner_offset;
1086 let mut inner_depth = depth.clone();
1087 if inlined {
1088 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1089 inner_offset = next_offset;
1090 } else {
1091 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1092 inner_depth.increment()?;
1093 }
1094 let val_ref =
1095 self.sectors_per_cluster.get_or_insert_with(|| fidl::new_empty!(u16, D));
1096 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
1097 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1098 {
1099 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1100 }
1101 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1102 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1103 }
1104 }
1105
1106 next_offset += envelope_size;
1107
1108 while next_offset < end_offset {
1110 _next_ordinal_to_read += 1;
1111 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1112 next_offset += envelope_size;
1113 }
1114
1115 Ok(())
1116 }
1117 }
1118
1119 impl StartOptions {
1120 #[inline(always)]
1121 fn max_ordinal_present(&self) -> u64 {
1122 if let Some(_) = self.barriers_enabled {
1123 return 9;
1124 }
1125 if let Some(_) = self.inline_crypto_enabled {
1126 return 8;
1127 }
1128 if let Some(_) = self.startup_profiling_seconds {
1129 return 7;
1130 }
1131 if let Some(_) = self.cache_eviction_policy_override {
1132 return 6;
1133 }
1134 if let Some(_) = self.write_compression_level {
1135 return 5;
1136 }
1137 if let Some(_) = self.write_compression_algorithm {
1138 return 4;
1139 }
1140 if let Some(_) = self.fsck_after_every_transaction {
1141 return 3;
1142 }
1143 if let Some(_) = self.verbose {
1144 return 2;
1145 }
1146 if let Some(_) = self.read_only {
1147 return 1;
1148 }
1149 0
1150 }
1151 }
1152
1153 impl fidl::encoding::ValueTypeMarker for StartOptions {
1154 type Borrowed<'a> = &'a Self;
1155 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1156 value
1157 }
1158 }
1159
1160 unsafe impl fidl::encoding::TypeMarker for StartOptions {
1161 type Owned = Self;
1162
1163 #[inline(always)]
1164 fn inline_align(_context: fidl::encoding::Context) -> usize {
1165 8
1166 }
1167
1168 #[inline(always)]
1169 fn inline_size(_context: fidl::encoding::Context) -> usize {
1170 16
1171 }
1172 }
1173
1174 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StartOptions, D>
1175 for &StartOptions
1176 {
1177 unsafe fn encode(
1178 self,
1179 encoder: &mut fidl::encoding::Encoder<'_, D>,
1180 offset: usize,
1181 mut depth: fidl::encoding::Depth,
1182 ) -> fidl::Result<()> {
1183 encoder.debug_check_bounds::<StartOptions>(offset);
1184 let max_ordinal: u64 = self.max_ordinal_present();
1186 encoder.write_num(max_ordinal, offset);
1187 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1188 if max_ordinal == 0 {
1190 return Ok(());
1191 }
1192 depth.increment()?;
1193 let envelope_size = 8;
1194 let bytes_len = max_ordinal as usize * envelope_size;
1195 #[allow(unused_variables)]
1196 let offset = encoder.out_of_line_offset(bytes_len);
1197 let mut _prev_end_offset: usize = 0;
1198 if 1 > max_ordinal {
1199 return Ok(());
1200 }
1201
1202 let cur_offset: usize = (1 - 1) * envelope_size;
1205
1206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1208
1209 fidl::encoding::encode_in_envelope_optional::<bool, D>(
1214 self.read_only.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
1215 encoder,
1216 offset + cur_offset,
1217 depth,
1218 )?;
1219
1220 _prev_end_offset = cur_offset + envelope_size;
1221 if 2 > max_ordinal {
1222 return Ok(());
1223 }
1224
1225 let cur_offset: usize = (2 - 1) * envelope_size;
1228
1229 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1231
1232 fidl::encoding::encode_in_envelope_optional::<bool, D>(
1237 self.verbose.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
1238 encoder,
1239 offset + cur_offset,
1240 depth,
1241 )?;
1242
1243 _prev_end_offset = cur_offset + envelope_size;
1244 if 3 > max_ordinal {
1245 return Ok(());
1246 }
1247
1248 let cur_offset: usize = (3 - 1) * envelope_size;
1251
1252 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1254
1255 fidl::encoding::encode_in_envelope_optional::<bool, D>(
1260 self.fsck_after_every_transaction
1261 .as_ref()
1262 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
1263 encoder,
1264 offset + cur_offset,
1265 depth,
1266 )?;
1267
1268 _prev_end_offset = cur_offset + envelope_size;
1269 if 4 > max_ordinal {
1270 return Ok(());
1271 }
1272
1273 let cur_offset: usize = (4 - 1) * envelope_size;
1276
1277 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1279
1280 fidl::encoding::encode_in_envelope_optional::<CompressionAlgorithm, D>(
1285 self.write_compression_algorithm
1286 .as_ref()
1287 .map(<CompressionAlgorithm as fidl::encoding::ValueTypeMarker>::borrow),
1288 encoder,
1289 offset + cur_offset,
1290 depth,
1291 )?;
1292
1293 _prev_end_offset = cur_offset + envelope_size;
1294 if 5 > max_ordinal {
1295 return Ok(());
1296 }
1297
1298 let cur_offset: usize = (5 - 1) * envelope_size;
1301
1302 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1304
1305 fidl::encoding::encode_in_envelope_optional::<i32, D>(
1310 self.write_compression_level
1311 .as_ref()
1312 .map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
1313 encoder,
1314 offset + cur_offset,
1315 depth,
1316 )?;
1317
1318 _prev_end_offset = cur_offset + envelope_size;
1319 if 6 > max_ordinal {
1320 return Ok(());
1321 }
1322
1323 let cur_offset: usize = (6 - 1) * envelope_size;
1326
1327 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1329
1330 fidl::encoding::encode_in_envelope_optional::<EvictionPolicyOverride, D>(
1335 self.cache_eviction_policy_override
1336 .as_ref()
1337 .map(<EvictionPolicyOverride as fidl::encoding::ValueTypeMarker>::borrow),
1338 encoder,
1339 offset + cur_offset,
1340 depth,
1341 )?;
1342
1343 _prev_end_offset = cur_offset + envelope_size;
1344 if 7 > max_ordinal {
1345 return Ok(());
1346 }
1347
1348 let cur_offset: usize = (7 - 1) * envelope_size;
1351
1352 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1354
1355 fidl::encoding::encode_in_envelope_optional::<u32, D>(
1360 self.startup_profiling_seconds
1361 .as_ref()
1362 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1363 encoder,
1364 offset + cur_offset,
1365 depth,
1366 )?;
1367
1368 _prev_end_offset = cur_offset + envelope_size;
1369 if 8 > max_ordinal {
1370 return Ok(());
1371 }
1372
1373 let cur_offset: usize = (8 - 1) * envelope_size;
1376
1377 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1379
1380 fidl::encoding::encode_in_envelope_optional::<bool, D>(
1385 self.inline_crypto_enabled
1386 .as_ref()
1387 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
1388 encoder,
1389 offset + cur_offset,
1390 depth,
1391 )?;
1392
1393 _prev_end_offset = cur_offset + envelope_size;
1394 if 9 > max_ordinal {
1395 return Ok(());
1396 }
1397
1398 let cur_offset: usize = (9 - 1) * envelope_size;
1401
1402 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1404
1405 fidl::encoding::encode_in_envelope_optional::<bool, D>(
1410 self.barriers_enabled
1411 .as_ref()
1412 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
1413 encoder,
1414 offset + cur_offset,
1415 depth,
1416 )?;
1417
1418 _prev_end_offset = cur_offset + envelope_size;
1419
1420 Ok(())
1421 }
1422 }
1423
1424 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartOptions {
1425 #[inline(always)]
1426 fn new_empty() -> Self {
1427 Self::default()
1428 }
1429
1430 unsafe fn decode(
1431 &mut self,
1432 decoder: &mut fidl::encoding::Decoder<'_, D>,
1433 offset: usize,
1434 mut depth: fidl::encoding::Depth,
1435 ) -> fidl::Result<()> {
1436 decoder.debug_check_bounds::<Self>(offset);
1437 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1438 None => return Err(fidl::Error::NotNullable),
1439 Some(len) => len,
1440 };
1441 if len == 0 {
1443 return Ok(());
1444 };
1445 depth.increment()?;
1446 let envelope_size = 8;
1447 let bytes_len = len * envelope_size;
1448 let offset = decoder.out_of_line_offset(bytes_len)?;
1449 let mut _next_ordinal_to_read = 0;
1451 let mut next_offset = offset;
1452 let end_offset = offset + bytes_len;
1453 _next_ordinal_to_read += 1;
1454 if next_offset >= end_offset {
1455 return Ok(());
1456 }
1457
1458 while _next_ordinal_to_read < 1 {
1460 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1461 _next_ordinal_to_read += 1;
1462 next_offset += envelope_size;
1463 }
1464
1465 let next_out_of_line = decoder.next_out_of_line();
1466 let handles_before = decoder.remaining_handles();
1467 if let Some((inlined, num_bytes, num_handles)) =
1468 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1469 {
1470 let member_inline_size =
1471 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1472 if inlined != (member_inline_size <= 4) {
1473 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1474 }
1475 let inner_offset;
1476 let mut inner_depth = depth.clone();
1477 if inlined {
1478 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1479 inner_offset = next_offset;
1480 } else {
1481 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1482 inner_depth.increment()?;
1483 }
1484 let val_ref = self.read_only.get_or_insert_with(|| fidl::new_empty!(bool, D));
1485 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
1486 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1487 {
1488 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1489 }
1490 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1491 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1492 }
1493 }
1494
1495 next_offset += envelope_size;
1496 _next_ordinal_to_read += 1;
1497 if next_offset >= end_offset {
1498 return Ok(());
1499 }
1500
1501 while _next_ordinal_to_read < 2 {
1503 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1504 _next_ordinal_to_read += 1;
1505 next_offset += envelope_size;
1506 }
1507
1508 let next_out_of_line = decoder.next_out_of_line();
1509 let handles_before = decoder.remaining_handles();
1510 if let Some((inlined, num_bytes, num_handles)) =
1511 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1512 {
1513 let member_inline_size =
1514 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1515 if inlined != (member_inline_size <= 4) {
1516 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1517 }
1518 let inner_offset;
1519 let mut inner_depth = depth.clone();
1520 if inlined {
1521 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1522 inner_offset = next_offset;
1523 } else {
1524 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1525 inner_depth.increment()?;
1526 }
1527 let val_ref = self.verbose.get_or_insert_with(|| fidl::new_empty!(bool, D));
1528 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
1529 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1530 {
1531 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1532 }
1533 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1534 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1535 }
1536 }
1537
1538 next_offset += envelope_size;
1539 _next_ordinal_to_read += 1;
1540 if next_offset >= end_offset {
1541 return Ok(());
1542 }
1543
1544 while _next_ordinal_to_read < 3 {
1546 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1547 _next_ordinal_to_read += 1;
1548 next_offset += envelope_size;
1549 }
1550
1551 let next_out_of_line = decoder.next_out_of_line();
1552 let handles_before = decoder.remaining_handles();
1553 if let Some((inlined, num_bytes, num_handles)) =
1554 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1555 {
1556 let member_inline_size =
1557 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1558 if inlined != (member_inline_size <= 4) {
1559 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1560 }
1561 let inner_offset;
1562 let mut inner_depth = depth.clone();
1563 if inlined {
1564 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1565 inner_offset = next_offset;
1566 } else {
1567 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1568 inner_depth.increment()?;
1569 }
1570 let val_ref = self
1571 .fsck_after_every_transaction
1572 .get_or_insert_with(|| fidl::new_empty!(bool, D));
1573 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
1574 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1575 {
1576 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1577 }
1578 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1579 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1580 }
1581 }
1582
1583 next_offset += envelope_size;
1584 _next_ordinal_to_read += 1;
1585 if next_offset >= end_offset {
1586 return Ok(());
1587 }
1588
1589 while _next_ordinal_to_read < 4 {
1591 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1592 _next_ordinal_to_read += 1;
1593 next_offset += envelope_size;
1594 }
1595
1596 let next_out_of_line = decoder.next_out_of_line();
1597 let handles_before = decoder.remaining_handles();
1598 if let Some((inlined, num_bytes, num_handles)) =
1599 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1600 {
1601 let member_inline_size =
1602 <CompressionAlgorithm as fidl::encoding::TypeMarker>::inline_size(
1603 decoder.context,
1604 );
1605 if inlined != (member_inline_size <= 4) {
1606 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1607 }
1608 let inner_offset;
1609 let mut inner_depth = depth.clone();
1610 if inlined {
1611 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1612 inner_offset = next_offset;
1613 } else {
1614 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1615 inner_depth.increment()?;
1616 }
1617 let val_ref = self
1618 .write_compression_algorithm
1619 .get_or_insert_with(|| fidl::new_empty!(CompressionAlgorithm, D));
1620 fidl::decode!(
1621 CompressionAlgorithm,
1622 D,
1623 val_ref,
1624 decoder,
1625 inner_offset,
1626 inner_depth
1627 )?;
1628 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1629 {
1630 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1631 }
1632 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1633 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1634 }
1635 }
1636
1637 next_offset += envelope_size;
1638 _next_ordinal_to_read += 1;
1639 if next_offset >= end_offset {
1640 return Ok(());
1641 }
1642
1643 while _next_ordinal_to_read < 5 {
1645 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1646 _next_ordinal_to_read += 1;
1647 next_offset += envelope_size;
1648 }
1649
1650 let next_out_of_line = decoder.next_out_of_line();
1651 let handles_before = decoder.remaining_handles();
1652 if let Some((inlined, num_bytes, num_handles)) =
1653 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1654 {
1655 let member_inline_size =
1656 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1657 if inlined != (member_inline_size <= 4) {
1658 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1659 }
1660 let inner_offset;
1661 let mut inner_depth = depth.clone();
1662 if inlined {
1663 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1664 inner_offset = next_offset;
1665 } else {
1666 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1667 inner_depth.increment()?;
1668 }
1669 let val_ref =
1670 self.write_compression_level.get_or_insert_with(|| fidl::new_empty!(i32, D));
1671 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
1672 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1673 {
1674 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1675 }
1676 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1677 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1678 }
1679 }
1680
1681 next_offset += envelope_size;
1682 _next_ordinal_to_read += 1;
1683 if next_offset >= end_offset {
1684 return Ok(());
1685 }
1686
1687 while _next_ordinal_to_read < 6 {
1689 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1690 _next_ordinal_to_read += 1;
1691 next_offset += envelope_size;
1692 }
1693
1694 let next_out_of_line = decoder.next_out_of_line();
1695 let handles_before = decoder.remaining_handles();
1696 if let Some((inlined, num_bytes, num_handles)) =
1697 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1698 {
1699 let member_inline_size =
1700 <EvictionPolicyOverride as fidl::encoding::TypeMarker>::inline_size(
1701 decoder.context,
1702 );
1703 if inlined != (member_inline_size <= 4) {
1704 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1705 }
1706 let inner_offset;
1707 let mut inner_depth = depth.clone();
1708 if inlined {
1709 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1710 inner_offset = next_offset;
1711 } else {
1712 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1713 inner_depth.increment()?;
1714 }
1715 let val_ref = self
1716 .cache_eviction_policy_override
1717 .get_or_insert_with(|| fidl::new_empty!(EvictionPolicyOverride, D));
1718 fidl::decode!(
1719 EvictionPolicyOverride,
1720 D,
1721 val_ref,
1722 decoder,
1723 inner_offset,
1724 inner_depth
1725 )?;
1726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1727 {
1728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1729 }
1730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1732 }
1733 }
1734
1735 next_offset += envelope_size;
1736 _next_ordinal_to_read += 1;
1737 if next_offset >= end_offset {
1738 return Ok(());
1739 }
1740
1741 while _next_ordinal_to_read < 7 {
1743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1744 _next_ordinal_to_read += 1;
1745 next_offset += envelope_size;
1746 }
1747
1748 let next_out_of_line = decoder.next_out_of_line();
1749 let handles_before = decoder.remaining_handles();
1750 if let Some((inlined, num_bytes, num_handles)) =
1751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1752 {
1753 let member_inline_size =
1754 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1755 if inlined != (member_inline_size <= 4) {
1756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1757 }
1758 let inner_offset;
1759 let mut inner_depth = depth.clone();
1760 if inlined {
1761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1762 inner_offset = next_offset;
1763 } else {
1764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1765 inner_depth.increment()?;
1766 }
1767 let val_ref =
1768 self.startup_profiling_seconds.get_or_insert_with(|| fidl::new_empty!(u32, D));
1769 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
1770 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1771 {
1772 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1773 }
1774 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1775 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1776 }
1777 }
1778
1779 next_offset += envelope_size;
1780 _next_ordinal_to_read += 1;
1781 if next_offset >= end_offset {
1782 return Ok(());
1783 }
1784
1785 while _next_ordinal_to_read < 8 {
1787 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1788 _next_ordinal_to_read += 1;
1789 next_offset += envelope_size;
1790 }
1791
1792 let next_out_of_line = decoder.next_out_of_line();
1793 let handles_before = decoder.remaining_handles();
1794 if let Some((inlined, num_bytes, num_handles)) =
1795 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1796 {
1797 let member_inline_size =
1798 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1799 if inlined != (member_inline_size <= 4) {
1800 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1801 }
1802 let inner_offset;
1803 let mut inner_depth = depth.clone();
1804 if inlined {
1805 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1806 inner_offset = next_offset;
1807 } else {
1808 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1809 inner_depth.increment()?;
1810 }
1811 let val_ref =
1812 self.inline_crypto_enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
1813 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
1814 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1815 {
1816 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1817 }
1818 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1819 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1820 }
1821 }
1822
1823 next_offset += envelope_size;
1824 _next_ordinal_to_read += 1;
1825 if next_offset >= end_offset {
1826 return Ok(());
1827 }
1828
1829 while _next_ordinal_to_read < 9 {
1831 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1832 _next_ordinal_to_read += 1;
1833 next_offset += envelope_size;
1834 }
1835
1836 let next_out_of_line = decoder.next_out_of_line();
1837 let handles_before = decoder.remaining_handles();
1838 if let Some((inlined, num_bytes, num_handles)) =
1839 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1840 {
1841 let member_inline_size =
1842 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1843 if inlined != (member_inline_size <= 4) {
1844 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1845 }
1846 let inner_offset;
1847 let mut inner_depth = depth.clone();
1848 if inlined {
1849 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1850 inner_offset = next_offset;
1851 } else {
1852 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1853 inner_depth.increment()?;
1854 }
1855 let val_ref =
1856 self.barriers_enabled.get_or_insert_with(|| fidl::new_empty!(bool, D));
1857 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
1858 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1859 {
1860 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1861 }
1862 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1863 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1864 }
1865 }
1866
1867 next_offset += envelope_size;
1868
1869 while next_offset < end_offset {
1871 _next_ordinal_to_read += 1;
1872 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1873 next_offset += envelope_size;
1874 }
1875
1876 Ok(())
1877 }
1878 }
1879}