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
678pub mod controller_ordinals {
679 pub const CONFIGURE: u64 = 0x35c8cba7fa3d32e4;
680 pub const GET_OPTIONS: u64 = 0x683d93332504b9cd;
681 pub const ADD_TO_CORPUS: u64 = 0x7bdf8336ab534cee;
682 pub const READ_CORPUS: u64 = 0x501279b430b34514;
683 pub const WRITE_DICTIONARY: u64 = 0x4ecfc1274fe4a70b;
684 pub const READ_DICTIONARY: u64 = 0x1be6724c87b51c37;
685 pub const ADD_MONITOR: u64 = 0x2efbf7d3dc21438e;
686 pub const FUZZ: u64 = 0x62fe3684ea23af62;
687 pub const TRY_ONE: u64 = 0x368dc762d8e16d46;
688 pub const MINIMIZE: u64 = 0x105a242ee0552794;
689 pub const CLEANSE: u64 = 0x6d7892f62735f3e0;
690 pub const MERGE: u64 = 0x3614e5c39413b5eb;
691 pub const GET_STATUS: u64 = 0x51db4975d93ce768;
692 pub const WATCH_ARTIFACT: u64 = 0x6cfca3730944a414;
693}
694
695pub mod controller_provider_ordinals {
696 pub const CONNECT: u64 = 0xc0325f0732defcb;
697 pub const STOP: u64 = 0x6cd6a98fc38bcbf2;
698}
699
700pub mod corpus_reader_ordinals {
701 pub const NEXT: u64 = 0x68d19e55ea635356;
702}
703
704pub mod coverage_data_collector_ordinals {
705 pub const INITIALIZE: u64 = 0x51d6f91d6f02d9d6;
706 pub const ADD_INLINE8BIT_COUNTERS: u64 = 0x75f87cadfc94d1be;
707}
708
709pub mod coverage_data_provider_ordinals {
710 pub const SET_OPTIONS: u64 = 0x4873c4a5c7683384;
711 pub const WATCH_COVERAGE_DATA: u64 = 0x34a92fc9c73bea5a;
712}
713
714pub mod manager_ordinals {
715 pub const CONNECT: u64 = 0x1620cd742a89f064;
716 pub const GET_OUTPUT: u64 = 0x755c28eecf20a88d;
717 pub const STOP: u64 = 0x27e53d86badd21f3;
718}
719
720pub mod monitor_ordinals {
721 pub const UPDATE: u64 = 0x7c773b93c1e6080f;
722}
723
724pub mod registrar_ordinals {
725 pub const REGISTER: u64 = 0x1716ac38e74b2840;
726}
727
728pub mod registry_ordinals {
729 pub const CONNECT: u64 = 0x5128cb31967a446f;
730 pub const DISCONNECT: u64 = 0x7bb4b7591146d4cb;
731}
732
733pub mod target_adapter_ordinals {
734 pub const GET_PARAMETERS: u64 = 0x5c7e40a47f753e3e;
735 pub const CONNECT: u64 = 0x7ea603a119866618;
736}
737
738mod internal {
739 use super::*;
740 unsafe impl fidl::encoding::TypeMarker for OutputFlags {
741 type Owned = Self;
742
743 #[inline(always)]
744 fn inline_align(_context: fidl::encoding::Context) -> usize {
745 4
746 }
747
748 #[inline(always)]
749 fn inline_size(_context: fidl::encoding::Context) -> usize {
750 4
751 }
752 }
753
754 impl fidl::encoding::ValueTypeMarker for OutputFlags {
755 type Borrowed<'a> = Self;
756 #[inline(always)]
757 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
758 *value
759 }
760 }
761
762 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for OutputFlags {
763 #[inline]
764 unsafe fn encode(
765 self,
766 encoder: &mut fidl::encoding::Encoder<'_, D>,
767 offset: usize,
768 _depth: fidl::encoding::Depth,
769 ) -> fidl::Result<()> {
770 encoder.debug_check_bounds::<Self>(offset);
771 if self.bits() & Self::all().bits() != self.bits() {
772 return Err(fidl::Error::InvalidBitsValue);
773 }
774 encoder.write_num(self.bits(), offset);
775 Ok(())
776 }
777 }
778
779 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OutputFlags {
780 #[inline(always)]
781 fn new_empty() -> Self {
782 Self::empty()
783 }
784
785 #[inline]
786 unsafe fn decode(
787 &mut self,
788 decoder: &mut fidl::encoding::Decoder<'_, D>,
789 offset: usize,
790 _depth: fidl::encoding::Depth,
791 ) -> fidl::Result<()> {
792 decoder.debug_check_bounds::<Self>(offset);
793 let prim = decoder.read_num::<u32>(offset);
794 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
795 Ok(())
796 }
797 }
798 unsafe impl fidl::encoding::TypeMarker for Corpus {
799 type Owned = Self;
800
801 #[inline(always)]
802 fn inline_align(_context: fidl::encoding::Context) -> usize {
803 std::mem::align_of::<u8>()
804 }
805
806 #[inline(always)]
807 fn inline_size(_context: fidl::encoding::Context) -> usize {
808 std::mem::size_of::<u8>()
809 }
810
811 #[inline(always)]
812 fn encode_is_copy() -> bool {
813 false
814 }
815
816 #[inline(always)]
817 fn decode_is_copy() -> bool {
818 false
819 }
820 }
821
822 impl fidl::encoding::ValueTypeMarker for Corpus {
823 type Borrowed<'a> = Self;
824 #[inline(always)]
825 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
826 *value
827 }
828 }
829
830 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Corpus {
831 #[inline]
832 unsafe fn encode(
833 self,
834 encoder: &mut fidl::encoding::Encoder<'_, D>,
835 offset: usize,
836 _depth: fidl::encoding::Depth,
837 ) -> fidl::Result<()> {
838 encoder.debug_check_bounds::<Self>(offset);
839 encoder.write_num(self.into_primitive(), offset);
840 Ok(())
841 }
842 }
843
844 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Corpus {
845 #[inline(always)]
846 fn new_empty() -> Self {
847 Self::unknown()
848 }
849
850 #[inline]
851 unsafe fn decode(
852 &mut self,
853 decoder: &mut fidl::encoding::Decoder<'_, D>,
854 offset: usize,
855 _depth: fidl::encoding::Depth,
856 ) -> fidl::Result<()> {
857 decoder.debug_check_bounds::<Self>(offset);
858 let prim = decoder.read_num::<u8>(offset);
859
860 *self = Self::from_primitive_allow_unknown(prim);
861 Ok(())
862 }
863 }
864 unsafe impl fidl::encoding::TypeMarker for Result_ {
865 type Owned = Self;
866
867 #[inline(always)]
868 fn inline_align(_context: fidl::encoding::Context) -> usize {
869 std::mem::align_of::<u32>()
870 }
871
872 #[inline(always)]
873 fn inline_size(_context: fidl::encoding::Context) -> usize {
874 std::mem::size_of::<u32>()
875 }
876
877 #[inline(always)]
878 fn encode_is_copy() -> bool {
879 false
880 }
881
882 #[inline(always)]
883 fn decode_is_copy() -> bool {
884 false
885 }
886 }
887
888 impl fidl::encoding::ValueTypeMarker for Result_ {
889 type Borrowed<'a> = Self;
890 #[inline(always)]
891 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
892 *value
893 }
894 }
895
896 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Result_ {
897 #[inline]
898 unsafe fn encode(
899 self,
900 encoder: &mut fidl::encoding::Encoder<'_, D>,
901 offset: usize,
902 _depth: fidl::encoding::Depth,
903 ) -> fidl::Result<()> {
904 encoder.debug_check_bounds::<Self>(offset);
905 encoder.write_num(self.into_primitive(), offset);
906 Ok(())
907 }
908 }
909
910 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Result_ {
911 #[inline(always)]
912 fn new_empty() -> Self {
913 Self::unknown()
914 }
915
916 #[inline]
917 unsafe fn decode(
918 &mut self,
919 decoder: &mut fidl::encoding::Decoder<'_, D>,
920 offset: usize,
921 _depth: fidl::encoding::Depth,
922 ) -> fidl::Result<()> {
923 decoder.debug_check_bounds::<Self>(offset);
924 let prim = decoder.read_num::<u32>(offset);
925
926 *self = Self::from_primitive_allow_unknown(prim);
927 Ok(())
928 }
929 }
930 unsafe impl fidl::encoding::TypeMarker for TestOutput {
931 type Owned = Self;
932
933 #[inline(always)]
934 fn inline_align(_context: fidl::encoding::Context) -> usize {
935 std::mem::align_of::<u32>()
936 }
937
938 #[inline(always)]
939 fn inline_size(_context: fidl::encoding::Context) -> usize {
940 std::mem::size_of::<u32>()
941 }
942
943 #[inline(always)]
944 fn encode_is_copy() -> bool {
945 false
946 }
947
948 #[inline(always)]
949 fn decode_is_copy() -> bool {
950 false
951 }
952 }
953
954 impl fidl::encoding::ValueTypeMarker for TestOutput {
955 type Borrowed<'a> = Self;
956 #[inline(always)]
957 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
958 *value
959 }
960 }
961
962 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for TestOutput {
963 #[inline]
964 unsafe fn encode(
965 self,
966 encoder: &mut fidl::encoding::Encoder<'_, D>,
967 offset: usize,
968 _depth: fidl::encoding::Depth,
969 ) -> fidl::Result<()> {
970 encoder.debug_check_bounds::<Self>(offset);
971 encoder.write_num(self.into_primitive(), offset);
972 Ok(())
973 }
974 }
975
976 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TestOutput {
977 #[inline(always)]
978 fn new_empty() -> Self {
979 Self::unknown()
980 }
981
982 #[inline]
983 unsafe fn decode(
984 &mut self,
985 decoder: &mut fidl::encoding::Decoder<'_, D>,
986 offset: usize,
987 _depth: fidl::encoding::Depth,
988 ) -> fidl::Result<()> {
989 decoder.debug_check_bounds::<Self>(offset);
990 let prim = decoder.read_num::<u32>(offset);
991
992 *self = Self::from_primitive_allow_unknown(prim);
993 Ok(())
994 }
995 }
996 unsafe impl fidl::encoding::TypeMarker for UpdateReason {
997 type Owned = Self;
998
999 #[inline(always)]
1000 fn inline_align(_context: fidl::encoding::Context) -> usize {
1001 std::mem::align_of::<u8>()
1002 }
1003
1004 #[inline(always)]
1005 fn inline_size(_context: fidl::encoding::Context) -> usize {
1006 std::mem::size_of::<u8>()
1007 }
1008
1009 #[inline(always)]
1010 fn encode_is_copy() -> bool {
1011 false
1012 }
1013
1014 #[inline(always)]
1015 fn decode_is_copy() -> bool {
1016 false
1017 }
1018 }
1019
1020 impl fidl::encoding::ValueTypeMarker for UpdateReason {
1021 type Borrowed<'a> = Self;
1022 #[inline(always)]
1023 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1024 *value
1025 }
1026 }
1027
1028 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for UpdateReason {
1029 #[inline]
1030 unsafe fn encode(
1031 self,
1032 encoder: &mut fidl::encoding::Encoder<'_, D>,
1033 offset: usize,
1034 _depth: fidl::encoding::Depth,
1035 ) -> fidl::Result<()> {
1036 encoder.debug_check_bounds::<Self>(offset);
1037 encoder.write_num(self.into_primitive(), offset);
1038 Ok(())
1039 }
1040 }
1041
1042 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UpdateReason {
1043 #[inline(always)]
1044 fn new_empty() -> Self {
1045 Self::unknown()
1046 }
1047
1048 #[inline]
1049 unsafe fn decode(
1050 &mut self,
1051 decoder: &mut fidl::encoding::Decoder<'_, D>,
1052 offset: usize,
1053 _depth: fidl::encoding::Depth,
1054 ) -> fidl::Result<()> {
1055 decoder.debug_check_bounds::<Self>(offset);
1056 let prim = decoder.read_num::<u8>(offset);
1057
1058 *self = Self::from_primitive_allow_unknown(prim);
1059 Ok(())
1060 }
1061 }
1062
1063 impl fidl::encoding::ValueTypeMarker for ControllerConfigureRequest {
1064 type Borrowed<'a> = &'a Self;
1065 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1066 value
1067 }
1068 }
1069
1070 unsafe impl fidl::encoding::TypeMarker for ControllerConfigureRequest {
1071 type Owned = Self;
1072
1073 #[inline(always)]
1074 fn inline_align(_context: fidl::encoding::Context) -> usize {
1075 8
1076 }
1077
1078 #[inline(always)]
1079 fn inline_size(_context: fidl::encoding::Context) -> usize {
1080 16
1081 }
1082 }
1083
1084 unsafe impl<D: fidl::encoding::ResourceDialect>
1085 fidl::encoding::Encode<ControllerConfigureRequest, D> for &ControllerConfigureRequest
1086 {
1087 #[inline]
1088 unsafe fn encode(
1089 self,
1090 encoder: &mut fidl::encoding::Encoder<'_, D>,
1091 offset: usize,
1092 _depth: fidl::encoding::Depth,
1093 ) -> fidl::Result<()> {
1094 encoder.debug_check_bounds::<ControllerConfigureRequest>(offset);
1095 fidl::encoding::Encode::<ControllerConfigureRequest, D>::encode(
1097 (<Options as fidl::encoding::ValueTypeMarker>::borrow(&self.options),),
1098 encoder,
1099 offset,
1100 _depth,
1101 )
1102 }
1103 }
1104 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Options, D>>
1105 fidl::encoding::Encode<ControllerConfigureRequest, D> for (T0,)
1106 {
1107 #[inline]
1108 unsafe fn encode(
1109 self,
1110 encoder: &mut fidl::encoding::Encoder<'_, D>,
1111 offset: usize,
1112 depth: fidl::encoding::Depth,
1113 ) -> fidl::Result<()> {
1114 encoder.debug_check_bounds::<ControllerConfigureRequest>(offset);
1115 self.0.encode(encoder, offset + 0, depth)?;
1119 Ok(())
1120 }
1121 }
1122
1123 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1124 for ControllerConfigureRequest
1125 {
1126 #[inline(always)]
1127 fn new_empty() -> Self {
1128 Self { options: fidl::new_empty!(Options, D) }
1129 }
1130
1131 #[inline]
1132 unsafe fn decode(
1133 &mut self,
1134 decoder: &mut fidl::encoding::Decoder<'_, D>,
1135 offset: usize,
1136 _depth: fidl::encoding::Depth,
1137 ) -> fidl::Result<()> {
1138 decoder.debug_check_bounds::<Self>(offset);
1139 fidl::decode!(Options, D, &mut self.options, decoder, offset + 0, _depth)?;
1141 Ok(())
1142 }
1143 }
1144
1145 impl fidl::encoding::ValueTypeMarker for ControllerGetOptionsResponse {
1146 type Borrowed<'a> = &'a Self;
1147 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1148 value
1149 }
1150 }
1151
1152 unsafe impl fidl::encoding::TypeMarker for ControllerGetOptionsResponse {
1153 type Owned = Self;
1154
1155 #[inline(always)]
1156 fn inline_align(_context: fidl::encoding::Context) -> usize {
1157 8
1158 }
1159
1160 #[inline(always)]
1161 fn inline_size(_context: fidl::encoding::Context) -> usize {
1162 16
1163 }
1164 }
1165
1166 unsafe impl<D: fidl::encoding::ResourceDialect>
1167 fidl::encoding::Encode<ControllerGetOptionsResponse, D> for &ControllerGetOptionsResponse
1168 {
1169 #[inline]
1170 unsafe fn encode(
1171 self,
1172 encoder: &mut fidl::encoding::Encoder<'_, D>,
1173 offset: usize,
1174 _depth: fidl::encoding::Depth,
1175 ) -> fidl::Result<()> {
1176 encoder.debug_check_bounds::<ControllerGetOptionsResponse>(offset);
1177 fidl::encoding::Encode::<ControllerGetOptionsResponse, D>::encode(
1179 (<Options as fidl::encoding::ValueTypeMarker>::borrow(&self.options),),
1180 encoder,
1181 offset,
1182 _depth,
1183 )
1184 }
1185 }
1186 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Options, D>>
1187 fidl::encoding::Encode<ControllerGetOptionsResponse, D> for (T0,)
1188 {
1189 #[inline]
1190 unsafe fn encode(
1191 self,
1192 encoder: &mut fidl::encoding::Encoder<'_, D>,
1193 offset: usize,
1194 depth: fidl::encoding::Depth,
1195 ) -> fidl::Result<()> {
1196 encoder.debug_check_bounds::<ControllerGetOptionsResponse>(offset);
1197 self.0.encode(encoder, offset + 0, depth)?;
1201 Ok(())
1202 }
1203 }
1204
1205 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1206 for ControllerGetOptionsResponse
1207 {
1208 #[inline(always)]
1209 fn new_empty() -> Self {
1210 Self { options: fidl::new_empty!(Options, D) }
1211 }
1212
1213 #[inline]
1214 unsafe fn decode(
1215 &mut self,
1216 decoder: &mut fidl::encoding::Decoder<'_, D>,
1217 offset: usize,
1218 _depth: fidl::encoding::Depth,
1219 ) -> fidl::Result<()> {
1220 decoder.debug_check_bounds::<Self>(offset);
1221 fidl::decode!(Options, D, &mut self.options, decoder, offset + 0, _depth)?;
1223 Ok(())
1224 }
1225 }
1226
1227 impl fidl::encoding::ValueTypeMarker for ControllerGetStatusResponse {
1228 type Borrowed<'a> = &'a Self;
1229 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1230 value
1231 }
1232 }
1233
1234 unsafe impl fidl::encoding::TypeMarker for ControllerGetStatusResponse {
1235 type Owned = Self;
1236
1237 #[inline(always)]
1238 fn inline_align(_context: fidl::encoding::Context) -> usize {
1239 8
1240 }
1241
1242 #[inline(always)]
1243 fn inline_size(_context: fidl::encoding::Context) -> usize {
1244 16
1245 }
1246 }
1247
1248 unsafe impl<D: fidl::encoding::ResourceDialect>
1249 fidl::encoding::Encode<ControllerGetStatusResponse, D> for &ControllerGetStatusResponse
1250 {
1251 #[inline]
1252 unsafe fn encode(
1253 self,
1254 encoder: &mut fidl::encoding::Encoder<'_, D>,
1255 offset: usize,
1256 _depth: fidl::encoding::Depth,
1257 ) -> fidl::Result<()> {
1258 encoder.debug_check_bounds::<ControllerGetStatusResponse>(offset);
1259 fidl::encoding::Encode::<ControllerGetStatusResponse, D>::encode(
1261 (<Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),),
1262 encoder,
1263 offset,
1264 _depth,
1265 )
1266 }
1267 }
1268 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Status, D>>
1269 fidl::encoding::Encode<ControllerGetStatusResponse, D> for (T0,)
1270 {
1271 #[inline]
1272 unsafe fn encode(
1273 self,
1274 encoder: &mut fidl::encoding::Encoder<'_, D>,
1275 offset: usize,
1276 depth: fidl::encoding::Depth,
1277 ) -> fidl::Result<()> {
1278 encoder.debug_check_bounds::<ControllerGetStatusResponse>(offset);
1279 self.0.encode(encoder, offset + 0, depth)?;
1283 Ok(())
1284 }
1285 }
1286
1287 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1288 for ControllerGetStatusResponse
1289 {
1290 #[inline(always)]
1291 fn new_empty() -> Self {
1292 Self { status: fidl::new_empty!(Status, D) }
1293 }
1294
1295 #[inline]
1296 unsafe fn decode(
1297 &mut self,
1298 decoder: &mut fidl::encoding::Decoder<'_, D>,
1299 offset: usize,
1300 _depth: fidl::encoding::Depth,
1301 ) -> fidl::Result<()> {
1302 decoder.debug_check_bounds::<Self>(offset);
1303 fidl::decode!(Status, D, &mut self.status, decoder, offset + 0, _depth)?;
1305 Ok(())
1306 }
1307 }
1308
1309 impl fidl::encoding::ValueTypeMarker for CorpusReaderNextResponse {
1310 type Borrowed<'a> = &'a Self;
1311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1312 value
1313 }
1314 }
1315
1316 unsafe impl fidl::encoding::TypeMarker for CorpusReaderNextResponse {
1317 type Owned = Self;
1318
1319 #[inline(always)]
1320 fn inline_align(_context: fidl::encoding::Context) -> usize {
1321 4
1322 }
1323
1324 #[inline(always)]
1325 fn inline_size(_context: fidl::encoding::Context) -> usize {
1326 4
1327 }
1328 #[inline(always)]
1329 fn encode_is_copy() -> bool {
1330 true
1331 }
1332
1333 #[inline(always)]
1334 fn decode_is_copy() -> bool {
1335 true
1336 }
1337 }
1338
1339 unsafe impl<D: fidl::encoding::ResourceDialect>
1340 fidl::encoding::Encode<CorpusReaderNextResponse, D> for &CorpusReaderNextResponse
1341 {
1342 #[inline]
1343 unsafe fn encode(
1344 self,
1345 encoder: &mut fidl::encoding::Encoder<'_, D>,
1346 offset: usize,
1347 _depth: fidl::encoding::Depth,
1348 ) -> fidl::Result<()> {
1349 encoder.debug_check_bounds::<CorpusReaderNextResponse>(offset);
1350 unsafe {
1351 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1353 (buf_ptr as *mut CorpusReaderNextResponse)
1354 .write_unaligned((self as *const CorpusReaderNextResponse).read());
1355 }
1358 Ok(())
1359 }
1360 }
1361 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
1362 fidl::encoding::Encode<CorpusReaderNextResponse, D> for (T0,)
1363 {
1364 #[inline]
1365 unsafe fn encode(
1366 self,
1367 encoder: &mut fidl::encoding::Encoder<'_, D>,
1368 offset: usize,
1369 depth: fidl::encoding::Depth,
1370 ) -> fidl::Result<()> {
1371 encoder.debug_check_bounds::<CorpusReaderNextResponse>(offset);
1372 self.0.encode(encoder, offset + 0, depth)?;
1376 Ok(())
1377 }
1378 }
1379
1380 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1381 for CorpusReaderNextResponse
1382 {
1383 #[inline(always)]
1384 fn new_empty() -> Self {
1385 Self { result: fidl::new_empty!(i32, D) }
1386 }
1387
1388 #[inline]
1389 unsafe fn decode(
1390 &mut self,
1391 decoder: &mut fidl::encoding::Decoder<'_, D>,
1392 offset: usize,
1393 _depth: fidl::encoding::Depth,
1394 ) -> fidl::Result<()> {
1395 decoder.debug_check_bounds::<Self>(offset);
1396 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1397 unsafe {
1400 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1401 }
1402 Ok(())
1403 }
1404 }
1405
1406 impl fidl::encoding::ValueTypeMarker for CoverageDataCollectorInitializeResponse {
1407 type Borrowed<'a> = &'a Self;
1408 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1409 value
1410 }
1411 }
1412
1413 unsafe impl fidl::encoding::TypeMarker for CoverageDataCollectorInitializeResponse {
1414 type Owned = Self;
1415
1416 #[inline(always)]
1417 fn inline_align(_context: fidl::encoding::Context) -> usize {
1418 8
1419 }
1420
1421 #[inline(always)]
1422 fn inline_size(_context: fidl::encoding::Context) -> usize {
1423 16
1424 }
1425 }
1426
1427 unsafe impl<D: fidl::encoding::ResourceDialect>
1428 fidl::encoding::Encode<CoverageDataCollectorInitializeResponse, D>
1429 for &CoverageDataCollectorInitializeResponse
1430 {
1431 #[inline]
1432 unsafe fn encode(
1433 self,
1434 encoder: &mut fidl::encoding::Encoder<'_, D>,
1435 offset: usize,
1436 _depth: fidl::encoding::Depth,
1437 ) -> fidl::Result<()> {
1438 encoder.debug_check_bounds::<CoverageDataCollectorInitializeResponse>(offset);
1439 fidl::encoding::Encode::<CoverageDataCollectorInitializeResponse, D>::encode(
1441 (<Options as fidl::encoding::ValueTypeMarker>::borrow(&self.options),),
1442 encoder,
1443 offset,
1444 _depth,
1445 )
1446 }
1447 }
1448 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Options, D>>
1449 fidl::encoding::Encode<CoverageDataCollectorInitializeResponse, D> for (T0,)
1450 {
1451 #[inline]
1452 unsafe fn encode(
1453 self,
1454 encoder: &mut fidl::encoding::Encoder<'_, D>,
1455 offset: usize,
1456 depth: fidl::encoding::Depth,
1457 ) -> fidl::Result<()> {
1458 encoder.debug_check_bounds::<CoverageDataCollectorInitializeResponse>(offset);
1459 self.0.encode(encoder, offset + 0, depth)?;
1463 Ok(())
1464 }
1465 }
1466
1467 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1468 for CoverageDataCollectorInitializeResponse
1469 {
1470 #[inline(always)]
1471 fn new_empty() -> Self {
1472 Self { options: fidl::new_empty!(Options, D) }
1473 }
1474
1475 #[inline]
1476 unsafe fn decode(
1477 &mut self,
1478 decoder: &mut fidl::encoding::Decoder<'_, D>,
1479 offset: usize,
1480 _depth: fidl::encoding::Depth,
1481 ) -> fidl::Result<()> {
1482 decoder.debug_check_bounds::<Self>(offset);
1483 fidl::decode!(Options, D, &mut self.options, decoder, offset + 0, _depth)?;
1485 Ok(())
1486 }
1487 }
1488
1489 impl fidl::encoding::ValueTypeMarker for CoverageDataProviderSetOptionsRequest {
1490 type Borrowed<'a> = &'a Self;
1491 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1492 value
1493 }
1494 }
1495
1496 unsafe impl fidl::encoding::TypeMarker for CoverageDataProviderSetOptionsRequest {
1497 type Owned = Self;
1498
1499 #[inline(always)]
1500 fn inline_align(_context: fidl::encoding::Context) -> usize {
1501 8
1502 }
1503
1504 #[inline(always)]
1505 fn inline_size(_context: fidl::encoding::Context) -> usize {
1506 16
1507 }
1508 }
1509
1510 unsafe impl<D: fidl::encoding::ResourceDialect>
1511 fidl::encoding::Encode<CoverageDataProviderSetOptionsRequest, D>
1512 for &CoverageDataProviderSetOptionsRequest
1513 {
1514 #[inline]
1515 unsafe fn encode(
1516 self,
1517 encoder: &mut fidl::encoding::Encoder<'_, D>,
1518 offset: usize,
1519 _depth: fidl::encoding::Depth,
1520 ) -> fidl::Result<()> {
1521 encoder.debug_check_bounds::<CoverageDataProviderSetOptionsRequest>(offset);
1522 fidl::encoding::Encode::<CoverageDataProviderSetOptionsRequest, D>::encode(
1524 (<Options as fidl::encoding::ValueTypeMarker>::borrow(&self.options),),
1525 encoder,
1526 offset,
1527 _depth,
1528 )
1529 }
1530 }
1531 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Options, D>>
1532 fidl::encoding::Encode<CoverageDataProviderSetOptionsRequest, D> for (T0,)
1533 {
1534 #[inline]
1535 unsafe fn encode(
1536 self,
1537 encoder: &mut fidl::encoding::Encoder<'_, D>,
1538 offset: usize,
1539 depth: fidl::encoding::Depth,
1540 ) -> fidl::Result<()> {
1541 encoder.debug_check_bounds::<CoverageDataProviderSetOptionsRequest>(offset);
1542 self.0.encode(encoder, offset + 0, depth)?;
1546 Ok(())
1547 }
1548 }
1549
1550 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1551 for CoverageDataProviderSetOptionsRequest
1552 {
1553 #[inline(always)]
1554 fn new_empty() -> Self {
1555 Self { options: fidl::new_empty!(Options, D) }
1556 }
1557
1558 #[inline]
1559 unsafe fn decode(
1560 &mut self,
1561 decoder: &mut fidl::encoding::Decoder<'_, D>,
1562 offset: usize,
1563 _depth: fidl::encoding::Depth,
1564 ) -> fidl::Result<()> {
1565 decoder.debug_check_bounds::<Self>(offset);
1566 fidl::decode!(Options, D, &mut self.options, decoder, offset + 0, _depth)?;
1568 Ok(())
1569 }
1570 }
1571
1572 impl fidl::encoding::ValueTypeMarker for ManagerStopRequest {
1573 type Borrowed<'a> = &'a Self;
1574 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1575 value
1576 }
1577 }
1578
1579 unsafe impl fidl::encoding::TypeMarker for ManagerStopRequest {
1580 type Owned = Self;
1581
1582 #[inline(always)]
1583 fn inline_align(_context: fidl::encoding::Context) -> usize {
1584 8
1585 }
1586
1587 #[inline(always)]
1588 fn inline_size(_context: fidl::encoding::Context) -> usize {
1589 16
1590 }
1591 }
1592
1593 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ManagerStopRequest, D>
1594 for &ManagerStopRequest
1595 {
1596 #[inline]
1597 unsafe fn encode(
1598 self,
1599 encoder: &mut fidl::encoding::Encoder<'_, D>,
1600 offset: usize,
1601 _depth: fidl::encoding::Depth,
1602 ) -> fidl::Result<()> {
1603 encoder.debug_check_bounds::<ManagerStopRequest>(offset);
1604 fidl::encoding::Encode::<ManagerStopRequest, D>::encode(
1606 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
1607 &self.fuzzer_url,
1608 ),),
1609 encoder,
1610 offset,
1611 _depth,
1612 )
1613 }
1614 }
1615 unsafe impl<
1616 D: fidl::encoding::ResourceDialect,
1617 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1618 > fidl::encoding::Encode<ManagerStopRequest, D> for (T0,)
1619 {
1620 #[inline]
1621 unsafe fn encode(
1622 self,
1623 encoder: &mut fidl::encoding::Encoder<'_, D>,
1624 offset: usize,
1625 depth: fidl::encoding::Depth,
1626 ) -> fidl::Result<()> {
1627 encoder.debug_check_bounds::<ManagerStopRequest>(offset);
1628 self.0.encode(encoder, offset + 0, depth)?;
1632 Ok(())
1633 }
1634 }
1635
1636 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ManagerStopRequest {
1637 #[inline(always)]
1638 fn new_empty() -> Self {
1639 Self { fuzzer_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D) }
1640 }
1641
1642 #[inline]
1643 unsafe fn decode(
1644 &mut self,
1645 decoder: &mut fidl::encoding::Decoder<'_, D>,
1646 offset: usize,
1647 _depth: fidl::encoding::Depth,
1648 ) -> fidl::Result<()> {
1649 decoder.debug_check_bounds::<Self>(offset);
1650 fidl::decode!(
1652 fidl::encoding::BoundedString<4096>,
1653 D,
1654 &mut self.fuzzer_url,
1655 decoder,
1656 offset + 0,
1657 _depth
1658 )?;
1659 Ok(())
1660 }
1661 }
1662
1663 impl fidl::encoding::ValueTypeMarker for MonitorUpdateRequest {
1664 type Borrowed<'a> = &'a Self;
1665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1666 value
1667 }
1668 }
1669
1670 unsafe impl fidl::encoding::TypeMarker for MonitorUpdateRequest {
1671 type Owned = Self;
1672
1673 #[inline(always)]
1674 fn inline_align(_context: fidl::encoding::Context) -> usize {
1675 8
1676 }
1677
1678 #[inline(always)]
1679 fn inline_size(_context: fidl::encoding::Context) -> usize {
1680 24
1681 }
1682 }
1683
1684 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MonitorUpdateRequest, D>
1685 for &MonitorUpdateRequest
1686 {
1687 #[inline]
1688 unsafe fn encode(
1689 self,
1690 encoder: &mut fidl::encoding::Encoder<'_, D>,
1691 offset: usize,
1692 _depth: fidl::encoding::Depth,
1693 ) -> fidl::Result<()> {
1694 encoder.debug_check_bounds::<MonitorUpdateRequest>(offset);
1695 fidl::encoding::Encode::<MonitorUpdateRequest, D>::encode(
1697 (
1698 <UpdateReason as fidl::encoding::ValueTypeMarker>::borrow(&self.reason),
1699 <Status as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
1700 ),
1701 encoder,
1702 offset,
1703 _depth,
1704 )
1705 }
1706 }
1707 unsafe impl<
1708 D: fidl::encoding::ResourceDialect,
1709 T0: fidl::encoding::Encode<UpdateReason, D>,
1710 T1: fidl::encoding::Encode<Status, D>,
1711 > fidl::encoding::Encode<MonitorUpdateRequest, D> for (T0, T1)
1712 {
1713 #[inline]
1714 unsafe fn encode(
1715 self,
1716 encoder: &mut fidl::encoding::Encoder<'_, D>,
1717 offset: usize,
1718 depth: fidl::encoding::Depth,
1719 ) -> fidl::Result<()> {
1720 encoder.debug_check_bounds::<MonitorUpdateRequest>(offset);
1721 unsafe {
1724 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1725 (ptr as *mut u64).write_unaligned(0);
1726 }
1727 self.0.encode(encoder, offset + 0, depth)?;
1729 self.1.encode(encoder, offset + 8, depth)?;
1730 Ok(())
1731 }
1732 }
1733
1734 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MonitorUpdateRequest {
1735 #[inline(always)]
1736 fn new_empty() -> Self {
1737 Self { reason: fidl::new_empty!(UpdateReason, D), status: fidl::new_empty!(Status, D) }
1738 }
1739
1740 #[inline]
1741 unsafe fn decode(
1742 &mut self,
1743 decoder: &mut fidl::encoding::Decoder<'_, D>,
1744 offset: usize,
1745 _depth: fidl::encoding::Depth,
1746 ) -> fidl::Result<()> {
1747 decoder.debug_check_bounds::<Self>(offset);
1748 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1750 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1751 let mask = 0xffffffffffffff00u64;
1752 let maskedval = padval & mask;
1753 if maskedval != 0 {
1754 return Err(fidl::Error::NonZeroPadding {
1755 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1756 });
1757 }
1758 fidl::decode!(UpdateReason, D, &mut self.reason, decoder, offset + 0, _depth)?;
1759 fidl::decode!(Status, D, &mut self.status, decoder, offset + 8, _depth)?;
1760 Ok(())
1761 }
1762 }
1763
1764 impl fidl::encoding::ValueTypeMarker for ProcessStats {
1765 type Borrowed<'a> = &'a Self;
1766 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1767 value
1768 }
1769 }
1770
1771 unsafe impl fidl::encoding::TypeMarker for ProcessStats {
1772 type Owned = Self;
1773
1774 #[inline(always)]
1775 fn inline_align(_context: fidl::encoding::Context) -> usize {
1776 8
1777 }
1778
1779 #[inline(always)]
1780 fn inline_size(_context: fidl::encoding::Context) -> usize {
1781 72
1782 }
1783 #[inline(always)]
1784 fn encode_is_copy() -> bool {
1785 true
1786 }
1787
1788 #[inline(always)]
1789 fn decode_is_copy() -> bool {
1790 true
1791 }
1792 }
1793
1794 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProcessStats, D>
1795 for &ProcessStats
1796 {
1797 #[inline]
1798 unsafe fn encode(
1799 self,
1800 encoder: &mut fidl::encoding::Encoder<'_, D>,
1801 offset: usize,
1802 _depth: fidl::encoding::Depth,
1803 ) -> fidl::Result<()> {
1804 encoder.debug_check_bounds::<ProcessStats>(offset);
1805 unsafe {
1806 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1808 (buf_ptr as *mut ProcessStats)
1809 .write_unaligned((self as *const ProcessStats).read());
1810 }
1813 Ok(())
1814 }
1815 }
1816 unsafe impl<
1817 D: fidl::encoding::ResourceDialect,
1818 T0: fidl::encoding::Encode<u64, D>,
1819 T1: fidl::encoding::Encode<u64, D>,
1820 T2: fidl::encoding::Encode<u64, D>,
1821 T3: fidl::encoding::Encode<u64, D>,
1822 T4: fidl::encoding::Encode<u64, D>,
1823 T5: fidl::encoding::Encode<i64, D>,
1824 T6: fidl::encoding::Encode<i64, D>,
1825 T7: fidl::encoding::Encode<i64, D>,
1826 T8: fidl::encoding::Encode<i64, D>,
1827 > fidl::encoding::Encode<ProcessStats, D> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
1828 {
1829 #[inline]
1830 unsafe fn encode(
1831 self,
1832 encoder: &mut fidl::encoding::Encoder<'_, D>,
1833 offset: usize,
1834 depth: fidl::encoding::Depth,
1835 ) -> fidl::Result<()> {
1836 encoder.debug_check_bounds::<ProcessStats>(offset);
1837 self.0.encode(encoder, offset + 0, depth)?;
1841 self.1.encode(encoder, offset + 8, depth)?;
1842 self.2.encode(encoder, offset + 16, depth)?;
1843 self.3.encode(encoder, offset + 24, depth)?;
1844 self.4.encode(encoder, offset + 32, depth)?;
1845 self.5.encode(encoder, offset + 40, depth)?;
1846 self.6.encode(encoder, offset + 48, depth)?;
1847 self.7.encode(encoder, offset + 56, depth)?;
1848 self.8.encode(encoder, offset + 64, depth)?;
1849 Ok(())
1850 }
1851 }
1852
1853 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProcessStats {
1854 #[inline(always)]
1855 fn new_empty() -> Self {
1856 Self {
1857 koid: fidl::new_empty!(u64, D),
1858 mem_mapped_bytes: fidl::new_empty!(u64, D),
1859 mem_private_bytes: fidl::new_empty!(u64, D),
1860 mem_shared_bytes: fidl::new_empty!(u64, D),
1861 mem_scaled_shared_bytes: fidl::new_empty!(u64, D),
1862 cpu_time: fidl::new_empty!(i64, D),
1863 queue_time: fidl::new_empty!(i64, D),
1864 page_fault_time: fidl::new_empty!(i64, D),
1865 lock_contention_time: fidl::new_empty!(i64, D),
1866 }
1867 }
1868
1869 #[inline]
1870 unsafe fn decode(
1871 &mut self,
1872 decoder: &mut fidl::encoding::Decoder<'_, D>,
1873 offset: usize,
1874 _depth: fidl::encoding::Depth,
1875 ) -> fidl::Result<()> {
1876 decoder.debug_check_bounds::<Self>(offset);
1877 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1878 unsafe {
1881 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 72);
1882 }
1883 Ok(())
1884 }
1885 }
1886
1887 impl fidl::encoding::ValueTypeMarker for RegistryDisconnectRequest {
1888 type Borrowed<'a> = &'a Self;
1889 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1890 value
1891 }
1892 }
1893
1894 unsafe impl fidl::encoding::TypeMarker for RegistryDisconnectRequest {
1895 type Owned = Self;
1896
1897 #[inline(always)]
1898 fn inline_align(_context: fidl::encoding::Context) -> usize {
1899 8
1900 }
1901
1902 #[inline(always)]
1903 fn inline_size(_context: fidl::encoding::Context) -> usize {
1904 16
1905 }
1906 }
1907
1908 unsafe impl<D: fidl::encoding::ResourceDialect>
1909 fidl::encoding::Encode<RegistryDisconnectRequest, D> for &RegistryDisconnectRequest
1910 {
1911 #[inline]
1912 unsafe fn encode(
1913 self,
1914 encoder: &mut fidl::encoding::Encoder<'_, D>,
1915 offset: usize,
1916 _depth: fidl::encoding::Depth,
1917 ) -> fidl::Result<()> {
1918 encoder.debug_check_bounds::<RegistryDisconnectRequest>(offset);
1919 fidl::encoding::Encode::<RegistryDisconnectRequest, D>::encode(
1921 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
1922 &self.fuzzer_url,
1923 ),),
1924 encoder,
1925 offset,
1926 _depth,
1927 )
1928 }
1929 }
1930 unsafe impl<
1931 D: fidl::encoding::ResourceDialect,
1932 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1933 > fidl::encoding::Encode<RegistryDisconnectRequest, D> for (T0,)
1934 {
1935 #[inline]
1936 unsafe fn encode(
1937 self,
1938 encoder: &mut fidl::encoding::Encoder<'_, D>,
1939 offset: usize,
1940 depth: fidl::encoding::Depth,
1941 ) -> fidl::Result<()> {
1942 encoder.debug_check_bounds::<RegistryDisconnectRequest>(offset);
1943 self.0.encode(encoder, offset + 0, depth)?;
1947 Ok(())
1948 }
1949 }
1950
1951 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1952 for RegistryDisconnectRequest
1953 {
1954 #[inline(always)]
1955 fn new_empty() -> Self {
1956 Self { fuzzer_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D) }
1957 }
1958
1959 #[inline]
1960 unsafe fn decode(
1961 &mut self,
1962 decoder: &mut fidl::encoding::Decoder<'_, D>,
1963 offset: usize,
1964 _depth: fidl::encoding::Depth,
1965 ) -> fidl::Result<()> {
1966 decoder.debug_check_bounds::<Self>(offset);
1967 fidl::decode!(
1969 fidl::encoding::BoundedString<4096>,
1970 D,
1971 &mut self.fuzzer_url,
1972 decoder,
1973 offset + 0,
1974 _depth
1975 )?;
1976 Ok(())
1977 }
1978 }
1979
1980 impl fidl::encoding::ValueTypeMarker for SanitizerOptions {
1981 type Borrowed<'a> = &'a Self;
1982 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1983 value
1984 }
1985 }
1986
1987 unsafe impl fidl::encoding::TypeMarker for SanitizerOptions {
1988 type Owned = Self;
1989
1990 #[inline(always)]
1991 fn inline_align(_context: fidl::encoding::Context) -> usize {
1992 8
1993 }
1994
1995 #[inline(always)]
1996 fn inline_size(_context: fidl::encoding::Context) -> usize {
1997 32
1998 }
1999 }
2000
2001 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SanitizerOptions, D>
2002 for &SanitizerOptions
2003 {
2004 #[inline]
2005 unsafe fn encode(
2006 self,
2007 encoder: &mut fidl::encoding::Encoder<'_, D>,
2008 offset: usize,
2009 _depth: fidl::encoding::Depth,
2010 ) -> fidl::Result<()> {
2011 encoder.debug_check_bounds::<SanitizerOptions>(offset);
2012 fidl::encoding::Encode::<SanitizerOptions, D>::encode(
2014 (
2015 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
2016 <fidl::encoding::BoundedString<8192> as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
2017 ),
2018 encoder, offset, _depth
2019 )
2020 }
2021 }
2022 unsafe impl<
2023 D: fidl::encoding::ResourceDialect,
2024 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<32>, D>,
2025 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<8192>, D>,
2026 > fidl::encoding::Encode<SanitizerOptions, D> for (T0, T1)
2027 {
2028 #[inline]
2029 unsafe fn encode(
2030 self,
2031 encoder: &mut fidl::encoding::Encoder<'_, D>,
2032 offset: usize,
2033 depth: fidl::encoding::Depth,
2034 ) -> fidl::Result<()> {
2035 encoder.debug_check_bounds::<SanitizerOptions>(offset);
2036 self.0.encode(encoder, offset + 0, depth)?;
2040 self.1.encode(encoder, offset + 16, depth)?;
2041 Ok(())
2042 }
2043 }
2044
2045 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SanitizerOptions {
2046 #[inline(always)]
2047 fn new_empty() -> Self {
2048 Self {
2049 name: fidl::new_empty!(fidl::encoding::BoundedString<32>, D),
2050 value: fidl::new_empty!(fidl::encoding::BoundedString<8192>, D),
2051 }
2052 }
2053
2054 #[inline]
2055 unsafe fn decode(
2056 &mut self,
2057 decoder: &mut fidl::encoding::Decoder<'_, D>,
2058 offset: usize,
2059 _depth: fidl::encoding::Depth,
2060 ) -> fidl::Result<()> {
2061 decoder.debug_check_bounds::<Self>(offset);
2062 fidl::decode!(
2064 fidl::encoding::BoundedString<32>,
2065 D,
2066 &mut self.name,
2067 decoder,
2068 offset + 0,
2069 _depth
2070 )?;
2071 fidl::decode!(
2072 fidl::encoding::BoundedString<8192>,
2073 D,
2074 &mut self.value,
2075 decoder,
2076 offset + 16,
2077 _depth
2078 )?;
2079 Ok(())
2080 }
2081 }
2082
2083 impl fidl::encoding::ValueTypeMarker for TargetAdapterGetParametersResponse {
2084 type Borrowed<'a> = &'a Self;
2085 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2086 value
2087 }
2088 }
2089
2090 unsafe impl fidl::encoding::TypeMarker for TargetAdapterGetParametersResponse {
2091 type Owned = Self;
2092
2093 #[inline(always)]
2094 fn inline_align(_context: fidl::encoding::Context) -> usize {
2095 8
2096 }
2097
2098 #[inline(always)]
2099 fn inline_size(_context: fidl::encoding::Context) -> usize {
2100 16
2101 }
2102 }
2103
2104 unsafe impl<D: fidl::encoding::ResourceDialect>
2105 fidl::encoding::Encode<TargetAdapterGetParametersResponse, D>
2106 for &TargetAdapterGetParametersResponse
2107 {
2108 #[inline]
2109 unsafe fn encode(
2110 self,
2111 encoder: &mut fidl::encoding::Encoder<'_, D>,
2112 offset: usize,
2113 _depth: fidl::encoding::Depth,
2114 ) -> fidl::Result<()> {
2115 encoder.debug_check_bounds::<TargetAdapterGetParametersResponse>(offset);
2116 fidl::encoding::Encode::<TargetAdapterGetParametersResponse, D>::encode(
2118 (
2119 <fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 128> as fidl::encoding::ValueTypeMarker>::borrow(&self.parameters),
2120 ),
2121 encoder, offset, _depth
2122 )
2123 }
2124 }
2125 unsafe impl<
2126 D: fidl::encoding::ResourceDialect,
2127 T0: fidl::encoding::Encode<fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 128>, D>,
2128 > fidl::encoding::Encode<TargetAdapterGetParametersResponse, D> for (T0,)
2129 {
2130 #[inline]
2131 unsafe fn encode(
2132 self,
2133 encoder: &mut fidl::encoding::Encoder<'_, D>,
2134 offset: usize,
2135 depth: fidl::encoding::Depth,
2136 ) -> fidl::Result<()> {
2137 encoder.debug_check_bounds::<TargetAdapterGetParametersResponse>(offset);
2138 self.0.encode(encoder, offset + 0, depth)?;
2142 Ok(())
2143 }
2144 }
2145
2146 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2147 for TargetAdapterGetParametersResponse
2148 {
2149 #[inline(always)]
2150 fn new_empty() -> Self {
2151 Self {
2152 parameters: fidl::new_empty!(
2153 fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 128>,
2154 D
2155 ),
2156 }
2157 }
2158
2159 #[inline]
2160 unsafe fn decode(
2161 &mut self,
2162 decoder: &mut fidl::encoding::Decoder<'_, D>,
2163 offset: usize,
2164 _depth: fidl::encoding::Depth,
2165 ) -> fidl::Result<()> {
2166 decoder.debug_check_bounds::<Self>(offset);
2167 fidl::decode!(
2169 fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 128>,
2170 D,
2171 &mut self.parameters,
2172 decoder,
2173 offset + 0,
2174 _depth
2175 )?;
2176 Ok(())
2177 }
2178 }
2179
2180 impl Options {
2181 #[inline(always)]
2182 fn max_ordinal_present(&self) -> u64 {
2183 if let Some(_) = self.output_flags {
2184 return 22;
2185 }
2186 if let Some(_) = self.sanitizer_options {
2187 return 21;
2188 }
2189 if let Some(_) = self.use_value_profile {
2190 return 20;
2191 }
2192 if let Some(_) = self.print_final_stats {
2193 return 19;
2194 }
2195 if let Some(_) = self.debug {
2196 return 18;
2197 }
2198 if let Some(_) = self.pulse_interval {
2199 return 17;
2200 }
2201 if let Some(_) = self.oom_exitcode {
2202 return 16;
2203 }
2204 if let Some(_) = self.leak_exitcode {
2205 return 15;
2206 }
2207 if let Some(_) = self.death_exitcode {
2208 return 14;
2209 }
2210 if let Some(_) = self.malloc_exitcode {
2211 return 13;
2212 }
2213 if let Some(_) = self.purge_interval {
2214 return 12;
2215 }
2216 if let Some(_) = self.oom_limit {
2217 return 11;
2218 }
2219 if let Some(_) = self.malloc_limit {
2220 return 10;
2221 }
2222 if let Some(_) = self.run_limit {
2223 return 9;
2224 }
2225 if let Some(_) = self.detect_leaks {
2226 return 8;
2227 }
2228 if let Some(_) = self.detect_exits {
2229 return 7;
2230 }
2231 if let Some(_) = self.dictionary_level {
2232 return 6;
2233 }
2234 if let Some(_) = self.mutation_depth {
2235 return 5;
2236 }
2237 if let Some(_) = self.max_input_size {
2238 return 4;
2239 }
2240 if let Some(_) = self.seed {
2241 return 3;
2242 }
2243 if let Some(_) = self.max_total_time {
2244 return 2;
2245 }
2246 if let Some(_) = self.runs {
2247 return 1;
2248 }
2249 0
2250 }
2251 }
2252
2253 impl fidl::encoding::ValueTypeMarker for Options {
2254 type Borrowed<'a> = &'a Self;
2255 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2256 value
2257 }
2258 }
2259
2260 unsafe impl fidl::encoding::TypeMarker for Options {
2261 type Owned = Self;
2262
2263 #[inline(always)]
2264 fn inline_align(_context: fidl::encoding::Context) -> usize {
2265 8
2266 }
2267
2268 #[inline(always)]
2269 fn inline_size(_context: fidl::encoding::Context) -> usize {
2270 16
2271 }
2272 }
2273
2274 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Options, D> for &Options {
2275 unsafe fn encode(
2276 self,
2277 encoder: &mut fidl::encoding::Encoder<'_, D>,
2278 offset: usize,
2279 mut depth: fidl::encoding::Depth,
2280 ) -> fidl::Result<()> {
2281 encoder.debug_check_bounds::<Options>(offset);
2282 let max_ordinal: u64 = self.max_ordinal_present();
2284 encoder.write_num(max_ordinal, offset);
2285 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2286 if max_ordinal == 0 {
2288 return Ok(());
2289 }
2290 depth.increment()?;
2291 let envelope_size = 8;
2292 let bytes_len = max_ordinal as usize * envelope_size;
2293 #[allow(unused_variables)]
2294 let offset = encoder.out_of_line_offset(bytes_len);
2295 let mut _prev_end_offset: usize = 0;
2296 if 1 > max_ordinal {
2297 return Ok(());
2298 }
2299
2300 let cur_offset: usize = (1 - 1) * envelope_size;
2303
2304 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2306
2307 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2312 self.runs.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2313 encoder,
2314 offset + cur_offset,
2315 depth,
2316 )?;
2317
2318 _prev_end_offset = cur_offset + envelope_size;
2319 if 2 > max_ordinal {
2320 return Ok(());
2321 }
2322
2323 let cur_offset: usize = (2 - 1) * envelope_size;
2326
2327 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2329
2330 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2335 self.max_total_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2336 encoder,
2337 offset + cur_offset,
2338 depth,
2339 )?;
2340
2341 _prev_end_offset = cur_offset + envelope_size;
2342 if 3 > max_ordinal {
2343 return Ok(());
2344 }
2345
2346 let cur_offset: usize = (3 - 1) * envelope_size;
2349
2350 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2352
2353 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2358 self.seed.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2359 encoder,
2360 offset + cur_offset,
2361 depth,
2362 )?;
2363
2364 _prev_end_offset = cur_offset + envelope_size;
2365 if 4 > max_ordinal {
2366 return Ok(());
2367 }
2368
2369 let cur_offset: usize = (4 - 1) * envelope_size;
2372
2373 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2375
2376 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2381 self.max_input_size.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2382 encoder,
2383 offset + cur_offset,
2384 depth,
2385 )?;
2386
2387 _prev_end_offset = cur_offset + envelope_size;
2388 if 5 > max_ordinal {
2389 return Ok(());
2390 }
2391
2392 let cur_offset: usize = (5 - 1) * envelope_size;
2395
2396 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2398
2399 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2404 self.mutation_depth.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2405 encoder,
2406 offset + cur_offset,
2407 depth,
2408 )?;
2409
2410 _prev_end_offset = cur_offset + envelope_size;
2411 if 6 > max_ordinal {
2412 return Ok(());
2413 }
2414
2415 let cur_offset: usize = (6 - 1) * envelope_size;
2418
2419 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2421
2422 fidl::encoding::encode_in_envelope_optional::<u16, D>(
2427 self.dictionary_level
2428 .as_ref()
2429 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
2430 encoder,
2431 offset + cur_offset,
2432 depth,
2433 )?;
2434
2435 _prev_end_offset = cur_offset + envelope_size;
2436 if 7 > max_ordinal {
2437 return Ok(());
2438 }
2439
2440 let cur_offset: usize = (7 - 1) * envelope_size;
2443
2444 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2446
2447 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2452 self.detect_exits.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2453 encoder,
2454 offset + cur_offset,
2455 depth,
2456 )?;
2457
2458 _prev_end_offset = cur_offset + envelope_size;
2459 if 8 > max_ordinal {
2460 return Ok(());
2461 }
2462
2463 let cur_offset: usize = (8 - 1) * envelope_size;
2466
2467 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2469
2470 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2475 self.detect_leaks.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2476 encoder,
2477 offset + cur_offset,
2478 depth,
2479 )?;
2480
2481 _prev_end_offset = cur_offset + envelope_size;
2482 if 9 > max_ordinal {
2483 return Ok(());
2484 }
2485
2486 let cur_offset: usize = (9 - 1) * envelope_size;
2489
2490 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2492
2493 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2498 self.run_limit.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2499 encoder,
2500 offset + cur_offset,
2501 depth,
2502 )?;
2503
2504 _prev_end_offset = cur_offset + envelope_size;
2505 if 10 > max_ordinal {
2506 return Ok(());
2507 }
2508
2509 let cur_offset: usize = (10 - 1) * envelope_size;
2512
2513 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2515
2516 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2521 self.malloc_limit.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2522 encoder,
2523 offset + cur_offset,
2524 depth,
2525 )?;
2526
2527 _prev_end_offset = cur_offset + envelope_size;
2528 if 11 > max_ordinal {
2529 return Ok(());
2530 }
2531
2532 let cur_offset: usize = (11 - 1) * envelope_size;
2535
2536 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2538
2539 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2544 self.oom_limit.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2545 encoder,
2546 offset + cur_offset,
2547 depth,
2548 )?;
2549
2550 _prev_end_offset = cur_offset + envelope_size;
2551 if 12 > max_ordinal {
2552 return Ok(());
2553 }
2554
2555 let cur_offset: usize = (12 - 1) * envelope_size;
2558
2559 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2561
2562 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2567 self.purge_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2568 encoder,
2569 offset + cur_offset,
2570 depth,
2571 )?;
2572
2573 _prev_end_offset = cur_offset + envelope_size;
2574 if 13 > max_ordinal {
2575 return Ok(());
2576 }
2577
2578 let cur_offset: usize = (13 - 1) * envelope_size;
2581
2582 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2584
2585 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2590 self.malloc_exitcode.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2591 encoder,
2592 offset + cur_offset,
2593 depth,
2594 )?;
2595
2596 _prev_end_offset = cur_offset + envelope_size;
2597 if 14 > max_ordinal {
2598 return Ok(());
2599 }
2600
2601 let cur_offset: usize = (14 - 1) * envelope_size;
2604
2605 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2607
2608 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2613 self.death_exitcode.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2614 encoder,
2615 offset + cur_offset,
2616 depth,
2617 )?;
2618
2619 _prev_end_offset = cur_offset + envelope_size;
2620 if 15 > max_ordinal {
2621 return Ok(());
2622 }
2623
2624 let cur_offset: usize = (15 - 1) * envelope_size;
2627
2628 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2630
2631 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2636 self.leak_exitcode.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2637 encoder,
2638 offset + cur_offset,
2639 depth,
2640 )?;
2641
2642 _prev_end_offset = cur_offset + envelope_size;
2643 if 16 > max_ordinal {
2644 return Ok(());
2645 }
2646
2647 let cur_offset: usize = (16 - 1) * envelope_size;
2650
2651 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2653
2654 fidl::encoding::encode_in_envelope_optional::<i32, D>(
2659 self.oom_exitcode.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
2660 encoder,
2661 offset + cur_offset,
2662 depth,
2663 )?;
2664
2665 _prev_end_offset = cur_offset + envelope_size;
2666 if 17 > max_ordinal {
2667 return Ok(());
2668 }
2669
2670 let cur_offset: usize = (17 - 1) * envelope_size;
2673
2674 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2676
2677 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2682 self.pulse_interval.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2683 encoder,
2684 offset + cur_offset,
2685 depth,
2686 )?;
2687
2688 _prev_end_offset = cur_offset + envelope_size;
2689 if 18 > max_ordinal {
2690 return Ok(());
2691 }
2692
2693 let cur_offset: usize = (18 - 1) * envelope_size;
2696
2697 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2699
2700 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2705 self.debug.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2706 encoder,
2707 offset + cur_offset,
2708 depth,
2709 )?;
2710
2711 _prev_end_offset = cur_offset + envelope_size;
2712 if 19 > max_ordinal {
2713 return Ok(());
2714 }
2715
2716 let cur_offset: usize = (19 - 1) * envelope_size;
2719
2720 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2722
2723 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2728 self.print_final_stats
2729 .as_ref()
2730 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2731 encoder,
2732 offset + cur_offset,
2733 depth,
2734 )?;
2735
2736 _prev_end_offset = cur_offset + envelope_size;
2737 if 20 > max_ordinal {
2738 return Ok(());
2739 }
2740
2741 let cur_offset: usize = (20 - 1) * envelope_size;
2744
2745 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2747
2748 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2753 self.use_value_profile
2754 .as_ref()
2755 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2756 encoder,
2757 offset + cur_offset,
2758 depth,
2759 )?;
2760
2761 _prev_end_offset = cur_offset + envelope_size;
2762 if 21 > max_ordinal {
2763 return Ok(());
2764 }
2765
2766 let cur_offset: usize = (21 - 1) * envelope_size;
2769
2770 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2772
2773 fidl::encoding::encode_in_envelope_optional::<SanitizerOptions, D>(
2778 self.sanitizer_options
2779 .as_ref()
2780 .map(<SanitizerOptions as fidl::encoding::ValueTypeMarker>::borrow),
2781 encoder,
2782 offset + cur_offset,
2783 depth,
2784 )?;
2785
2786 _prev_end_offset = cur_offset + envelope_size;
2787 if 22 > max_ordinal {
2788 return Ok(());
2789 }
2790
2791 let cur_offset: usize = (22 - 1) * envelope_size;
2794
2795 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2797
2798 fidl::encoding::encode_in_envelope_optional::<OutputFlags, D>(
2803 self.output_flags
2804 .as_ref()
2805 .map(<OutputFlags as fidl::encoding::ValueTypeMarker>::borrow),
2806 encoder,
2807 offset + cur_offset,
2808 depth,
2809 )?;
2810
2811 _prev_end_offset = cur_offset + envelope_size;
2812
2813 Ok(())
2814 }
2815 }
2816
2817 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Options {
2818 #[inline(always)]
2819 fn new_empty() -> Self {
2820 Self::default()
2821 }
2822
2823 unsafe fn decode(
2824 &mut self,
2825 decoder: &mut fidl::encoding::Decoder<'_, D>,
2826 offset: usize,
2827 mut depth: fidl::encoding::Depth,
2828 ) -> fidl::Result<()> {
2829 decoder.debug_check_bounds::<Self>(offset);
2830 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2831 None => return Err(fidl::Error::NotNullable),
2832 Some(len) => len,
2833 };
2834 if len == 0 {
2836 return Ok(());
2837 };
2838 depth.increment()?;
2839 let envelope_size = 8;
2840 let bytes_len = len * envelope_size;
2841 let offset = decoder.out_of_line_offset(bytes_len)?;
2842 let mut _next_ordinal_to_read = 0;
2844 let mut next_offset = offset;
2845 let end_offset = offset + bytes_len;
2846 _next_ordinal_to_read += 1;
2847 if next_offset >= end_offset {
2848 return Ok(());
2849 }
2850
2851 while _next_ordinal_to_read < 1 {
2853 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2854 _next_ordinal_to_read += 1;
2855 next_offset += envelope_size;
2856 }
2857
2858 let next_out_of_line = decoder.next_out_of_line();
2859 let handles_before = decoder.remaining_handles();
2860 if let Some((inlined, num_bytes, num_handles)) =
2861 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2862 {
2863 let member_inline_size =
2864 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2865 if inlined != (member_inline_size <= 4) {
2866 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2867 }
2868 let inner_offset;
2869 let mut inner_depth = depth.clone();
2870 if inlined {
2871 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2872 inner_offset = next_offset;
2873 } else {
2874 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2875 inner_depth.increment()?;
2876 }
2877 let val_ref = self.runs.get_or_insert_with(|| fidl::new_empty!(u32, D));
2878 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2879 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2880 {
2881 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2882 }
2883 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2884 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2885 }
2886 }
2887
2888 next_offset += envelope_size;
2889 _next_ordinal_to_read += 1;
2890 if next_offset >= end_offset {
2891 return Ok(());
2892 }
2893
2894 while _next_ordinal_to_read < 2 {
2896 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2897 _next_ordinal_to_read += 1;
2898 next_offset += envelope_size;
2899 }
2900
2901 let next_out_of_line = decoder.next_out_of_line();
2902 let handles_before = decoder.remaining_handles();
2903 if let Some((inlined, num_bytes, num_handles)) =
2904 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2905 {
2906 let member_inline_size =
2907 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2908 if inlined != (member_inline_size <= 4) {
2909 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2910 }
2911 let inner_offset;
2912 let mut inner_depth = depth.clone();
2913 if inlined {
2914 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2915 inner_offset = next_offset;
2916 } else {
2917 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2918 inner_depth.increment()?;
2919 }
2920 let val_ref = self.max_total_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
2921 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
2922 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2923 {
2924 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2925 }
2926 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2927 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2928 }
2929 }
2930
2931 next_offset += envelope_size;
2932 _next_ordinal_to_read += 1;
2933 if next_offset >= end_offset {
2934 return Ok(());
2935 }
2936
2937 while _next_ordinal_to_read < 3 {
2939 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2940 _next_ordinal_to_read += 1;
2941 next_offset += envelope_size;
2942 }
2943
2944 let next_out_of_line = decoder.next_out_of_line();
2945 let handles_before = decoder.remaining_handles();
2946 if let Some((inlined, num_bytes, num_handles)) =
2947 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2948 {
2949 let member_inline_size =
2950 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2951 if inlined != (member_inline_size <= 4) {
2952 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2953 }
2954 let inner_offset;
2955 let mut inner_depth = depth.clone();
2956 if inlined {
2957 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2958 inner_offset = next_offset;
2959 } else {
2960 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2961 inner_depth.increment()?;
2962 }
2963 let val_ref = self.seed.get_or_insert_with(|| fidl::new_empty!(u32, D));
2964 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2965 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2966 {
2967 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2968 }
2969 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2970 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2971 }
2972 }
2973
2974 next_offset += envelope_size;
2975 _next_ordinal_to_read += 1;
2976 if next_offset >= end_offset {
2977 return Ok(());
2978 }
2979
2980 while _next_ordinal_to_read < 4 {
2982 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2983 _next_ordinal_to_read += 1;
2984 next_offset += envelope_size;
2985 }
2986
2987 let next_out_of_line = decoder.next_out_of_line();
2988 let handles_before = decoder.remaining_handles();
2989 if let Some((inlined, num_bytes, num_handles)) =
2990 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2991 {
2992 let member_inline_size =
2993 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2994 if inlined != (member_inline_size <= 4) {
2995 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2996 }
2997 let inner_offset;
2998 let mut inner_depth = depth.clone();
2999 if inlined {
3000 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3001 inner_offset = next_offset;
3002 } else {
3003 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3004 inner_depth.increment()?;
3005 }
3006 let val_ref = self.max_input_size.get_or_insert_with(|| fidl::new_empty!(u64, D));
3007 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3008 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3009 {
3010 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3011 }
3012 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3013 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3014 }
3015 }
3016
3017 next_offset += envelope_size;
3018 _next_ordinal_to_read += 1;
3019 if next_offset >= end_offset {
3020 return Ok(());
3021 }
3022
3023 while _next_ordinal_to_read < 5 {
3025 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3026 _next_ordinal_to_read += 1;
3027 next_offset += envelope_size;
3028 }
3029
3030 let next_out_of_line = decoder.next_out_of_line();
3031 let handles_before = decoder.remaining_handles();
3032 if let Some((inlined, num_bytes, num_handles)) =
3033 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3034 {
3035 let member_inline_size =
3036 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3037 if inlined != (member_inline_size <= 4) {
3038 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3039 }
3040 let inner_offset;
3041 let mut inner_depth = depth.clone();
3042 if inlined {
3043 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3044 inner_offset = next_offset;
3045 } else {
3046 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3047 inner_depth.increment()?;
3048 }
3049 let val_ref = self.mutation_depth.get_or_insert_with(|| fidl::new_empty!(u16, D));
3050 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3051 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3052 {
3053 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3054 }
3055 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3056 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3057 }
3058 }
3059
3060 next_offset += envelope_size;
3061 _next_ordinal_to_read += 1;
3062 if next_offset >= end_offset {
3063 return Ok(());
3064 }
3065
3066 while _next_ordinal_to_read < 6 {
3068 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3069 _next_ordinal_to_read += 1;
3070 next_offset += envelope_size;
3071 }
3072
3073 let next_out_of_line = decoder.next_out_of_line();
3074 let handles_before = decoder.remaining_handles();
3075 if let Some((inlined, num_bytes, num_handles)) =
3076 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3077 {
3078 let member_inline_size =
3079 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3080 if inlined != (member_inline_size <= 4) {
3081 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3082 }
3083 let inner_offset;
3084 let mut inner_depth = depth.clone();
3085 if inlined {
3086 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3087 inner_offset = next_offset;
3088 } else {
3089 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3090 inner_depth.increment()?;
3091 }
3092 let val_ref = self.dictionary_level.get_or_insert_with(|| fidl::new_empty!(u16, D));
3093 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
3094 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3095 {
3096 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3097 }
3098 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3099 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3100 }
3101 }
3102
3103 next_offset += envelope_size;
3104 _next_ordinal_to_read += 1;
3105 if next_offset >= end_offset {
3106 return Ok(());
3107 }
3108
3109 while _next_ordinal_to_read < 7 {
3111 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3112 _next_ordinal_to_read += 1;
3113 next_offset += envelope_size;
3114 }
3115
3116 let next_out_of_line = decoder.next_out_of_line();
3117 let handles_before = decoder.remaining_handles();
3118 if let Some((inlined, num_bytes, num_handles)) =
3119 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3120 {
3121 let member_inline_size =
3122 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3123 if inlined != (member_inline_size <= 4) {
3124 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3125 }
3126 let inner_offset;
3127 let mut inner_depth = depth.clone();
3128 if inlined {
3129 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3130 inner_offset = next_offset;
3131 } else {
3132 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3133 inner_depth.increment()?;
3134 }
3135 let val_ref = self.detect_exits.get_or_insert_with(|| fidl::new_empty!(bool, D));
3136 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3137 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3138 {
3139 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3140 }
3141 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3142 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3143 }
3144 }
3145
3146 next_offset += envelope_size;
3147 _next_ordinal_to_read += 1;
3148 if next_offset >= end_offset {
3149 return Ok(());
3150 }
3151
3152 while _next_ordinal_to_read < 8 {
3154 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3155 _next_ordinal_to_read += 1;
3156 next_offset += envelope_size;
3157 }
3158
3159 let next_out_of_line = decoder.next_out_of_line();
3160 let handles_before = decoder.remaining_handles();
3161 if let Some((inlined, num_bytes, num_handles)) =
3162 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3163 {
3164 let member_inline_size =
3165 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3166 if inlined != (member_inline_size <= 4) {
3167 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3168 }
3169 let inner_offset;
3170 let mut inner_depth = depth.clone();
3171 if inlined {
3172 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3173 inner_offset = next_offset;
3174 } else {
3175 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3176 inner_depth.increment()?;
3177 }
3178 let val_ref = self.detect_leaks.get_or_insert_with(|| fidl::new_empty!(bool, D));
3179 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3180 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3181 {
3182 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3183 }
3184 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3185 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3186 }
3187 }
3188
3189 next_offset += envelope_size;
3190 _next_ordinal_to_read += 1;
3191 if next_offset >= end_offset {
3192 return Ok(());
3193 }
3194
3195 while _next_ordinal_to_read < 9 {
3197 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3198 _next_ordinal_to_read += 1;
3199 next_offset += envelope_size;
3200 }
3201
3202 let next_out_of_line = decoder.next_out_of_line();
3203 let handles_before = decoder.remaining_handles();
3204 if let Some((inlined, num_bytes, num_handles)) =
3205 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3206 {
3207 let member_inline_size =
3208 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3209 if inlined != (member_inline_size <= 4) {
3210 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3211 }
3212 let inner_offset;
3213 let mut inner_depth = depth.clone();
3214 if inlined {
3215 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3216 inner_offset = next_offset;
3217 } else {
3218 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3219 inner_depth.increment()?;
3220 }
3221 let val_ref = self.run_limit.get_or_insert_with(|| fidl::new_empty!(i64, D));
3222 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3223 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3224 {
3225 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3226 }
3227 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3228 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3229 }
3230 }
3231
3232 next_offset += envelope_size;
3233 _next_ordinal_to_read += 1;
3234 if next_offset >= end_offset {
3235 return Ok(());
3236 }
3237
3238 while _next_ordinal_to_read < 10 {
3240 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3241 _next_ordinal_to_read += 1;
3242 next_offset += envelope_size;
3243 }
3244
3245 let next_out_of_line = decoder.next_out_of_line();
3246 let handles_before = decoder.remaining_handles();
3247 if let Some((inlined, num_bytes, num_handles)) =
3248 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3249 {
3250 let member_inline_size =
3251 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3252 if inlined != (member_inline_size <= 4) {
3253 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3254 }
3255 let inner_offset;
3256 let mut inner_depth = depth.clone();
3257 if inlined {
3258 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3259 inner_offset = next_offset;
3260 } else {
3261 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3262 inner_depth.increment()?;
3263 }
3264 let val_ref = self.malloc_limit.get_or_insert_with(|| fidl::new_empty!(u64, D));
3265 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3266 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3267 {
3268 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3269 }
3270 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3271 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3272 }
3273 }
3274
3275 next_offset += envelope_size;
3276 _next_ordinal_to_read += 1;
3277 if next_offset >= end_offset {
3278 return Ok(());
3279 }
3280
3281 while _next_ordinal_to_read < 11 {
3283 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3284 _next_ordinal_to_read += 1;
3285 next_offset += envelope_size;
3286 }
3287
3288 let next_out_of_line = decoder.next_out_of_line();
3289 let handles_before = decoder.remaining_handles();
3290 if let Some((inlined, num_bytes, num_handles)) =
3291 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3292 {
3293 let member_inline_size =
3294 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3295 if inlined != (member_inline_size <= 4) {
3296 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3297 }
3298 let inner_offset;
3299 let mut inner_depth = depth.clone();
3300 if inlined {
3301 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3302 inner_offset = next_offset;
3303 } else {
3304 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3305 inner_depth.increment()?;
3306 }
3307 let val_ref = self.oom_limit.get_or_insert_with(|| fidl::new_empty!(u64, D));
3308 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3309 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3310 {
3311 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3312 }
3313 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3314 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3315 }
3316 }
3317
3318 next_offset += envelope_size;
3319 _next_ordinal_to_read += 1;
3320 if next_offset >= end_offset {
3321 return Ok(());
3322 }
3323
3324 while _next_ordinal_to_read < 12 {
3326 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3327 _next_ordinal_to_read += 1;
3328 next_offset += envelope_size;
3329 }
3330
3331 let next_out_of_line = decoder.next_out_of_line();
3332 let handles_before = decoder.remaining_handles();
3333 if let Some((inlined, num_bytes, num_handles)) =
3334 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3335 {
3336 let member_inline_size =
3337 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3338 if inlined != (member_inline_size <= 4) {
3339 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3340 }
3341 let inner_offset;
3342 let mut inner_depth = depth.clone();
3343 if inlined {
3344 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3345 inner_offset = next_offset;
3346 } else {
3347 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3348 inner_depth.increment()?;
3349 }
3350 let val_ref = self.purge_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
3351 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3352 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3353 {
3354 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3355 }
3356 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3357 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3358 }
3359 }
3360
3361 next_offset += envelope_size;
3362 _next_ordinal_to_read += 1;
3363 if next_offset >= end_offset {
3364 return Ok(());
3365 }
3366
3367 while _next_ordinal_to_read < 13 {
3369 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3370 _next_ordinal_to_read += 1;
3371 next_offset += envelope_size;
3372 }
3373
3374 let next_out_of_line = decoder.next_out_of_line();
3375 let handles_before = decoder.remaining_handles();
3376 if let Some((inlined, num_bytes, num_handles)) =
3377 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3378 {
3379 let member_inline_size =
3380 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3381 if inlined != (member_inline_size <= 4) {
3382 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3383 }
3384 let inner_offset;
3385 let mut inner_depth = depth.clone();
3386 if inlined {
3387 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3388 inner_offset = next_offset;
3389 } else {
3390 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3391 inner_depth.increment()?;
3392 }
3393 let val_ref = self.malloc_exitcode.get_or_insert_with(|| fidl::new_empty!(i32, D));
3394 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3395 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3396 {
3397 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3398 }
3399 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3400 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3401 }
3402 }
3403
3404 next_offset += envelope_size;
3405 _next_ordinal_to_read += 1;
3406 if next_offset >= end_offset {
3407 return Ok(());
3408 }
3409
3410 while _next_ordinal_to_read < 14 {
3412 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3413 _next_ordinal_to_read += 1;
3414 next_offset += envelope_size;
3415 }
3416
3417 let next_out_of_line = decoder.next_out_of_line();
3418 let handles_before = decoder.remaining_handles();
3419 if let Some((inlined, num_bytes, num_handles)) =
3420 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3421 {
3422 let member_inline_size =
3423 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3424 if inlined != (member_inline_size <= 4) {
3425 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3426 }
3427 let inner_offset;
3428 let mut inner_depth = depth.clone();
3429 if inlined {
3430 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3431 inner_offset = next_offset;
3432 } else {
3433 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3434 inner_depth.increment()?;
3435 }
3436 let val_ref = self.death_exitcode.get_or_insert_with(|| fidl::new_empty!(i32, D));
3437 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3438 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3439 {
3440 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3441 }
3442 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3443 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3444 }
3445 }
3446
3447 next_offset += envelope_size;
3448 _next_ordinal_to_read += 1;
3449 if next_offset >= end_offset {
3450 return Ok(());
3451 }
3452
3453 while _next_ordinal_to_read < 15 {
3455 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3456 _next_ordinal_to_read += 1;
3457 next_offset += envelope_size;
3458 }
3459
3460 let next_out_of_line = decoder.next_out_of_line();
3461 let handles_before = decoder.remaining_handles();
3462 if let Some((inlined, num_bytes, num_handles)) =
3463 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3464 {
3465 let member_inline_size =
3466 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3467 if inlined != (member_inline_size <= 4) {
3468 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3469 }
3470 let inner_offset;
3471 let mut inner_depth = depth.clone();
3472 if inlined {
3473 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3474 inner_offset = next_offset;
3475 } else {
3476 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3477 inner_depth.increment()?;
3478 }
3479 let val_ref = self.leak_exitcode.get_or_insert_with(|| fidl::new_empty!(i32, D));
3480 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3482 {
3483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3484 }
3485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3487 }
3488 }
3489
3490 next_offset += envelope_size;
3491 _next_ordinal_to_read += 1;
3492 if next_offset >= end_offset {
3493 return Ok(());
3494 }
3495
3496 while _next_ordinal_to_read < 16 {
3498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3499 _next_ordinal_to_read += 1;
3500 next_offset += envelope_size;
3501 }
3502
3503 let next_out_of_line = decoder.next_out_of_line();
3504 let handles_before = decoder.remaining_handles();
3505 if let Some((inlined, num_bytes, num_handles)) =
3506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3507 {
3508 let member_inline_size =
3509 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3510 if inlined != (member_inline_size <= 4) {
3511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3512 }
3513 let inner_offset;
3514 let mut inner_depth = depth.clone();
3515 if inlined {
3516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3517 inner_offset = next_offset;
3518 } else {
3519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3520 inner_depth.increment()?;
3521 }
3522 let val_ref = self.oom_exitcode.get_or_insert_with(|| fidl::new_empty!(i32, D));
3523 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
3524 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3525 {
3526 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3527 }
3528 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3529 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3530 }
3531 }
3532
3533 next_offset += envelope_size;
3534 _next_ordinal_to_read += 1;
3535 if next_offset >= end_offset {
3536 return Ok(());
3537 }
3538
3539 while _next_ordinal_to_read < 17 {
3541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3542 _next_ordinal_to_read += 1;
3543 next_offset += envelope_size;
3544 }
3545
3546 let next_out_of_line = decoder.next_out_of_line();
3547 let handles_before = decoder.remaining_handles();
3548 if let Some((inlined, num_bytes, num_handles)) =
3549 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3550 {
3551 let member_inline_size =
3552 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3553 if inlined != (member_inline_size <= 4) {
3554 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3555 }
3556 let inner_offset;
3557 let mut inner_depth = depth.clone();
3558 if inlined {
3559 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3560 inner_offset = next_offset;
3561 } else {
3562 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3563 inner_depth.increment()?;
3564 }
3565 let val_ref = self.pulse_interval.get_or_insert_with(|| fidl::new_empty!(i64, D));
3566 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3567 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3568 {
3569 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3570 }
3571 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3572 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3573 }
3574 }
3575
3576 next_offset += envelope_size;
3577 _next_ordinal_to_read += 1;
3578 if next_offset >= end_offset {
3579 return Ok(());
3580 }
3581
3582 while _next_ordinal_to_read < 18 {
3584 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3585 _next_ordinal_to_read += 1;
3586 next_offset += envelope_size;
3587 }
3588
3589 let next_out_of_line = decoder.next_out_of_line();
3590 let handles_before = decoder.remaining_handles();
3591 if let Some((inlined, num_bytes, num_handles)) =
3592 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3593 {
3594 let member_inline_size =
3595 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3596 if inlined != (member_inline_size <= 4) {
3597 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3598 }
3599 let inner_offset;
3600 let mut inner_depth = depth.clone();
3601 if inlined {
3602 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3603 inner_offset = next_offset;
3604 } else {
3605 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3606 inner_depth.increment()?;
3607 }
3608 let val_ref = self.debug.get_or_insert_with(|| fidl::new_empty!(bool, D));
3609 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3610 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3611 {
3612 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3613 }
3614 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3615 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3616 }
3617 }
3618
3619 next_offset += envelope_size;
3620 _next_ordinal_to_read += 1;
3621 if next_offset >= end_offset {
3622 return Ok(());
3623 }
3624
3625 while _next_ordinal_to_read < 19 {
3627 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3628 _next_ordinal_to_read += 1;
3629 next_offset += envelope_size;
3630 }
3631
3632 let next_out_of_line = decoder.next_out_of_line();
3633 let handles_before = decoder.remaining_handles();
3634 if let Some((inlined, num_bytes, num_handles)) =
3635 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3636 {
3637 let member_inline_size =
3638 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3639 if inlined != (member_inline_size <= 4) {
3640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3641 }
3642 let inner_offset;
3643 let mut inner_depth = depth.clone();
3644 if inlined {
3645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3646 inner_offset = next_offset;
3647 } else {
3648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3649 inner_depth.increment()?;
3650 }
3651 let val_ref =
3652 self.print_final_stats.get_or_insert_with(|| fidl::new_empty!(bool, D));
3653 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3654 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3655 {
3656 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3657 }
3658 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3659 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3660 }
3661 }
3662
3663 next_offset += envelope_size;
3664 _next_ordinal_to_read += 1;
3665 if next_offset >= end_offset {
3666 return Ok(());
3667 }
3668
3669 while _next_ordinal_to_read < 20 {
3671 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3672 _next_ordinal_to_read += 1;
3673 next_offset += envelope_size;
3674 }
3675
3676 let next_out_of_line = decoder.next_out_of_line();
3677 let handles_before = decoder.remaining_handles();
3678 if let Some((inlined, num_bytes, num_handles)) =
3679 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3680 {
3681 let member_inline_size =
3682 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3683 if inlined != (member_inline_size <= 4) {
3684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3685 }
3686 let inner_offset;
3687 let mut inner_depth = depth.clone();
3688 if inlined {
3689 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3690 inner_offset = next_offset;
3691 } else {
3692 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3693 inner_depth.increment()?;
3694 }
3695 let val_ref =
3696 self.use_value_profile.get_or_insert_with(|| fidl::new_empty!(bool, D));
3697 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3698 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3699 {
3700 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3701 }
3702 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3703 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3704 }
3705 }
3706
3707 next_offset += envelope_size;
3708 _next_ordinal_to_read += 1;
3709 if next_offset >= end_offset {
3710 return Ok(());
3711 }
3712
3713 while _next_ordinal_to_read < 21 {
3715 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3716 _next_ordinal_to_read += 1;
3717 next_offset += envelope_size;
3718 }
3719
3720 let next_out_of_line = decoder.next_out_of_line();
3721 let handles_before = decoder.remaining_handles();
3722 if let Some((inlined, num_bytes, num_handles)) =
3723 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3724 {
3725 let member_inline_size =
3726 <SanitizerOptions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3727 if inlined != (member_inline_size <= 4) {
3728 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3729 }
3730 let inner_offset;
3731 let mut inner_depth = depth.clone();
3732 if inlined {
3733 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3734 inner_offset = next_offset;
3735 } else {
3736 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3737 inner_depth.increment()?;
3738 }
3739 let val_ref = self
3740 .sanitizer_options
3741 .get_or_insert_with(|| fidl::new_empty!(SanitizerOptions, D));
3742 fidl::decode!(SanitizerOptions, D, val_ref, decoder, inner_offset, inner_depth)?;
3743 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3744 {
3745 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3746 }
3747 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3748 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3749 }
3750 }
3751
3752 next_offset += envelope_size;
3753 _next_ordinal_to_read += 1;
3754 if next_offset >= end_offset {
3755 return Ok(());
3756 }
3757
3758 while _next_ordinal_to_read < 22 {
3760 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3761 _next_ordinal_to_read += 1;
3762 next_offset += envelope_size;
3763 }
3764
3765 let next_out_of_line = decoder.next_out_of_line();
3766 let handles_before = decoder.remaining_handles();
3767 if let Some((inlined, num_bytes, num_handles)) =
3768 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3769 {
3770 let member_inline_size =
3771 <OutputFlags as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3772 if inlined != (member_inline_size <= 4) {
3773 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3774 }
3775 let inner_offset;
3776 let mut inner_depth = depth.clone();
3777 if inlined {
3778 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3779 inner_offset = next_offset;
3780 } else {
3781 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3782 inner_depth.increment()?;
3783 }
3784 let val_ref =
3785 self.output_flags.get_or_insert_with(|| fidl::new_empty!(OutputFlags, D));
3786 fidl::decode!(OutputFlags, D, val_ref, decoder, inner_offset, inner_depth)?;
3787 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3788 {
3789 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3790 }
3791 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3792 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3793 }
3794 }
3795
3796 next_offset += envelope_size;
3797
3798 while next_offset < end_offset {
3800 _next_ordinal_to_read += 1;
3801 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3802 next_offset += envelope_size;
3803 }
3804
3805 Ok(())
3806 }
3807 }
3808
3809 impl Status {
3810 #[inline(always)]
3811 fn max_ordinal_present(&self) -> u64 {
3812 if let Some(_) = self.process_stats {
3813 return 8;
3814 }
3815 if let Some(_) = self.corpus_total_size {
3816 return 7;
3817 }
3818 if let Some(_) = self.corpus_num_inputs {
3819 return 6;
3820 }
3821 if let Some(_) = self.covered_features {
3822 return 5;
3823 }
3824 if let Some(_) = self.covered_pcs {
3825 return 4;
3826 }
3827 if let Some(_) = self.elapsed {
3828 return 3;
3829 }
3830 if let Some(_) = self.runs {
3831 return 2;
3832 }
3833 if let Some(_) = self.running {
3834 return 1;
3835 }
3836 0
3837 }
3838 }
3839
3840 impl fidl::encoding::ValueTypeMarker for Status {
3841 type Borrowed<'a> = &'a Self;
3842 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3843 value
3844 }
3845 }
3846
3847 unsafe impl fidl::encoding::TypeMarker for Status {
3848 type Owned = Self;
3849
3850 #[inline(always)]
3851 fn inline_align(_context: fidl::encoding::Context) -> usize {
3852 8
3853 }
3854
3855 #[inline(always)]
3856 fn inline_size(_context: fidl::encoding::Context) -> usize {
3857 16
3858 }
3859 }
3860
3861 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Status, D> for &Status {
3862 unsafe fn encode(
3863 self,
3864 encoder: &mut fidl::encoding::Encoder<'_, D>,
3865 offset: usize,
3866 mut depth: fidl::encoding::Depth,
3867 ) -> fidl::Result<()> {
3868 encoder.debug_check_bounds::<Status>(offset);
3869 let max_ordinal: u64 = self.max_ordinal_present();
3871 encoder.write_num(max_ordinal, offset);
3872 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3873 if max_ordinal == 0 {
3875 return Ok(());
3876 }
3877 depth.increment()?;
3878 let envelope_size = 8;
3879 let bytes_len = max_ordinal as usize * envelope_size;
3880 #[allow(unused_variables)]
3881 let offset = encoder.out_of_line_offset(bytes_len);
3882 let mut _prev_end_offset: usize = 0;
3883 if 1 > max_ordinal {
3884 return Ok(());
3885 }
3886
3887 let cur_offset: usize = (1 - 1) * envelope_size;
3890
3891 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3893
3894 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3899 self.running.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3900 encoder,
3901 offset + cur_offset,
3902 depth,
3903 )?;
3904
3905 _prev_end_offset = cur_offset + envelope_size;
3906 if 2 > max_ordinal {
3907 return Ok(());
3908 }
3909
3910 let cur_offset: usize = (2 - 1) * envelope_size;
3913
3914 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3916
3917 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3922 self.runs.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3923 encoder,
3924 offset + cur_offset,
3925 depth,
3926 )?;
3927
3928 _prev_end_offset = cur_offset + envelope_size;
3929 if 3 > max_ordinal {
3930 return Ok(());
3931 }
3932
3933 let cur_offset: usize = (3 - 1) * envelope_size;
3936
3937 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3939
3940 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3945 self.elapsed.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3946 encoder,
3947 offset + cur_offset,
3948 depth,
3949 )?;
3950
3951 _prev_end_offset = cur_offset + envelope_size;
3952 if 4 > max_ordinal {
3953 return Ok(());
3954 }
3955
3956 let cur_offset: usize = (4 - 1) * envelope_size;
3959
3960 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3962
3963 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3968 self.covered_pcs.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3969 encoder,
3970 offset + cur_offset,
3971 depth,
3972 )?;
3973
3974 _prev_end_offset = cur_offset + envelope_size;
3975 if 5 > max_ordinal {
3976 return Ok(());
3977 }
3978
3979 let cur_offset: usize = (5 - 1) * envelope_size;
3982
3983 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3985
3986 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3991 self.covered_features
3992 .as_ref()
3993 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3994 encoder,
3995 offset + cur_offset,
3996 depth,
3997 )?;
3998
3999 _prev_end_offset = cur_offset + envelope_size;
4000 if 6 > max_ordinal {
4001 return Ok(());
4002 }
4003
4004 let cur_offset: usize = (6 - 1) * envelope_size;
4007
4008 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4010
4011 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4016 self.corpus_num_inputs
4017 .as_ref()
4018 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4019 encoder,
4020 offset + cur_offset,
4021 depth,
4022 )?;
4023
4024 _prev_end_offset = cur_offset + envelope_size;
4025 if 7 > max_ordinal {
4026 return Ok(());
4027 }
4028
4029 let cur_offset: usize = (7 - 1) * envelope_size;
4032
4033 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4035
4036 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4041 self.corpus_total_size
4042 .as_ref()
4043 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4044 encoder,
4045 offset + cur_offset,
4046 depth,
4047 )?;
4048
4049 _prev_end_offset = cur_offset + envelope_size;
4050 if 8 > max_ordinal {
4051 return Ok(());
4052 }
4053
4054 let cur_offset: usize = (8 - 1) * envelope_size;
4057
4058 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4060
4061 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ProcessStats, 256>, D>(
4066 self.process_stats.as_ref().map(<fidl::encoding::Vector<ProcessStats, 256> as fidl::encoding::ValueTypeMarker>::borrow),
4067 encoder, offset + cur_offset, depth
4068 )?;
4069
4070 _prev_end_offset = cur_offset + envelope_size;
4071
4072 Ok(())
4073 }
4074 }
4075
4076 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Status {
4077 #[inline(always)]
4078 fn new_empty() -> Self {
4079 Self::default()
4080 }
4081
4082 unsafe fn decode(
4083 &mut self,
4084 decoder: &mut fidl::encoding::Decoder<'_, D>,
4085 offset: usize,
4086 mut depth: fidl::encoding::Depth,
4087 ) -> fidl::Result<()> {
4088 decoder.debug_check_bounds::<Self>(offset);
4089 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4090 None => return Err(fidl::Error::NotNullable),
4091 Some(len) => len,
4092 };
4093 if len == 0 {
4095 return Ok(());
4096 };
4097 depth.increment()?;
4098 let envelope_size = 8;
4099 let bytes_len = len * envelope_size;
4100 let offset = decoder.out_of_line_offset(bytes_len)?;
4101 let mut _next_ordinal_to_read = 0;
4103 let mut next_offset = offset;
4104 let end_offset = offset + bytes_len;
4105 _next_ordinal_to_read += 1;
4106 if next_offset >= end_offset {
4107 return Ok(());
4108 }
4109
4110 while _next_ordinal_to_read < 1 {
4112 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4113 _next_ordinal_to_read += 1;
4114 next_offset += envelope_size;
4115 }
4116
4117 let next_out_of_line = decoder.next_out_of_line();
4118 let handles_before = decoder.remaining_handles();
4119 if let Some((inlined, num_bytes, num_handles)) =
4120 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4121 {
4122 let member_inline_size =
4123 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4124 if inlined != (member_inline_size <= 4) {
4125 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4126 }
4127 let inner_offset;
4128 let mut inner_depth = depth.clone();
4129 if inlined {
4130 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4131 inner_offset = next_offset;
4132 } else {
4133 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4134 inner_depth.increment()?;
4135 }
4136 let val_ref = self.running.get_or_insert_with(|| fidl::new_empty!(bool, D));
4137 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4138 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4139 {
4140 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4141 }
4142 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4143 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4144 }
4145 }
4146
4147 next_offset += envelope_size;
4148 _next_ordinal_to_read += 1;
4149 if next_offset >= end_offset {
4150 return Ok(());
4151 }
4152
4153 while _next_ordinal_to_read < 2 {
4155 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4156 _next_ordinal_to_read += 1;
4157 next_offset += envelope_size;
4158 }
4159
4160 let next_out_of_line = decoder.next_out_of_line();
4161 let handles_before = decoder.remaining_handles();
4162 if let Some((inlined, num_bytes, num_handles)) =
4163 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4164 {
4165 let member_inline_size =
4166 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4167 if inlined != (member_inline_size <= 4) {
4168 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4169 }
4170 let inner_offset;
4171 let mut inner_depth = depth.clone();
4172 if inlined {
4173 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4174 inner_offset = next_offset;
4175 } else {
4176 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4177 inner_depth.increment()?;
4178 }
4179 let val_ref = self.runs.get_or_insert_with(|| fidl::new_empty!(u32, D));
4180 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4181 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4182 {
4183 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4184 }
4185 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4186 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4187 }
4188 }
4189
4190 next_offset += envelope_size;
4191 _next_ordinal_to_read += 1;
4192 if next_offset >= end_offset {
4193 return Ok(());
4194 }
4195
4196 while _next_ordinal_to_read < 3 {
4198 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4199 _next_ordinal_to_read += 1;
4200 next_offset += envelope_size;
4201 }
4202
4203 let next_out_of_line = decoder.next_out_of_line();
4204 let handles_before = decoder.remaining_handles();
4205 if let Some((inlined, num_bytes, num_handles)) =
4206 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4207 {
4208 let member_inline_size =
4209 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4210 if inlined != (member_inline_size <= 4) {
4211 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4212 }
4213 let inner_offset;
4214 let mut inner_depth = depth.clone();
4215 if inlined {
4216 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4217 inner_offset = next_offset;
4218 } else {
4219 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4220 inner_depth.increment()?;
4221 }
4222 let val_ref = self.elapsed.get_or_insert_with(|| fidl::new_empty!(i64, D));
4223 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4224 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4225 {
4226 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4227 }
4228 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4229 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4230 }
4231 }
4232
4233 next_offset += envelope_size;
4234 _next_ordinal_to_read += 1;
4235 if next_offset >= end_offset {
4236 return Ok(());
4237 }
4238
4239 while _next_ordinal_to_read < 4 {
4241 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4242 _next_ordinal_to_read += 1;
4243 next_offset += envelope_size;
4244 }
4245
4246 let next_out_of_line = decoder.next_out_of_line();
4247 let handles_before = decoder.remaining_handles();
4248 if let Some((inlined, num_bytes, num_handles)) =
4249 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4250 {
4251 let member_inline_size =
4252 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4253 if inlined != (member_inline_size <= 4) {
4254 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4255 }
4256 let inner_offset;
4257 let mut inner_depth = depth.clone();
4258 if inlined {
4259 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4260 inner_offset = next_offset;
4261 } else {
4262 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4263 inner_depth.increment()?;
4264 }
4265 let val_ref = self.covered_pcs.get_or_insert_with(|| fidl::new_empty!(u64, D));
4266 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4267 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4268 {
4269 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4270 }
4271 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4272 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4273 }
4274 }
4275
4276 next_offset += envelope_size;
4277 _next_ordinal_to_read += 1;
4278 if next_offset >= end_offset {
4279 return Ok(());
4280 }
4281
4282 while _next_ordinal_to_read < 5 {
4284 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4285 _next_ordinal_to_read += 1;
4286 next_offset += envelope_size;
4287 }
4288
4289 let next_out_of_line = decoder.next_out_of_line();
4290 let handles_before = decoder.remaining_handles();
4291 if let Some((inlined, num_bytes, num_handles)) =
4292 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4293 {
4294 let member_inline_size =
4295 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4296 if inlined != (member_inline_size <= 4) {
4297 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4298 }
4299 let inner_offset;
4300 let mut inner_depth = depth.clone();
4301 if inlined {
4302 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4303 inner_offset = next_offset;
4304 } else {
4305 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4306 inner_depth.increment()?;
4307 }
4308 let val_ref = self.covered_features.get_or_insert_with(|| fidl::new_empty!(u64, D));
4309 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4310 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4311 {
4312 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4313 }
4314 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4315 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4316 }
4317 }
4318
4319 next_offset += envelope_size;
4320 _next_ordinal_to_read += 1;
4321 if next_offset >= end_offset {
4322 return Ok(());
4323 }
4324
4325 while _next_ordinal_to_read < 6 {
4327 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4328 _next_ordinal_to_read += 1;
4329 next_offset += envelope_size;
4330 }
4331
4332 let next_out_of_line = decoder.next_out_of_line();
4333 let handles_before = decoder.remaining_handles();
4334 if let Some((inlined, num_bytes, num_handles)) =
4335 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4336 {
4337 let member_inline_size =
4338 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4339 if inlined != (member_inline_size <= 4) {
4340 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4341 }
4342 let inner_offset;
4343 let mut inner_depth = depth.clone();
4344 if inlined {
4345 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4346 inner_offset = next_offset;
4347 } else {
4348 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4349 inner_depth.increment()?;
4350 }
4351 let val_ref =
4352 self.corpus_num_inputs.get_or_insert_with(|| fidl::new_empty!(u64, D));
4353 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4354 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4355 {
4356 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4357 }
4358 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4359 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4360 }
4361 }
4362
4363 next_offset += envelope_size;
4364 _next_ordinal_to_read += 1;
4365 if next_offset >= end_offset {
4366 return Ok(());
4367 }
4368
4369 while _next_ordinal_to_read < 7 {
4371 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4372 _next_ordinal_to_read += 1;
4373 next_offset += envelope_size;
4374 }
4375
4376 let next_out_of_line = decoder.next_out_of_line();
4377 let handles_before = decoder.remaining_handles();
4378 if let Some((inlined, num_bytes, num_handles)) =
4379 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4380 {
4381 let member_inline_size =
4382 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4383 if inlined != (member_inline_size <= 4) {
4384 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4385 }
4386 let inner_offset;
4387 let mut inner_depth = depth.clone();
4388 if inlined {
4389 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4390 inner_offset = next_offset;
4391 } else {
4392 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4393 inner_depth.increment()?;
4394 }
4395 let val_ref =
4396 self.corpus_total_size.get_or_insert_with(|| fidl::new_empty!(u64, D));
4397 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4398 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4399 {
4400 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4401 }
4402 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4403 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4404 }
4405 }
4406
4407 next_offset += envelope_size;
4408 _next_ordinal_to_read += 1;
4409 if next_offset >= end_offset {
4410 return Ok(());
4411 }
4412
4413 while _next_ordinal_to_read < 8 {
4415 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4416 _next_ordinal_to_read += 1;
4417 next_offset += envelope_size;
4418 }
4419
4420 let next_out_of_line = decoder.next_out_of_line();
4421 let handles_before = decoder.remaining_handles();
4422 if let Some((inlined, num_bytes, num_handles)) =
4423 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4424 {
4425 let member_inline_size = <fidl::encoding::Vector<ProcessStats, 256> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4426 if inlined != (member_inline_size <= 4) {
4427 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4428 }
4429 let inner_offset;
4430 let mut inner_depth = depth.clone();
4431 if inlined {
4432 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4433 inner_offset = next_offset;
4434 } else {
4435 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4436 inner_depth.increment()?;
4437 }
4438 let val_ref = self.process_stats.get_or_insert_with(
4439 || fidl::new_empty!(fidl::encoding::Vector<ProcessStats, 256>, D),
4440 );
4441 fidl::decode!(fidl::encoding::Vector<ProcessStats, 256>, D, val_ref, decoder, inner_offset, inner_depth)?;
4442 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4443 {
4444 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4445 }
4446 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4447 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4448 }
4449 }
4450
4451 next_offset += envelope_size;
4452
4453 while next_offset < end_offset {
4455 _next_ordinal_to_read += 1;
4456 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4457 next_offset += envelope_size;
4458 }
4459
4460 Ok(())
4461 }
4462 }
4463}