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
11pub const DONE_MARKER: &str =
24 "DONE: A long-running `fuchsia.fuzzer.Controller` workflow is complete.";
25
26pub const FUZZ_MODE: &str = "--fuzz";
35
36pub const MAX_COVERAGE_DATA: u64 = 4096;
40
41pub const MAX_PARAMETERS: u16 = 128;
42
43pub const MAX_PARAMETER_LEN: u16 = 256;
44
45pub const MAX_PROCESS_STATS: u16 = 256;
48
49pub const MAX_SANITIZER_OPTIONS_NAME_SIZE: u16 = 32;
55
56pub const MAX_SANITIZER_OPTIONS_VALUE_SIZE: u16 = 8192;
64
65bitflags! {
66 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
72 pub struct OutputFlags: u32 {
73 const CLOSE_STDOUT = 1;
76 const CLOSE_STDERR = 2;
80 const VERBOSE = 4;
84 const LIBFUZZER = 8;
88 }
89}
90
91impl OutputFlags {}
92
93#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
95pub enum Corpus {
96 Seed,
99 Live,
102 #[doc(hidden)]
103 __SourceBreaking { unknown_ordinal: u8 },
104}
105
106#[macro_export]
108macro_rules! CorpusUnknown {
109 () => {
110 _
111 };
112}
113
114impl Corpus {
115 #[inline]
116 pub fn from_primitive(prim: u8) -> Option<Self> {
117 match prim {
118 1 => Some(Self::Seed),
119 2 => Some(Self::Live),
120 _ => None,
121 }
122 }
123
124 #[inline]
125 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
126 match prim {
127 1 => Self::Seed,
128 2 => Self::Live,
129 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
130 }
131 }
132
133 #[inline]
134 pub fn unknown() -> Self {
135 Self::__SourceBreaking { unknown_ordinal: 0xff }
136 }
137
138 #[inline]
139 pub const fn into_primitive(self) -> u8 {
140 match self {
141 Self::Seed => 1,
142 Self::Live => 2,
143 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
144 }
145 }
146
147 #[inline]
148 pub fn is_unknown(&self) -> bool {
149 match self {
150 Self::__SourceBreaking { unknown_ordinal: _ } => true,
151 _ => false,
152 }
153 }
154}
155
156#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
170pub enum Result_ {
171 NoErrors,
173 BadMalloc,
178 Crash,
181 Death,
184 Exit,
188 Leak,
191 Oom,
194 Timeout,
196 Minimized,
199 Cleansed,
203 Merged,
207 #[doc(hidden)]
208 __SourceBreaking { unknown_ordinal: u32 },
209}
210
211#[macro_export]
213macro_rules! Result_Unknown {
214 () => {
215 _
216 };
217}
218
219impl Result_ {
220 #[inline]
221 pub fn from_primitive(prim: u32) -> Option<Self> {
222 match prim {
223 1 => Some(Self::NoErrors),
224 2 => Some(Self::BadMalloc),
225 3 => Some(Self::Crash),
226 4 => Some(Self::Death),
227 5 => Some(Self::Exit),
228 6 => Some(Self::Leak),
229 7 => Some(Self::Oom),
230 8 => Some(Self::Timeout),
231 9 => Some(Self::Minimized),
232 10 => Some(Self::Cleansed),
233 11 => Some(Self::Merged),
234 _ => None,
235 }
236 }
237
238 #[inline]
239 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
240 match prim {
241 1 => Self::NoErrors,
242 2 => Self::BadMalloc,
243 3 => Self::Crash,
244 4 => Self::Death,
245 5 => Self::Exit,
246 6 => Self::Leak,
247 7 => Self::Oom,
248 8 => Self::Timeout,
249 9 => Self::Minimized,
250 10 => Self::Cleansed,
251 11 => Self::Merged,
252 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
253 }
254 }
255
256 #[inline]
257 pub fn unknown() -> Self {
258 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
259 }
260
261 #[inline]
262 pub const fn into_primitive(self) -> u32 {
263 match self {
264 Self::NoErrors => 1,
265 Self::BadMalloc => 2,
266 Self::Crash => 3,
267 Self::Death => 4,
268 Self::Exit => 5,
269 Self::Leak => 6,
270 Self::Oom => 7,
271 Self::Timeout => 8,
272 Self::Minimized => 9,
273 Self::Cleansed => 10,
274 Self::Merged => 11,
275 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
276 }
277 }
278
279 #[inline]
280 pub fn is_unknown(&self) -> bool {
281 match self {
282 Self::__SourceBreaking { unknown_ordinal: _ } => true,
283 _ => false,
284 }
285 }
286}
287
288#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
294pub enum TestOutput {
295 Stdout,
297 Stderr,
299 Syslog,
301 #[doc(hidden)]
302 __SourceBreaking { unknown_ordinal: u32 },
303}
304
305#[macro_export]
307macro_rules! TestOutputUnknown {
308 () => {
309 _
310 };
311}
312
313impl TestOutput {
314 #[inline]
315 pub fn from_primitive(prim: u32) -> Option<Self> {
316 match prim {
317 1 => Some(Self::Stdout),
318 2 => Some(Self::Stderr),
319 3 => Some(Self::Syslog),
320 _ => None,
321 }
322 }
323
324 #[inline]
325 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
326 match prim {
327 1 => Self::Stdout,
328 2 => Self::Stderr,
329 3 => Self::Syslog,
330 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
331 }
332 }
333
334 #[inline]
335 pub fn unknown() -> Self {
336 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
337 }
338
339 #[inline]
340 pub const fn into_primitive(self) -> u32 {
341 match self {
342 Self::Stdout => 1,
343 Self::Stderr => 2,
344 Self::Syslog => 3,
345 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
346 }
347 }
348
349 #[inline]
350 pub fn is_unknown(&self) -> bool {
351 match self {
352 Self::__SourceBreaking { unknown_ordinal: _ } => true,
353 _ => false,
354 }
355 }
356}
357
358#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
360pub enum UpdateReason {
361 Misc,
364 Init,
367 New,
369 Pulse,
371 Reduce,
373 Done,
375 #[doc(hidden)]
376 __SourceBreaking { unknown_ordinal: u8 },
377}
378
379#[macro_export]
381macro_rules! UpdateReasonUnknown {
382 () => {
383 _
384 };
385}
386
387impl UpdateReason {
388 #[inline]
389 pub fn from_primitive(prim: u8) -> Option<Self> {
390 match prim {
391 1 => Some(Self::Misc),
392 2 => Some(Self::Init),
393 3 => Some(Self::New),
394 4 => Some(Self::Pulse),
395 5 => Some(Self::Reduce),
396 6 => Some(Self::Done),
397 _ => None,
398 }
399 }
400
401 #[inline]
402 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
403 match prim {
404 1 => Self::Misc,
405 2 => Self::Init,
406 3 => Self::New,
407 4 => Self::Pulse,
408 5 => Self::Reduce,
409 6 => Self::Done,
410 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
411 }
412 }
413
414 #[inline]
415 pub fn unknown() -> Self {
416 Self::__SourceBreaking { unknown_ordinal: 0xff }
417 }
418
419 #[inline]
420 pub const fn into_primitive(self) -> u8 {
421 match self {
422 Self::Misc => 1,
423 Self::Init => 2,
424 Self::New => 3,
425 Self::Pulse => 4,
426 Self::Reduce => 5,
427 Self::Done => 6,
428 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
429 }
430 }
431
432 #[inline]
433 pub fn is_unknown(&self) -> bool {
434 match self {
435 Self::__SourceBreaking { unknown_ordinal: _ } => true,
436 _ => false,
437 }
438 }
439}
440
441#[derive(Clone, Debug, PartialEq)]
442pub struct ControllerConfigureRequest {
443 pub options: Options,
444}
445
446impl fidl::Persistable for ControllerConfigureRequest {}
447
448#[derive(Clone, Debug, PartialEq)]
449pub struct ControllerGetOptionsResponse {
450 pub options: Options,
451}
452
453impl fidl::Persistable for ControllerGetOptionsResponse {}
454
455#[derive(Clone, Debug, PartialEq)]
456pub struct ControllerGetStatusResponse {
457 pub status: Status,
458}
459
460impl fidl::Persistable for ControllerGetStatusResponse {}
461
462#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
463#[repr(C)]
464pub struct CorpusReaderNextResponse {
465 pub result: i32,
466}
467
468impl fidl::Persistable for CorpusReaderNextResponse {}
469
470#[derive(Clone, Debug, PartialEq)]
471pub struct CoverageDataCollectorInitializeResponse {
472 pub options: Options,
473}
474
475impl fidl::Persistable for CoverageDataCollectorInitializeResponse {}
476
477#[derive(Clone, Debug, PartialEq)]
478pub struct CoverageDataProviderSetOptionsRequest {
479 pub options: Options,
480}
481
482impl fidl::Persistable for CoverageDataProviderSetOptionsRequest {}
483
484#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
485pub struct ManagerStopRequest {
486 pub fuzzer_url: String,
487}
488
489impl fidl::Persistable for ManagerStopRequest {}
490
491#[derive(Clone, Debug, PartialEq)]
492pub struct MonitorUpdateRequest {
493 pub reason: UpdateReason,
494 pub status: Status,
495}
496
497impl fidl::Persistable for MonitorUpdateRequest {}
498
499#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
506#[repr(C)]
507pub struct ProcessStats {
508 pub koid: u64,
510 pub mem_mapped_bytes: u64,
512 pub mem_private_bytes: u64,
514 pub mem_shared_bytes: u64,
517 pub mem_scaled_shared_bytes: u64,
519 pub cpu_time: i64,
522 pub queue_time: i64,
525 pub page_fault_time: i64,
527 pub lock_contention_time: i64,
530}
531
532impl fidl::Persistable for ProcessStats {}
533
534#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
535pub struct RegistryDisconnectRequest {
536 pub fuzzer_url: String,
537}
538
539impl fidl::Persistable for RegistryDisconnectRequest {}
540
541#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
552pub struct SanitizerOptions {
553 pub name: String,
554 pub value: String,
555}
556
557impl fidl::Persistable for SanitizerOptions {}
558
559#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
560pub struct TargetAdapterGetParametersResponse {
561 pub parameters: Vec<String>,
562}
563
564impl fidl::Persistable for TargetAdapterGetParametersResponse {}
565
566#[derive(Clone, Debug, Default, PartialEq)]
568pub struct Options {
569 pub runs: Option<u32>,
572 pub max_total_time: Option<i64>,
575 pub seed: Option<u32>,
579 pub max_input_size: Option<u64>,
582 pub mutation_depth: Option<u16>,
585 pub dictionary_level: Option<u16>,
589 pub detect_exits: Option<bool>,
592 pub detect_leaks: Option<bool>,
597 pub run_limit: Option<i64>,
600 pub malloc_limit: Option<u64>,
603 pub oom_limit: Option<u64>,
607 pub purge_interval: Option<i64>,
611 pub malloc_exitcode: Option<i32>,
615 pub death_exitcode: Option<i32>,
619 pub leak_exitcode: Option<i32>,
623 pub oom_exitcode: Option<i32>,
627 pub pulse_interval: Option<i64>,
630 pub debug: Option<bool>,
636 pub print_final_stats: Option<bool>,
639 pub use_value_profile: Option<bool>,
643 pub sanitizer_options: Option<SanitizerOptions>,
645 pub output_flags: Option<OutputFlags>,
647 #[doc(hidden)]
648 pub __source_breaking: fidl::marker::SourceBreaking,
649}
650
651impl fidl::Persistable for Options {}
652
653#[derive(Clone, Debug, Default, PartialEq)]
655pub struct Status {
656 pub running: Option<bool>,
658 pub runs: Option<u32>,
660 pub elapsed: Option<i64>,
662 pub covered_pcs: Option<u64>,
664 pub covered_features: Option<u64>,
666 pub corpus_num_inputs: Option<u64>,
668 pub corpus_total_size: Option<u64>,
670 pub process_stats: Option<Vec<ProcessStats>>,
672 #[doc(hidden)]
673 pub __source_breaking: fidl::marker::SourceBreaking,
674}
675
676impl fidl::Persistable for Status {}
677
678mod internal {
679 use super::*;
680 unsafe impl fidl::encoding::TypeMarker for OutputFlags {
681 type Owned = Self;
682
683 #[inline(always)]
684 fn inline_align(_context: fidl::encoding::Context) -> usize {
685 4
686 }
687
688 #[inline(always)]
689 fn inline_size(_context: fidl::encoding::Context) -> usize {
690 4
691 }
692 }
693
694 impl fidl::encoding::ValueTypeMarker for OutputFlags {
695 type Borrowed<'a> = Self;
696 #[inline(always)]
697 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
698 *value
699 }
700 }
701
702 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for OutputFlags {
703 #[inline]
704 unsafe fn encode(
705 self,
706 encoder: &mut fidl::encoding::Encoder<'_, D>,
707 offset: usize,
708 _depth: fidl::encoding::Depth,
709 ) -> fidl::Result<()> {
710 encoder.debug_check_bounds::<Self>(offset);
711 if self.bits() & Self::all().bits() != self.bits() {
712 return Err(fidl::Error::InvalidBitsValue);
713 }
714 encoder.write_num(self.bits(), offset);
715 Ok(())
716 }
717 }
718
719 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OutputFlags {
720 #[inline(always)]
721 fn new_empty() -> Self {
722 Self::empty()
723 }
724
725 #[inline]
726 unsafe fn decode(
727 &mut self,
728 decoder: &mut fidl::encoding::Decoder<'_, D>,
729 offset: usize,
730 _depth: fidl::encoding::Depth,
731 ) -> fidl::Result<()> {
732 decoder.debug_check_bounds::<Self>(offset);
733 let prim = decoder.read_num::<u32>(offset);
734 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
735 Ok(())
736 }
737 }
738 unsafe impl fidl::encoding::TypeMarker for Corpus {
739 type Owned = Self;
740
741 #[inline(always)]
742 fn inline_align(_context: fidl::encoding::Context) -> usize {
743 std::mem::align_of::<u8>()
744 }
745
746 #[inline(always)]
747 fn inline_size(_context: fidl::encoding::Context) -> usize {
748 std::mem::size_of::<u8>()
749 }
750
751 #[inline(always)]
752 fn encode_is_copy() -> bool {
753 false
754 }
755
756 #[inline(always)]
757 fn decode_is_copy() -> bool {
758 false
759 }
760 }
761
762 impl fidl::encoding::ValueTypeMarker for Corpus {
763 type Borrowed<'a> = Self;
764 #[inline(always)]
765 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
766 *value
767 }
768 }
769
770 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Corpus {
771 #[inline]
772 unsafe fn encode(
773 self,
774 encoder: &mut fidl::encoding::Encoder<'_, D>,
775 offset: usize,
776 _depth: fidl::encoding::Depth,
777 ) -> fidl::Result<()> {
778 encoder.debug_check_bounds::<Self>(offset);
779 encoder.write_num(self.into_primitive(), offset);
780 Ok(())
781 }
782 }
783
784 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Corpus {
785 #[inline(always)]
786 fn new_empty() -> Self {
787 Self::unknown()
788 }
789
790 #[inline]
791 unsafe fn decode(
792 &mut self,
793 decoder: &mut fidl::encoding::Decoder<'_, D>,
794 offset: usize,
795 _depth: fidl::encoding::Depth,
796 ) -> fidl::Result<()> {
797 decoder.debug_check_bounds::<Self>(offset);
798 let prim = decoder.read_num::<u8>(offset);
799
800 *self = Self::from_primitive_allow_unknown(prim);
801 Ok(())
802 }
803 }
804 unsafe impl fidl::encoding::TypeMarker for Result_ {
805 type Owned = Self;
806
807 #[inline(always)]
808 fn inline_align(_context: fidl::encoding::Context) -> usize {
809 std::mem::align_of::<u32>()
810 }
811
812 #[inline(always)]
813 fn inline_size(_context: fidl::encoding::Context) -> usize {
814 std::mem::size_of::<u32>()
815 }
816
817 #[inline(always)]
818 fn encode_is_copy() -> bool {
819 false
820 }
821
822 #[inline(always)]
823 fn decode_is_copy() -> bool {
824 false
825 }
826 }
827
828 impl fidl::encoding::ValueTypeMarker for Result_ {
829 type Borrowed<'a> = Self;
830 #[inline(always)]
831 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
832 *value
833 }
834 }
835
836 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Result_ {
837 #[inline]
838 unsafe fn encode(
839 self,
840 encoder: &mut fidl::encoding::Encoder<'_, D>,
841 offset: usize,
842 _depth: fidl::encoding::Depth,
843 ) -> fidl::Result<()> {
844 encoder.debug_check_bounds::<Self>(offset);
845 encoder.write_num(self.into_primitive(), offset);
846 Ok(())
847 }
848 }
849
850 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Result_ {
851 #[inline(always)]
852 fn new_empty() -> Self {
853 Self::unknown()
854 }
855
856 #[inline]
857 unsafe fn decode(
858 &mut self,
859 decoder: &mut fidl::encoding::Decoder<'_, D>,
860 offset: usize,
861 _depth: fidl::encoding::Depth,
862 ) -> fidl::Result<()> {
863 decoder.debug_check_bounds::<Self>(offset);
864 let prim = decoder.read_num::<u32>(offset);
865
866 *self = Self::from_primitive_allow_unknown(prim);
867 Ok(())
868 }
869 }
870 unsafe impl fidl::encoding::TypeMarker for TestOutput {
871 type Owned = Self;
872
873 #[inline(always)]
874 fn inline_align(_context: fidl::encoding::Context) -> usize {
875 std::mem::align_of::<u32>()
876 }
877
878 #[inline(always)]
879 fn inline_size(_context: fidl::encoding::Context) -> usize {
880 std::mem::size_of::<u32>()
881 }
882
883 #[inline(always)]
884 fn encode_is_copy() -> bool {
885 false
886 }
887
888 #[inline(always)]
889 fn decode_is_copy() -> bool {
890 false
891 }
892 }
893
894 impl fidl::encoding::ValueTypeMarker for TestOutput {
895 type Borrowed<'a> = Self;
896 #[inline(always)]
897 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
898 *value
899 }
900 }
901
902 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for TestOutput {
903 #[inline]
904 unsafe fn encode(
905 self,
906 encoder: &mut fidl::encoding::Encoder<'_, D>,
907 offset: usize,
908 _depth: fidl::encoding::Depth,
909 ) -> fidl::Result<()> {
910 encoder.debug_check_bounds::<Self>(offset);
911 encoder.write_num(self.into_primitive(), offset);
912 Ok(())
913 }
914 }
915
916 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TestOutput {
917 #[inline(always)]
918 fn new_empty() -> Self {
919 Self::unknown()
920 }
921
922 #[inline]
923 unsafe fn decode(
924 &mut self,
925 decoder: &mut fidl::encoding::Decoder<'_, D>,
926 offset: usize,
927 _depth: fidl::encoding::Depth,
928 ) -> fidl::Result<()> {
929 decoder.debug_check_bounds::<Self>(offset);
930 let prim = decoder.read_num::<u32>(offset);
931
932 *self = Self::from_primitive_allow_unknown(prim);
933 Ok(())
934 }
935 }
936 unsafe impl fidl::encoding::TypeMarker for UpdateReason {
937 type Owned = Self;
938
939 #[inline(always)]
940 fn inline_align(_context: fidl::encoding::Context) -> usize {
941 std::mem::align_of::<u8>()
942 }
943
944 #[inline(always)]
945 fn inline_size(_context: fidl::encoding::Context) -> usize {
946 std::mem::size_of::<u8>()
947 }
948
949 #[inline(always)]
950 fn encode_is_copy() -> bool {
951 false
952 }
953
954 #[inline(always)]
955 fn decode_is_copy() -> bool {
956 false
957 }
958 }
959
960 impl fidl::encoding::ValueTypeMarker for UpdateReason {
961 type Borrowed<'a> = Self;
962 #[inline(always)]
963 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
964 *value
965 }
966 }
967
968 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for UpdateReason {
969 #[inline]
970 unsafe fn encode(
971 self,
972 encoder: &mut fidl::encoding::Encoder<'_, D>,
973 offset: usize,
974 _depth: fidl::encoding::Depth,
975 ) -> fidl::Result<()> {
976 encoder.debug_check_bounds::<Self>(offset);
977 encoder.write_num(self.into_primitive(), offset);
978 Ok(())
979 }
980 }
981
982 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UpdateReason {
983 #[inline(always)]
984 fn new_empty() -> Self {
985 Self::unknown()
986 }
987
988 #[inline]
989 unsafe fn decode(
990 &mut self,
991 decoder: &mut fidl::encoding::Decoder<'_, D>,
992 offset: usize,
993 _depth: fidl::encoding::Depth,
994 ) -> fidl::Result<()> {
995 decoder.debug_check_bounds::<Self>(offset);
996 let prim = decoder.read_num::<u8>(offset);
997
998 *self = Self::from_primitive_allow_unknown(prim);
999 Ok(())
1000 }
1001 }
1002
1003 impl fidl::encoding::ValueTypeMarker for ControllerConfigureRequest {
1004 type Borrowed<'a> = &'a Self;
1005 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1006 value
1007 }
1008 }
1009
1010 unsafe impl fidl::encoding::TypeMarker for ControllerConfigureRequest {
1011 type Owned = Self;
1012
1013 #[inline(always)]
1014 fn inline_align(_context: fidl::encoding::Context) -> usize {
1015 8
1016 }
1017
1018 #[inline(always)]
1019 fn inline_size(_context: fidl::encoding::Context) -> usize {
1020 16
1021 }
1022 }
1023
1024 unsafe impl<D: fidl::encoding::ResourceDialect>
1025 fidl::encoding::Encode<ControllerConfigureRequest, D> for &ControllerConfigureRequest
1026 {
1027 #[inline]
1028 unsafe fn encode(
1029 self,
1030 encoder: &mut fidl::encoding::Encoder<'_, D>,
1031 offset: usize,
1032 _depth: fidl::encoding::Depth,
1033 ) -> fidl::Result<()> {
1034 encoder.debug_check_bounds::<ControllerConfigureRequest>(offset);
1035 fidl::encoding::Encode::<ControllerConfigureRequest, D>::encode(
1037 (<Options as fidl::encoding::ValueTypeMarker>::borrow(&self.options),),
1038 encoder,
1039 offset,
1040 _depth,
1041 )
1042 }
1043 }
1044 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Options, D>>
1045 fidl::encoding::Encode<ControllerConfigureRequest, D> for (T0,)
1046 {
1047 #[inline]
1048 unsafe fn encode(
1049 self,
1050 encoder: &mut fidl::encoding::Encoder<'_, D>,
1051 offset: usize,
1052 depth: fidl::encoding::Depth,
1053 ) -> fidl::Result<()> {
1054 encoder.debug_check_bounds::<ControllerConfigureRequest>(offset);
1055 self.0.encode(encoder, offset + 0, depth)?;
1059 Ok(())
1060 }
1061 }
1062
1063 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1064 for ControllerConfigureRequest
1065 {
1066 #[inline(always)]
1067 fn new_empty() -> Self {
1068 Self { options: fidl::new_empty!(Options, D) }
1069 }
1070
1071 #[inline]
1072 unsafe fn decode(
1073 &mut self,
1074 decoder: &mut fidl::encoding::Decoder<'_, D>,
1075 offset: usize,
1076 _depth: fidl::encoding::Depth,
1077 ) -> fidl::Result<()> {
1078 decoder.debug_check_bounds::<Self>(offset);
1079 fidl::decode!(Options, D, &mut self.options, decoder, offset + 0, _depth)?;
1081 Ok(())
1082 }
1083 }
1084
1085 impl fidl::encoding::ValueTypeMarker for ControllerGetOptionsResponse {
1086 type Borrowed<'a> = &'a Self;
1087 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1088 value
1089 }
1090 }
1091
1092 unsafe impl fidl::encoding::TypeMarker for ControllerGetOptionsResponse {
1093 type Owned = Self;
1094
1095 #[inline(always)]
1096 fn inline_align(_context: fidl::encoding::Context) -> usize {
1097 8
1098 }
1099
1100 #[inline(always)]
1101 fn inline_size(_context: fidl::encoding::Context) -> usize {
1102 16
1103 }
1104 }
1105
1106 unsafe impl<D: fidl::encoding::ResourceDialect>
1107 fidl::encoding::Encode<ControllerGetOptionsResponse, D> for &ControllerGetOptionsResponse
1108 {
1109 #[inline]
1110 unsafe fn encode(
1111 self,
1112 encoder: &mut fidl::encoding::Encoder<'_, D>,
1113 offset: usize,
1114 _depth: fidl::encoding::Depth,
1115 ) -> fidl::Result<()> {
1116 encoder.debug_check_bounds::<ControllerGetOptionsResponse>(offset);
1117 fidl::encoding::Encode::<ControllerGetOptionsResponse, D>::encode(
1119 (<Options as fidl::encoding::ValueTypeMarker>::borrow(&self.options),),
1120 encoder,
1121 offset,
1122 _depth,
1123 )
1124 }
1125 }
1126 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Options, D>>
1127 fidl::encoding::Encode<ControllerGetOptionsResponse, D> for (T0,)
1128 {
1129 #[inline]
1130 unsafe fn encode(
1131 self,
1132 encoder: &mut fidl::encoding::Encoder<'_, D>,
1133 offset: usize,
1134 depth: fidl::encoding::Depth,
1135 ) -> fidl::Result<()> {
1136 encoder.debug_check_bounds::<ControllerGetOptionsResponse>(offset);
1137 self.0.encode(encoder, offset + 0, depth)?;
1141 Ok(())
1142 }
1143 }
1144
1145 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1146 for ControllerGetOptionsResponse
1147 {
1148 #[inline(always)]
1149 fn new_empty() -> Self {
1150 Self { options: fidl::new_empty!(Options, D) }
1151 }
1152
1153 #[inline]
1154 unsafe fn decode(
1155 &mut self,
1156 decoder: &mut fidl::encoding::Decoder<'_, D>,
1157 offset: usize,
1158 _depth: fidl::encoding::Depth,
1159 ) -> fidl::Result<()> {
1160 decoder.debug_check_bounds::<Self>(offset);
1161 fidl::decode!(Options, D, &mut self.options, decoder, offset + 0, _depth)?;
1163 Ok(())
1164 }
1165 }
1166
1167 impl fidl::encoding::ValueTypeMarker for ControllerGetStatusResponse {
1168 type Borrowed<'a> = &'a Self;
1169 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1170 value
1171 }
1172 }
1173
1174 unsafe impl fidl::encoding::TypeMarker for ControllerGetStatusResponse {
1175 type Owned = Self;
1176
1177 #[inline(always)]
1178 fn inline_align(_context: fidl::encoding::Context) -> usize {
1179 8
1180 }
1181
1182 #[inline(always)]
1183 fn inline_size(_context: fidl::encoding::Context) -> usize {
1184 16
1185 }
1186 }
1187
1188 unsafe impl<D: fidl::encoding::ResourceDialect>
1189 fidl::encoding::Encode<ControllerGetStatusResponse, D> for &ControllerGetStatusResponse
1190 {
1191 #[inline]
1192 unsafe fn encode(
1193 self,
1194 encoder: &mut fidl::encoding::Encoder<'_, D>,
1195 offset: usize,
1196 _depth: fidl::encoding::Depth,
1197 ) -> fidl::Result<()> {
1198 encoder.debug_check_bounds::<ControllerGetStatusResponse>(offset);
1199 fidl::encoding::Encode::<ControllerGetStatusResponse, D>::encode(
1201 (<Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),),
1202 encoder,
1203 offset,
1204 _depth,
1205 )
1206 }
1207 }
1208 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Status, D>>
1209 fidl::encoding::Encode<ControllerGetStatusResponse, D> for (T0,)
1210 {
1211 #[inline]
1212 unsafe fn encode(
1213 self,
1214 encoder: &mut fidl::encoding::Encoder<'_, D>,
1215 offset: usize,
1216 depth: fidl::encoding::Depth,
1217 ) -> fidl::Result<()> {
1218 encoder.debug_check_bounds::<ControllerGetStatusResponse>(offset);
1219 self.0.encode(encoder, offset + 0, depth)?;
1223 Ok(())
1224 }
1225 }
1226
1227 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1228 for ControllerGetStatusResponse
1229 {
1230 #[inline(always)]
1231 fn new_empty() -> Self {
1232 Self { status: fidl::new_empty!(Status, D) }
1233 }
1234
1235 #[inline]
1236 unsafe fn decode(
1237 &mut self,
1238 decoder: &mut fidl::encoding::Decoder<'_, D>,
1239 offset: usize,
1240 _depth: fidl::encoding::Depth,
1241 ) -> fidl::Result<()> {
1242 decoder.debug_check_bounds::<Self>(offset);
1243 fidl::decode!(Status, D, &mut self.status, decoder, offset + 0, _depth)?;
1245 Ok(())
1246 }
1247 }
1248
1249 impl fidl::encoding::ValueTypeMarker for CorpusReaderNextResponse {
1250 type Borrowed<'a> = &'a Self;
1251 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1252 value
1253 }
1254 }
1255
1256 unsafe impl fidl::encoding::TypeMarker for CorpusReaderNextResponse {
1257 type Owned = Self;
1258
1259 #[inline(always)]
1260 fn inline_align(_context: fidl::encoding::Context) -> usize {
1261 4
1262 }
1263
1264 #[inline(always)]
1265 fn inline_size(_context: fidl::encoding::Context) -> usize {
1266 4
1267 }
1268 #[inline(always)]
1269 fn encode_is_copy() -> bool {
1270 true
1271 }
1272
1273 #[inline(always)]
1274 fn decode_is_copy() -> bool {
1275 true
1276 }
1277 }
1278
1279 unsafe impl<D: fidl::encoding::ResourceDialect>
1280 fidl::encoding::Encode<CorpusReaderNextResponse, D> for &CorpusReaderNextResponse
1281 {
1282 #[inline]
1283 unsafe fn encode(
1284 self,
1285 encoder: &mut fidl::encoding::Encoder<'_, D>,
1286 offset: usize,
1287 _depth: fidl::encoding::Depth,
1288 ) -> fidl::Result<()> {
1289 encoder.debug_check_bounds::<CorpusReaderNextResponse>(offset);
1290 unsafe {
1291 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1293 (buf_ptr as *mut CorpusReaderNextResponse)
1294 .write_unaligned((self as *const CorpusReaderNextResponse).read());
1295 }
1298 Ok(())
1299 }
1300 }
1301 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
1302 fidl::encoding::Encode<CorpusReaderNextResponse, D> for (T0,)
1303 {
1304 #[inline]
1305 unsafe fn encode(
1306 self,
1307 encoder: &mut fidl::encoding::Encoder<'_, D>,
1308 offset: usize,
1309 depth: fidl::encoding::Depth,
1310 ) -> fidl::Result<()> {
1311 encoder.debug_check_bounds::<CorpusReaderNextResponse>(offset);
1312 self.0.encode(encoder, offset + 0, depth)?;
1316 Ok(())
1317 }
1318 }
1319
1320 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1321 for CorpusReaderNextResponse
1322 {
1323 #[inline(always)]
1324 fn new_empty() -> Self {
1325 Self { result: fidl::new_empty!(i32, D) }
1326 }
1327
1328 #[inline]
1329 unsafe fn decode(
1330 &mut self,
1331 decoder: &mut fidl::encoding::Decoder<'_, D>,
1332 offset: usize,
1333 _depth: fidl::encoding::Depth,
1334 ) -> fidl::Result<()> {
1335 decoder.debug_check_bounds::<Self>(offset);
1336 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1337 unsafe {
1340 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1341 }
1342 Ok(())
1343 }
1344 }
1345
1346 impl fidl::encoding::ValueTypeMarker for CoverageDataCollectorInitializeResponse {
1347 type Borrowed<'a> = &'a Self;
1348 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1349 value
1350 }
1351 }
1352
1353 unsafe impl fidl::encoding::TypeMarker for CoverageDataCollectorInitializeResponse {
1354 type Owned = Self;
1355
1356 #[inline(always)]
1357 fn inline_align(_context: fidl::encoding::Context) -> usize {
1358 8
1359 }
1360
1361 #[inline(always)]
1362 fn inline_size(_context: fidl::encoding::Context) -> usize {
1363 16
1364 }
1365 }
1366
1367 unsafe impl<D: fidl::encoding::ResourceDialect>
1368 fidl::encoding::Encode<CoverageDataCollectorInitializeResponse, D>
1369 for &CoverageDataCollectorInitializeResponse
1370 {
1371 #[inline]
1372 unsafe fn encode(
1373 self,
1374 encoder: &mut fidl::encoding::Encoder<'_, D>,
1375 offset: usize,
1376 _depth: fidl::encoding::Depth,
1377 ) -> fidl::Result<()> {
1378 encoder.debug_check_bounds::<CoverageDataCollectorInitializeResponse>(offset);
1379 fidl::encoding::Encode::<CoverageDataCollectorInitializeResponse, D>::encode(
1381 (<Options as fidl::encoding::ValueTypeMarker>::borrow(&self.options),),
1382 encoder,
1383 offset,
1384 _depth,
1385 )
1386 }
1387 }
1388 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Options, D>>
1389 fidl::encoding::Encode<CoverageDataCollectorInitializeResponse, D> for (T0,)
1390 {
1391 #[inline]
1392 unsafe fn encode(
1393 self,
1394 encoder: &mut fidl::encoding::Encoder<'_, D>,
1395 offset: usize,
1396 depth: fidl::encoding::Depth,
1397 ) -> fidl::Result<()> {
1398 encoder.debug_check_bounds::<CoverageDataCollectorInitializeResponse>(offset);
1399 self.0.encode(encoder, offset + 0, depth)?;
1403 Ok(())
1404 }
1405 }
1406
1407 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1408 for CoverageDataCollectorInitializeResponse
1409 {
1410 #[inline(always)]
1411 fn new_empty() -> Self {
1412 Self { options: fidl::new_empty!(Options, D) }
1413 }
1414
1415 #[inline]
1416 unsafe fn decode(
1417 &mut self,
1418 decoder: &mut fidl::encoding::Decoder<'_, D>,
1419 offset: usize,
1420 _depth: fidl::encoding::Depth,
1421 ) -> fidl::Result<()> {
1422 decoder.debug_check_bounds::<Self>(offset);
1423 fidl::decode!(Options, D, &mut self.options, decoder, offset + 0, _depth)?;
1425 Ok(())
1426 }
1427 }
1428
1429 impl fidl::encoding::ValueTypeMarker for CoverageDataProviderSetOptionsRequest {
1430 type Borrowed<'a> = &'a Self;
1431 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1432 value
1433 }
1434 }
1435
1436 unsafe impl fidl::encoding::TypeMarker for CoverageDataProviderSetOptionsRequest {
1437 type Owned = Self;
1438
1439 #[inline(always)]
1440 fn inline_align(_context: fidl::encoding::Context) -> usize {
1441 8
1442 }
1443
1444 #[inline(always)]
1445 fn inline_size(_context: fidl::encoding::Context) -> usize {
1446 16
1447 }
1448 }
1449
1450 unsafe impl<D: fidl::encoding::ResourceDialect>
1451 fidl::encoding::Encode<CoverageDataProviderSetOptionsRequest, D>
1452 for &CoverageDataProviderSetOptionsRequest
1453 {
1454 #[inline]
1455 unsafe fn encode(
1456 self,
1457 encoder: &mut fidl::encoding::Encoder<'_, D>,
1458 offset: usize,
1459 _depth: fidl::encoding::Depth,
1460 ) -> fidl::Result<()> {
1461 encoder.debug_check_bounds::<CoverageDataProviderSetOptionsRequest>(offset);
1462 fidl::encoding::Encode::<CoverageDataProviderSetOptionsRequest, D>::encode(
1464 (<Options as fidl::encoding::ValueTypeMarker>::borrow(&self.options),),
1465 encoder,
1466 offset,
1467 _depth,
1468 )
1469 }
1470 }
1471 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Options, D>>
1472 fidl::encoding::Encode<CoverageDataProviderSetOptionsRequest, D> for (T0,)
1473 {
1474 #[inline]
1475 unsafe fn encode(
1476 self,
1477 encoder: &mut fidl::encoding::Encoder<'_, D>,
1478 offset: usize,
1479 depth: fidl::encoding::Depth,
1480 ) -> fidl::Result<()> {
1481 encoder.debug_check_bounds::<CoverageDataProviderSetOptionsRequest>(offset);
1482 self.0.encode(encoder, offset + 0, depth)?;
1486 Ok(())
1487 }
1488 }
1489
1490 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1491 for CoverageDataProviderSetOptionsRequest
1492 {
1493 #[inline(always)]
1494 fn new_empty() -> Self {
1495 Self { options: fidl::new_empty!(Options, D) }
1496 }
1497
1498 #[inline]
1499 unsafe fn decode(
1500 &mut self,
1501 decoder: &mut fidl::encoding::Decoder<'_, D>,
1502 offset: usize,
1503 _depth: fidl::encoding::Depth,
1504 ) -> fidl::Result<()> {
1505 decoder.debug_check_bounds::<Self>(offset);
1506 fidl::decode!(Options, D, &mut self.options, decoder, offset + 0, _depth)?;
1508 Ok(())
1509 }
1510 }
1511
1512 impl fidl::encoding::ValueTypeMarker for ManagerStopRequest {
1513 type Borrowed<'a> = &'a Self;
1514 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1515 value
1516 }
1517 }
1518
1519 unsafe impl fidl::encoding::TypeMarker for ManagerStopRequest {
1520 type Owned = Self;
1521
1522 #[inline(always)]
1523 fn inline_align(_context: fidl::encoding::Context) -> usize {
1524 8
1525 }
1526
1527 #[inline(always)]
1528 fn inline_size(_context: fidl::encoding::Context) -> usize {
1529 16
1530 }
1531 }
1532
1533 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ManagerStopRequest, D>
1534 for &ManagerStopRequest
1535 {
1536 #[inline]
1537 unsafe fn encode(
1538 self,
1539 encoder: &mut fidl::encoding::Encoder<'_, D>,
1540 offset: usize,
1541 _depth: fidl::encoding::Depth,
1542 ) -> fidl::Result<()> {
1543 encoder.debug_check_bounds::<ManagerStopRequest>(offset);
1544 fidl::encoding::Encode::<ManagerStopRequest, D>::encode(
1546 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
1547 &self.fuzzer_url,
1548 ),),
1549 encoder,
1550 offset,
1551 _depth,
1552 )
1553 }
1554 }
1555 unsafe impl<
1556 D: fidl::encoding::ResourceDialect,
1557 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1558 > fidl::encoding::Encode<ManagerStopRequest, D> for (T0,)
1559 {
1560 #[inline]
1561 unsafe fn encode(
1562 self,
1563 encoder: &mut fidl::encoding::Encoder<'_, D>,
1564 offset: usize,
1565 depth: fidl::encoding::Depth,
1566 ) -> fidl::Result<()> {
1567 encoder.debug_check_bounds::<ManagerStopRequest>(offset);
1568 self.0.encode(encoder, offset + 0, depth)?;
1572 Ok(())
1573 }
1574 }
1575
1576 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ManagerStopRequest {
1577 #[inline(always)]
1578 fn new_empty() -> Self {
1579 Self { fuzzer_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D) }
1580 }
1581
1582 #[inline]
1583 unsafe fn decode(
1584 &mut self,
1585 decoder: &mut fidl::encoding::Decoder<'_, D>,
1586 offset: usize,
1587 _depth: fidl::encoding::Depth,
1588 ) -> fidl::Result<()> {
1589 decoder.debug_check_bounds::<Self>(offset);
1590 fidl::decode!(
1592 fidl::encoding::BoundedString<4096>,
1593 D,
1594 &mut self.fuzzer_url,
1595 decoder,
1596 offset + 0,
1597 _depth
1598 )?;
1599 Ok(())
1600 }
1601 }
1602
1603 impl fidl::encoding::ValueTypeMarker for MonitorUpdateRequest {
1604 type Borrowed<'a> = &'a Self;
1605 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1606 value
1607 }
1608 }
1609
1610 unsafe impl fidl::encoding::TypeMarker for MonitorUpdateRequest {
1611 type Owned = Self;
1612
1613 #[inline(always)]
1614 fn inline_align(_context: fidl::encoding::Context) -> usize {
1615 8
1616 }
1617
1618 #[inline(always)]
1619 fn inline_size(_context: fidl::encoding::Context) -> usize {
1620 24
1621 }
1622 }
1623
1624 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MonitorUpdateRequest, D>
1625 for &MonitorUpdateRequest
1626 {
1627 #[inline]
1628 unsafe fn encode(
1629 self,
1630 encoder: &mut fidl::encoding::Encoder<'_, D>,
1631 offset: usize,
1632 _depth: fidl::encoding::Depth,
1633 ) -> fidl::Result<()> {
1634 encoder.debug_check_bounds::<MonitorUpdateRequest>(offset);
1635 fidl::encoding::Encode::<MonitorUpdateRequest, D>::encode(
1637 (
1638 <UpdateReason as fidl::encoding::ValueTypeMarker>::borrow(&self.reason),
1639 <Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
1640 ),
1641 encoder,
1642 offset,
1643 _depth,
1644 )
1645 }
1646 }
1647 unsafe impl<
1648 D: fidl::encoding::ResourceDialect,
1649 T0: fidl::encoding::Encode<UpdateReason, D>,
1650 T1: fidl::encoding::Encode<Status, D>,
1651 > fidl::encoding::Encode<MonitorUpdateRequest, D> for (T0, T1)
1652 {
1653 #[inline]
1654 unsafe fn encode(
1655 self,
1656 encoder: &mut fidl::encoding::Encoder<'_, D>,
1657 offset: usize,
1658 depth: fidl::encoding::Depth,
1659 ) -> fidl::Result<()> {
1660 encoder.debug_check_bounds::<MonitorUpdateRequest>(offset);
1661 unsafe {
1664 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1665 (ptr as *mut u64).write_unaligned(0);
1666 }
1667 self.0.encode(encoder, offset + 0, depth)?;
1669 self.1.encode(encoder, offset + 8, depth)?;
1670 Ok(())
1671 }
1672 }
1673
1674 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MonitorUpdateRequest {
1675 #[inline(always)]
1676 fn new_empty() -> Self {
1677 Self { reason: fidl::new_empty!(UpdateReason, D), status: fidl::new_empty!(Status, D) }
1678 }
1679
1680 #[inline]
1681 unsafe fn decode(
1682 &mut self,
1683 decoder: &mut fidl::encoding::Decoder<'_, D>,
1684 offset: usize,
1685 _depth: fidl::encoding::Depth,
1686 ) -> fidl::Result<()> {
1687 decoder.debug_check_bounds::<Self>(offset);
1688 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1690 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1691 let mask = 0xffffffffffffff00u64;
1692 let maskedval = padval & mask;
1693 if maskedval != 0 {
1694 return Err(fidl::Error::NonZeroPadding {
1695 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1696 });
1697 }
1698 fidl::decode!(UpdateReason, D, &mut self.reason, decoder, offset + 0, _depth)?;
1699 fidl::decode!(Status, D, &mut self.status, decoder, offset + 8, _depth)?;
1700 Ok(())
1701 }
1702 }
1703
1704 impl fidl::encoding::ValueTypeMarker for ProcessStats {
1705 type Borrowed<'a> = &'a Self;
1706 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1707 value
1708 }
1709 }
1710
1711 unsafe impl fidl::encoding::TypeMarker for ProcessStats {
1712 type Owned = Self;
1713
1714 #[inline(always)]
1715 fn inline_align(_context: fidl::encoding::Context) -> usize {
1716 8
1717 }
1718
1719 #[inline(always)]
1720 fn inline_size(_context: fidl::encoding::Context) -> usize {
1721 72
1722 }
1723 #[inline(always)]
1724 fn encode_is_copy() -> bool {
1725 true
1726 }
1727
1728 #[inline(always)]
1729 fn decode_is_copy() -> bool {
1730 true
1731 }
1732 }
1733
1734 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProcessStats, D>
1735 for &ProcessStats
1736 {
1737 #[inline]
1738 unsafe fn encode(
1739 self,
1740 encoder: &mut fidl::encoding::Encoder<'_, D>,
1741 offset: usize,
1742 _depth: fidl::encoding::Depth,
1743 ) -> fidl::Result<()> {
1744 encoder.debug_check_bounds::<ProcessStats>(offset);
1745 unsafe {
1746 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1748 (buf_ptr as *mut ProcessStats)
1749 .write_unaligned((self as *const ProcessStats).read());
1750 }
1753 Ok(())
1754 }
1755 }
1756 unsafe impl<
1757 D: fidl::encoding::ResourceDialect,
1758 T0: fidl::encoding::Encode<u64, D>,
1759 T1: fidl::encoding::Encode<u64, D>,
1760 T2: fidl::encoding::Encode<u64, D>,
1761 T3: fidl::encoding::Encode<u64, D>,
1762 T4: fidl::encoding::Encode<u64, D>,
1763 T5: fidl::encoding::Encode<i64, D>,
1764 T6: fidl::encoding::Encode<i64, D>,
1765 T7: fidl::encoding::Encode<i64, D>,
1766 T8: fidl::encoding::Encode<i64, D>,
1767 > fidl::encoding::Encode<ProcessStats, D> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
1768 {
1769 #[inline]
1770 unsafe fn encode(
1771 self,
1772 encoder: &mut fidl::encoding::Encoder<'_, D>,
1773 offset: usize,
1774 depth: fidl::encoding::Depth,
1775 ) -> fidl::Result<()> {
1776 encoder.debug_check_bounds::<ProcessStats>(offset);
1777 self.0.encode(encoder, offset + 0, depth)?;
1781 self.1.encode(encoder, offset + 8, depth)?;
1782 self.2.encode(encoder, offset + 16, depth)?;
1783 self.3.encode(encoder, offset + 24, depth)?;
1784 self.4.encode(encoder, offset + 32, depth)?;
1785 self.5.encode(encoder, offset + 40, depth)?;
1786 self.6.encode(encoder, offset + 48, depth)?;
1787 self.7.encode(encoder, offset + 56, depth)?;
1788 self.8.encode(encoder, offset + 64, depth)?;
1789 Ok(())
1790 }
1791 }
1792
1793 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProcessStats {
1794 #[inline(always)]
1795 fn new_empty() -> Self {
1796 Self {
1797 koid: fidl::new_empty!(u64, D),
1798 mem_mapped_bytes: fidl::new_empty!(u64, D),
1799 mem_private_bytes: fidl::new_empty!(u64, D),
1800 mem_shared_bytes: fidl::new_empty!(u64, D),
1801 mem_scaled_shared_bytes: fidl::new_empty!(u64, D),
1802 cpu_time: fidl::new_empty!(i64, D),
1803 queue_time: fidl::new_empty!(i64, D),
1804 page_fault_time: fidl::new_empty!(i64, D),
1805 lock_contention_time: fidl::new_empty!(i64, D),
1806 }
1807 }
1808
1809 #[inline]
1810 unsafe fn decode(
1811 &mut self,
1812 decoder: &mut fidl::encoding::Decoder<'_, D>,
1813 offset: usize,
1814 _depth: fidl::encoding::Depth,
1815 ) -> fidl::Result<()> {
1816 decoder.debug_check_bounds::<Self>(offset);
1817 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1818 unsafe {
1821 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 72);
1822 }
1823 Ok(())
1824 }
1825 }
1826
1827 impl fidl::encoding::ValueTypeMarker for RegistryDisconnectRequest {
1828 type Borrowed<'a> = &'a Self;
1829 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1830 value
1831 }
1832 }
1833
1834 unsafe impl fidl::encoding::TypeMarker for RegistryDisconnectRequest {
1835 type Owned = Self;
1836
1837 #[inline(always)]
1838 fn inline_align(_context: fidl::encoding::Context) -> usize {
1839 8
1840 }
1841
1842 #[inline(always)]
1843 fn inline_size(_context: fidl::encoding::Context) -> usize {
1844 16
1845 }
1846 }
1847
1848 unsafe impl<D: fidl::encoding::ResourceDialect>
1849 fidl::encoding::Encode<RegistryDisconnectRequest, D> for &RegistryDisconnectRequest
1850 {
1851 #[inline]
1852 unsafe fn encode(
1853 self,
1854 encoder: &mut fidl::encoding::Encoder<'_, D>,
1855 offset: usize,
1856 _depth: fidl::encoding::Depth,
1857 ) -> fidl::Result<()> {
1858 encoder.debug_check_bounds::<RegistryDisconnectRequest>(offset);
1859 fidl::encoding::Encode::<RegistryDisconnectRequest, D>::encode(
1861 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
1862 &self.fuzzer_url,
1863 ),),
1864 encoder,
1865 offset,
1866 _depth,
1867 )
1868 }
1869 }
1870 unsafe impl<
1871 D: fidl::encoding::ResourceDialect,
1872 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1873 > fidl::encoding::Encode<RegistryDisconnectRequest, D> for (T0,)
1874 {
1875 #[inline]
1876 unsafe fn encode(
1877 self,
1878 encoder: &mut fidl::encoding::Encoder<'_, D>,
1879 offset: usize,
1880 depth: fidl::encoding::Depth,
1881 ) -> fidl::Result<()> {
1882 encoder.debug_check_bounds::<RegistryDisconnectRequest>(offset);
1883 self.0.encode(encoder, offset + 0, depth)?;
1887 Ok(())
1888 }
1889 }
1890
1891 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1892 for RegistryDisconnectRequest
1893 {
1894 #[inline(always)]
1895 fn new_empty() -> Self {
1896 Self { fuzzer_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D) }
1897 }
1898
1899 #[inline]
1900 unsafe fn decode(
1901 &mut self,
1902 decoder: &mut fidl::encoding::Decoder<'_, D>,
1903 offset: usize,
1904 _depth: fidl::encoding::Depth,
1905 ) -> fidl::Result<()> {
1906 decoder.debug_check_bounds::<Self>(offset);
1907 fidl::decode!(
1909 fidl::encoding::BoundedString<4096>,
1910 D,
1911 &mut self.fuzzer_url,
1912 decoder,
1913 offset + 0,
1914 _depth
1915 )?;
1916 Ok(())
1917 }
1918 }
1919
1920 impl fidl::encoding::ValueTypeMarker for SanitizerOptions {
1921 type Borrowed<'a> = &'a Self;
1922 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1923 value
1924 }
1925 }
1926
1927 unsafe impl fidl::encoding::TypeMarker for SanitizerOptions {
1928 type Owned = Self;
1929
1930 #[inline(always)]
1931 fn inline_align(_context: fidl::encoding::Context) -> usize {
1932 8
1933 }
1934
1935 #[inline(always)]
1936 fn inline_size(_context: fidl::encoding::Context) -> usize {
1937 32
1938 }
1939 }
1940
1941 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SanitizerOptions, D>
1942 for &SanitizerOptions
1943 {
1944 #[inline]
1945 unsafe fn encode(
1946 self,
1947 encoder: &mut fidl::encoding::Encoder<'_, D>,
1948 offset: usize,
1949 _depth: fidl::encoding::Depth,
1950 ) -> fidl::Result<()> {
1951 encoder.debug_check_bounds::<SanitizerOptions>(offset);
1952 fidl::encoding::Encode::<SanitizerOptions, D>::encode(
1954 (
1955 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
1956 <fidl::encoding::BoundedString<8192> as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
1957 ),
1958 encoder, offset, _depth
1959 )
1960 }
1961 }
1962 unsafe impl<
1963 D: fidl::encoding::ResourceDialect,
1964 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<32>, D>,
1965 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<8192>, D>,
1966 > fidl::encoding::Encode<SanitizerOptions, D> for (T0, T1)
1967 {
1968 #[inline]
1969 unsafe fn encode(
1970 self,
1971 encoder: &mut fidl::encoding::Encoder<'_, D>,
1972 offset: usize,
1973 depth: fidl::encoding::Depth,
1974 ) -> fidl::Result<()> {
1975 encoder.debug_check_bounds::<SanitizerOptions>(offset);
1976 self.0.encode(encoder, offset + 0, depth)?;
1980 self.1.encode(encoder, offset + 16, depth)?;
1981 Ok(())
1982 }
1983 }
1984
1985 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SanitizerOptions {
1986 #[inline(always)]
1987 fn new_empty() -> Self {
1988 Self {
1989 name: fidl::new_empty!(fidl::encoding::BoundedString<32>, D),
1990 value: fidl::new_empty!(fidl::encoding::BoundedString<8192>, D),
1991 }
1992 }
1993
1994 #[inline]
1995 unsafe fn decode(
1996 &mut self,
1997 decoder: &mut fidl::encoding::Decoder<'_, D>,
1998 offset: usize,
1999 _depth: fidl::encoding::Depth,
2000 ) -> fidl::Result<()> {
2001 decoder.debug_check_bounds::<Self>(offset);
2002 fidl::decode!(
2004 fidl::encoding::BoundedString<32>,
2005 D,
2006 &mut self.name,
2007 decoder,
2008 offset + 0,
2009 _depth
2010 )?;
2011 fidl::decode!(
2012 fidl::encoding::BoundedString<8192>,
2013 D,
2014 &mut self.value,
2015 decoder,
2016 offset + 16,
2017 _depth
2018 )?;
2019 Ok(())
2020 }
2021 }
2022
2023 impl fidl::encoding::ValueTypeMarker for TargetAdapterGetParametersResponse {
2024 type Borrowed<'a> = &'a Self;
2025 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2026 value
2027 }
2028 }
2029
2030 unsafe impl fidl::encoding::TypeMarker for TargetAdapterGetParametersResponse {
2031 type Owned = Self;
2032
2033 #[inline(always)]
2034 fn inline_align(_context: fidl::encoding::Context) -> usize {
2035 8
2036 }
2037
2038 #[inline(always)]
2039 fn inline_size(_context: fidl::encoding::Context) -> usize {
2040 16
2041 }
2042 }
2043
2044 unsafe impl<D: fidl::encoding::ResourceDialect>
2045 fidl::encoding::Encode<TargetAdapterGetParametersResponse, D>
2046 for &TargetAdapterGetParametersResponse
2047 {
2048 #[inline]
2049 unsafe fn encode(
2050 self,
2051 encoder: &mut fidl::encoding::Encoder<'_, D>,
2052 offset: usize,
2053 _depth: fidl::encoding::Depth,
2054 ) -> fidl::Result<()> {
2055 encoder.debug_check_bounds::<TargetAdapterGetParametersResponse>(offset);
2056 fidl::encoding::Encode::<TargetAdapterGetParametersResponse, D>::encode(
2058 (
2059 <fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 128> as fidl::encoding::ValueTypeMarker>::borrow(&self.parameters),
2060 ),
2061 encoder, offset, _depth
2062 )
2063 }
2064 }
2065 unsafe impl<
2066 D: fidl::encoding::ResourceDialect,
2067 T0: fidl::encoding::Encode<
2068 fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 128>,
2069 D,
2070 >,
2071 > fidl::encoding::Encode<TargetAdapterGetParametersResponse, D> for (T0,)
2072 {
2073 #[inline]
2074 unsafe fn encode(
2075 self,
2076 encoder: &mut fidl::encoding::Encoder<'_, D>,
2077 offset: usize,
2078 depth: fidl::encoding::Depth,
2079 ) -> fidl::Result<()> {
2080 encoder.debug_check_bounds::<TargetAdapterGetParametersResponse>(offset);
2081 self.0.encode(encoder, offset + 0, depth)?;
2085 Ok(())
2086 }
2087 }
2088
2089 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2090 for TargetAdapterGetParametersResponse
2091 {
2092 #[inline(always)]
2093 fn new_empty() -> Self {
2094 Self {
2095 parameters: fidl::new_empty!(
2096 fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 128>,
2097 D
2098 ),
2099 }
2100 }
2101
2102 #[inline]
2103 unsafe fn decode(
2104 &mut self,
2105 decoder: &mut fidl::encoding::Decoder<'_, D>,
2106 offset: usize,
2107 _depth: fidl::encoding::Depth,
2108 ) -> fidl::Result<()> {
2109 decoder.debug_check_bounds::<Self>(offset);
2110 fidl::decode!(
2112 fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 128>,
2113 D,
2114 &mut self.parameters,
2115 decoder,
2116 offset + 0,
2117 _depth
2118 )?;
2119 Ok(())
2120 }
2121 }
2122
2123 impl Options {
2124 #[inline(always)]
2125 fn max_ordinal_present(&self) -> u64 {
2126 if let Some(_) = self.output_flags {
2127 return 22;
2128 }
2129 if let Some(_) = self.sanitizer_options {
2130 return 21;
2131 }
2132 if let Some(_) = self.use_value_profile {
2133 return 20;
2134 }
2135 if let Some(_) = self.print_final_stats {
2136 return 19;
2137 }
2138 if let Some(_) = self.debug {
2139 return 18;
2140 }
2141 if let Some(_) = self.pulse_interval {
2142 return 17;
2143 }
2144 if let Some(_) = self.oom_exitcode {
2145 return 16;
2146 }
2147 if let Some(_) = self.leak_exitcode {
2148 return 15;
2149 }
2150 if let Some(_) = self.death_exitcode {
2151 return 14;
2152 }
2153 if let Some(_) = self.malloc_exitcode {
2154 return 13;
2155 }
2156 if let Some(_) = self.purge_interval {
2157 return 12;
2158 }
2159 if let Some(_) = self.oom_limit {
2160 return 11;
2161 }
2162 if let Some(_) = self.malloc_limit {
2163 return 10;
2164 }
2165 if let Some(_) = self.run_limit {
2166 return 9;
2167 }
2168 if let Some(_) = self.detect_leaks {
2169 return 8;
2170 }
2171 if let Some(_) = self.detect_exits {
2172 return 7;
2173 }
2174 if let Some(_) = self.dictionary_level {
2175 return 6;
2176 }
2177 if let Some(_) = self.mutation_depth {
2178 return 5;
2179 }
2180 if let Some(_) = self.max_input_size {
2181 return 4;
2182 }
2183 if let Some(_) = self.seed {
2184 return 3;
2185 }
2186 if let Some(_) = self.max_total_time {
2187 return 2;
2188 }
2189 if let Some(_) = self.runs {
2190 return 1;
2191 }
2192 0
2193 }
2194 }
2195
2196 impl fidl::encoding::ValueTypeMarker for Options {
2197 type Borrowed<'a> = &'a Self;
2198 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2199 value
2200 }
2201 }
2202
2203 unsafe impl fidl::encoding::TypeMarker for Options {
2204 type Owned = Self;
2205
2206 #[inline(always)]
2207 fn inline_align(_context: fidl::encoding::Context) -> usize {
2208 8
2209 }
2210
2211 #[inline(always)]
2212 fn inline_size(_context: fidl::encoding::Context) -> usize {
2213 16
2214 }
2215 }
2216
2217 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Options, D> for &Options {
2218 unsafe fn encode(
2219 self,
2220 encoder: &mut fidl::encoding::Encoder<'_, D>,
2221 offset: usize,
2222 mut depth: fidl::encoding::Depth,
2223 ) -> fidl::Result<()> {
2224 encoder.debug_check_bounds::<Options>(offset);
2225 let max_ordinal: u64 = self.max_ordinal_present();
2227 encoder.write_num(max_ordinal, offset);
2228 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2229 if max_ordinal == 0 {
2231 return Ok(());
2232 }
2233 depth.increment()?;
2234 let envelope_size = 8;
2235 let bytes_len = max_ordinal as usize * envelope_size;
2236 #[allow(unused_variables)]
2237 let offset = encoder.out_of_line_offset(bytes_len);
2238 let mut _prev_end_offset: usize = 0;
2239 if 1 > max_ordinal {
2240 return Ok(());
2241 }
2242
2243 let cur_offset: usize = (1 - 1) * envelope_size;
2246
2247 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2249
2250 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2255 self.runs.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2256 encoder,
2257 offset + cur_offset,
2258 depth,
2259 )?;
2260
2261 _prev_end_offset = cur_offset + envelope_size;
2262 if 2 > max_ordinal {
2263 return Ok(());
2264 }
2265
2266 let cur_offset: usize = (2 - 1) * envelope_size;
2269
2270 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2272
2273 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2278 self.max_total_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2279 encoder,
2280 offset + cur_offset,
2281 depth,
2282 )?;
2283
2284 _prev_end_offset = cur_offset + envelope_size;
2285 if 3 > max_ordinal {
2286 return Ok(());
2287 }
2288
2289 let cur_offset: usize = (3 - 1) * envelope_size;
2292
2293 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2295
2296 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2301 self.seed.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2302 encoder,
2303 offset + cur_offset,
2304 depth,
2305 )?;
2306
2307 _prev_end_offset = cur_offset + envelope_size;
2308 if 4 > max_ordinal {
2309 return Ok(());
2310 }
2311
2312 let cur_offset: usize = (4 - 1) * envelope_size;
2315
2316 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2318
2319 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2324 self.max_input_size.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2325 encoder,
2326 offset + cur_offset,
2327 depth,
2328 )?;
2329
2330 _prev_end_offset = cur_offset + envelope_size;
2331 if 5 > max_ordinal {
2332 return Ok(());
2333 }
2334
2335 let cur_offset: usize = (5 - 1) * envelope_size;
2338
2339 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2341
2342 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2347 self.mutation_depth.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2348 encoder,
2349 offset + cur_offset,
2350 depth,
2351 )?;
2352
2353 _prev_end_offset = cur_offset + envelope_size;
2354 if 6 > max_ordinal {
2355 return Ok(());
2356 }
2357
2358 let cur_offset: usize = (6 - 1) * envelope_size;
2361
2362 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2364
2365 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2370 self.dictionary_level
2371 .as_ref()
2372 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2373 encoder,
2374 offset + cur_offset,
2375 depth,
2376 )?;
2377
2378 _prev_end_offset = cur_offset + envelope_size;
2379 if 7 > max_ordinal {
2380 return Ok(());
2381 }
2382
2383 let cur_offset: usize = (7 - 1) * envelope_size;
2386
2387 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2389
2390 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2395 self.detect_exits.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2396 encoder,
2397 offset + cur_offset,
2398 depth,
2399 )?;
2400
2401 _prev_end_offset = cur_offset + envelope_size;
2402 if 8 > max_ordinal {
2403 return Ok(());
2404 }
2405
2406 let cur_offset: usize = (8 - 1) * envelope_size;
2409
2410 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2412
2413 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2418 self.detect_leaks.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2419 encoder,
2420 offset + cur_offset,
2421 depth,
2422 )?;
2423
2424 _prev_end_offset = cur_offset + envelope_size;
2425 if 9 > max_ordinal {
2426 return Ok(());
2427 }
2428
2429 let cur_offset: usize = (9 - 1) * envelope_size;
2432
2433 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2435
2436 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2441 self.run_limit.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2442 encoder,
2443 offset + cur_offset,
2444 depth,
2445 )?;
2446
2447 _prev_end_offset = cur_offset + envelope_size;
2448 if 10 > max_ordinal {
2449 return Ok(());
2450 }
2451
2452 let cur_offset: usize = (10 - 1) * envelope_size;
2455
2456 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2458
2459 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2464 self.malloc_limit.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2465 encoder,
2466 offset + cur_offset,
2467 depth,
2468 )?;
2469
2470 _prev_end_offset = cur_offset + envelope_size;
2471 if 11 > max_ordinal {
2472 return Ok(());
2473 }
2474
2475 let cur_offset: usize = (11 - 1) * envelope_size;
2478
2479 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2481
2482 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2487 self.oom_limit.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2488 encoder,
2489 offset + cur_offset,
2490 depth,
2491 )?;
2492
2493 _prev_end_offset = cur_offset + envelope_size;
2494 if 12 > max_ordinal {
2495 return Ok(());
2496 }
2497
2498 let cur_offset: usize = (12 - 1) * envelope_size;
2501
2502 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2504
2505 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2510 self.purge_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2511 encoder,
2512 offset + cur_offset,
2513 depth,
2514 )?;
2515
2516 _prev_end_offset = cur_offset + envelope_size;
2517 if 13 > max_ordinal {
2518 return Ok(());
2519 }
2520
2521 let cur_offset: usize = (13 - 1) * envelope_size;
2524
2525 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2527
2528 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2533 self.malloc_exitcode.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2534 encoder,
2535 offset + cur_offset,
2536 depth,
2537 )?;
2538
2539 _prev_end_offset = cur_offset + envelope_size;
2540 if 14 > max_ordinal {
2541 return Ok(());
2542 }
2543
2544 let cur_offset: usize = (14 - 1) * envelope_size;
2547
2548 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2550
2551 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2556 self.death_exitcode.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2557 encoder,
2558 offset + cur_offset,
2559 depth,
2560 )?;
2561
2562 _prev_end_offset = cur_offset + envelope_size;
2563 if 15 > max_ordinal {
2564 return Ok(());
2565 }
2566
2567 let cur_offset: usize = (15 - 1) * envelope_size;
2570
2571 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2573
2574 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2579 self.leak_exitcode.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2580 encoder,
2581 offset + cur_offset,
2582 depth,
2583 )?;
2584
2585 _prev_end_offset = cur_offset + envelope_size;
2586 if 16 > max_ordinal {
2587 return Ok(());
2588 }
2589
2590 let cur_offset: usize = (16 - 1) * envelope_size;
2593
2594 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2596
2597 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2602 self.oom_exitcode.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2603 encoder,
2604 offset + cur_offset,
2605 depth,
2606 )?;
2607
2608 _prev_end_offset = cur_offset + envelope_size;
2609 if 17 > max_ordinal {
2610 return Ok(());
2611 }
2612
2613 let cur_offset: usize = (17 - 1) * envelope_size;
2616
2617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2619
2620 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2625 self.pulse_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2626 encoder,
2627 offset + cur_offset,
2628 depth,
2629 )?;
2630
2631 _prev_end_offset = cur_offset + envelope_size;
2632 if 18 > max_ordinal {
2633 return Ok(());
2634 }
2635
2636 let cur_offset: usize = (18 - 1) * envelope_size;
2639
2640 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2642
2643 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2648 self.debug.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2649 encoder,
2650 offset + cur_offset,
2651 depth,
2652 )?;
2653
2654 _prev_end_offset = cur_offset + envelope_size;
2655 if 19 > max_ordinal {
2656 return Ok(());
2657 }
2658
2659 let cur_offset: usize = (19 - 1) * envelope_size;
2662
2663 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2665
2666 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2671 self.print_final_stats
2672 .as_ref()
2673 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2674 encoder,
2675 offset + cur_offset,
2676 depth,
2677 )?;
2678
2679 _prev_end_offset = cur_offset + envelope_size;
2680 if 20 > max_ordinal {
2681 return Ok(());
2682 }
2683
2684 let cur_offset: usize = (20 - 1) * envelope_size;
2687
2688 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2690
2691 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2696 self.use_value_profile
2697 .as_ref()
2698 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2699 encoder,
2700 offset + cur_offset,
2701 depth,
2702 )?;
2703
2704 _prev_end_offset = cur_offset + envelope_size;
2705 if 21 > max_ordinal {
2706 return Ok(());
2707 }
2708
2709 let cur_offset: usize = (21 - 1) * envelope_size;
2712
2713 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2715
2716 fidl::encoding::encode_in_envelope_optional::<SanitizerOptions, D>(
2721 self.sanitizer_options
2722 .as_ref()
2723 .map(<SanitizerOptions as fidl::encoding::ValueTypeMarker>::borrow),
2724 encoder,
2725 offset + cur_offset,
2726 depth,
2727 )?;
2728
2729 _prev_end_offset = cur_offset + envelope_size;
2730 if 22 > max_ordinal {
2731 return Ok(());
2732 }
2733
2734 let cur_offset: usize = (22 - 1) * envelope_size;
2737
2738 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2740
2741 fidl::encoding::encode_in_envelope_optional::<OutputFlags, D>(
2746 self.output_flags
2747 .as_ref()
2748 .map(<OutputFlags as fidl::encoding::ValueTypeMarker>::borrow),
2749 encoder,
2750 offset + cur_offset,
2751 depth,
2752 )?;
2753
2754 _prev_end_offset = cur_offset + envelope_size;
2755
2756 Ok(())
2757 }
2758 }
2759
2760 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Options {
2761 #[inline(always)]
2762 fn new_empty() -> Self {
2763 Self::default()
2764 }
2765
2766 unsafe fn decode(
2767 &mut self,
2768 decoder: &mut fidl::encoding::Decoder<'_, D>,
2769 offset: usize,
2770 mut depth: fidl::encoding::Depth,
2771 ) -> fidl::Result<()> {
2772 decoder.debug_check_bounds::<Self>(offset);
2773 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2774 None => return Err(fidl::Error::NotNullable),
2775 Some(len) => len,
2776 };
2777 if len == 0 {
2779 return Ok(());
2780 };
2781 depth.increment()?;
2782 let envelope_size = 8;
2783 let bytes_len = len * envelope_size;
2784 let offset = decoder.out_of_line_offset(bytes_len)?;
2785 let mut _next_ordinal_to_read = 0;
2787 let mut next_offset = offset;
2788 let end_offset = offset + bytes_len;
2789 _next_ordinal_to_read += 1;
2790 if next_offset >= end_offset {
2791 return Ok(());
2792 }
2793
2794 while _next_ordinal_to_read < 1 {
2796 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2797 _next_ordinal_to_read += 1;
2798 next_offset += envelope_size;
2799 }
2800
2801 let next_out_of_line = decoder.next_out_of_line();
2802 let handles_before = decoder.remaining_handles();
2803 if let Some((inlined, num_bytes, num_handles)) =
2804 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2805 {
2806 let member_inline_size =
2807 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2808 if inlined != (member_inline_size <= 4) {
2809 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2810 }
2811 let inner_offset;
2812 let mut inner_depth = depth.clone();
2813 if inlined {
2814 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2815 inner_offset = next_offset;
2816 } else {
2817 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2818 inner_depth.increment()?;
2819 }
2820 let val_ref = self.runs.get_or_insert_with(|| fidl::new_empty!(u32, D));
2821 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2822 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2823 {
2824 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2825 }
2826 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2827 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2828 }
2829 }
2830
2831 next_offset += envelope_size;
2832 _next_ordinal_to_read += 1;
2833 if next_offset >= end_offset {
2834 return Ok(());
2835 }
2836
2837 while _next_ordinal_to_read < 2 {
2839 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2840 _next_ordinal_to_read += 1;
2841 next_offset += envelope_size;
2842 }
2843
2844 let next_out_of_line = decoder.next_out_of_line();
2845 let handles_before = decoder.remaining_handles();
2846 if let Some((inlined, num_bytes, num_handles)) =
2847 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2848 {
2849 let member_inline_size =
2850 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2851 if inlined != (member_inline_size <= 4) {
2852 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2853 }
2854 let inner_offset;
2855 let mut inner_depth = depth.clone();
2856 if inlined {
2857 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2858 inner_offset = next_offset;
2859 } else {
2860 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2861 inner_depth.increment()?;
2862 }
2863 let val_ref = self.max_total_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
2864 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2865 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2866 {
2867 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2868 }
2869 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2870 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2871 }
2872 }
2873
2874 next_offset += envelope_size;
2875 _next_ordinal_to_read += 1;
2876 if next_offset >= end_offset {
2877 return Ok(());
2878 }
2879
2880 while _next_ordinal_to_read < 3 {
2882 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2883 _next_ordinal_to_read += 1;
2884 next_offset += envelope_size;
2885 }
2886
2887 let next_out_of_line = decoder.next_out_of_line();
2888 let handles_before = decoder.remaining_handles();
2889 if let Some((inlined, num_bytes, num_handles)) =
2890 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2891 {
2892 let member_inline_size =
2893 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2894 if inlined != (member_inline_size <= 4) {
2895 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2896 }
2897 let inner_offset;
2898 let mut inner_depth = depth.clone();
2899 if inlined {
2900 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2901 inner_offset = next_offset;
2902 } else {
2903 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2904 inner_depth.increment()?;
2905 }
2906 let val_ref = self.seed.get_or_insert_with(|| fidl::new_empty!(u32, D));
2907 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2908 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2909 {
2910 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2911 }
2912 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2913 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2914 }
2915 }
2916
2917 next_offset += envelope_size;
2918 _next_ordinal_to_read += 1;
2919 if next_offset >= end_offset {
2920 return Ok(());
2921 }
2922
2923 while _next_ordinal_to_read < 4 {
2925 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2926 _next_ordinal_to_read += 1;
2927 next_offset += envelope_size;
2928 }
2929
2930 let next_out_of_line = decoder.next_out_of_line();
2931 let handles_before = decoder.remaining_handles();
2932 if let Some((inlined, num_bytes, num_handles)) =
2933 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2934 {
2935 let member_inline_size =
2936 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2937 if inlined != (member_inline_size <= 4) {
2938 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2939 }
2940 let inner_offset;
2941 let mut inner_depth = depth.clone();
2942 if inlined {
2943 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2944 inner_offset = next_offset;
2945 } else {
2946 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2947 inner_depth.increment()?;
2948 }
2949 let val_ref = self.max_input_size.get_or_insert_with(|| fidl::new_empty!(u64, D));
2950 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2951 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2952 {
2953 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2954 }
2955 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2956 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2957 }
2958 }
2959
2960 next_offset += envelope_size;
2961 _next_ordinal_to_read += 1;
2962 if next_offset >= end_offset {
2963 return Ok(());
2964 }
2965
2966 while _next_ordinal_to_read < 5 {
2968 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2969 _next_ordinal_to_read += 1;
2970 next_offset += envelope_size;
2971 }
2972
2973 let next_out_of_line = decoder.next_out_of_line();
2974 let handles_before = decoder.remaining_handles();
2975 if let Some((inlined, num_bytes, num_handles)) =
2976 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2977 {
2978 let member_inline_size =
2979 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2980 if inlined != (member_inline_size <= 4) {
2981 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2982 }
2983 let inner_offset;
2984 let mut inner_depth = depth.clone();
2985 if inlined {
2986 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2987 inner_offset = next_offset;
2988 } else {
2989 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2990 inner_depth.increment()?;
2991 }
2992 let val_ref = self.mutation_depth.get_or_insert_with(|| fidl::new_empty!(u16, D));
2993 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
2994 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2995 {
2996 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2997 }
2998 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2999 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3000 }
3001 }
3002
3003 next_offset += envelope_size;
3004 _next_ordinal_to_read += 1;
3005 if next_offset >= end_offset {
3006 return Ok(());
3007 }
3008
3009 while _next_ordinal_to_read < 6 {
3011 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3012 _next_ordinal_to_read += 1;
3013 next_offset += envelope_size;
3014 }
3015
3016 let next_out_of_line = decoder.next_out_of_line();
3017 let handles_before = decoder.remaining_handles();
3018 if let Some((inlined, num_bytes, num_handles)) =
3019 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3020 {
3021 let member_inline_size =
3022 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3023 if inlined != (member_inline_size <= 4) {
3024 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3025 }
3026 let inner_offset;
3027 let mut inner_depth = depth.clone();
3028 if inlined {
3029 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3030 inner_offset = next_offset;
3031 } else {
3032 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3033 inner_depth.increment()?;
3034 }
3035 let val_ref = self.dictionary_level.get_or_insert_with(|| fidl::new_empty!(u16, D));
3036 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3037 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3038 {
3039 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3040 }
3041 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3042 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3043 }
3044 }
3045
3046 next_offset += envelope_size;
3047 _next_ordinal_to_read += 1;
3048 if next_offset >= end_offset {
3049 return Ok(());
3050 }
3051
3052 while _next_ordinal_to_read < 7 {
3054 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3055 _next_ordinal_to_read += 1;
3056 next_offset += envelope_size;
3057 }
3058
3059 let next_out_of_line = decoder.next_out_of_line();
3060 let handles_before = decoder.remaining_handles();
3061 if let Some((inlined, num_bytes, num_handles)) =
3062 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3063 {
3064 let member_inline_size =
3065 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3066 if inlined != (member_inline_size <= 4) {
3067 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3068 }
3069 let inner_offset;
3070 let mut inner_depth = depth.clone();
3071 if inlined {
3072 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3073 inner_offset = next_offset;
3074 } else {
3075 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3076 inner_depth.increment()?;
3077 }
3078 let val_ref = self.detect_exits.get_or_insert_with(|| fidl::new_empty!(bool, D));
3079 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3080 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3081 {
3082 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3083 }
3084 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3085 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3086 }
3087 }
3088
3089 next_offset += envelope_size;
3090 _next_ordinal_to_read += 1;
3091 if next_offset >= end_offset {
3092 return Ok(());
3093 }
3094
3095 while _next_ordinal_to_read < 8 {
3097 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3098 _next_ordinal_to_read += 1;
3099 next_offset += envelope_size;
3100 }
3101
3102 let next_out_of_line = decoder.next_out_of_line();
3103 let handles_before = decoder.remaining_handles();
3104 if let Some((inlined, num_bytes, num_handles)) =
3105 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3106 {
3107 let member_inline_size =
3108 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3109 if inlined != (member_inline_size <= 4) {
3110 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3111 }
3112 let inner_offset;
3113 let mut inner_depth = depth.clone();
3114 if inlined {
3115 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3116 inner_offset = next_offset;
3117 } else {
3118 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3119 inner_depth.increment()?;
3120 }
3121 let val_ref = self.detect_leaks.get_or_insert_with(|| fidl::new_empty!(bool, D));
3122 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3124 {
3125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3126 }
3127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3129 }
3130 }
3131
3132 next_offset += envelope_size;
3133 _next_ordinal_to_read += 1;
3134 if next_offset >= end_offset {
3135 return Ok(());
3136 }
3137
3138 while _next_ordinal_to_read < 9 {
3140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3141 _next_ordinal_to_read += 1;
3142 next_offset += envelope_size;
3143 }
3144
3145 let next_out_of_line = decoder.next_out_of_line();
3146 let handles_before = decoder.remaining_handles();
3147 if let Some((inlined, num_bytes, num_handles)) =
3148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3149 {
3150 let member_inline_size =
3151 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3152 if inlined != (member_inline_size <= 4) {
3153 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3154 }
3155 let inner_offset;
3156 let mut inner_depth = depth.clone();
3157 if inlined {
3158 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3159 inner_offset = next_offset;
3160 } else {
3161 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3162 inner_depth.increment()?;
3163 }
3164 let val_ref = self.run_limit.get_or_insert_with(|| fidl::new_empty!(i64, D));
3165 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3166 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3167 {
3168 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3169 }
3170 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3171 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3172 }
3173 }
3174
3175 next_offset += envelope_size;
3176 _next_ordinal_to_read += 1;
3177 if next_offset >= end_offset {
3178 return Ok(());
3179 }
3180
3181 while _next_ordinal_to_read < 10 {
3183 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3184 _next_ordinal_to_read += 1;
3185 next_offset += envelope_size;
3186 }
3187
3188 let next_out_of_line = decoder.next_out_of_line();
3189 let handles_before = decoder.remaining_handles();
3190 if let Some((inlined, num_bytes, num_handles)) =
3191 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3192 {
3193 let member_inline_size =
3194 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3195 if inlined != (member_inline_size <= 4) {
3196 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3197 }
3198 let inner_offset;
3199 let mut inner_depth = depth.clone();
3200 if inlined {
3201 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3202 inner_offset = next_offset;
3203 } else {
3204 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3205 inner_depth.increment()?;
3206 }
3207 let val_ref = self.malloc_limit.get_or_insert_with(|| fidl::new_empty!(u64, D));
3208 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3209 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3210 {
3211 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3212 }
3213 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3214 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3215 }
3216 }
3217
3218 next_offset += envelope_size;
3219 _next_ordinal_to_read += 1;
3220 if next_offset >= end_offset {
3221 return Ok(());
3222 }
3223
3224 while _next_ordinal_to_read < 11 {
3226 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3227 _next_ordinal_to_read += 1;
3228 next_offset += envelope_size;
3229 }
3230
3231 let next_out_of_line = decoder.next_out_of_line();
3232 let handles_before = decoder.remaining_handles();
3233 if let Some((inlined, num_bytes, num_handles)) =
3234 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3235 {
3236 let member_inline_size =
3237 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3238 if inlined != (member_inline_size <= 4) {
3239 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3240 }
3241 let inner_offset;
3242 let mut inner_depth = depth.clone();
3243 if inlined {
3244 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3245 inner_offset = next_offset;
3246 } else {
3247 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3248 inner_depth.increment()?;
3249 }
3250 let val_ref = self.oom_limit.get_or_insert_with(|| fidl::new_empty!(u64, D));
3251 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3252 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3253 {
3254 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3255 }
3256 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3257 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3258 }
3259 }
3260
3261 next_offset += envelope_size;
3262 _next_ordinal_to_read += 1;
3263 if next_offset >= end_offset {
3264 return Ok(());
3265 }
3266
3267 while _next_ordinal_to_read < 12 {
3269 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3270 _next_ordinal_to_read += 1;
3271 next_offset += envelope_size;
3272 }
3273
3274 let next_out_of_line = decoder.next_out_of_line();
3275 let handles_before = decoder.remaining_handles();
3276 if let Some((inlined, num_bytes, num_handles)) =
3277 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3278 {
3279 let member_inline_size =
3280 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3281 if inlined != (member_inline_size <= 4) {
3282 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3283 }
3284 let inner_offset;
3285 let mut inner_depth = depth.clone();
3286 if inlined {
3287 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3288 inner_offset = next_offset;
3289 } else {
3290 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3291 inner_depth.increment()?;
3292 }
3293 let val_ref = self.purge_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
3294 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3295 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3296 {
3297 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3298 }
3299 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3300 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3301 }
3302 }
3303
3304 next_offset += envelope_size;
3305 _next_ordinal_to_read += 1;
3306 if next_offset >= end_offset {
3307 return Ok(());
3308 }
3309
3310 while _next_ordinal_to_read < 13 {
3312 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3313 _next_ordinal_to_read += 1;
3314 next_offset += envelope_size;
3315 }
3316
3317 let next_out_of_line = decoder.next_out_of_line();
3318 let handles_before = decoder.remaining_handles();
3319 if let Some((inlined, num_bytes, num_handles)) =
3320 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3321 {
3322 let member_inline_size =
3323 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3324 if inlined != (member_inline_size <= 4) {
3325 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3326 }
3327 let inner_offset;
3328 let mut inner_depth = depth.clone();
3329 if inlined {
3330 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3331 inner_offset = next_offset;
3332 } else {
3333 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3334 inner_depth.increment()?;
3335 }
3336 let val_ref = self.malloc_exitcode.get_or_insert_with(|| fidl::new_empty!(i32, D));
3337 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3338 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3339 {
3340 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3341 }
3342 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3343 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3344 }
3345 }
3346
3347 next_offset += envelope_size;
3348 _next_ordinal_to_read += 1;
3349 if next_offset >= end_offset {
3350 return Ok(());
3351 }
3352
3353 while _next_ordinal_to_read < 14 {
3355 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3356 _next_ordinal_to_read += 1;
3357 next_offset += envelope_size;
3358 }
3359
3360 let next_out_of_line = decoder.next_out_of_line();
3361 let handles_before = decoder.remaining_handles();
3362 if let Some((inlined, num_bytes, num_handles)) =
3363 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3364 {
3365 let member_inline_size =
3366 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3367 if inlined != (member_inline_size <= 4) {
3368 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3369 }
3370 let inner_offset;
3371 let mut inner_depth = depth.clone();
3372 if inlined {
3373 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3374 inner_offset = next_offset;
3375 } else {
3376 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3377 inner_depth.increment()?;
3378 }
3379 let val_ref = self.death_exitcode.get_or_insert_with(|| fidl::new_empty!(i32, D));
3380 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3381 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3382 {
3383 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3384 }
3385 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3386 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3387 }
3388 }
3389
3390 next_offset += envelope_size;
3391 _next_ordinal_to_read += 1;
3392 if next_offset >= end_offset {
3393 return Ok(());
3394 }
3395
3396 while _next_ordinal_to_read < 15 {
3398 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3399 _next_ordinal_to_read += 1;
3400 next_offset += envelope_size;
3401 }
3402
3403 let next_out_of_line = decoder.next_out_of_line();
3404 let handles_before = decoder.remaining_handles();
3405 if let Some((inlined, num_bytes, num_handles)) =
3406 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3407 {
3408 let member_inline_size =
3409 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3410 if inlined != (member_inline_size <= 4) {
3411 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3412 }
3413 let inner_offset;
3414 let mut inner_depth = depth.clone();
3415 if inlined {
3416 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3417 inner_offset = next_offset;
3418 } else {
3419 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3420 inner_depth.increment()?;
3421 }
3422 let val_ref = self.leak_exitcode.get_or_insert_with(|| fidl::new_empty!(i32, D));
3423 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3424 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3425 {
3426 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3427 }
3428 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3429 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3430 }
3431 }
3432
3433 next_offset += envelope_size;
3434 _next_ordinal_to_read += 1;
3435 if next_offset >= end_offset {
3436 return Ok(());
3437 }
3438
3439 while _next_ordinal_to_read < 16 {
3441 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3442 _next_ordinal_to_read += 1;
3443 next_offset += envelope_size;
3444 }
3445
3446 let next_out_of_line = decoder.next_out_of_line();
3447 let handles_before = decoder.remaining_handles();
3448 if let Some((inlined, num_bytes, num_handles)) =
3449 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3450 {
3451 let member_inline_size =
3452 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3453 if inlined != (member_inline_size <= 4) {
3454 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3455 }
3456 let inner_offset;
3457 let mut inner_depth = depth.clone();
3458 if inlined {
3459 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3460 inner_offset = next_offset;
3461 } else {
3462 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3463 inner_depth.increment()?;
3464 }
3465 let val_ref = self.oom_exitcode.get_or_insert_with(|| fidl::new_empty!(i32, D));
3466 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3467 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3468 {
3469 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3470 }
3471 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3472 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3473 }
3474 }
3475
3476 next_offset += envelope_size;
3477 _next_ordinal_to_read += 1;
3478 if next_offset >= end_offset {
3479 return Ok(());
3480 }
3481
3482 while _next_ordinal_to_read < 17 {
3484 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3485 _next_ordinal_to_read += 1;
3486 next_offset += envelope_size;
3487 }
3488
3489 let next_out_of_line = decoder.next_out_of_line();
3490 let handles_before = decoder.remaining_handles();
3491 if let Some((inlined, num_bytes, num_handles)) =
3492 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3493 {
3494 let member_inline_size =
3495 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3496 if inlined != (member_inline_size <= 4) {
3497 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3498 }
3499 let inner_offset;
3500 let mut inner_depth = depth.clone();
3501 if inlined {
3502 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3503 inner_offset = next_offset;
3504 } else {
3505 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3506 inner_depth.increment()?;
3507 }
3508 let val_ref = self.pulse_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
3509 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3510 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3511 {
3512 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3513 }
3514 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3515 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3516 }
3517 }
3518
3519 next_offset += envelope_size;
3520 _next_ordinal_to_read += 1;
3521 if next_offset >= end_offset {
3522 return Ok(());
3523 }
3524
3525 while _next_ordinal_to_read < 18 {
3527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3528 _next_ordinal_to_read += 1;
3529 next_offset += envelope_size;
3530 }
3531
3532 let next_out_of_line = decoder.next_out_of_line();
3533 let handles_before = decoder.remaining_handles();
3534 if let Some((inlined, num_bytes, num_handles)) =
3535 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3536 {
3537 let member_inline_size =
3538 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3539 if inlined != (member_inline_size <= 4) {
3540 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3541 }
3542 let inner_offset;
3543 let mut inner_depth = depth.clone();
3544 if inlined {
3545 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3546 inner_offset = next_offset;
3547 } else {
3548 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3549 inner_depth.increment()?;
3550 }
3551 let val_ref = self.debug.get_or_insert_with(|| fidl::new_empty!(bool, D));
3552 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3553 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3554 {
3555 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3556 }
3557 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3558 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3559 }
3560 }
3561
3562 next_offset += envelope_size;
3563 _next_ordinal_to_read += 1;
3564 if next_offset >= end_offset {
3565 return Ok(());
3566 }
3567
3568 while _next_ordinal_to_read < 19 {
3570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3571 _next_ordinal_to_read += 1;
3572 next_offset += envelope_size;
3573 }
3574
3575 let next_out_of_line = decoder.next_out_of_line();
3576 let handles_before = decoder.remaining_handles();
3577 if let Some((inlined, num_bytes, num_handles)) =
3578 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3579 {
3580 let member_inline_size =
3581 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3582 if inlined != (member_inline_size <= 4) {
3583 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3584 }
3585 let inner_offset;
3586 let mut inner_depth = depth.clone();
3587 if inlined {
3588 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3589 inner_offset = next_offset;
3590 } else {
3591 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3592 inner_depth.increment()?;
3593 }
3594 let val_ref =
3595 self.print_final_stats.get_or_insert_with(|| fidl::new_empty!(bool, D));
3596 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3597 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3598 {
3599 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3600 }
3601 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3602 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3603 }
3604 }
3605
3606 next_offset += envelope_size;
3607 _next_ordinal_to_read += 1;
3608 if next_offset >= end_offset {
3609 return Ok(());
3610 }
3611
3612 while _next_ordinal_to_read < 20 {
3614 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3615 _next_ordinal_to_read += 1;
3616 next_offset += envelope_size;
3617 }
3618
3619 let next_out_of_line = decoder.next_out_of_line();
3620 let handles_before = decoder.remaining_handles();
3621 if let Some((inlined, num_bytes, num_handles)) =
3622 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3623 {
3624 let member_inline_size =
3625 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3626 if inlined != (member_inline_size <= 4) {
3627 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3628 }
3629 let inner_offset;
3630 let mut inner_depth = depth.clone();
3631 if inlined {
3632 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3633 inner_offset = next_offset;
3634 } else {
3635 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3636 inner_depth.increment()?;
3637 }
3638 let val_ref =
3639 self.use_value_profile.get_or_insert_with(|| fidl::new_empty!(bool, D));
3640 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3641 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3642 {
3643 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3644 }
3645 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3646 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3647 }
3648 }
3649
3650 next_offset += envelope_size;
3651 _next_ordinal_to_read += 1;
3652 if next_offset >= end_offset {
3653 return Ok(());
3654 }
3655
3656 while _next_ordinal_to_read < 21 {
3658 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3659 _next_ordinal_to_read += 1;
3660 next_offset += envelope_size;
3661 }
3662
3663 let next_out_of_line = decoder.next_out_of_line();
3664 let handles_before = decoder.remaining_handles();
3665 if let Some((inlined, num_bytes, num_handles)) =
3666 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3667 {
3668 let member_inline_size =
3669 <SanitizerOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3670 if inlined != (member_inline_size <= 4) {
3671 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3672 }
3673 let inner_offset;
3674 let mut inner_depth = depth.clone();
3675 if inlined {
3676 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3677 inner_offset = next_offset;
3678 } else {
3679 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3680 inner_depth.increment()?;
3681 }
3682 let val_ref = self
3683 .sanitizer_options
3684 .get_or_insert_with(|| fidl::new_empty!(SanitizerOptions, D));
3685 fidl::decode!(SanitizerOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
3686 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3687 {
3688 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3689 }
3690 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3691 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3692 }
3693 }
3694
3695 next_offset += envelope_size;
3696 _next_ordinal_to_read += 1;
3697 if next_offset >= end_offset {
3698 return Ok(());
3699 }
3700
3701 while _next_ordinal_to_read < 22 {
3703 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3704 _next_ordinal_to_read += 1;
3705 next_offset += envelope_size;
3706 }
3707
3708 let next_out_of_line = decoder.next_out_of_line();
3709 let handles_before = decoder.remaining_handles();
3710 if let Some((inlined, num_bytes, num_handles)) =
3711 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3712 {
3713 let member_inline_size =
3714 <OutputFlags as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3715 if inlined != (member_inline_size <= 4) {
3716 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3717 }
3718 let inner_offset;
3719 let mut inner_depth = depth.clone();
3720 if inlined {
3721 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3722 inner_offset = next_offset;
3723 } else {
3724 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3725 inner_depth.increment()?;
3726 }
3727 let val_ref =
3728 self.output_flags.get_or_insert_with(|| fidl::new_empty!(OutputFlags, D));
3729 fidl::decode!(OutputFlags, D, val_ref, decoder, inner_offset, inner_depth)?;
3730 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3731 {
3732 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3733 }
3734 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3735 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3736 }
3737 }
3738
3739 next_offset += envelope_size;
3740
3741 while next_offset < end_offset {
3743 _next_ordinal_to_read += 1;
3744 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3745 next_offset += envelope_size;
3746 }
3747
3748 Ok(())
3749 }
3750 }
3751
3752 impl Status {
3753 #[inline(always)]
3754 fn max_ordinal_present(&self) -> u64 {
3755 if let Some(_) = self.process_stats {
3756 return 8;
3757 }
3758 if let Some(_) = self.corpus_total_size {
3759 return 7;
3760 }
3761 if let Some(_) = self.corpus_num_inputs {
3762 return 6;
3763 }
3764 if let Some(_) = self.covered_features {
3765 return 5;
3766 }
3767 if let Some(_) = self.covered_pcs {
3768 return 4;
3769 }
3770 if let Some(_) = self.elapsed {
3771 return 3;
3772 }
3773 if let Some(_) = self.runs {
3774 return 2;
3775 }
3776 if let Some(_) = self.running {
3777 return 1;
3778 }
3779 0
3780 }
3781 }
3782
3783 impl fidl::encoding::ValueTypeMarker for Status {
3784 type Borrowed<'a> = &'a Self;
3785 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3786 value
3787 }
3788 }
3789
3790 unsafe impl fidl::encoding::TypeMarker for Status {
3791 type Owned = Self;
3792
3793 #[inline(always)]
3794 fn inline_align(_context: fidl::encoding::Context) -> usize {
3795 8
3796 }
3797
3798 #[inline(always)]
3799 fn inline_size(_context: fidl::encoding::Context) -> usize {
3800 16
3801 }
3802 }
3803
3804 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Status, D> for &Status {
3805 unsafe fn encode(
3806 self,
3807 encoder: &mut fidl::encoding::Encoder<'_, D>,
3808 offset: usize,
3809 mut depth: fidl::encoding::Depth,
3810 ) -> fidl::Result<()> {
3811 encoder.debug_check_bounds::<Status>(offset);
3812 let max_ordinal: u64 = self.max_ordinal_present();
3814 encoder.write_num(max_ordinal, offset);
3815 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3816 if max_ordinal == 0 {
3818 return Ok(());
3819 }
3820 depth.increment()?;
3821 let envelope_size = 8;
3822 let bytes_len = max_ordinal as usize * envelope_size;
3823 #[allow(unused_variables)]
3824 let offset = encoder.out_of_line_offset(bytes_len);
3825 let mut _prev_end_offset: usize = 0;
3826 if 1 > max_ordinal {
3827 return Ok(());
3828 }
3829
3830 let cur_offset: usize = (1 - 1) * envelope_size;
3833
3834 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3836
3837 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3842 self.running.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3843 encoder,
3844 offset + cur_offset,
3845 depth,
3846 )?;
3847
3848 _prev_end_offset = cur_offset + envelope_size;
3849 if 2 > max_ordinal {
3850 return Ok(());
3851 }
3852
3853 let cur_offset: usize = (2 - 1) * envelope_size;
3856
3857 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3859
3860 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3865 self.runs.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3866 encoder,
3867 offset + cur_offset,
3868 depth,
3869 )?;
3870
3871 _prev_end_offset = cur_offset + envelope_size;
3872 if 3 > max_ordinal {
3873 return Ok(());
3874 }
3875
3876 let cur_offset: usize = (3 - 1) * envelope_size;
3879
3880 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3882
3883 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3888 self.elapsed.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3889 encoder,
3890 offset + cur_offset,
3891 depth,
3892 )?;
3893
3894 _prev_end_offset = cur_offset + envelope_size;
3895 if 4 > max_ordinal {
3896 return Ok(());
3897 }
3898
3899 let cur_offset: usize = (4 - 1) * envelope_size;
3902
3903 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3905
3906 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3911 self.covered_pcs.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3912 encoder,
3913 offset + cur_offset,
3914 depth,
3915 )?;
3916
3917 _prev_end_offset = cur_offset + envelope_size;
3918 if 5 > max_ordinal {
3919 return Ok(());
3920 }
3921
3922 let cur_offset: usize = (5 - 1) * envelope_size;
3925
3926 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3928
3929 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3934 self.covered_features
3935 .as_ref()
3936 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3937 encoder,
3938 offset + cur_offset,
3939 depth,
3940 )?;
3941
3942 _prev_end_offset = cur_offset + envelope_size;
3943 if 6 > max_ordinal {
3944 return Ok(());
3945 }
3946
3947 let cur_offset: usize = (6 - 1) * envelope_size;
3950
3951 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3953
3954 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3959 self.corpus_num_inputs
3960 .as_ref()
3961 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3962 encoder,
3963 offset + cur_offset,
3964 depth,
3965 )?;
3966
3967 _prev_end_offset = cur_offset + envelope_size;
3968 if 7 > max_ordinal {
3969 return Ok(());
3970 }
3971
3972 let cur_offset: usize = (7 - 1) * envelope_size;
3975
3976 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3978
3979 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3984 self.corpus_total_size
3985 .as_ref()
3986 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3987 encoder,
3988 offset + cur_offset,
3989 depth,
3990 )?;
3991
3992 _prev_end_offset = cur_offset + envelope_size;
3993 if 8 > max_ordinal {
3994 return Ok(());
3995 }
3996
3997 let cur_offset: usize = (8 - 1) * envelope_size;
4000
4001 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4003
4004 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ProcessStats, 256>, D>(
4009 self.process_stats.as_ref().map(<fidl::encoding::Vector<ProcessStats, 256> as fidl::encoding::ValueTypeMarker>::borrow),
4010 encoder, offset + cur_offset, depth
4011 )?;
4012
4013 _prev_end_offset = cur_offset + envelope_size;
4014
4015 Ok(())
4016 }
4017 }
4018
4019 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Status {
4020 #[inline(always)]
4021 fn new_empty() -> Self {
4022 Self::default()
4023 }
4024
4025 unsafe fn decode(
4026 &mut self,
4027 decoder: &mut fidl::encoding::Decoder<'_, D>,
4028 offset: usize,
4029 mut depth: fidl::encoding::Depth,
4030 ) -> fidl::Result<()> {
4031 decoder.debug_check_bounds::<Self>(offset);
4032 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4033 None => return Err(fidl::Error::NotNullable),
4034 Some(len) => len,
4035 };
4036 if len == 0 {
4038 return Ok(());
4039 };
4040 depth.increment()?;
4041 let envelope_size = 8;
4042 let bytes_len = len * envelope_size;
4043 let offset = decoder.out_of_line_offset(bytes_len)?;
4044 let mut _next_ordinal_to_read = 0;
4046 let mut next_offset = offset;
4047 let end_offset = offset + bytes_len;
4048 _next_ordinal_to_read += 1;
4049 if next_offset >= end_offset {
4050 return Ok(());
4051 }
4052
4053 while _next_ordinal_to_read < 1 {
4055 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4056 _next_ordinal_to_read += 1;
4057 next_offset += envelope_size;
4058 }
4059
4060 let next_out_of_line = decoder.next_out_of_line();
4061 let handles_before = decoder.remaining_handles();
4062 if let Some((inlined, num_bytes, num_handles)) =
4063 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4064 {
4065 let member_inline_size =
4066 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4067 if inlined != (member_inline_size <= 4) {
4068 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4069 }
4070 let inner_offset;
4071 let mut inner_depth = depth.clone();
4072 if inlined {
4073 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4074 inner_offset = next_offset;
4075 } else {
4076 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4077 inner_depth.increment()?;
4078 }
4079 let val_ref = self.running.get_or_insert_with(|| fidl::new_empty!(bool, D));
4080 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4081 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4082 {
4083 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4084 }
4085 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4086 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4087 }
4088 }
4089
4090 next_offset += envelope_size;
4091 _next_ordinal_to_read += 1;
4092 if next_offset >= end_offset {
4093 return Ok(());
4094 }
4095
4096 while _next_ordinal_to_read < 2 {
4098 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4099 _next_ordinal_to_read += 1;
4100 next_offset += envelope_size;
4101 }
4102
4103 let next_out_of_line = decoder.next_out_of_line();
4104 let handles_before = decoder.remaining_handles();
4105 if let Some((inlined, num_bytes, num_handles)) =
4106 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4107 {
4108 let member_inline_size =
4109 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4110 if inlined != (member_inline_size <= 4) {
4111 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4112 }
4113 let inner_offset;
4114 let mut inner_depth = depth.clone();
4115 if inlined {
4116 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4117 inner_offset = next_offset;
4118 } else {
4119 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4120 inner_depth.increment()?;
4121 }
4122 let val_ref = self.runs.get_or_insert_with(|| fidl::new_empty!(u32, D));
4123 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4124 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4125 {
4126 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4127 }
4128 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4129 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4130 }
4131 }
4132
4133 next_offset += envelope_size;
4134 _next_ordinal_to_read += 1;
4135 if next_offset >= end_offset {
4136 return Ok(());
4137 }
4138
4139 while _next_ordinal_to_read < 3 {
4141 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4142 _next_ordinal_to_read += 1;
4143 next_offset += envelope_size;
4144 }
4145
4146 let next_out_of_line = decoder.next_out_of_line();
4147 let handles_before = decoder.remaining_handles();
4148 if let Some((inlined, num_bytes, num_handles)) =
4149 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4150 {
4151 let member_inline_size =
4152 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4153 if inlined != (member_inline_size <= 4) {
4154 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4155 }
4156 let inner_offset;
4157 let mut inner_depth = depth.clone();
4158 if inlined {
4159 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4160 inner_offset = next_offset;
4161 } else {
4162 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4163 inner_depth.increment()?;
4164 }
4165 let val_ref = self.elapsed.get_or_insert_with(|| fidl::new_empty!(i64, D));
4166 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4168 {
4169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4170 }
4171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4173 }
4174 }
4175
4176 next_offset += envelope_size;
4177 _next_ordinal_to_read += 1;
4178 if next_offset >= end_offset {
4179 return Ok(());
4180 }
4181
4182 while _next_ordinal_to_read < 4 {
4184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4185 _next_ordinal_to_read += 1;
4186 next_offset += envelope_size;
4187 }
4188
4189 let next_out_of_line = decoder.next_out_of_line();
4190 let handles_before = decoder.remaining_handles();
4191 if let Some((inlined, num_bytes, num_handles)) =
4192 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4193 {
4194 let member_inline_size =
4195 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4196 if inlined != (member_inline_size <= 4) {
4197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4198 }
4199 let inner_offset;
4200 let mut inner_depth = depth.clone();
4201 if inlined {
4202 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4203 inner_offset = next_offset;
4204 } else {
4205 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4206 inner_depth.increment()?;
4207 }
4208 let val_ref = self.covered_pcs.get_or_insert_with(|| fidl::new_empty!(u64, D));
4209 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4210 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4211 {
4212 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4213 }
4214 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4215 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4216 }
4217 }
4218
4219 next_offset += envelope_size;
4220 _next_ordinal_to_read += 1;
4221 if next_offset >= end_offset {
4222 return Ok(());
4223 }
4224
4225 while _next_ordinal_to_read < 5 {
4227 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4228 _next_ordinal_to_read += 1;
4229 next_offset += envelope_size;
4230 }
4231
4232 let next_out_of_line = decoder.next_out_of_line();
4233 let handles_before = decoder.remaining_handles();
4234 if let Some((inlined, num_bytes, num_handles)) =
4235 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4236 {
4237 let member_inline_size =
4238 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4239 if inlined != (member_inline_size <= 4) {
4240 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4241 }
4242 let inner_offset;
4243 let mut inner_depth = depth.clone();
4244 if inlined {
4245 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4246 inner_offset = next_offset;
4247 } else {
4248 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4249 inner_depth.increment()?;
4250 }
4251 let val_ref = self.covered_features.get_or_insert_with(|| fidl::new_empty!(u64, D));
4252 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4253 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4254 {
4255 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4256 }
4257 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4258 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4259 }
4260 }
4261
4262 next_offset += envelope_size;
4263 _next_ordinal_to_read += 1;
4264 if next_offset >= end_offset {
4265 return Ok(());
4266 }
4267
4268 while _next_ordinal_to_read < 6 {
4270 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4271 _next_ordinal_to_read += 1;
4272 next_offset += envelope_size;
4273 }
4274
4275 let next_out_of_line = decoder.next_out_of_line();
4276 let handles_before = decoder.remaining_handles();
4277 if let Some((inlined, num_bytes, num_handles)) =
4278 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4279 {
4280 let member_inline_size =
4281 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4282 if inlined != (member_inline_size <= 4) {
4283 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4284 }
4285 let inner_offset;
4286 let mut inner_depth = depth.clone();
4287 if inlined {
4288 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4289 inner_offset = next_offset;
4290 } else {
4291 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4292 inner_depth.increment()?;
4293 }
4294 let val_ref =
4295 self.corpus_num_inputs.get_or_insert_with(|| fidl::new_empty!(u64, D));
4296 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4297 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4298 {
4299 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4300 }
4301 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4302 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4303 }
4304 }
4305
4306 next_offset += envelope_size;
4307 _next_ordinal_to_read += 1;
4308 if next_offset >= end_offset {
4309 return Ok(());
4310 }
4311
4312 while _next_ordinal_to_read < 7 {
4314 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4315 _next_ordinal_to_read += 1;
4316 next_offset += envelope_size;
4317 }
4318
4319 let next_out_of_line = decoder.next_out_of_line();
4320 let handles_before = decoder.remaining_handles();
4321 if let Some((inlined, num_bytes, num_handles)) =
4322 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4323 {
4324 let member_inline_size =
4325 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4326 if inlined != (member_inline_size <= 4) {
4327 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4328 }
4329 let inner_offset;
4330 let mut inner_depth = depth.clone();
4331 if inlined {
4332 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4333 inner_offset = next_offset;
4334 } else {
4335 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4336 inner_depth.increment()?;
4337 }
4338 let val_ref =
4339 self.corpus_total_size.get_or_insert_with(|| fidl::new_empty!(u64, D));
4340 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4341 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4342 {
4343 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4344 }
4345 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4346 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4347 }
4348 }
4349
4350 next_offset += envelope_size;
4351 _next_ordinal_to_read += 1;
4352 if next_offset >= end_offset {
4353 return Ok(());
4354 }
4355
4356 while _next_ordinal_to_read < 8 {
4358 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4359 _next_ordinal_to_read += 1;
4360 next_offset += envelope_size;
4361 }
4362
4363 let next_out_of_line = decoder.next_out_of_line();
4364 let handles_before = decoder.remaining_handles();
4365 if let Some((inlined, num_bytes, num_handles)) =
4366 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4367 {
4368 let member_inline_size = <fidl::encoding::Vector<ProcessStats, 256> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4369 if inlined != (member_inline_size <= 4) {
4370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4371 }
4372 let inner_offset;
4373 let mut inner_depth = depth.clone();
4374 if inlined {
4375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4376 inner_offset = next_offset;
4377 } else {
4378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4379 inner_depth.increment()?;
4380 }
4381 let val_ref = self.process_stats.get_or_insert_with(
4382 || fidl::new_empty!(fidl::encoding::Vector<ProcessStats, 256>, D),
4383 );
4384 fidl::decode!(fidl::encoding::Vector<ProcessStats, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
4385 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4386 {
4387 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4388 }
4389 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4390 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4391 }
4392 }
4393
4394 next_offset += envelope_size;
4395
4396 while next_offset < end_offset {
4398 _next_ordinal_to_read += 1;
4399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4400 next_offset += envelope_size;
4401 }
4402
4403 Ok(())
4404 }
4405 }
4406}