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 type AlertName = String;
13
14pub const MAX_ALERT_NAME_LENGTH: u32 = 14;
16
17pub const MAX_NUM_PROVIDERS: u32 = 100;
19
20#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
22pub enum Action {
23 Terminate,
25 #[doc(hidden)]
26 __SourceBreaking { unknown_ordinal: u32 },
27}
28
29#[macro_export]
31macro_rules! ActionUnknown {
32 () => {
33 _
34 };
35}
36
37impl Action {
38 #[inline]
39 pub fn from_primitive(prim: u32) -> Option<Self> {
40 match prim {
41 1 => Some(Self::Terminate),
42 _ => None,
43 }
44 }
45
46 #[inline]
47 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
48 match prim {
49 1 => Self::Terminate,
50 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
51 }
52 }
53
54 #[inline]
55 pub fn unknown() -> Self {
56 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
57 }
58
59 #[inline]
60 pub const fn into_primitive(self) -> u32 {
61 match self {
62 Self::Terminate => 1,
63 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
64 }
65 }
66
67 #[inline]
68 pub fn is_unknown(&self) -> bool {
69 match self {
70 Self::__SourceBreaking { unknown_ordinal: _ } => true,
71 _ => false,
72 }
73 }
74}
75
76#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
78pub enum CompressionType {
79 None,
81 Zstd,
83 #[doc(hidden)]
84 __SourceBreaking { unknown_ordinal: u32 },
85}
86
87#[macro_export]
89macro_rules! CompressionTypeUnknown {
90 () => {
91 _
92 };
93}
94
95impl CompressionType {
96 #[inline]
97 pub fn from_primitive(prim: u32) -> Option<Self> {
98 match prim {
99 0 => Some(Self::None),
100 1 => Some(Self::Zstd),
101 _ => None,
102 }
103 }
104
105 #[inline]
106 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
107 match prim {
108 0 => Self::None,
109 1 => Self::Zstd,
110 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
111 }
112 }
113
114 #[inline]
115 pub fn unknown() -> Self {
116 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
117 }
118
119 #[inline]
120 pub const fn into_primitive(self) -> u32 {
121 match self {
122 Self::None => 0,
123 Self::Zstd => 1,
124 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
125 }
126 }
127
128 #[inline]
129 pub fn is_unknown(&self) -> bool {
130 match self {
131 Self::__SourceBreaking { unknown_ordinal: _ } => true,
132 _ => false,
133 }
134 }
135}
136
137#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
140pub enum RecordingError {
141 TargetProxyOpen,
143 RecordingStart,
145 RecordingAlreadyStarted,
148 RecordingStop,
152 DuplicateTraceFile,
155 NoSuchTraceFile,
158 NoSuchTarget,
160 DisconnectedTarget,
163 #[doc(hidden)]
164 __SourceBreaking { unknown_ordinal: u32 },
165}
166
167#[macro_export]
169macro_rules! RecordingErrorUnknown {
170 () => {
171 _
172 };
173}
174
175impl RecordingError {
176 #[inline]
177 pub fn from_primitive(prim: u32) -> Option<Self> {
178 match prim {
179 0 => Some(Self::TargetProxyOpen),
180 1 => Some(Self::RecordingStart),
181 2 => Some(Self::RecordingAlreadyStarted),
182 3 => Some(Self::RecordingStop),
183 4 => Some(Self::DuplicateTraceFile),
184 5 => Some(Self::NoSuchTraceFile),
185 6 => Some(Self::NoSuchTarget),
186 7 => Some(Self::DisconnectedTarget),
187 _ => None,
188 }
189 }
190
191 #[inline]
192 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
193 match prim {
194 0 => Self::TargetProxyOpen,
195 1 => Self::RecordingStart,
196 2 => Self::RecordingAlreadyStarted,
197 3 => Self::RecordingStop,
198 4 => Self::DuplicateTraceFile,
199 5 => Self::NoSuchTraceFile,
200 6 => Self::NoSuchTarget,
201 7 => Self::DisconnectedTarget,
202 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
203 }
204 }
205
206 #[inline]
207 pub fn unknown() -> Self {
208 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
209 }
210
211 #[inline]
212 pub const fn into_primitive(self) -> u32 {
213 match self {
214 Self::TargetProxyOpen => 0,
215 Self::RecordingStart => 1,
216 Self::RecordingAlreadyStarted => 2,
217 Self::RecordingStop => 3,
218 Self::DuplicateTraceFile => 4,
219 Self::NoSuchTraceFile => 5,
220 Self::NoSuchTarget => 6,
221 Self::DisconnectedTarget => 7,
222 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
223 }
224 }
225
226 #[inline]
227 pub fn is_unknown(&self) -> bool {
228 match self {
229 Self::__SourceBreaking { unknown_ordinal: _ } => true,
230 _ => false,
231 }
232 }
233}
234
235#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
238pub enum SessionState {
239 Ready,
242 Initialized,
244 Starting,
246 Started,
248 Stopping,
250 Stopped,
252 Terminating,
256 #[doc(hidden)]
257 __SourceBreaking { unknown_ordinal: u32 },
258}
259
260#[macro_export]
262macro_rules! SessionStateUnknown {
263 () => {
264 _
265 };
266}
267
268impl SessionState {
269 #[inline]
270 pub fn from_primitive(prim: u32) -> Option<Self> {
271 match prim {
272 1 => Some(Self::Ready),
273 2 => Some(Self::Initialized),
274 3 => Some(Self::Starting),
275 4 => Some(Self::Started),
276 5 => Some(Self::Stopping),
277 6 => Some(Self::Stopped),
278 7 => Some(Self::Terminating),
279 _ => None,
280 }
281 }
282
283 #[inline]
284 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
285 match prim {
286 1 => Self::Ready,
287 2 => Self::Initialized,
288 3 => Self::Starting,
289 4 => Self::Started,
290 5 => Self::Stopping,
291 6 => Self::Stopped,
292 7 => Self::Terminating,
293 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
294 }
295 }
296
297 #[inline]
298 pub fn unknown() -> Self {
299 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
300 }
301
302 #[inline]
303 pub const fn into_primitive(self) -> u32 {
304 match self {
305 Self::Ready => 1,
306 Self::Initialized => 2,
307 Self::Starting => 3,
308 Self::Started => 4,
309 Self::Stopping => 5,
310 Self::Stopped => 6,
311 Self::Terminating => 7,
312 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
313 }
314 }
315
316 #[inline]
317 pub fn is_unknown(&self) -> bool {
318 match self {
319 Self::__SourceBreaking { unknown_ordinal: _ } => true,
320 _ => false,
321 }
322 }
323}
324
325#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
327pub enum StartError {
328 NotInitialized,
330 AlreadyStarted,
332 Stopping,
334 Terminating,
336 #[doc(hidden)]
337 __SourceBreaking { unknown_ordinal: u32 },
338}
339
340#[macro_export]
342macro_rules! StartErrorUnknown {
343 () => {
344 _
345 };
346}
347
348impl StartError {
349 #[inline]
350 pub fn from_primitive(prim: u32) -> Option<Self> {
351 match prim {
352 1 => Some(Self::NotInitialized),
353 2 => Some(Self::AlreadyStarted),
354 3 => Some(Self::Stopping),
355 4 => Some(Self::Terminating),
356 _ => None,
357 }
358 }
359
360 #[inline]
361 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
362 match prim {
363 1 => Self::NotInitialized,
364 2 => Self::AlreadyStarted,
365 3 => Self::Stopping,
366 4 => Self::Terminating,
367 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
368 }
369 }
370
371 #[inline]
372 pub fn unknown() -> Self {
373 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
374 }
375
376 #[inline]
377 pub const fn into_primitive(self) -> u32 {
378 match self {
379 Self::NotInitialized => 1,
380 Self::AlreadyStarted => 2,
381 Self::Stopping => 3,
382 Self::Terminating => 4,
383 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
384 }
385 }
386
387 #[inline]
388 pub fn is_unknown(&self) -> bool {
389 match self {
390 Self::__SourceBreaking { unknown_ordinal: _ } => true,
391 _ => false,
392 }
393 }
394}
395
396#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
398pub enum StopError {
399 NotInitialized,
401 NotStarted,
403 Aborted,
405 #[doc(hidden)]
406 __SourceBreaking { unknown_ordinal: u32 },
407}
408
409#[macro_export]
411macro_rules! StopErrorUnknown {
412 () => {
413 _
414 };
415}
416
417impl StopError {
418 #[inline]
419 pub fn from_primitive(prim: u32) -> Option<Self> {
420 match prim {
421 1 => Some(Self::NotInitialized),
422 2 => Some(Self::NotStarted),
423 3 => Some(Self::Aborted),
424 _ => None,
425 }
426 }
427
428 #[inline]
429 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
430 match prim {
431 1 => Self::NotInitialized,
432 2 => Self::NotStarted,
433 3 => Self::Aborted,
434 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
435 }
436 }
437
438 #[inline]
439 pub fn unknown() -> Self {
440 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
441 }
442
443 #[inline]
444 pub const fn into_primitive(self) -> u32 {
445 match self {
446 Self::NotInitialized => 1,
447 Self::NotStarted => 2,
448 Self::Aborted => 3,
449 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
450 }
451 }
452
453 #[inline]
454 pub fn is_unknown(&self) -> bool {
455 match self {
456 Self::__SourceBreaking { unknown_ordinal: _ } => true,
457 _ => false,
458 }
459 }
460}
461
462#[derive(Clone, Debug, PartialEq)]
463pub struct ProvisionerGetKnownCategoriesResponse {
464 pub categories: Vec<fidl_fuchsia_tracing__common::KnownCategory>,
465}
466
467impl fidl::Persistable for ProvisionerGetKnownCategoriesResponse {}
468
469#[derive(Clone, Debug, PartialEq)]
470pub struct ProvisionerGetProvidersResponse {
471 pub providers: Vec<ProviderInfo>,
472}
473
474impl fidl::Persistable for ProvisionerGetProvidersResponse {}
475
476#[derive(Clone, Debug, PartialEq)]
477pub struct SessionManagerEndTraceSessionResponse {
478 pub options: TraceOptions,
479 pub result: StopResult,
480}
481
482impl fidl::Persistable for SessionManagerEndTraceSessionResponse {}
483
484#[derive(Clone, Debug, PartialEq)]
485pub struct SessionManagerGetKnownCategoriesResponse {
486 pub categories: Vec<fidl_fuchsia_tracing__common::KnownCategory>,
487}
488
489impl fidl::Persistable for SessionManagerGetKnownCategoriesResponse {}
490
491#[derive(Clone, Debug, PartialEq)]
492pub struct SessionManagerGetProvidersResponse {
493 pub providers: Vec<ProviderInfo>,
494}
495
496impl fidl::Persistable for SessionManagerGetProvidersResponse {}
497
498#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
499#[repr(C)]
500pub struct SessionManagerStartTraceSessionResponse {
501 pub task_id: u64,
502}
503
504impl fidl::Persistable for SessionManagerStartTraceSessionResponse {}
505
506#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
507pub struct SessionOnSessionStateChangeRequest {
508 pub state: SessionState,
509}
510
511impl fidl::Persistable for SessionOnSessionStateChangeRequest {}
512
513#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
514pub struct SessionWatchAlertResponse {
515 pub alert_name: String,
516}
517
518impl fidl::Persistable for SessionWatchAlertResponse {}
519
520#[derive(Clone, Debug, Default, PartialEq)]
527pub struct FxtVersion {
528 pub major: Option<u32>,
530 pub minor: Option<u32>,
532 #[doc(hidden)]
533 pub __source_breaking: fidl::marker::SourceBreaking,
534}
535
536impl fidl::Persistable for FxtVersion {}
537
538#[derive(Clone, Debug, Default, PartialEq)]
540pub struct ProviderInfo {
541 pub id: Option<u32>,
543 pub pid: Option<u64>,
545 pub name: Option<String>,
547 #[doc(hidden)]
548 pub __source_breaking: fidl::marker::SourceBreaking,
549}
550
551impl fidl::Persistable for ProviderInfo {}
552
553#[derive(Clone, Debug, Default, PartialEq)]
554pub struct ProviderSpec {
555 pub name: Option<String>,
556 pub buffer_size_megabytes_hint: Option<u32>,
557 pub categories: Option<Vec<String>>,
558 #[doc(hidden)]
559 pub __source_breaking: fidl::marker::SourceBreaking,
560}
561
562impl fidl::Persistable for ProviderSpec {}
563
564#[derive(Clone, Debug, Default, PartialEq)]
566pub struct ProviderStats {
567 pub name: Option<String>,
568 pub pid: Option<u64>,
569 pub buffering_mode: Option<fidl_fuchsia_tracing__common::BufferingMode>,
570 pub buffer_wrapped_count: Option<u32>,
571 pub records_dropped: Option<u64>,
572 pub percentage_durable_buffer_used: Option<f32>,
573 pub non_durable_bytes_written: Option<u64>,
574 #[doc(hidden)]
575 pub __source_breaking: fidl::marker::SourceBreaking,
576}
577
578impl fidl::Persistable for ProviderStats {}
579
580#[derive(Clone, Debug, Default, PartialEq)]
582pub struct StartOptions {
583 pub buffer_disposition: Option<fidl_fuchsia_tracing__common::BufferDisposition>,
591 pub additional_categories: Option<Vec<String>>,
595 #[doc(hidden)]
596 pub __source_breaking: fidl::marker::SourceBreaking,
597}
598
599impl fidl::Persistable for StartOptions {}
600
601#[derive(Clone, Debug, Default, PartialEq)]
603pub struct StopOptions {
604 pub write_results: Option<bool>,
609 #[doc(hidden)]
610 pub __source_breaking: fidl::marker::SourceBreaking,
611}
612
613impl fidl::Persistable for StopOptions {}
614
615#[derive(Clone, Debug, Default, PartialEq)]
617pub struct StopResult {
618 pub provider_stats: Option<Vec<ProviderStats>>,
619 #[doc(hidden)]
620 pub __source_breaking: fidl::marker::SourceBreaking,
621}
622
623impl fidl::Persistable for StopResult {}
624
625#[derive(Clone, Debug, Default, PartialEq)]
627pub struct TraceConfig {
628 pub categories: Option<Vec<String>>,
631 pub buffer_size_megabytes_hint: Option<u32>,
633 pub start_timeout_milliseconds: Option<u64>,
635 pub buffering_mode: Option<fidl_fuchsia_tracing__common::BufferingMode>,
636 pub provider_specs: Option<Vec<ProviderSpec>>,
638 pub version: Option<FxtVersion>,
641 pub defer_transfer: Option<bool>,
655 #[doc(hidden)]
656 pub __source_breaking: fidl::marker::SourceBreaking,
657}
658
659impl fidl::Persistable for TraceConfig {}
660
661#[derive(Clone, Debug, Default, PartialEq)]
663pub struct TraceOptions {
664 pub duration_ns: Option<i64>,
672 pub triggers: Option<Vec<Trigger>>,
674 pub requested_categories: Option<Vec<String>>,
680 pub compression: Option<CompressionType>,
682 #[doc(hidden)]
683 pub __source_breaking: fidl::marker::SourceBreaking,
684}
685
686impl fidl::Persistable for TraceOptions {}
687
688#[derive(Clone, Debug, Default, PartialEq)]
690pub struct TraceStatus {
691 pub duration: Option<i64>,
694 pub remaining_runtime: Option<i64>,
697 pub config: Option<TraceConfig>,
699 pub triggers: Option<Vec<Trigger>>,
701 pub task_id: Option<u64>,
703 #[doc(hidden)]
704 pub __source_breaking: fidl::marker::SourceBreaking,
705}
706
707impl fidl::Persistable for TraceStatus {}
708
709#[derive(Clone, Debug, Default, PartialEq)]
712pub struct Trigger {
713 pub alert: Option<String>,
716 pub action: Option<Action>,
718 #[doc(hidden)]
719 pub __source_breaking: fidl::marker::SourceBreaking,
720}
721
722impl fidl::Persistable for Trigger {}
723
724pub mod provisioner_ordinals {
725 pub const INITIALIZE_TRACING: u64 = 0x3b046ed3a0684ab8;
726 pub const GET_PROVIDERS: u64 = 0xc4d4f36edc50d43;
727 pub const GET_KNOWN_CATEGORIES: u64 = 0x41ef99397b945a4;
728}
729
730pub mod session_ordinals {
731 pub const START_TRACING: u64 = 0xde9b6ccbe936631;
732 pub const STOP_TRACING: u64 = 0x50fefc9b3ff9b03a;
733 pub const WATCH_ALERT: u64 = 0x1f1c080716d92276;
734 pub const ON_SESSION_STATE_CHANGE: u64 = 0x7ab1640718b971cd;
735}
736
737pub mod session_manager_ordinals {
738 pub const GET_PROVIDERS: u64 = 0x61bd49c4eb1fa03;
739 pub const GET_KNOWN_CATEGORIES: u64 = 0x6f0abdb5401788b2;
740 pub const START_TRACE_SESSION: u64 = 0x54c39e0c173c0162;
741 pub const START_TRACE_SESSION_ON_BOOT: u64 = 0x705558b5612fbf62;
742 pub const END_TRACE_SESSION: u64 = 0x72d6ca80a0787577;
743 pub const STATUS: u64 = 0x2ebc198b7af59063;
744}
745
746mod internal {
747 use super::*;
748 unsafe impl fidl::encoding::TypeMarker for Action {
749 type Owned = Self;
750
751 #[inline(always)]
752 fn inline_align(_context: fidl::encoding::Context) -> usize {
753 std::mem::align_of::<u32>()
754 }
755
756 #[inline(always)]
757 fn inline_size(_context: fidl::encoding::Context) -> usize {
758 std::mem::size_of::<u32>()
759 }
760
761 #[inline(always)]
762 fn encode_is_copy() -> bool {
763 false
764 }
765
766 #[inline(always)]
767 fn decode_is_copy() -> bool {
768 false
769 }
770 }
771
772 impl fidl::encoding::ValueTypeMarker for Action {
773 type Borrowed<'a> = Self;
774 #[inline(always)]
775 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
776 *value
777 }
778 }
779
780 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Action {
781 #[inline]
782 unsafe fn encode(
783 self,
784 encoder: &mut fidl::encoding::Encoder<'_, D>,
785 offset: usize,
786 _depth: fidl::encoding::Depth,
787 ) -> fidl::Result<()> {
788 encoder.debug_check_bounds::<Self>(offset);
789 encoder.write_num(self.into_primitive(), offset);
790 Ok(())
791 }
792 }
793
794 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Action {
795 #[inline(always)]
796 fn new_empty() -> Self {
797 Self::unknown()
798 }
799
800 #[inline]
801 unsafe fn decode(
802 &mut self,
803 decoder: &mut fidl::encoding::Decoder<'_, D>,
804 offset: usize,
805 _depth: fidl::encoding::Depth,
806 ) -> fidl::Result<()> {
807 decoder.debug_check_bounds::<Self>(offset);
808 let prim = decoder.read_num::<u32>(offset);
809
810 *self = Self::from_primitive_allow_unknown(prim);
811 Ok(())
812 }
813 }
814 unsafe impl fidl::encoding::TypeMarker for CompressionType {
815 type Owned = Self;
816
817 #[inline(always)]
818 fn inline_align(_context: fidl::encoding::Context) -> usize {
819 std::mem::align_of::<u32>()
820 }
821
822 #[inline(always)]
823 fn inline_size(_context: fidl::encoding::Context) -> usize {
824 std::mem::size_of::<u32>()
825 }
826
827 #[inline(always)]
828 fn encode_is_copy() -> bool {
829 false
830 }
831
832 #[inline(always)]
833 fn decode_is_copy() -> bool {
834 false
835 }
836 }
837
838 impl fidl::encoding::ValueTypeMarker for CompressionType {
839 type Borrowed<'a> = Self;
840 #[inline(always)]
841 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
842 *value
843 }
844 }
845
846 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
847 for CompressionType
848 {
849 #[inline]
850 unsafe fn encode(
851 self,
852 encoder: &mut fidl::encoding::Encoder<'_, D>,
853 offset: usize,
854 _depth: fidl::encoding::Depth,
855 ) -> fidl::Result<()> {
856 encoder.debug_check_bounds::<Self>(offset);
857 encoder.write_num(self.into_primitive(), offset);
858 Ok(())
859 }
860 }
861
862 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompressionType {
863 #[inline(always)]
864 fn new_empty() -> Self {
865 Self::unknown()
866 }
867
868 #[inline]
869 unsafe fn decode(
870 &mut self,
871 decoder: &mut fidl::encoding::Decoder<'_, D>,
872 offset: usize,
873 _depth: fidl::encoding::Depth,
874 ) -> fidl::Result<()> {
875 decoder.debug_check_bounds::<Self>(offset);
876 let prim = decoder.read_num::<u32>(offset);
877
878 *self = Self::from_primitive_allow_unknown(prim);
879 Ok(())
880 }
881 }
882 unsafe impl fidl::encoding::TypeMarker for RecordingError {
883 type Owned = Self;
884
885 #[inline(always)]
886 fn inline_align(_context: fidl::encoding::Context) -> usize {
887 std::mem::align_of::<u32>()
888 }
889
890 #[inline(always)]
891 fn inline_size(_context: fidl::encoding::Context) -> usize {
892 std::mem::size_of::<u32>()
893 }
894
895 #[inline(always)]
896 fn encode_is_copy() -> bool {
897 false
898 }
899
900 #[inline(always)]
901 fn decode_is_copy() -> bool {
902 false
903 }
904 }
905
906 impl fidl::encoding::ValueTypeMarker for RecordingError {
907 type Borrowed<'a> = Self;
908 #[inline(always)]
909 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
910 *value
911 }
912 }
913
914 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for RecordingError {
915 #[inline]
916 unsafe fn encode(
917 self,
918 encoder: &mut fidl::encoding::Encoder<'_, D>,
919 offset: usize,
920 _depth: fidl::encoding::Depth,
921 ) -> fidl::Result<()> {
922 encoder.debug_check_bounds::<Self>(offset);
923 encoder.write_num(self.into_primitive(), offset);
924 Ok(())
925 }
926 }
927
928 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RecordingError {
929 #[inline(always)]
930 fn new_empty() -> Self {
931 Self::unknown()
932 }
933
934 #[inline]
935 unsafe fn decode(
936 &mut self,
937 decoder: &mut fidl::encoding::Decoder<'_, D>,
938 offset: usize,
939 _depth: fidl::encoding::Depth,
940 ) -> fidl::Result<()> {
941 decoder.debug_check_bounds::<Self>(offset);
942 let prim = decoder.read_num::<u32>(offset);
943
944 *self = Self::from_primitive_allow_unknown(prim);
945 Ok(())
946 }
947 }
948 unsafe impl fidl::encoding::TypeMarker for SessionState {
949 type Owned = Self;
950
951 #[inline(always)]
952 fn inline_align(_context: fidl::encoding::Context) -> usize {
953 std::mem::align_of::<u32>()
954 }
955
956 #[inline(always)]
957 fn inline_size(_context: fidl::encoding::Context) -> usize {
958 std::mem::size_of::<u32>()
959 }
960
961 #[inline(always)]
962 fn encode_is_copy() -> bool {
963 false
964 }
965
966 #[inline(always)]
967 fn decode_is_copy() -> bool {
968 false
969 }
970 }
971
972 impl fidl::encoding::ValueTypeMarker for SessionState {
973 type Borrowed<'a> = Self;
974 #[inline(always)]
975 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
976 *value
977 }
978 }
979
980 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SessionState {
981 #[inline]
982 unsafe fn encode(
983 self,
984 encoder: &mut fidl::encoding::Encoder<'_, D>,
985 offset: usize,
986 _depth: fidl::encoding::Depth,
987 ) -> fidl::Result<()> {
988 encoder.debug_check_bounds::<Self>(offset);
989 encoder.write_num(self.into_primitive(), offset);
990 Ok(())
991 }
992 }
993
994 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SessionState {
995 #[inline(always)]
996 fn new_empty() -> Self {
997 Self::unknown()
998 }
999
1000 #[inline]
1001 unsafe fn decode(
1002 &mut self,
1003 decoder: &mut fidl::encoding::Decoder<'_, D>,
1004 offset: usize,
1005 _depth: fidl::encoding::Depth,
1006 ) -> fidl::Result<()> {
1007 decoder.debug_check_bounds::<Self>(offset);
1008 let prim = decoder.read_num::<u32>(offset);
1009
1010 *self = Self::from_primitive_allow_unknown(prim);
1011 Ok(())
1012 }
1013 }
1014 unsafe impl fidl::encoding::TypeMarker for StartError {
1015 type Owned = Self;
1016
1017 #[inline(always)]
1018 fn inline_align(_context: fidl::encoding::Context) -> usize {
1019 std::mem::align_of::<u32>()
1020 }
1021
1022 #[inline(always)]
1023 fn inline_size(_context: fidl::encoding::Context) -> usize {
1024 std::mem::size_of::<u32>()
1025 }
1026
1027 #[inline(always)]
1028 fn encode_is_copy() -> bool {
1029 false
1030 }
1031
1032 #[inline(always)]
1033 fn decode_is_copy() -> bool {
1034 false
1035 }
1036 }
1037
1038 impl fidl::encoding::ValueTypeMarker for StartError {
1039 type Borrowed<'a> = Self;
1040 #[inline(always)]
1041 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1042 *value
1043 }
1044 }
1045
1046 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartError {
1047 #[inline]
1048 unsafe fn encode(
1049 self,
1050 encoder: &mut fidl::encoding::Encoder<'_, D>,
1051 offset: usize,
1052 _depth: fidl::encoding::Depth,
1053 ) -> fidl::Result<()> {
1054 encoder.debug_check_bounds::<Self>(offset);
1055 encoder.write_num(self.into_primitive(), offset);
1056 Ok(())
1057 }
1058 }
1059
1060 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartError {
1061 #[inline(always)]
1062 fn new_empty() -> Self {
1063 Self::unknown()
1064 }
1065
1066 #[inline]
1067 unsafe fn decode(
1068 &mut self,
1069 decoder: &mut fidl::encoding::Decoder<'_, D>,
1070 offset: usize,
1071 _depth: fidl::encoding::Depth,
1072 ) -> fidl::Result<()> {
1073 decoder.debug_check_bounds::<Self>(offset);
1074 let prim = decoder.read_num::<u32>(offset);
1075
1076 *self = Self::from_primitive_allow_unknown(prim);
1077 Ok(())
1078 }
1079 }
1080 unsafe impl fidl::encoding::TypeMarker for StopError {
1081 type Owned = Self;
1082
1083 #[inline(always)]
1084 fn inline_align(_context: fidl::encoding::Context) -> usize {
1085 std::mem::align_of::<u32>()
1086 }
1087
1088 #[inline(always)]
1089 fn inline_size(_context: fidl::encoding::Context) -> usize {
1090 std::mem::size_of::<u32>()
1091 }
1092
1093 #[inline(always)]
1094 fn encode_is_copy() -> bool {
1095 false
1096 }
1097
1098 #[inline(always)]
1099 fn decode_is_copy() -> bool {
1100 false
1101 }
1102 }
1103
1104 impl fidl::encoding::ValueTypeMarker for StopError {
1105 type Borrowed<'a> = Self;
1106 #[inline(always)]
1107 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1108 *value
1109 }
1110 }
1111
1112 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StopError {
1113 #[inline]
1114 unsafe fn encode(
1115 self,
1116 encoder: &mut fidl::encoding::Encoder<'_, D>,
1117 offset: usize,
1118 _depth: fidl::encoding::Depth,
1119 ) -> fidl::Result<()> {
1120 encoder.debug_check_bounds::<Self>(offset);
1121 encoder.write_num(self.into_primitive(), offset);
1122 Ok(())
1123 }
1124 }
1125
1126 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopError {
1127 #[inline(always)]
1128 fn new_empty() -> Self {
1129 Self::unknown()
1130 }
1131
1132 #[inline]
1133 unsafe fn decode(
1134 &mut self,
1135 decoder: &mut fidl::encoding::Decoder<'_, D>,
1136 offset: usize,
1137 _depth: fidl::encoding::Depth,
1138 ) -> fidl::Result<()> {
1139 decoder.debug_check_bounds::<Self>(offset);
1140 let prim = decoder.read_num::<u32>(offset);
1141
1142 *self = Self::from_primitive_allow_unknown(prim);
1143 Ok(())
1144 }
1145 }
1146
1147 impl fidl::encoding::ValueTypeMarker for ProvisionerGetKnownCategoriesResponse {
1148 type Borrowed<'a> = &'a Self;
1149 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1150 value
1151 }
1152 }
1153
1154 unsafe impl fidl::encoding::TypeMarker for ProvisionerGetKnownCategoriesResponse {
1155 type Owned = Self;
1156
1157 #[inline(always)]
1158 fn inline_align(_context: fidl::encoding::Context) -> usize {
1159 8
1160 }
1161
1162 #[inline(always)]
1163 fn inline_size(_context: fidl::encoding::Context) -> usize {
1164 16
1165 }
1166 }
1167
1168 unsafe impl<D: fidl::encoding::ResourceDialect>
1169 fidl::encoding::Encode<ProvisionerGetKnownCategoriesResponse, D>
1170 for &ProvisionerGetKnownCategoriesResponse
1171 {
1172 #[inline]
1173 unsafe fn encode(
1174 self,
1175 encoder: &mut fidl::encoding::Encoder<'_, D>,
1176 offset: usize,
1177 _depth: fidl::encoding::Depth,
1178 ) -> fidl::Result<()> {
1179 encoder.debug_check_bounds::<ProvisionerGetKnownCategoriesResponse>(offset);
1180 fidl::encoding::Encode::<ProvisionerGetKnownCategoriesResponse, D>::encode(
1182 (
1183 <fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000> as fidl::encoding::ValueTypeMarker>::borrow(&self.categories),
1184 ),
1185 encoder, offset, _depth
1186 )
1187 }
1188 }
1189 unsafe impl<
1190 D: fidl::encoding::ResourceDialect,
1191 T0: fidl::encoding::Encode<
1192 fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>,
1193 D,
1194 >,
1195 > fidl::encoding::Encode<ProvisionerGetKnownCategoriesResponse, D> for (T0,)
1196 {
1197 #[inline]
1198 unsafe fn encode(
1199 self,
1200 encoder: &mut fidl::encoding::Encoder<'_, D>,
1201 offset: usize,
1202 depth: fidl::encoding::Depth,
1203 ) -> fidl::Result<()> {
1204 encoder.debug_check_bounds::<ProvisionerGetKnownCategoriesResponse>(offset);
1205 self.0.encode(encoder, offset + 0, depth)?;
1209 Ok(())
1210 }
1211 }
1212
1213 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1214 for ProvisionerGetKnownCategoriesResponse
1215 {
1216 #[inline(always)]
1217 fn new_empty() -> Self {
1218 Self {
1219 categories: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>, D),
1220 }
1221 }
1222
1223 #[inline]
1224 unsafe fn decode(
1225 &mut self,
1226 decoder: &mut fidl::encoding::Decoder<'_, D>,
1227 offset: usize,
1228 _depth: fidl::encoding::Depth,
1229 ) -> fidl::Result<()> {
1230 decoder.debug_check_bounds::<Self>(offset);
1231 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>, D, &mut self.categories, decoder, offset + 0, _depth)?;
1233 Ok(())
1234 }
1235 }
1236
1237 impl fidl::encoding::ValueTypeMarker for ProvisionerGetProvidersResponse {
1238 type Borrowed<'a> = &'a Self;
1239 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1240 value
1241 }
1242 }
1243
1244 unsafe impl fidl::encoding::TypeMarker for ProvisionerGetProvidersResponse {
1245 type Owned = Self;
1246
1247 #[inline(always)]
1248 fn inline_align(_context: fidl::encoding::Context) -> usize {
1249 8
1250 }
1251
1252 #[inline(always)]
1253 fn inline_size(_context: fidl::encoding::Context) -> usize {
1254 16
1255 }
1256 }
1257
1258 unsafe impl<D: fidl::encoding::ResourceDialect>
1259 fidl::encoding::Encode<ProvisionerGetProvidersResponse, D>
1260 for &ProvisionerGetProvidersResponse
1261 {
1262 #[inline]
1263 unsafe fn encode(
1264 self,
1265 encoder: &mut fidl::encoding::Encoder<'_, D>,
1266 offset: usize,
1267 _depth: fidl::encoding::Depth,
1268 ) -> fidl::Result<()> {
1269 encoder.debug_check_bounds::<ProvisionerGetProvidersResponse>(offset);
1270 fidl::encoding::Encode::<ProvisionerGetProvidersResponse, D>::encode(
1272 (
1273 <fidl::encoding::Vector<ProviderInfo, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.providers),
1274 ),
1275 encoder, offset, _depth
1276 )
1277 }
1278 }
1279 unsafe impl<
1280 D: fidl::encoding::ResourceDialect,
1281 T0: fidl::encoding::Encode<fidl::encoding::Vector<ProviderInfo, 100>, D>,
1282 > fidl::encoding::Encode<ProvisionerGetProvidersResponse, D> for (T0,)
1283 {
1284 #[inline]
1285 unsafe fn encode(
1286 self,
1287 encoder: &mut fidl::encoding::Encoder<'_, D>,
1288 offset: usize,
1289 depth: fidl::encoding::Depth,
1290 ) -> fidl::Result<()> {
1291 encoder.debug_check_bounds::<ProvisionerGetProvidersResponse>(offset);
1292 self.0.encode(encoder, offset + 0, depth)?;
1296 Ok(())
1297 }
1298 }
1299
1300 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1301 for ProvisionerGetProvidersResponse
1302 {
1303 #[inline(always)]
1304 fn new_empty() -> Self {
1305 Self { providers: fidl::new_empty!(fidl::encoding::Vector<ProviderInfo, 100>, D) }
1306 }
1307
1308 #[inline]
1309 unsafe fn decode(
1310 &mut self,
1311 decoder: &mut fidl::encoding::Decoder<'_, D>,
1312 offset: usize,
1313 _depth: fidl::encoding::Depth,
1314 ) -> fidl::Result<()> {
1315 decoder.debug_check_bounds::<Self>(offset);
1316 fidl::decode!(fidl::encoding::Vector<ProviderInfo, 100>, D, &mut self.providers, decoder, offset + 0, _depth)?;
1318 Ok(())
1319 }
1320 }
1321
1322 impl fidl::encoding::ValueTypeMarker for SessionManagerEndTraceSessionResponse {
1323 type Borrowed<'a> = &'a Self;
1324 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1325 value
1326 }
1327 }
1328
1329 unsafe impl fidl::encoding::TypeMarker for SessionManagerEndTraceSessionResponse {
1330 type Owned = Self;
1331
1332 #[inline(always)]
1333 fn inline_align(_context: fidl::encoding::Context) -> usize {
1334 8
1335 }
1336
1337 #[inline(always)]
1338 fn inline_size(_context: fidl::encoding::Context) -> usize {
1339 32
1340 }
1341 }
1342
1343 unsafe impl<D: fidl::encoding::ResourceDialect>
1344 fidl::encoding::Encode<SessionManagerEndTraceSessionResponse, D>
1345 for &SessionManagerEndTraceSessionResponse
1346 {
1347 #[inline]
1348 unsafe fn encode(
1349 self,
1350 encoder: &mut fidl::encoding::Encoder<'_, D>,
1351 offset: usize,
1352 _depth: fidl::encoding::Depth,
1353 ) -> fidl::Result<()> {
1354 encoder.debug_check_bounds::<SessionManagerEndTraceSessionResponse>(offset);
1355 fidl::encoding::Encode::<SessionManagerEndTraceSessionResponse, D>::encode(
1357 (
1358 <TraceOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1359 <StopResult as fidl::encoding::ValueTypeMarker>::borrow(&self.result),
1360 ),
1361 encoder,
1362 offset,
1363 _depth,
1364 )
1365 }
1366 }
1367 unsafe impl<
1368 D: fidl::encoding::ResourceDialect,
1369 T0: fidl::encoding::Encode<TraceOptions, D>,
1370 T1: fidl::encoding::Encode<StopResult, D>,
1371 > fidl::encoding::Encode<SessionManagerEndTraceSessionResponse, D> for (T0, T1)
1372 {
1373 #[inline]
1374 unsafe fn encode(
1375 self,
1376 encoder: &mut fidl::encoding::Encoder<'_, D>,
1377 offset: usize,
1378 depth: fidl::encoding::Depth,
1379 ) -> fidl::Result<()> {
1380 encoder.debug_check_bounds::<SessionManagerEndTraceSessionResponse>(offset);
1381 self.0.encode(encoder, offset + 0, depth)?;
1385 self.1.encode(encoder, offset + 16, depth)?;
1386 Ok(())
1387 }
1388 }
1389
1390 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1391 for SessionManagerEndTraceSessionResponse
1392 {
1393 #[inline(always)]
1394 fn new_empty() -> Self {
1395 Self {
1396 options: fidl::new_empty!(TraceOptions, D),
1397 result: fidl::new_empty!(StopResult, D),
1398 }
1399 }
1400
1401 #[inline]
1402 unsafe fn decode(
1403 &mut self,
1404 decoder: &mut fidl::encoding::Decoder<'_, D>,
1405 offset: usize,
1406 _depth: fidl::encoding::Depth,
1407 ) -> fidl::Result<()> {
1408 decoder.debug_check_bounds::<Self>(offset);
1409 fidl::decode!(TraceOptions, D, &mut self.options, decoder, offset + 0, _depth)?;
1411 fidl::decode!(StopResult, D, &mut self.result, decoder, offset + 16, _depth)?;
1412 Ok(())
1413 }
1414 }
1415
1416 impl fidl::encoding::ValueTypeMarker for SessionManagerGetKnownCategoriesResponse {
1417 type Borrowed<'a> = &'a Self;
1418 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1419 value
1420 }
1421 }
1422
1423 unsafe impl fidl::encoding::TypeMarker for SessionManagerGetKnownCategoriesResponse {
1424 type Owned = Self;
1425
1426 #[inline(always)]
1427 fn inline_align(_context: fidl::encoding::Context) -> usize {
1428 8
1429 }
1430
1431 #[inline(always)]
1432 fn inline_size(_context: fidl::encoding::Context) -> usize {
1433 16
1434 }
1435 }
1436
1437 unsafe impl<D: fidl::encoding::ResourceDialect>
1438 fidl::encoding::Encode<SessionManagerGetKnownCategoriesResponse, D>
1439 for &SessionManagerGetKnownCategoriesResponse
1440 {
1441 #[inline]
1442 unsafe fn encode(
1443 self,
1444 encoder: &mut fidl::encoding::Encoder<'_, D>,
1445 offset: usize,
1446 _depth: fidl::encoding::Depth,
1447 ) -> fidl::Result<()> {
1448 encoder.debug_check_bounds::<SessionManagerGetKnownCategoriesResponse>(offset);
1449 fidl::encoding::Encode::<SessionManagerGetKnownCategoriesResponse, D>::encode(
1451 (
1452 <fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000> as fidl::encoding::ValueTypeMarker>::borrow(&self.categories),
1453 ),
1454 encoder, offset, _depth
1455 )
1456 }
1457 }
1458 unsafe impl<
1459 D: fidl::encoding::ResourceDialect,
1460 T0: fidl::encoding::Encode<
1461 fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>,
1462 D,
1463 >,
1464 > fidl::encoding::Encode<SessionManagerGetKnownCategoriesResponse, D> for (T0,)
1465 {
1466 #[inline]
1467 unsafe fn encode(
1468 self,
1469 encoder: &mut fidl::encoding::Encoder<'_, D>,
1470 offset: usize,
1471 depth: fidl::encoding::Depth,
1472 ) -> fidl::Result<()> {
1473 encoder.debug_check_bounds::<SessionManagerGetKnownCategoriesResponse>(offset);
1474 self.0.encode(encoder, offset + 0, depth)?;
1478 Ok(())
1479 }
1480 }
1481
1482 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1483 for SessionManagerGetKnownCategoriesResponse
1484 {
1485 #[inline(always)]
1486 fn new_empty() -> Self {
1487 Self {
1488 categories: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>, D),
1489 }
1490 }
1491
1492 #[inline]
1493 unsafe fn decode(
1494 &mut self,
1495 decoder: &mut fidl::encoding::Decoder<'_, D>,
1496 offset: usize,
1497 _depth: fidl::encoding::Depth,
1498 ) -> fidl::Result<()> {
1499 decoder.debug_check_bounds::<Self>(offset);
1500 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>, D, &mut self.categories, decoder, offset + 0, _depth)?;
1502 Ok(())
1503 }
1504 }
1505
1506 impl fidl::encoding::ValueTypeMarker for SessionManagerGetProvidersResponse {
1507 type Borrowed<'a> = &'a Self;
1508 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1509 value
1510 }
1511 }
1512
1513 unsafe impl fidl::encoding::TypeMarker for SessionManagerGetProvidersResponse {
1514 type Owned = Self;
1515
1516 #[inline(always)]
1517 fn inline_align(_context: fidl::encoding::Context) -> usize {
1518 8
1519 }
1520
1521 #[inline(always)]
1522 fn inline_size(_context: fidl::encoding::Context) -> usize {
1523 16
1524 }
1525 }
1526
1527 unsafe impl<D: fidl::encoding::ResourceDialect>
1528 fidl::encoding::Encode<SessionManagerGetProvidersResponse, D>
1529 for &SessionManagerGetProvidersResponse
1530 {
1531 #[inline]
1532 unsafe fn encode(
1533 self,
1534 encoder: &mut fidl::encoding::Encoder<'_, D>,
1535 offset: usize,
1536 _depth: fidl::encoding::Depth,
1537 ) -> fidl::Result<()> {
1538 encoder.debug_check_bounds::<SessionManagerGetProvidersResponse>(offset);
1539 fidl::encoding::Encode::<SessionManagerGetProvidersResponse, D>::encode(
1541 (
1542 <fidl::encoding::Vector<ProviderInfo, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.providers),
1543 ),
1544 encoder, offset, _depth
1545 )
1546 }
1547 }
1548 unsafe impl<
1549 D: fidl::encoding::ResourceDialect,
1550 T0: fidl::encoding::Encode<fidl::encoding::Vector<ProviderInfo, 100>, D>,
1551 > fidl::encoding::Encode<SessionManagerGetProvidersResponse, D> for (T0,)
1552 {
1553 #[inline]
1554 unsafe fn encode(
1555 self,
1556 encoder: &mut fidl::encoding::Encoder<'_, D>,
1557 offset: usize,
1558 depth: fidl::encoding::Depth,
1559 ) -> fidl::Result<()> {
1560 encoder.debug_check_bounds::<SessionManagerGetProvidersResponse>(offset);
1561 self.0.encode(encoder, offset + 0, depth)?;
1565 Ok(())
1566 }
1567 }
1568
1569 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1570 for SessionManagerGetProvidersResponse
1571 {
1572 #[inline(always)]
1573 fn new_empty() -> Self {
1574 Self { providers: fidl::new_empty!(fidl::encoding::Vector<ProviderInfo, 100>, D) }
1575 }
1576
1577 #[inline]
1578 unsafe fn decode(
1579 &mut self,
1580 decoder: &mut fidl::encoding::Decoder<'_, D>,
1581 offset: usize,
1582 _depth: fidl::encoding::Depth,
1583 ) -> fidl::Result<()> {
1584 decoder.debug_check_bounds::<Self>(offset);
1585 fidl::decode!(fidl::encoding::Vector<ProviderInfo, 100>, D, &mut self.providers, decoder, offset + 0, _depth)?;
1587 Ok(())
1588 }
1589 }
1590
1591 impl fidl::encoding::ValueTypeMarker for SessionManagerStartTraceSessionResponse {
1592 type Borrowed<'a> = &'a Self;
1593 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1594 value
1595 }
1596 }
1597
1598 unsafe impl fidl::encoding::TypeMarker for SessionManagerStartTraceSessionResponse {
1599 type Owned = Self;
1600
1601 #[inline(always)]
1602 fn inline_align(_context: fidl::encoding::Context) -> usize {
1603 8
1604 }
1605
1606 #[inline(always)]
1607 fn inline_size(_context: fidl::encoding::Context) -> usize {
1608 8
1609 }
1610 #[inline(always)]
1611 fn encode_is_copy() -> bool {
1612 true
1613 }
1614
1615 #[inline(always)]
1616 fn decode_is_copy() -> bool {
1617 true
1618 }
1619 }
1620
1621 unsafe impl<D: fidl::encoding::ResourceDialect>
1622 fidl::encoding::Encode<SessionManagerStartTraceSessionResponse, D>
1623 for &SessionManagerStartTraceSessionResponse
1624 {
1625 #[inline]
1626 unsafe fn encode(
1627 self,
1628 encoder: &mut fidl::encoding::Encoder<'_, D>,
1629 offset: usize,
1630 _depth: fidl::encoding::Depth,
1631 ) -> fidl::Result<()> {
1632 encoder.debug_check_bounds::<SessionManagerStartTraceSessionResponse>(offset);
1633 unsafe {
1634 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1636 (buf_ptr as *mut SessionManagerStartTraceSessionResponse).write_unaligned(
1637 (self as *const SessionManagerStartTraceSessionResponse).read(),
1638 );
1639 }
1642 Ok(())
1643 }
1644 }
1645 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
1646 fidl::encoding::Encode<SessionManagerStartTraceSessionResponse, D> for (T0,)
1647 {
1648 #[inline]
1649 unsafe fn encode(
1650 self,
1651 encoder: &mut fidl::encoding::Encoder<'_, D>,
1652 offset: usize,
1653 depth: fidl::encoding::Depth,
1654 ) -> fidl::Result<()> {
1655 encoder.debug_check_bounds::<SessionManagerStartTraceSessionResponse>(offset);
1656 self.0.encode(encoder, offset + 0, depth)?;
1660 Ok(())
1661 }
1662 }
1663
1664 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1665 for SessionManagerStartTraceSessionResponse
1666 {
1667 #[inline(always)]
1668 fn new_empty() -> Self {
1669 Self { task_id: fidl::new_empty!(u64, D) }
1670 }
1671
1672 #[inline]
1673 unsafe fn decode(
1674 &mut self,
1675 decoder: &mut fidl::encoding::Decoder<'_, D>,
1676 offset: usize,
1677 _depth: fidl::encoding::Depth,
1678 ) -> fidl::Result<()> {
1679 decoder.debug_check_bounds::<Self>(offset);
1680 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1681 unsafe {
1684 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1685 }
1686 Ok(())
1687 }
1688 }
1689
1690 impl fidl::encoding::ValueTypeMarker for SessionOnSessionStateChangeRequest {
1691 type Borrowed<'a> = &'a Self;
1692 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1693 value
1694 }
1695 }
1696
1697 unsafe impl fidl::encoding::TypeMarker for SessionOnSessionStateChangeRequest {
1698 type Owned = Self;
1699
1700 #[inline(always)]
1701 fn inline_align(_context: fidl::encoding::Context) -> usize {
1702 4
1703 }
1704
1705 #[inline(always)]
1706 fn inline_size(_context: fidl::encoding::Context) -> usize {
1707 4
1708 }
1709 }
1710
1711 unsafe impl<D: fidl::encoding::ResourceDialect>
1712 fidl::encoding::Encode<SessionOnSessionStateChangeRequest, D>
1713 for &SessionOnSessionStateChangeRequest
1714 {
1715 #[inline]
1716 unsafe fn encode(
1717 self,
1718 encoder: &mut fidl::encoding::Encoder<'_, D>,
1719 offset: usize,
1720 _depth: fidl::encoding::Depth,
1721 ) -> fidl::Result<()> {
1722 encoder.debug_check_bounds::<SessionOnSessionStateChangeRequest>(offset);
1723 fidl::encoding::Encode::<SessionOnSessionStateChangeRequest, D>::encode(
1725 (<SessionState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),),
1726 encoder,
1727 offset,
1728 _depth,
1729 )
1730 }
1731 }
1732 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SessionState, D>>
1733 fidl::encoding::Encode<SessionOnSessionStateChangeRequest, D> for (T0,)
1734 {
1735 #[inline]
1736 unsafe fn encode(
1737 self,
1738 encoder: &mut fidl::encoding::Encoder<'_, D>,
1739 offset: usize,
1740 depth: fidl::encoding::Depth,
1741 ) -> fidl::Result<()> {
1742 encoder.debug_check_bounds::<SessionOnSessionStateChangeRequest>(offset);
1743 self.0.encode(encoder, offset + 0, depth)?;
1747 Ok(())
1748 }
1749 }
1750
1751 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1752 for SessionOnSessionStateChangeRequest
1753 {
1754 #[inline(always)]
1755 fn new_empty() -> Self {
1756 Self { state: fidl::new_empty!(SessionState, D) }
1757 }
1758
1759 #[inline]
1760 unsafe fn decode(
1761 &mut self,
1762 decoder: &mut fidl::encoding::Decoder<'_, D>,
1763 offset: usize,
1764 _depth: fidl::encoding::Depth,
1765 ) -> fidl::Result<()> {
1766 decoder.debug_check_bounds::<Self>(offset);
1767 fidl::decode!(SessionState, D, &mut self.state, decoder, offset + 0, _depth)?;
1769 Ok(())
1770 }
1771 }
1772
1773 impl fidl::encoding::ValueTypeMarker for SessionWatchAlertResponse {
1774 type Borrowed<'a> = &'a Self;
1775 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1776 value
1777 }
1778 }
1779
1780 unsafe impl fidl::encoding::TypeMarker for SessionWatchAlertResponse {
1781 type Owned = Self;
1782
1783 #[inline(always)]
1784 fn inline_align(_context: fidl::encoding::Context) -> usize {
1785 8
1786 }
1787
1788 #[inline(always)]
1789 fn inline_size(_context: fidl::encoding::Context) -> usize {
1790 16
1791 }
1792 }
1793
1794 unsafe impl<D: fidl::encoding::ResourceDialect>
1795 fidl::encoding::Encode<SessionWatchAlertResponse, D> for &SessionWatchAlertResponse
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::<SessionWatchAlertResponse>(offset);
1805 fidl::encoding::Encode::<SessionWatchAlertResponse, D>::encode(
1807 (<fidl::encoding::BoundedString<14> as fidl::encoding::ValueTypeMarker>::borrow(
1808 &self.alert_name,
1809 ),),
1810 encoder,
1811 offset,
1812 _depth,
1813 )
1814 }
1815 }
1816 unsafe impl<
1817 D: fidl::encoding::ResourceDialect,
1818 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<14>, D>,
1819 > fidl::encoding::Encode<SessionWatchAlertResponse, D> for (T0,)
1820 {
1821 #[inline]
1822 unsafe fn encode(
1823 self,
1824 encoder: &mut fidl::encoding::Encoder<'_, D>,
1825 offset: usize,
1826 depth: fidl::encoding::Depth,
1827 ) -> fidl::Result<()> {
1828 encoder.debug_check_bounds::<SessionWatchAlertResponse>(offset);
1829 self.0.encode(encoder, offset + 0, depth)?;
1833 Ok(())
1834 }
1835 }
1836
1837 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1838 for SessionWatchAlertResponse
1839 {
1840 #[inline(always)]
1841 fn new_empty() -> Self {
1842 Self { alert_name: fidl::new_empty!(fidl::encoding::BoundedString<14>, D) }
1843 }
1844
1845 #[inline]
1846 unsafe fn decode(
1847 &mut self,
1848 decoder: &mut fidl::encoding::Decoder<'_, D>,
1849 offset: usize,
1850 _depth: fidl::encoding::Depth,
1851 ) -> fidl::Result<()> {
1852 decoder.debug_check_bounds::<Self>(offset);
1853 fidl::decode!(
1855 fidl::encoding::BoundedString<14>,
1856 D,
1857 &mut self.alert_name,
1858 decoder,
1859 offset + 0,
1860 _depth
1861 )?;
1862 Ok(())
1863 }
1864 }
1865
1866 impl FxtVersion {
1867 #[inline(always)]
1868 fn max_ordinal_present(&self) -> u64 {
1869 if let Some(_) = self.minor {
1870 return 2;
1871 }
1872 if let Some(_) = self.major {
1873 return 1;
1874 }
1875 0
1876 }
1877 }
1878
1879 impl fidl::encoding::ValueTypeMarker for FxtVersion {
1880 type Borrowed<'a> = &'a Self;
1881 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1882 value
1883 }
1884 }
1885
1886 unsafe impl fidl::encoding::TypeMarker for FxtVersion {
1887 type Owned = Self;
1888
1889 #[inline(always)]
1890 fn inline_align(_context: fidl::encoding::Context) -> usize {
1891 8
1892 }
1893
1894 #[inline(always)]
1895 fn inline_size(_context: fidl::encoding::Context) -> usize {
1896 16
1897 }
1898 }
1899
1900 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FxtVersion, D>
1901 for &FxtVersion
1902 {
1903 unsafe fn encode(
1904 self,
1905 encoder: &mut fidl::encoding::Encoder<'_, D>,
1906 offset: usize,
1907 mut depth: fidl::encoding::Depth,
1908 ) -> fidl::Result<()> {
1909 encoder.debug_check_bounds::<FxtVersion>(offset);
1910 let max_ordinal: u64 = self.max_ordinal_present();
1912 encoder.write_num(max_ordinal, offset);
1913 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1914 if max_ordinal == 0 {
1916 return Ok(());
1917 }
1918 depth.increment()?;
1919 let envelope_size = 8;
1920 let bytes_len = max_ordinal as usize * envelope_size;
1921 #[allow(unused_variables)]
1922 let offset = encoder.out_of_line_offset(bytes_len);
1923 let mut _prev_end_offset: usize = 0;
1924 if 1 > max_ordinal {
1925 return Ok(());
1926 }
1927
1928 let cur_offset: usize = (1 - 1) * envelope_size;
1931
1932 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1934
1935 fidl::encoding::encode_in_envelope_optional::<u32, D>(
1940 self.major.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1941 encoder,
1942 offset + cur_offset,
1943 depth,
1944 )?;
1945
1946 _prev_end_offset = cur_offset + envelope_size;
1947 if 2 > max_ordinal {
1948 return Ok(());
1949 }
1950
1951 let cur_offset: usize = (2 - 1) * envelope_size;
1954
1955 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1957
1958 fidl::encoding::encode_in_envelope_optional::<u32, D>(
1963 self.minor.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1964 encoder,
1965 offset + cur_offset,
1966 depth,
1967 )?;
1968
1969 _prev_end_offset = cur_offset + envelope_size;
1970
1971 Ok(())
1972 }
1973 }
1974
1975 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FxtVersion {
1976 #[inline(always)]
1977 fn new_empty() -> Self {
1978 Self::default()
1979 }
1980
1981 unsafe fn decode(
1982 &mut self,
1983 decoder: &mut fidl::encoding::Decoder<'_, D>,
1984 offset: usize,
1985 mut depth: fidl::encoding::Depth,
1986 ) -> fidl::Result<()> {
1987 decoder.debug_check_bounds::<Self>(offset);
1988 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1989 None => return Err(fidl::Error::NotNullable),
1990 Some(len) => len,
1991 };
1992 if len == 0 {
1994 return Ok(());
1995 };
1996 depth.increment()?;
1997 let envelope_size = 8;
1998 let bytes_len = len * envelope_size;
1999 let offset = decoder.out_of_line_offset(bytes_len)?;
2000 let mut _next_ordinal_to_read = 0;
2002 let mut next_offset = offset;
2003 let end_offset = offset + bytes_len;
2004 _next_ordinal_to_read += 1;
2005 if next_offset >= end_offset {
2006 return Ok(());
2007 }
2008
2009 while _next_ordinal_to_read < 1 {
2011 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2012 _next_ordinal_to_read += 1;
2013 next_offset += envelope_size;
2014 }
2015
2016 let next_out_of_line = decoder.next_out_of_line();
2017 let handles_before = decoder.remaining_handles();
2018 if let Some((inlined, num_bytes, num_handles)) =
2019 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2020 {
2021 let member_inline_size =
2022 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2023 if inlined != (member_inline_size <= 4) {
2024 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2025 }
2026 let inner_offset;
2027 let mut inner_depth = depth.clone();
2028 if inlined {
2029 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2030 inner_offset = next_offset;
2031 } else {
2032 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2033 inner_depth.increment()?;
2034 }
2035 let val_ref = self.major.get_or_insert_with(|| fidl::new_empty!(u32, D));
2036 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2037 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2038 {
2039 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2040 }
2041 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2042 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2043 }
2044 }
2045
2046 next_offset += envelope_size;
2047 _next_ordinal_to_read += 1;
2048 if next_offset >= end_offset {
2049 return Ok(());
2050 }
2051
2052 while _next_ordinal_to_read < 2 {
2054 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2055 _next_ordinal_to_read += 1;
2056 next_offset += envelope_size;
2057 }
2058
2059 let next_out_of_line = decoder.next_out_of_line();
2060 let handles_before = decoder.remaining_handles();
2061 if let Some((inlined, num_bytes, num_handles)) =
2062 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2063 {
2064 let member_inline_size =
2065 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2066 if inlined != (member_inline_size <= 4) {
2067 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2068 }
2069 let inner_offset;
2070 let mut inner_depth = depth.clone();
2071 if inlined {
2072 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2073 inner_offset = next_offset;
2074 } else {
2075 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2076 inner_depth.increment()?;
2077 }
2078 let val_ref = self.minor.get_or_insert_with(|| fidl::new_empty!(u32, D));
2079 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2080 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2081 {
2082 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2083 }
2084 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2085 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2086 }
2087 }
2088
2089 next_offset += envelope_size;
2090
2091 while next_offset < end_offset {
2093 _next_ordinal_to_read += 1;
2094 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2095 next_offset += envelope_size;
2096 }
2097
2098 Ok(())
2099 }
2100 }
2101
2102 impl ProviderInfo {
2103 #[inline(always)]
2104 fn max_ordinal_present(&self) -> u64 {
2105 if let Some(_) = self.name {
2106 return 3;
2107 }
2108 if let Some(_) = self.pid {
2109 return 2;
2110 }
2111 if let Some(_) = self.id {
2112 return 1;
2113 }
2114 0
2115 }
2116 }
2117
2118 impl fidl::encoding::ValueTypeMarker for ProviderInfo {
2119 type Borrowed<'a> = &'a Self;
2120 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2121 value
2122 }
2123 }
2124
2125 unsafe impl fidl::encoding::TypeMarker for ProviderInfo {
2126 type Owned = Self;
2127
2128 #[inline(always)]
2129 fn inline_align(_context: fidl::encoding::Context) -> usize {
2130 8
2131 }
2132
2133 #[inline(always)]
2134 fn inline_size(_context: fidl::encoding::Context) -> usize {
2135 16
2136 }
2137 }
2138
2139 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProviderInfo, D>
2140 for &ProviderInfo
2141 {
2142 unsafe fn encode(
2143 self,
2144 encoder: &mut fidl::encoding::Encoder<'_, D>,
2145 offset: usize,
2146 mut depth: fidl::encoding::Depth,
2147 ) -> fidl::Result<()> {
2148 encoder.debug_check_bounds::<ProviderInfo>(offset);
2149 let max_ordinal: u64 = self.max_ordinal_present();
2151 encoder.write_num(max_ordinal, offset);
2152 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2153 if max_ordinal == 0 {
2155 return Ok(());
2156 }
2157 depth.increment()?;
2158 let envelope_size = 8;
2159 let bytes_len = max_ordinal as usize * envelope_size;
2160 #[allow(unused_variables)]
2161 let offset = encoder.out_of_line_offset(bytes_len);
2162 let mut _prev_end_offset: usize = 0;
2163 if 1 > max_ordinal {
2164 return Ok(());
2165 }
2166
2167 let cur_offset: usize = (1 - 1) * envelope_size;
2170
2171 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2173
2174 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2179 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2180 encoder,
2181 offset + cur_offset,
2182 depth,
2183 )?;
2184
2185 _prev_end_offset = cur_offset + envelope_size;
2186 if 2 > max_ordinal {
2187 return Ok(());
2188 }
2189
2190 let cur_offset: usize = (2 - 1) * envelope_size;
2193
2194 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2196
2197 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2202 self.pid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2203 encoder,
2204 offset + cur_offset,
2205 depth,
2206 )?;
2207
2208 _prev_end_offset = cur_offset + envelope_size;
2209 if 3 > max_ordinal {
2210 return Ok(());
2211 }
2212
2213 let cur_offset: usize = (3 - 1) * envelope_size;
2216
2217 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2219
2220 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
2225 self.name.as_ref().map(
2226 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
2227 ),
2228 encoder,
2229 offset + cur_offset,
2230 depth,
2231 )?;
2232
2233 _prev_end_offset = cur_offset + envelope_size;
2234
2235 Ok(())
2236 }
2237 }
2238
2239 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProviderInfo {
2240 #[inline(always)]
2241 fn new_empty() -> Self {
2242 Self::default()
2243 }
2244
2245 unsafe fn decode(
2246 &mut self,
2247 decoder: &mut fidl::encoding::Decoder<'_, D>,
2248 offset: usize,
2249 mut depth: fidl::encoding::Depth,
2250 ) -> fidl::Result<()> {
2251 decoder.debug_check_bounds::<Self>(offset);
2252 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2253 None => return Err(fidl::Error::NotNullable),
2254 Some(len) => len,
2255 };
2256 if len == 0 {
2258 return Ok(());
2259 };
2260 depth.increment()?;
2261 let envelope_size = 8;
2262 let bytes_len = len * envelope_size;
2263 let offset = decoder.out_of_line_offset(bytes_len)?;
2264 let mut _next_ordinal_to_read = 0;
2266 let mut next_offset = offset;
2267 let end_offset = offset + bytes_len;
2268 _next_ordinal_to_read += 1;
2269 if next_offset >= end_offset {
2270 return Ok(());
2271 }
2272
2273 while _next_ordinal_to_read < 1 {
2275 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2276 _next_ordinal_to_read += 1;
2277 next_offset += envelope_size;
2278 }
2279
2280 let next_out_of_line = decoder.next_out_of_line();
2281 let handles_before = decoder.remaining_handles();
2282 if let Some((inlined, num_bytes, num_handles)) =
2283 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2284 {
2285 let member_inline_size =
2286 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2287 if inlined != (member_inline_size <= 4) {
2288 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2289 }
2290 let inner_offset;
2291 let mut inner_depth = depth.clone();
2292 if inlined {
2293 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2294 inner_offset = next_offset;
2295 } else {
2296 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2297 inner_depth.increment()?;
2298 }
2299 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
2300 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2301 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2302 {
2303 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2304 }
2305 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2306 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2307 }
2308 }
2309
2310 next_offset += envelope_size;
2311 _next_ordinal_to_read += 1;
2312 if next_offset >= end_offset {
2313 return Ok(());
2314 }
2315
2316 while _next_ordinal_to_read < 2 {
2318 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2319 _next_ordinal_to_read += 1;
2320 next_offset += envelope_size;
2321 }
2322
2323 let next_out_of_line = decoder.next_out_of_line();
2324 let handles_before = decoder.remaining_handles();
2325 if let Some((inlined, num_bytes, num_handles)) =
2326 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2327 {
2328 let member_inline_size =
2329 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2330 if inlined != (member_inline_size <= 4) {
2331 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2332 }
2333 let inner_offset;
2334 let mut inner_depth = depth.clone();
2335 if inlined {
2336 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2337 inner_offset = next_offset;
2338 } else {
2339 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2340 inner_depth.increment()?;
2341 }
2342 let val_ref = self.pid.get_or_insert_with(|| fidl::new_empty!(u64, D));
2343 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2344 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2345 {
2346 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2347 }
2348 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2349 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2350 }
2351 }
2352
2353 next_offset += envelope_size;
2354 _next_ordinal_to_read += 1;
2355 if next_offset >= end_offset {
2356 return Ok(());
2357 }
2358
2359 while _next_ordinal_to_read < 3 {
2361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2362 _next_ordinal_to_read += 1;
2363 next_offset += envelope_size;
2364 }
2365
2366 let next_out_of_line = decoder.next_out_of_line();
2367 let handles_before = decoder.remaining_handles();
2368 if let Some((inlined, num_bytes, num_handles)) =
2369 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2370 {
2371 let member_inline_size =
2372 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
2373 decoder.context,
2374 );
2375 if inlined != (member_inline_size <= 4) {
2376 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2377 }
2378 let inner_offset;
2379 let mut inner_depth = depth.clone();
2380 if inlined {
2381 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2382 inner_offset = next_offset;
2383 } else {
2384 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2385 inner_depth.increment()?;
2386 }
2387 let val_ref = self
2388 .name
2389 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
2390 fidl::decode!(
2391 fidl::encoding::BoundedString<100>,
2392 D,
2393 val_ref,
2394 decoder,
2395 inner_offset,
2396 inner_depth
2397 )?;
2398 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2399 {
2400 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2401 }
2402 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2403 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2404 }
2405 }
2406
2407 next_offset += envelope_size;
2408
2409 while next_offset < end_offset {
2411 _next_ordinal_to_read += 1;
2412 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2413 next_offset += envelope_size;
2414 }
2415
2416 Ok(())
2417 }
2418 }
2419
2420 impl ProviderSpec {
2421 #[inline(always)]
2422 fn max_ordinal_present(&self) -> u64 {
2423 if let Some(_) = self.categories {
2424 return 3;
2425 }
2426 if let Some(_) = self.buffer_size_megabytes_hint {
2427 return 2;
2428 }
2429 if let Some(_) = self.name {
2430 return 1;
2431 }
2432 0
2433 }
2434 }
2435
2436 impl fidl::encoding::ValueTypeMarker for ProviderSpec {
2437 type Borrowed<'a> = &'a Self;
2438 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2439 value
2440 }
2441 }
2442
2443 unsafe impl fidl::encoding::TypeMarker for ProviderSpec {
2444 type Owned = Self;
2445
2446 #[inline(always)]
2447 fn inline_align(_context: fidl::encoding::Context) -> usize {
2448 8
2449 }
2450
2451 #[inline(always)]
2452 fn inline_size(_context: fidl::encoding::Context) -> usize {
2453 16
2454 }
2455 }
2456
2457 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProviderSpec, D>
2458 for &ProviderSpec
2459 {
2460 unsafe fn encode(
2461 self,
2462 encoder: &mut fidl::encoding::Encoder<'_, D>,
2463 offset: usize,
2464 mut depth: fidl::encoding::Depth,
2465 ) -> fidl::Result<()> {
2466 encoder.debug_check_bounds::<ProviderSpec>(offset);
2467 let max_ordinal: u64 = self.max_ordinal_present();
2469 encoder.write_num(max_ordinal, offset);
2470 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2471 if max_ordinal == 0 {
2473 return Ok(());
2474 }
2475 depth.increment()?;
2476 let envelope_size = 8;
2477 let bytes_len = max_ordinal as usize * envelope_size;
2478 #[allow(unused_variables)]
2479 let offset = encoder.out_of_line_offset(bytes_len);
2480 let mut _prev_end_offset: usize = 0;
2481 if 1 > max_ordinal {
2482 return Ok(());
2483 }
2484
2485 let cur_offset: usize = (1 - 1) * envelope_size;
2488
2489 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2491
2492 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
2497 self.name.as_ref().map(
2498 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
2499 ),
2500 encoder,
2501 offset + cur_offset,
2502 depth,
2503 )?;
2504
2505 _prev_end_offset = cur_offset + envelope_size;
2506 if 2 > max_ordinal {
2507 return Ok(());
2508 }
2509
2510 let cur_offset: usize = (2 - 1) * envelope_size;
2513
2514 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2516
2517 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2522 self.buffer_size_megabytes_hint
2523 .as_ref()
2524 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2525 encoder,
2526 offset + cur_offset,
2527 depth,
2528 )?;
2529
2530 _prev_end_offset = cur_offset + envelope_size;
2531 if 3 > max_ordinal {
2532 return Ok(());
2533 }
2534
2535 let cur_offset: usize = (3 - 1) * envelope_size;
2538
2539 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2541
2542 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>, D>(
2547 self.categories.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000> as fidl::encoding::ValueTypeMarker>::borrow),
2548 encoder, offset + cur_offset, depth
2549 )?;
2550
2551 _prev_end_offset = cur_offset + envelope_size;
2552
2553 Ok(())
2554 }
2555 }
2556
2557 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProviderSpec {
2558 #[inline(always)]
2559 fn new_empty() -> Self {
2560 Self::default()
2561 }
2562
2563 unsafe fn decode(
2564 &mut self,
2565 decoder: &mut fidl::encoding::Decoder<'_, D>,
2566 offset: usize,
2567 mut depth: fidl::encoding::Depth,
2568 ) -> fidl::Result<()> {
2569 decoder.debug_check_bounds::<Self>(offset);
2570 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2571 None => return Err(fidl::Error::NotNullable),
2572 Some(len) => len,
2573 };
2574 if len == 0 {
2576 return Ok(());
2577 };
2578 depth.increment()?;
2579 let envelope_size = 8;
2580 let bytes_len = len * envelope_size;
2581 let offset = decoder.out_of_line_offset(bytes_len)?;
2582 let mut _next_ordinal_to_read = 0;
2584 let mut next_offset = offset;
2585 let end_offset = offset + bytes_len;
2586 _next_ordinal_to_read += 1;
2587 if next_offset >= end_offset {
2588 return Ok(());
2589 }
2590
2591 while _next_ordinal_to_read < 1 {
2593 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2594 _next_ordinal_to_read += 1;
2595 next_offset += envelope_size;
2596 }
2597
2598 let next_out_of_line = decoder.next_out_of_line();
2599 let handles_before = decoder.remaining_handles();
2600 if let Some((inlined, num_bytes, num_handles)) =
2601 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2602 {
2603 let member_inline_size =
2604 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
2605 decoder.context,
2606 );
2607 if inlined != (member_inline_size <= 4) {
2608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2609 }
2610 let inner_offset;
2611 let mut inner_depth = depth.clone();
2612 if inlined {
2613 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2614 inner_offset = next_offset;
2615 } else {
2616 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2617 inner_depth.increment()?;
2618 }
2619 let val_ref = self
2620 .name
2621 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
2622 fidl::decode!(
2623 fidl::encoding::BoundedString<100>,
2624 D,
2625 val_ref,
2626 decoder,
2627 inner_offset,
2628 inner_depth
2629 )?;
2630 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2631 {
2632 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2633 }
2634 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2635 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2636 }
2637 }
2638
2639 next_offset += envelope_size;
2640 _next_ordinal_to_read += 1;
2641 if next_offset >= end_offset {
2642 return Ok(());
2643 }
2644
2645 while _next_ordinal_to_read < 2 {
2647 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2648 _next_ordinal_to_read += 1;
2649 next_offset += envelope_size;
2650 }
2651
2652 let next_out_of_line = decoder.next_out_of_line();
2653 let handles_before = decoder.remaining_handles();
2654 if let Some((inlined, num_bytes, num_handles)) =
2655 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2656 {
2657 let member_inline_size =
2658 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2659 if inlined != (member_inline_size <= 4) {
2660 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2661 }
2662 let inner_offset;
2663 let mut inner_depth = depth.clone();
2664 if inlined {
2665 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2666 inner_offset = next_offset;
2667 } else {
2668 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2669 inner_depth.increment()?;
2670 }
2671 let val_ref =
2672 self.buffer_size_megabytes_hint.get_or_insert_with(|| fidl::new_empty!(u32, D));
2673 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2674 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2675 {
2676 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2677 }
2678 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2679 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2680 }
2681 }
2682
2683 next_offset += envelope_size;
2684 _next_ordinal_to_read += 1;
2685 if next_offset >= end_offset {
2686 return Ok(());
2687 }
2688
2689 while _next_ordinal_to_read < 3 {
2691 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2692 _next_ordinal_to_read += 1;
2693 next_offset += envelope_size;
2694 }
2695
2696 let next_out_of_line = decoder.next_out_of_line();
2697 let handles_before = decoder.remaining_handles();
2698 if let Some((inlined, num_bytes, num_handles)) =
2699 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2700 {
2701 let member_inline_size = <fidl::encoding::Vector<
2702 fidl::encoding::BoundedString<100>,
2703 5000,
2704 > as fidl::encoding::TypeMarker>::inline_size(
2705 decoder.context
2706 );
2707 if inlined != (member_inline_size <= 4) {
2708 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2709 }
2710 let inner_offset;
2711 let mut inner_depth = depth.clone();
2712 if inlined {
2713 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2714 inner_offset = next_offset;
2715 } else {
2716 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2717 inner_depth.increment()?;
2718 }
2719 let val_ref = self.categories.get_or_insert_with(|| {
2720 fidl::new_empty!(
2721 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
2722 D
2723 )
2724 });
2725 fidl::decode!(
2726 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
2727 D,
2728 val_ref,
2729 decoder,
2730 inner_offset,
2731 inner_depth
2732 )?;
2733 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2734 {
2735 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2736 }
2737 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2738 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2739 }
2740 }
2741
2742 next_offset += envelope_size;
2743
2744 while next_offset < end_offset {
2746 _next_ordinal_to_read += 1;
2747 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2748 next_offset += envelope_size;
2749 }
2750
2751 Ok(())
2752 }
2753 }
2754
2755 impl ProviderStats {
2756 #[inline(always)]
2757 fn max_ordinal_present(&self) -> u64 {
2758 if let Some(_) = self.non_durable_bytes_written {
2759 return 7;
2760 }
2761 if let Some(_) = self.percentage_durable_buffer_used {
2762 return 6;
2763 }
2764 if let Some(_) = self.records_dropped {
2765 return 5;
2766 }
2767 if let Some(_) = self.buffer_wrapped_count {
2768 return 4;
2769 }
2770 if let Some(_) = self.buffering_mode {
2771 return 3;
2772 }
2773 if let Some(_) = self.pid {
2774 return 2;
2775 }
2776 if let Some(_) = self.name {
2777 return 1;
2778 }
2779 0
2780 }
2781 }
2782
2783 impl fidl::encoding::ValueTypeMarker for ProviderStats {
2784 type Borrowed<'a> = &'a Self;
2785 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2786 value
2787 }
2788 }
2789
2790 unsafe impl fidl::encoding::TypeMarker for ProviderStats {
2791 type Owned = Self;
2792
2793 #[inline(always)]
2794 fn inline_align(_context: fidl::encoding::Context) -> usize {
2795 8
2796 }
2797
2798 #[inline(always)]
2799 fn inline_size(_context: fidl::encoding::Context) -> usize {
2800 16
2801 }
2802 }
2803
2804 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProviderStats, D>
2805 for &ProviderStats
2806 {
2807 unsafe fn encode(
2808 self,
2809 encoder: &mut fidl::encoding::Encoder<'_, D>,
2810 offset: usize,
2811 mut depth: fidl::encoding::Depth,
2812 ) -> fidl::Result<()> {
2813 encoder.debug_check_bounds::<ProviderStats>(offset);
2814 let max_ordinal: u64 = self.max_ordinal_present();
2816 encoder.write_num(max_ordinal, offset);
2817 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2818 if max_ordinal == 0 {
2820 return Ok(());
2821 }
2822 depth.increment()?;
2823 let envelope_size = 8;
2824 let bytes_len = max_ordinal as usize * envelope_size;
2825 #[allow(unused_variables)]
2826 let offset = encoder.out_of_line_offset(bytes_len);
2827 let mut _prev_end_offset: usize = 0;
2828 if 1 > max_ordinal {
2829 return Ok(());
2830 }
2831
2832 let cur_offset: usize = (1 - 1) * envelope_size;
2835
2836 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2838
2839 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
2844 self.name.as_ref().map(
2845 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
2846 ),
2847 encoder,
2848 offset + cur_offset,
2849 depth,
2850 )?;
2851
2852 _prev_end_offset = cur_offset + envelope_size;
2853 if 2 > max_ordinal {
2854 return Ok(());
2855 }
2856
2857 let cur_offset: usize = (2 - 1) * envelope_size;
2860
2861 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2863
2864 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2869 self.pid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2870 encoder,
2871 offset + cur_offset,
2872 depth,
2873 )?;
2874
2875 _prev_end_offset = cur_offset + envelope_size;
2876 if 3 > max_ordinal {
2877 return Ok(());
2878 }
2879
2880 let cur_offset: usize = (3 - 1) * envelope_size;
2883
2884 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2886
2887 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_tracing__common::BufferingMode, D>(
2892 self.buffering_mode.as_ref().map(<fidl_fuchsia_tracing__common::BufferingMode as fidl::encoding::ValueTypeMarker>::borrow),
2893 encoder, offset + cur_offset, depth
2894 )?;
2895
2896 _prev_end_offset = cur_offset + envelope_size;
2897 if 4 > max_ordinal {
2898 return Ok(());
2899 }
2900
2901 let cur_offset: usize = (4 - 1) * envelope_size;
2904
2905 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2907
2908 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2913 self.buffer_wrapped_count
2914 .as_ref()
2915 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2916 encoder,
2917 offset + cur_offset,
2918 depth,
2919 )?;
2920
2921 _prev_end_offset = cur_offset + envelope_size;
2922 if 5 > max_ordinal {
2923 return Ok(());
2924 }
2925
2926 let cur_offset: usize = (5 - 1) * envelope_size;
2929
2930 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2932
2933 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2938 self.records_dropped.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2939 encoder,
2940 offset + cur_offset,
2941 depth,
2942 )?;
2943
2944 _prev_end_offset = cur_offset + envelope_size;
2945 if 6 > max_ordinal {
2946 return Ok(());
2947 }
2948
2949 let cur_offset: usize = (6 - 1) * envelope_size;
2952
2953 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2955
2956 fidl::encoding::encode_in_envelope_optional::<f32, D>(
2961 self.percentage_durable_buffer_used
2962 .as_ref()
2963 .map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
2964 encoder,
2965 offset + cur_offset,
2966 depth,
2967 )?;
2968
2969 _prev_end_offset = cur_offset + envelope_size;
2970 if 7 > max_ordinal {
2971 return Ok(());
2972 }
2973
2974 let cur_offset: usize = (7 - 1) * envelope_size;
2977
2978 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2980
2981 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2986 self.non_durable_bytes_written
2987 .as_ref()
2988 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2989 encoder,
2990 offset + cur_offset,
2991 depth,
2992 )?;
2993
2994 _prev_end_offset = cur_offset + envelope_size;
2995
2996 Ok(())
2997 }
2998 }
2999
3000 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProviderStats {
3001 #[inline(always)]
3002 fn new_empty() -> Self {
3003 Self::default()
3004 }
3005
3006 unsafe fn decode(
3007 &mut self,
3008 decoder: &mut fidl::encoding::Decoder<'_, D>,
3009 offset: usize,
3010 mut depth: fidl::encoding::Depth,
3011 ) -> fidl::Result<()> {
3012 decoder.debug_check_bounds::<Self>(offset);
3013 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3014 None => return Err(fidl::Error::NotNullable),
3015 Some(len) => len,
3016 };
3017 if len == 0 {
3019 return Ok(());
3020 };
3021 depth.increment()?;
3022 let envelope_size = 8;
3023 let bytes_len = len * envelope_size;
3024 let offset = decoder.out_of_line_offset(bytes_len)?;
3025 let mut _next_ordinal_to_read = 0;
3027 let mut next_offset = offset;
3028 let end_offset = offset + bytes_len;
3029 _next_ordinal_to_read += 1;
3030 if next_offset >= end_offset {
3031 return Ok(());
3032 }
3033
3034 while _next_ordinal_to_read < 1 {
3036 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3037 _next_ordinal_to_read += 1;
3038 next_offset += envelope_size;
3039 }
3040
3041 let next_out_of_line = decoder.next_out_of_line();
3042 let handles_before = decoder.remaining_handles();
3043 if let Some((inlined, num_bytes, num_handles)) =
3044 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3045 {
3046 let member_inline_size =
3047 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
3048 decoder.context,
3049 );
3050 if inlined != (member_inline_size <= 4) {
3051 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3052 }
3053 let inner_offset;
3054 let mut inner_depth = depth.clone();
3055 if inlined {
3056 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3057 inner_offset = next_offset;
3058 } else {
3059 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3060 inner_depth.increment()?;
3061 }
3062 let val_ref = self
3063 .name
3064 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
3065 fidl::decode!(
3066 fidl::encoding::BoundedString<100>,
3067 D,
3068 val_ref,
3069 decoder,
3070 inner_offset,
3071 inner_depth
3072 )?;
3073 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3074 {
3075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3076 }
3077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3079 }
3080 }
3081
3082 next_offset += envelope_size;
3083 _next_ordinal_to_read += 1;
3084 if next_offset >= end_offset {
3085 return Ok(());
3086 }
3087
3088 while _next_ordinal_to_read < 2 {
3090 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3091 _next_ordinal_to_read += 1;
3092 next_offset += envelope_size;
3093 }
3094
3095 let next_out_of_line = decoder.next_out_of_line();
3096 let handles_before = decoder.remaining_handles();
3097 if let Some((inlined, num_bytes, num_handles)) =
3098 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3099 {
3100 let member_inline_size =
3101 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3102 if inlined != (member_inline_size <= 4) {
3103 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3104 }
3105 let inner_offset;
3106 let mut inner_depth = depth.clone();
3107 if inlined {
3108 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3109 inner_offset = next_offset;
3110 } else {
3111 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3112 inner_depth.increment()?;
3113 }
3114 let val_ref = self.pid.get_or_insert_with(|| fidl::new_empty!(u64, D));
3115 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3116 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3117 {
3118 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3119 }
3120 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3121 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3122 }
3123 }
3124
3125 next_offset += envelope_size;
3126 _next_ordinal_to_read += 1;
3127 if next_offset >= end_offset {
3128 return Ok(());
3129 }
3130
3131 while _next_ordinal_to_read < 3 {
3133 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3134 _next_ordinal_to_read += 1;
3135 next_offset += envelope_size;
3136 }
3137
3138 let next_out_of_line = decoder.next_out_of_line();
3139 let handles_before = decoder.remaining_handles();
3140 if let Some((inlined, num_bytes, num_handles)) =
3141 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3142 {
3143 let member_inline_size = <fidl_fuchsia_tracing__common::BufferingMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3144 if inlined != (member_inline_size <= 4) {
3145 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3146 }
3147 let inner_offset;
3148 let mut inner_depth = depth.clone();
3149 if inlined {
3150 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3151 inner_offset = next_offset;
3152 } else {
3153 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3154 inner_depth.increment()?;
3155 }
3156 let val_ref = self.buffering_mode.get_or_insert_with(|| {
3157 fidl::new_empty!(fidl_fuchsia_tracing__common::BufferingMode, D)
3158 });
3159 fidl::decode!(
3160 fidl_fuchsia_tracing__common::BufferingMode,
3161 D,
3162 val_ref,
3163 decoder,
3164 inner_offset,
3165 inner_depth
3166 )?;
3167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3168 {
3169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3170 }
3171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3173 }
3174 }
3175
3176 next_offset += envelope_size;
3177 _next_ordinal_to_read += 1;
3178 if next_offset >= end_offset {
3179 return Ok(());
3180 }
3181
3182 while _next_ordinal_to_read < 4 {
3184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3185 _next_ordinal_to_read += 1;
3186 next_offset += envelope_size;
3187 }
3188
3189 let next_out_of_line = decoder.next_out_of_line();
3190 let handles_before = decoder.remaining_handles();
3191 if let Some((inlined, num_bytes, num_handles)) =
3192 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3193 {
3194 let member_inline_size =
3195 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3196 if inlined != (member_inline_size <= 4) {
3197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3198 }
3199 let inner_offset;
3200 let mut inner_depth = depth.clone();
3201 if inlined {
3202 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3203 inner_offset = next_offset;
3204 } else {
3205 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3206 inner_depth.increment()?;
3207 }
3208 let val_ref =
3209 self.buffer_wrapped_count.get_or_insert_with(|| fidl::new_empty!(u32, D));
3210 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3211 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3212 {
3213 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3214 }
3215 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3216 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3217 }
3218 }
3219
3220 next_offset += envelope_size;
3221 _next_ordinal_to_read += 1;
3222 if next_offset >= end_offset {
3223 return Ok(());
3224 }
3225
3226 while _next_ordinal_to_read < 5 {
3228 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3229 _next_ordinal_to_read += 1;
3230 next_offset += envelope_size;
3231 }
3232
3233 let next_out_of_line = decoder.next_out_of_line();
3234 let handles_before = decoder.remaining_handles();
3235 if let Some((inlined, num_bytes, num_handles)) =
3236 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3237 {
3238 let member_inline_size =
3239 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3240 if inlined != (member_inline_size <= 4) {
3241 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3242 }
3243 let inner_offset;
3244 let mut inner_depth = depth.clone();
3245 if inlined {
3246 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3247 inner_offset = next_offset;
3248 } else {
3249 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3250 inner_depth.increment()?;
3251 }
3252 let val_ref = self.records_dropped.get_or_insert_with(|| fidl::new_empty!(u64, D));
3253 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3254 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3255 {
3256 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3257 }
3258 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3259 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3260 }
3261 }
3262
3263 next_offset += envelope_size;
3264 _next_ordinal_to_read += 1;
3265 if next_offset >= end_offset {
3266 return Ok(());
3267 }
3268
3269 while _next_ordinal_to_read < 6 {
3271 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3272 _next_ordinal_to_read += 1;
3273 next_offset += envelope_size;
3274 }
3275
3276 let next_out_of_line = decoder.next_out_of_line();
3277 let handles_before = decoder.remaining_handles();
3278 if let Some((inlined, num_bytes, num_handles)) =
3279 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3280 {
3281 let member_inline_size =
3282 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3283 if inlined != (member_inline_size <= 4) {
3284 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3285 }
3286 let inner_offset;
3287 let mut inner_depth = depth.clone();
3288 if inlined {
3289 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3290 inner_offset = next_offset;
3291 } else {
3292 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3293 inner_depth.increment()?;
3294 }
3295 let val_ref = self
3296 .percentage_durable_buffer_used
3297 .get_or_insert_with(|| fidl::new_empty!(f32, D));
3298 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
3299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3300 {
3301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3302 }
3303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3305 }
3306 }
3307
3308 next_offset += envelope_size;
3309 _next_ordinal_to_read += 1;
3310 if next_offset >= end_offset {
3311 return Ok(());
3312 }
3313
3314 while _next_ordinal_to_read < 7 {
3316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3317 _next_ordinal_to_read += 1;
3318 next_offset += envelope_size;
3319 }
3320
3321 let next_out_of_line = decoder.next_out_of_line();
3322 let handles_before = decoder.remaining_handles();
3323 if let Some((inlined, num_bytes, num_handles)) =
3324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3325 {
3326 let member_inline_size =
3327 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3328 if inlined != (member_inline_size <= 4) {
3329 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3330 }
3331 let inner_offset;
3332 let mut inner_depth = depth.clone();
3333 if inlined {
3334 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3335 inner_offset = next_offset;
3336 } else {
3337 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3338 inner_depth.increment()?;
3339 }
3340 let val_ref =
3341 self.non_durable_bytes_written.get_or_insert_with(|| fidl::new_empty!(u64, D));
3342 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3343 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3344 {
3345 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3346 }
3347 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3348 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3349 }
3350 }
3351
3352 next_offset += envelope_size;
3353
3354 while next_offset < end_offset {
3356 _next_ordinal_to_read += 1;
3357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3358 next_offset += envelope_size;
3359 }
3360
3361 Ok(())
3362 }
3363 }
3364
3365 impl StartOptions {
3366 #[inline(always)]
3367 fn max_ordinal_present(&self) -> u64 {
3368 if let Some(_) = self.additional_categories {
3369 return 2;
3370 }
3371 if let Some(_) = self.buffer_disposition {
3372 return 1;
3373 }
3374 0
3375 }
3376 }
3377
3378 impl fidl::encoding::ValueTypeMarker for StartOptions {
3379 type Borrowed<'a> = &'a Self;
3380 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3381 value
3382 }
3383 }
3384
3385 unsafe impl fidl::encoding::TypeMarker for StartOptions {
3386 type Owned = Self;
3387
3388 #[inline(always)]
3389 fn inline_align(_context: fidl::encoding::Context) -> usize {
3390 8
3391 }
3392
3393 #[inline(always)]
3394 fn inline_size(_context: fidl::encoding::Context) -> usize {
3395 16
3396 }
3397 }
3398
3399 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StartOptions, D>
3400 for &StartOptions
3401 {
3402 unsafe fn encode(
3403 self,
3404 encoder: &mut fidl::encoding::Encoder<'_, D>,
3405 offset: usize,
3406 mut depth: fidl::encoding::Depth,
3407 ) -> fidl::Result<()> {
3408 encoder.debug_check_bounds::<StartOptions>(offset);
3409 let max_ordinal: u64 = self.max_ordinal_present();
3411 encoder.write_num(max_ordinal, offset);
3412 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3413 if max_ordinal == 0 {
3415 return Ok(());
3416 }
3417 depth.increment()?;
3418 let envelope_size = 8;
3419 let bytes_len = max_ordinal as usize * envelope_size;
3420 #[allow(unused_variables)]
3421 let offset = encoder.out_of_line_offset(bytes_len);
3422 let mut _prev_end_offset: usize = 0;
3423 if 1 > max_ordinal {
3424 return Ok(());
3425 }
3426
3427 let cur_offset: usize = (1 - 1) * envelope_size;
3430
3431 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3433
3434 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_tracing__common::BufferDisposition, D>(
3439 self.buffer_disposition.as_ref().map(<fidl_fuchsia_tracing__common::BufferDisposition as fidl::encoding::ValueTypeMarker>::borrow),
3440 encoder, offset + cur_offset, depth
3441 )?;
3442
3443 _prev_end_offset = cur_offset + envelope_size;
3444 if 2 > max_ordinal {
3445 return Ok(());
3446 }
3447
3448 let cur_offset: usize = (2 - 1) * envelope_size;
3451
3452 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3454
3455 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>, D>(
3460 self.additional_categories.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000> as fidl::encoding::ValueTypeMarker>::borrow),
3461 encoder, offset + cur_offset, depth
3462 )?;
3463
3464 _prev_end_offset = cur_offset + envelope_size;
3465
3466 Ok(())
3467 }
3468 }
3469
3470 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartOptions {
3471 #[inline(always)]
3472 fn new_empty() -> Self {
3473 Self::default()
3474 }
3475
3476 unsafe fn decode(
3477 &mut self,
3478 decoder: &mut fidl::encoding::Decoder<'_, D>,
3479 offset: usize,
3480 mut depth: fidl::encoding::Depth,
3481 ) -> fidl::Result<()> {
3482 decoder.debug_check_bounds::<Self>(offset);
3483 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3484 None => return Err(fidl::Error::NotNullable),
3485 Some(len) => len,
3486 };
3487 if len == 0 {
3489 return Ok(());
3490 };
3491 depth.increment()?;
3492 let envelope_size = 8;
3493 let bytes_len = len * envelope_size;
3494 let offset = decoder.out_of_line_offset(bytes_len)?;
3495 let mut _next_ordinal_to_read = 0;
3497 let mut next_offset = offset;
3498 let end_offset = offset + bytes_len;
3499 _next_ordinal_to_read += 1;
3500 if next_offset >= end_offset {
3501 return Ok(());
3502 }
3503
3504 while _next_ordinal_to_read < 1 {
3506 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3507 _next_ordinal_to_read += 1;
3508 next_offset += envelope_size;
3509 }
3510
3511 let next_out_of_line = decoder.next_out_of_line();
3512 let handles_before = decoder.remaining_handles();
3513 if let Some((inlined, num_bytes, num_handles)) =
3514 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3515 {
3516 let member_inline_size = <fidl_fuchsia_tracing__common::BufferDisposition as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3517 if inlined != (member_inline_size <= 4) {
3518 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3519 }
3520 let inner_offset;
3521 let mut inner_depth = depth.clone();
3522 if inlined {
3523 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3524 inner_offset = next_offset;
3525 } else {
3526 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3527 inner_depth.increment()?;
3528 }
3529 let val_ref = self.buffer_disposition.get_or_insert_with(|| {
3530 fidl::new_empty!(fidl_fuchsia_tracing__common::BufferDisposition, D)
3531 });
3532 fidl::decode!(
3533 fidl_fuchsia_tracing__common::BufferDisposition,
3534 D,
3535 val_ref,
3536 decoder,
3537 inner_offset,
3538 inner_depth
3539 )?;
3540 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3541 {
3542 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3543 }
3544 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3545 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3546 }
3547 }
3548
3549 next_offset += envelope_size;
3550 _next_ordinal_to_read += 1;
3551 if next_offset >= end_offset {
3552 return Ok(());
3553 }
3554
3555 while _next_ordinal_to_read < 2 {
3557 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3558 _next_ordinal_to_read += 1;
3559 next_offset += envelope_size;
3560 }
3561
3562 let next_out_of_line = decoder.next_out_of_line();
3563 let handles_before = decoder.remaining_handles();
3564 if let Some((inlined, num_bytes, num_handles)) =
3565 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3566 {
3567 let member_inline_size = <fidl::encoding::Vector<
3568 fidl::encoding::BoundedString<100>,
3569 5000,
3570 > as fidl::encoding::TypeMarker>::inline_size(
3571 decoder.context
3572 );
3573 if inlined != (member_inline_size <= 4) {
3574 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3575 }
3576 let inner_offset;
3577 let mut inner_depth = depth.clone();
3578 if inlined {
3579 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3580 inner_offset = next_offset;
3581 } else {
3582 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3583 inner_depth.increment()?;
3584 }
3585 let val_ref = self.additional_categories.get_or_insert_with(|| {
3586 fidl::new_empty!(
3587 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
3588 D
3589 )
3590 });
3591 fidl::decode!(
3592 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
3593 D,
3594 val_ref,
3595 decoder,
3596 inner_offset,
3597 inner_depth
3598 )?;
3599 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3600 {
3601 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3602 }
3603 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3604 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3605 }
3606 }
3607
3608 next_offset += envelope_size;
3609
3610 while next_offset < end_offset {
3612 _next_ordinal_to_read += 1;
3613 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3614 next_offset += envelope_size;
3615 }
3616
3617 Ok(())
3618 }
3619 }
3620
3621 impl StopOptions {
3622 #[inline(always)]
3623 fn max_ordinal_present(&self) -> u64 {
3624 if let Some(_) = self.write_results {
3625 return 1;
3626 }
3627 0
3628 }
3629 }
3630
3631 impl fidl::encoding::ValueTypeMarker for StopOptions {
3632 type Borrowed<'a> = &'a Self;
3633 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3634 value
3635 }
3636 }
3637
3638 unsafe impl fidl::encoding::TypeMarker for StopOptions {
3639 type Owned = Self;
3640
3641 #[inline(always)]
3642 fn inline_align(_context: fidl::encoding::Context) -> usize {
3643 8
3644 }
3645
3646 #[inline(always)]
3647 fn inline_size(_context: fidl::encoding::Context) -> usize {
3648 16
3649 }
3650 }
3651
3652 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StopOptions, D>
3653 for &StopOptions
3654 {
3655 unsafe fn encode(
3656 self,
3657 encoder: &mut fidl::encoding::Encoder<'_, D>,
3658 offset: usize,
3659 mut depth: fidl::encoding::Depth,
3660 ) -> fidl::Result<()> {
3661 encoder.debug_check_bounds::<StopOptions>(offset);
3662 let max_ordinal: u64 = self.max_ordinal_present();
3664 encoder.write_num(max_ordinal, offset);
3665 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3666 if max_ordinal == 0 {
3668 return Ok(());
3669 }
3670 depth.increment()?;
3671 let envelope_size = 8;
3672 let bytes_len = max_ordinal as usize * envelope_size;
3673 #[allow(unused_variables)]
3674 let offset = encoder.out_of_line_offset(bytes_len);
3675 let mut _prev_end_offset: usize = 0;
3676 if 1 > max_ordinal {
3677 return Ok(());
3678 }
3679
3680 let cur_offset: usize = (1 - 1) * envelope_size;
3683
3684 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3686
3687 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3692 self.write_results.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3693 encoder,
3694 offset + cur_offset,
3695 depth,
3696 )?;
3697
3698 _prev_end_offset = cur_offset + envelope_size;
3699
3700 Ok(())
3701 }
3702 }
3703
3704 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopOptions {
3705 #[inline(always)]
3706 fn new_empty() -> Self {
3707 Self::default()
3708 }
3709
3710 unsafe fn decode(
3711 &mut self,
3712 decoder: &mut fidl::encoding::Decoder<'_, D>,
3713 offset: usize,
3714 mut depth: fidl::encoding::Depth,
3715 ) -> fidl::Result<()> {
3716 decoder.debug_check_bounds::<Self>(offset);
3717 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3718 None => return Err(fidl::Error::NotNullable),
3719 Some(len) => len,
3720 };
3721 if len == 0 {
3723 return Ok(());
3724 };
3725 depth.increment()?;
3726 let envelope_size = 8;
3727 let bytes_len = len * envelope_size;
3728 let offset = decoder.out_of_line_offset(bytes_len)?;
3729 let mut _next_ordinal_to_read = 0;
3731 let mut next_offset = offset;
3732 let end_offset = offset + bytes_len;
3733 _next_ordinal_to_read += 1;
3734 if next_offset >= end_offset {
3735 return Ok(());
3736 }
3737
3738 while _next_ordinal_to_read < 1 {
3740 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3741 _next_ordinal_to_read += 1;
3742 next_offset += envelope_size;
3743 }
3744
3745 let next_out_of_line = decoder.next_out_of_line();
3746 let handles_before = decoder.remaining_handles();
3747 if let Some((inlined, num_bytes, num_handles)) =
3748 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3749 {
3750 let member_inline_size =
3751 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3752 if inlined != (member_inline_size <= 4) {
3753 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3754 }
3755 let inner_offset;
3756 let mut inner_depth = depth.clone();
3757 if inlined {
3758 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3759 inner_offset = next_offset;
3760 } else {
3761 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3762 inner_depth.increment()?;
3763 }
3764 let val_ref = self.write_results.get_or_insert_with(|| fidl::new_empty!(bool, D));
3765 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3766 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3767 {
3768 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3769 }
3770 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3771 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3772 }
3773 }
3774
3775 next_offset += envelope_size;
3776
3777 while next_offset < end_offset {
3779 _next_ordinal_to_read += 1;
3780 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3781 next_offset += envelope_size;
3782 }
3783
3784 Ok(())
3785 }
3786 }
3787
3788 impl StopResult {
3789 #[inline(always)]
3790 fn max_ordinal_present(&self) -> u64 {
3791 if let Some(_) = self.provider_stats {
3792 return 1;
3793 }
3794 0
3795 }
3796 }
3797
3798 impl fidl::encoding::ValueTypeMarker for StopResult {
3799 type Borrowed<'a> = &'a Self;
3800 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3801 value
3802 }
3803 }
3804
3805 unsafe impl fidl::encoding::TypeMarker for StopResult {
3806 type Owned = Self;
3807
3808 #[inline(always)]
3809 fn inline_align(_context: fidl::encoding::Context) -> usize {
3810 8
3811 }
3812
3813 #[inline(always)]
3814 fn inline_size(_context: fidl::encoding::Context) -> usize {
3815 16
3816 }
3817 }
3818
3819 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StopResult, D>
3820 for &StopResult
3821 {
3822 unsafe fn encode(
3823 self,
3824 encoder: &mut fidl::encoding::Encoder<'_, D>,
3825 offset: usize,
3826 mut depth: fidl::encoding::Depth,
3827 ) -> fidl::Result<()> {
3828 encoder.debug_check_bounds::<StopResult>(offset);
3829 let max_ordinal: u64 = self.max_ordinal_present();
3831 encoder.write_num(max_ordinal, offset);
3832 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3833 if max_ordinal == 0 {
3835 return Ok(());
3836 }
3837 depth.increment()?;
3838 let envelope_size = 8;
3839 let bytes_len = max_ordinal as usize * envelope_size;
3840 #[allow(unused_variables)]
3841 let offset = encoder.out_of_line_offset(bytes_len);
3842 let mut _prev_end_offset: usize = 0;
3843 if 1 > max_ordinal {
3844 return Ok(());
3845 }
3846
3847 let cur_offset: usize = (1 - 1) * envelope_size;
3850
3851 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3853
3854 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ProviderStats, 100>, D>(
3859 self.provider_stats.as_ref().map(<fidl::encoding::Vector<ProviderStats, 100> as fidl::encoding::ValueTypeMarker>::borrow),
3860 encoder, offset + cur_offset, depth
3861 )?;
3862
3863 _prev_end_offset = cur_offset + envelope_size;
3864
3865 Ok(())
3866 }
3867 }
3868
3869 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopResult {
3870 #[inline(always)]
3871 fn new_empty() -> Self {
3872 Self::default()
3873 }
3874
3875 unsafe fn decode(
3876 &mut self,
3877 decoder: &mut fidl::encoding::Decoder<'_, D>,
3878 offset: usize,
3879 mut depth: fidl::encoding::Depth,
3880 ) -> fidl::Result<()> {
3881 decoder.debug_check_bounds::<Self>(offset);
3882 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3883 None => return Err(fidl::Error::NotNullable),
3884 Some(len) => len,
3885 };
3886 if len == 0 {
3888 return Ok(());
3889 };
3890 depth.increment()?;
3891 let envelope_size = 8;
3892 let bytes_len = len * envelope_size;
3893 let offset = decoder.out_of_line_offset(bytes_len)?;
3894 let mut _next_ordinal_to_read = 0;
3896 let mut next_offset = offset;
3897 let end_offset = offset + bytes_len;
3898 _next_ordinal_to_read += 1;
3899 if next_offset >= end_offset {
3900 return Ok(());
3901 }
3902
3903 while _next_ordinal_to_read < 1 {
3905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3906 _next_ordinal_to_read += 1;
3907 next_offset += envelope_size;
3908 }
3909
3910 let next_out_of_line = decoder.next_out_of_line();
3911 let handles_before = decoder.remaining_handles();
3912 if let Some((inlined, num_bytes, num_handles)) =
3913 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3914 {
3915 let member_inline_size = <fidl::encoding::Vector<ProviderStats, 100> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3916 if inlined != (member_inline_size <= 4) {
3917 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3918 }
3919 let inner_offset;
3920 let mut inner_depth = depth.clone();
3921 if inlined {
3922 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3923 inner_offset = next_offset;
3924 } else {
3925 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3926 inner_depth.increment()?;
3927 }
3928 let val_ref = self.provider_stats.get_or_insert_with(
3929 || fidl::new_empty!(fidl::encoding::Vector<ProviderStats, 100>, D),
3930 );
3931 fidl::decode!(fidl::encoding::Vector<ProviderStats, 100>, D, val_ref, decoder, inner_offset, inner_depth)?;
3932 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3933 {
3934 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3935 }
3936 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3937 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3938 }
3939 }
3940
3941 next_offset += envelope_size;
3942
3943 while next_offset < end_offset {
3945 _next_ordinal_to_read += 1;
3946 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3947 next_offset += envelope_size;
3948 }
3949
3950 Ok(())
3951 }
3952 }
3953
3954 impl TraceConfig {
3955 #[inline(always)]
3956 fn max_ordinal_present(&self) -> u64 {
3957 if let Some(_) = self.defer_transfer {
3958 return 7;
3959 }
3960 if let Some(_) = self.version {
3961 return 6;
3962 }
3963 if let Some(_) = self.provider_specs {
3964 return 5;
3965 }
3966 if let Some(_) = self.buffering_mode {
3967 return 4;
3968 }
3969 if let Some(_) = self.start_timeout_milliseconds {
3970 return 3;
3971 }
3972 if let Some(_) = self.buffer_size_megabytes_hint {
3973 return 2;
3974 }
3975 if let Some(_) = self.categories {
3976 return 1;
3977 }
3978 0
3979 }
3980 }
3981
3982 impl fidl::encoding::ValueTypeMarker for TraceConfig {
3983 type Borrowed<'a> = &'a Self;
3984 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3985 value
3986 }
3987 }
3988
3989 unsafe impl fidl::encoding::TypeMarker for TraceConfig {
3990 type Owned = Self;
3991
3992 #[inline(always)]
3993 fn inline_align(_context: fidl::encoding::Context) -> usize {
3994 8
3995 }
3996
3997 #[inline(always)]
3998 fn inline_size(_context: fidl::encoding::Context) -> usize {
3999 16
4000 }
4001 }
4002
4003 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TraceConfig, D>
4004 for &TraceConfig
4005 {
4006 unsafe fn encode(
4007 self,
4008 encoder: &mut fidl::encoding::Encoder<'_, D>,
4009 offset: usize,
4010 mut depth: fidl::encoding::Depth,
4011 ) -> fidl::Result<()> {
4012 encoder.debug_check_bounds::<TraceConfig>(offset);
4013 let max_ordinal: u64 = self.max_ordinal_present();
4015 encoder.write_num(max_ordinal, offset);
4016 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4017 if max_ordinal == 0 {
4019 return Ok(());
4020 }
4021 depth.increment()?;
4022 let envelope_size = 8;
4023 let bytes_len = max_ordinal as usize * envelope_size;
4024 #[allow(unused_variables)]
4025 let offset = encoder.out_of_line_offset(bytes_len);
4026 let mut _prev_end_offset: usize = 0;
4027 if 1 > max_ordinal {
4028 return Ok(());
4029 }
4030
4031 let cur_offset: usize = (1 - 1) * envelope_size;
4034
4035 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4037
4038 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>, D>(
4043 self.categories.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000> as fidl::encoding::ValueTypeMarker>::borrow),
4044 encoder, offset + cur_offset, depth
4045 )?;
4046
4047 _prev_end_offset = cur_offset + envelope_size;
4048 if 2 > max_ordinal {
4049 return Ok(());
4050 }
4051
4052 let cur_offset: usize = (2 - 1) * envelope_size;
4055
4056 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4058
4059 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4064 self.buffer_size_megabytes_hint
4065 .as_ref()
4066 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4067 encoder,
4068 offset + cur_offset,
4069 depth,
4070 )?;
4071
4072 _prev_end_offset = cur_offset + envelope_size;
4073 if 3 > max_ordinal {
4074 return Ok(());
4075 }
4076
4077 let cur_offset: usize = (3 - 1) * envelope_size;
4080
4081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4083
4084 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4089 self.start_timeout_milliseconds
4090 .as_ref()
4091 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4092 encoder,
4093 offset + cur_offset,
4094 depth,
4095 )?;
4096
4097 _prev_end_offset = cur_offset + envelope_size;
4098 if 4 > max_ordinal {
4099 return Ok(());
4100 }
4101
4102 let cur_offset: usize = (4 - 1) * envelope_size;
4105
4106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4108
4109 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_tracing__common::BufferingMode, D>(
4114 self.buffering_mode.as_ref().map(<fidl_fuchsia_tracing__common::BufferingMode as fidl::encoding::ValueTypeMarker>::borrow),
4115 encoder, offset + cur_offset, depth
4116 )?;
4117
4118 _prev_end_offset = cur_offset + envelope_size;
4119 if 5 > max_ordinal {
4120 return Ok(());
4121 }
4122
4123 let cur_offset: usize = (5 - 1) * envelope_size;
4126
4127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4129
4130 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ProviderSpec, 100>, D>(
4135 self.provider_specs.as_ref().map(<fidl::encoding::Vector<ProviderSpec, 100> as fidl::encoding::ValueTypeMarker>::borrow),
4136 encoder, offset + cur_offset, depth
4137 )?;
4138
4139 _prev_end_offset = cur_offset + envelope_size;
4140 if 6 > max_ordinal {
4141 return Ok(());
4142 }
4143
4144 let cur_offset: usize = (6 - 1) * envelope_size;
4147
4148 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4150
4151 fidl::encoding::encode_in_envelope_optional::<FxtVersion, D>(
4156 self.version.as_ref().map(<FxtVersion as fidl::encoding::ValueTypeMarker>::borrow),
4157 encoder,
4158 offset + cur_offset,
4159 depth,
4160 )?;
4161
4162 _prev_end_offset = cur_offset + envelope_size;
4163 if 7 > max_ordinal {
4164 return Ok(());
4165 }
4166
4167 let cur_offset: usize = (7 - 1) * envelope_size;
4170
4171 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4173
4174 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4179 self.defer_transfer.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4180 encoder,
4181 offset + cur_offset,
4182 depth,
4183 )?;
4184
4185 _prev_end_offset = cur_offset + envelope_size;
4186
4187 Ok(())
4188 }
4189 }
4190
4191 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TraceConfig {
4192 #[inline(always)]
4193 fn new_empty() -> Self {
4194 Self::default()
4195 }
4196
4197 unsafe fn decode(
4198 &mut self,
4199 decoder: &mut fidl::encoding::Decoder<'_, D>,
4200 offset: usize,
4201 mut depth: fidl::encoding::Depth,
4202 ) -> fidl::Result<()> {
4203 decoder.debug_check_bounds::<Self>(offset);
4204 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4205 None => return Err(fidl::Error::NotNullable),
4206 Some(len) => len,
4207 };
4208 if len == 0 {
4210 return Ok(());
4211 };
4212 depth.increment()?;
4213 let envelope_size = 8;
4214 let bytes_len = len * envelope_size;
4215 let offset = decoder.out_of_line_offset(bytes_len)?;
4216 let mut _next_ordinal_to_read = 0;
4218 let mut next_offset = offset;
4219 let end_offset = offset + bytes_len;
4220 _next_ordinal_to_read += 1;
4221 if next_offset >= end_offset {
4222 return Ok(());
4223 }
4224
4225 while _next_ordinal_to_read < 1 {
4227 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4228 _next_ordinal_to_read += 1;
4229 next_offset += envelope_size;
4230 }
4231
4232 let next_out_of_line = decoder.next_out_of_line();
4233 let handles_before = decoder.remaining_handles();
4234 if let Some((inlined, num_bytes, num_handles)) =
4235 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4236 {
4237 let member_inline_size = <fidl::encoding::Vector<
4238 fidl::encoding::BoundedString<100>,
4239 5000,
4240 > as fidl::encoding::TypeMarker>::inline_size(
4241 decoder.context
4242 );
4243 if inlined != (member_inline_size <= 4) {
4244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4245 }
4246 let inner_offset;
4247 let mut inner_depth = depth.clone();
4248 if inlined {
4249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4250 inner_offset = next_offset;
4251 } else {
4252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4253 inner_depth.increment()?;
4254 }
4255 let val_ref = self.categories.get_or_insert_with(|| {
4256 fidl::new_empty!(
4257 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
4258 D
4259 )
4260 });
4261 fidl::decode!(
4262 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
4263 D,
4264 val_ref,
4265 decoder,
4266 inner_offset,
4267 inner_depth
4268 )?;
4269 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4270 {
4271 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4272 }
4273 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4274 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4275 }
4276 }
4277
4278 next_offset += envelope_size;
4279 _next_ordinal_to_read += 1;
4280 if next_offset >= end_offset {
4281 return Ok(());
4282 }
4283
4284 while _next_ordinal_to_read < 2 {
4286 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4287 _next_ordinal_to_read += 1;
4288 next_offset += envelope_size;
4289 }
4290
4291 let next_out_of_line = decoder.next_out_of_line();
4292 let handles_before = decoder.remaining_handles();
4293 if let Some((inlined, num_bytes, num_handles)) =
4294 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4295 {
4296 let member_inline_size =
4297 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4298 if inlined != (member_inline_size <= 4) {
4299 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4300 }
4301 let inner_offset;
4302 let mut inner_depth = depth.clone();
4303 if inlined {
4304 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4305 inner_offset = next_offset;
4306 } else {
4307 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4308 inner_depth.increment()?;
4309 }
4310 let val_ref =
4311 self.buffer_size_megabytes_hint.get_or_insert_with(|| fidl::new_empty!(u32, D));
4312 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4313 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4314 {
4315 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4316 }
4317 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4318 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4319 }
4320 }
4321
4322 next_offset += envelope_size;
4323 _next_ordinal_to_read += 1;
4324 if next_offset >= end_offset {
4325 return Ok(());
4326 }
4327
4328 while _next_ordinal_to_read < 3 {
4330 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4331 _next_ordinal_to_read += 1;
4332 next_offset += envelope_size;
4333 }
4334
4335 let next_out_of_line = decoder.next_out_of_line();
4336 let handles_before = decoder.remaining_handles();
4337 if let Some((inlined, num_bytes, num_handles)) =
4338 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4339 {
4340 let member_inline_size =
4341 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4342 if inlined != (member_inline_size <= 4) {
4343 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4344 }
4345 let inner_offset;
4346 let mut inner_depth = depth.clone();
4347 if inlined {
4348 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4349 inner_offset = next_offset;
4350 } else {
4351 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4352 inner_depth.increment()?;
4353 }
4354 let val_ref =
4355 self.start_timeout_milliseconds.get_or_insert_with(|| fidl::new_empty!(u64, D));
4356 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4357 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4358 {
4359 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4360 }
4361 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4362 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4363 }
4364 }
4365
4366 next_offset += envelope_size;
4367 _next_ordinal_to_read += 1;
4368 if next_offset >= end_offset {
4369 return Ok(());
4370 }
4371
4372 while _next_ordinal_to_read < 4 {
4374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4375 _next_ordinal_to_read += 1;
4376 next_offset += envelope_size;
4377 }
4378
4379 let next_out_of_line = decoder.next_out_of_line();
4380 let handles_before = decoder.remaining_handles();
4381 if let Some((inlined, num_bytes, num_handles)) =
4382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4383 {
4384 let member_inline_size = <fidl_fuchsia_tracing__common::BufferingMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4385 if inlined != (member_inline_size <= 4) {
4386 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4387 }
4388 let inner_offset;
4389 let mut inner_depth = depth.clone();
4390 if inlined {
4391 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4392 inner_offset = next_offset;
4393 } else {
4394 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4395 inner_depth.increment()?;
4396 }
4397 let val_ref = self.buffering_mode.get_or_insert_with(|| {
4398 fidl::new_empty!(fidl_fuchsia_tracing__common::BufferingMode, D)
4399 });
4400 fidl::decode!(
4401 fidl_fuchsia_tracing__common::BufferingMode,
4402 D,
4403 val_ref,
4404 decoder,
4405 inner_offset,
4406 inner_depth
4407 )?;
4408 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4409 {
4410 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4411 }
4412 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4413 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4414 }
4415 }
4416
4417 next_offset += envelope_size;
4418 _next_ordinal_to_read += 1;
4419 if next_offset >= end_offset {
4420 return Ok(());
4421 }
4422
4423 while _next_ordinal_to_read < 5 {
4425 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4426 _next_ordinal_to_read += 1;
4427 next_offset += envelope_size;
4428 }
4429
4430 let next_out_of_line = decoder.next_out_of_line();
4431 let handles_before = decoder.remaining_handles();
4432 if let Some((inlined, num_bytes, num_handles)) =
4433 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4434 {
4435 let member_inline_size = <fidl::encoding::Vector<ProviderSpec, 100> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4436 if inlined != (member_inline_size <= 4) {
4437 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4438 }
4439 let inner_offset;
4440 let mut inner_depth = depth.clone();
4441 if inlined {
4442 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4443 inner_offset = next_offset;
4444 } else {
4445 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4446 inner_depth.increment()?;
4447 }
4448 let val_ref = self.provider_specs.get_or_insert_with(
4449 || fidl::new_empty!(fidl::encoding::Vector<ProviderSpec, 100>, D),
4450 );
4451 fidl::decode!(fidl::encoding::Vector<ProviderSpec, 100>, D, val_ref, decoder, inner_offset, inner_depth)?;
4452 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4453 {
4454 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4455 }
4456 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4457 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4458 }
4459 }
4460
4461 next_offset += envelope_size;
4462 _next_ordinal_to_read += 1;
4463 if next_offset >= end_offset {
4464 return Ok(());
4465 }
4466
4467 while _next_ordinal_to_read < 6 {
4469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4470 _next_ordinal_to_read += 1;
4471 next_offset += envelope_size;
4472 }
4473
4474 let next_out_of_line = decoder.next_out_of_line();
4475 let handles_before = decoder.remaining_handles();
4476 if let Some((inlined, num_bytes, num_handles)) =
4477 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4478 {
4479 let member_inline_size =
4480 <FxtVersion as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4481 if inlined != (member_inline_size <= 4) {
4482 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4483 }
4484 let inner_offset;
4485 let mut inner_depth = depth.clone();
4486 if inlined {
4487 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4488 inner_offset = next_offset;
4489 } else {
4490 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4491 inner_depth.increment()?;
4492 }
4493 let val_ref = self.version.get_or_insert_with(|| fidl::new_empty!(FxtVersion, D));
4494 fidl::decode!(FxtVersion, D, val_ref, decoder, inner_offset, inner_depth)?;
4495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4496 {
4497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4498 }
4499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4501 }
4502 }
4503
4504 next_offset += envelope_size;
4505 _next_ordinal_to_read += 1;
4506 if next_offset >= end_offset {
4507 return Ok(());
4508 }
4509
4510 while _next_ordinal_to_read < 7 {
4512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4513 _next_ordinal_to_read += 1;
4514 next_offset += envelope_size;
4515 }
4516
4517 let next_out_of_line = decoder.next_out_of_line();
4518 let handles_before = decoder.remaining_handles();
4519 if let Some((inlined, num_bytes, num_handles)) =
4520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4521 {
4522 let member_inline_size =
4523 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4524 if inlined != (member_inline_size <= 4) {
4525 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4526 }
4527 let inner_offset;
4528 let mut inner_depth = depth.clone();
4529 if inlined {
4530 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4531 inner_offset = next_offset;
4532 } else {
4533 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4534 inner_depth.increment()?;
4535 }
4536 let val_ref = self.defer_transfer.get_or_insert_with(|| fidl::new_empty!(bool, D));
4537 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4538 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4539 {
4540 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4541 }
4542 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4543 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4544 }
4545 }
4546
4547 next_offset += envelope_size;
4548
4549 while next_offset < end_offset {
4551 _next_ordinal_to_read += 1;
4552 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4553 next_offset += envelope_size;
4554 }
4555
4556 Ok(())
4557 }
4558 }
4559
4560 impl TraceOptions {
4561 #[inline(always)]
4562 fn max_ordinal_present(&self) -> u64 {
4563 if let Some(_) = self.compression {
4564 return 4;
4565 }
4566 if let Some(_) = self.requested_categories {
4567 return 3;
4568 }
4569 if let Some(_) = self.triggers {
4570 return 2;
4571 }
4572 if let Some(_) = self.duration_ns {
4573 return 1;
4574 }
4575 0
4576 }
4577 }
4578
4579 impl fidl::encoding::ValueTypeMarker for TraceOptions {
4580 type Borrowed<'a> = &'a Self;
4581 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4582 value
4583 }
4584 }
4585
4586 unsafe impl fidl::encoding::TypeMarker for TraceOptions {
4587 type Owned = Self;
4588
4589 #[inline(always)]
4590 fn inline_align(_context: fidl::encoding::Context) -> usize {
4591 8
4592 }
4593
4594 #[inline(always)]
4595 fn inline_size(_context: fidl::encoding::Context) -> usize {
4596 16
4597 }
4598 }
4599
4600 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TraceOptions, D>
4601 for &TraceOptions
4602 {
4603 unsafe fn encode(
4604 self,
4605 encoder: &mut fidl::encoding::Encoder<'_, D>,
4606 offset: usize,
4607 mut depth: fidl::encoding::Depth,
4608 ) -> fidl::Result<()> {
4609 encoder.debug_check_bounds::<TraceOptions>(offset);
4610 let max_ordinal: u64 = self.max_ordinal_present();
4612 encoder.write_num(max_ordinal, offset);
4613 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4614 if max_ordinal == 0 {
4616 return Ok(());
4617 }
4618 depth.increment()?;
4619 let envelope_size = 8;
4620 let bytes_len = max_ordinal as usize * envelope_size;
4621 #[allow(unused_variables)]
4622 let offset = encoder.out_of_line_offset(bytes_len);
4623 let mut _prev_end_offset: usize = 0;
4624 if 1 > max_ordinal {
4625 return Ok(());
4626 }
4627
4628 let cur_offset: usize = (1 - 1) * envelope_size;
4631
4632 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4634
4635 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4640 self.duration_ns.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4641 encoder,
4642 offset + cur_offset,
4643 depth,
4644 )?;
4645
4646 _prev_end_offset = cur_offset + envelope_size;
4647 if 2 > max_ordinal {
4648 return Ok(());
4649 }
4650
4651 let cur_offset: usize = (2 - 1) * envelope_size;
4654
4655 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4657
4658 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Trigger>, D>(
4663 self.triggers.as_ref().map(<fidl::encoding::UnboundedVector<Trigger> as fidl::encoding::ValueTypeMarker>::borrow),
4664 encoder, offset + cur_offset, depth
4665 )?;
4666
4667 _prev_end_offset = cur_offset + envelope_size;
4668 if 3 > max_ordinal {
4669 return Ok(());
4670 }
4671
4672 let cur_offset: usize = (3 - 1) * envelope_size;
4675
4676 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4678
4679 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>, D>(
4684 self.requested_categories.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000> as fidl::encoding::ValueTypeMarker>::borrow),
4685 encoder, offset + cur_offset, depth
4686 )?;
4687
4688 _prev_end_offset = cur_offset + envelope_size;
4689 if 4 > max_ordinal {
4690 return Ok(());
4691 }
4692
4693 let cur_offset: usize = (4 - 1) * envelope_size;
4696
4697 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4699
4700 fidl::encoding::encode_in_envelope_optional::<CompressionType, D>(
4705 self.compression
4706 .as_ref()
4707 .map(<CompressionType as fidl::encoding::ValueTypeMarker>::borrow),
4708 encoder,
4709 offset + cur_offset,
4710 depth,
4711 )?;
4712
4713 _prev_end_offset = cur_offset + envelope_size;
4714
4715 Ok(())
4716 }
4717 }
4718
4719 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TraceOptions {
4720 #[inline(always)]
4721 fn new_empty() -> Self {
4722 Self::default()
4723 }
4724
4725 unsafe fn decode(
4726 &mut self,
4727 decoder: &mut fidl::encoding::Decoder<'_, D>,
4728 offset: usize,
4729 mut depth: fidl::encoding::Depth,
4730 ) -> fidl::Result<()> {
4731 decoder.debug_check_bounds::<Self>(offset);
4732 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4733 None => return Err(fidl::Error::NotNullable),
4734 Some(len) => len,
4735 };
4736 if len == 0 {
4738 return Ok(());
4739 };
4740 depth.increment()?;
4741 let envelope_size = 8;
4742 let bytes_len = len * envelope_size;
4743 let offset = decoder.out_of_line_offset(bytes_len)?;
4744 let mut _next_ordinal_to_read = 0;
4746 let mut next_offset = offset;
4747 let end_offset = offset + bytes_len;
4748 _next_ordinal_to_read += 1;
4749 if next_offset >= end_offset {
4750 return Ok(());
4751 }
4752
4753 while _next_ordinal_to_read < 1 {
4755 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4756 _next_ordinal_to_read += 1;
4757 next_offset += envelope_size;
4758 }
4759
4760 let next_out_of_line = decoder.next_out_of_line();
4761 let handles_before = decoder.remaining_handles();
4762 if let Some((inlined, num_bytes, num_handles)) =
4763 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4764 {
4765 let member_inline_size =
4766 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4767 if inlined != (member_inline_size <= 4) {
4768 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4769 }
4770 let inner_offset;
4771 let mut inner_depth = depth.clone();
4772 if inlined {
4773 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4774 inner_offset = next_offset;
4775 } else {
4776 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4777 inner_depth.increment()?;
4778 }
4779 let val_ref = self.duration_ns.get_or_insert_with(|| fidl::new_empty!(i64, D));
4780 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4781 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4782 {
4783 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4784 }
4785 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4786 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4787 }
4788 }
4789
4790 next_offset += envelope_size;
4791 _next_ordinal_to_read += 1;
4792 if next_offset >= end_offset {
4793 return Ok(());
4794 }
4795
4796 while _next_ordinal_to_read < 2 {
4798 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4799 _next_ordinal_to_read += 1;
4800 next_offset += envelope_size;
4801 }
4802
4803 let next_out_of_line = decoder.next_out_of_line();
4804 let handles_before = decoder.remaining_handles();
4805 if let Some((inlined, num_bytes, num_handles)) =
4806 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4807 {
4808 let member_inline_size = <fidl::encoding::UnboundedVector<Trigger> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4809 if inlined != (member_inline_size <= 4) {
4810 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4811 }
4812 let inner_offset;
4813 let mut inner_depth = depth.clone();
4814 if inlined {
4815 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4816 inner_offset = next_offset;
4817 } else {
4818 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4819 inner_depth.increment()?;
4820 }
4821 let val_ref = self.triggers.get_or_insert_with(|| {
4822 fidl::new_empty!(fidl::encoding::UnboundedVector<Trigger>, D)
4823 });
4824 fidl::decode!(
4825 fidl::encoding::UnboundedVector<Trigger>,
4826 D,
4827 val_ref,
4828 decoder,
4829 inner_offset,
4830 inner_depth
4831 )?;
4832 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4833 {
4834 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4835 }
4836 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4837 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4838 }
4839 }
4840
4841 next_offset += envelope_size;
4842 _next_ordinal_to_read += 1;
4843 if next_offset >= end_offset {
4844 return Ok(());
4845 }
4846
4847 while _next_ordinal_to_read < 3 {
4849 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4850 _next_ordinal_to_read += 1;
4851 next_offset += envelope_size;
4852 }
4853
4854 let next_out_of_line = decoder.next_out_of_line();
4855 let handles_before = decoder.remaining_handles();
4856 if let Some((inlined, num_bytes, num_handles)) =
4857 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4858 {
4859 let member_inline_size = <fidl::encoding::Vector<
4860 fidl::encoding::BoundedString<100>,
4861 5000,
4862 > as fidl::encoding::TypeMarker>::inline_size(
4863 decoder.context
4864 );
4865 if inlined != (member_inline_size <= 4) {
4866 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4867 }
4868 let inner_offset;
4869 let mut inner_depth = depth.clone();
4870 if inlined {
4871 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4872 inner_offset = next_offset;
4873 } else {
4874 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4875 inner_depth.increment()?;
4876 }
4877 let val_ref = self.requested_categories.get_or_insert_with(|| {
4878 fidl::new_empty!(
4879 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
4880 D
4881 )
4882 });
4883 fidl::decode!(
4884 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
4885 D,
4886 val_ref,
4887 decoder,
4888 inner_offset,
4889 inner_depth
4890 )?;
4891 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4892 {
4893 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4894 }
4895 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4896 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4897 }
4898 }
4899
4900 next_offset += envelope_size;
4901 _next_ordinal_to_read += 1;
4902 if next_offset >= end_offset {
4903 return Ok(());
4904 }
4905
4906 while _next_ordinal_to_read < 4 {
4908 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4909 _next_ordinal_to_read += 1;
4910 next_offset += envelope_size;
4911 }
4912
4913 let next_out_of_line = decoder.next_out_of_line();
4914 let handles_before = decoder.remaining_handles();
4915 if let Some((inlined, num_bytes, num_handles)) =
4916 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4917 {
4918 let member_inline_size =
4919 <CompressionType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4920 if inlined != (member_inline_size <= 4) {
4921 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4922 }
4923 let inner_offset;
4924 let mut inner_depth = depth.clone();
4925 if inlined {
4926 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4927 inner_offset = next_offset;
4928 } else {
4929 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4930 inner_depth.increment()?;
4931 }
4932 let val_ref =
4933 self.compression.get_or_insert_with(|| fidl::new_empty!(CompressionType, D));
4934 fidl::decode!(CompressionType, D, val_ref, decoder, inner_offset, inner_depth)?;
4935 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4936 {
4937 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4938 }
4939 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4940 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4941 }
4942 }
4943
4944 next_offset += envelope_size;
4945
4946 while next_offset < end_offset {
4948 _next_ordinal_to_read += 1;
4949 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4950 next_offset += envelope_size;
4951 }
4952
4953 Ok(())
4954 }
4955 }
4956
4957 impl TraceStatus {
4958 #[inline(always)]
4959 fn max_ordinal_present(&self) -> u64 {
4960 if let Some(_) = self.task_id {
4961 return 7;
4962 }
4963 if let Some(_) = self.triggers {
4964 return 6;
4965 }
4966 if let Some(_) = self.config {
4967 return 5;
4968 }
4969 if let Some(_) = self.remaining_runtime {
4970 return 4;
4971 }
4972 if let Some(_) = self.duration {
4973 return 3;
4974 }
4975 0
4976 }
4977 }
4978
4979 impl fidl::encoding::ValueTypeMarker for TraceStatus {
4980 type Borrowed<'a> = &'a Self;
4981 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4982 value
4983 }
4984 }
4985
4986 unsafe impl fidl::encoding::TypeMarker for TraceStatus {
4987 type Owned = Self;
4988
4989 #[inline(always)]
4990 fn inline_align(_context: fidl::encoding::Context) -> usize {
4991 8
4992 }
4993
4994 #[inline(always)]
4995 fn inline_size(_context: fidl::encoding::Context) -> usize {
4996 16
4997 }
4998 }
4999
5000 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TraceStatus, D>
5001 for &TraceStatus
5002 {
5003 unsafe fn encode(
5004 self,
5005 encoder: &mut fidl::encoding::Encoder<'_, D>,
5006 offset: usize,
5007 mut depth: fidl::encoding::Depth,
5008 ) -> fidl::Result<()> {
5009 encoder.debug_check_bounds::<TraceStatus>(offset);
5010 let max_ordinal: u64 = self.max_ordinal_present();
5012 encoder.write_num(max_ordinal, offset);
5013 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5014 if max_ordinal == 0 {
5016 return Ok(());
5017 }
5018 depth.increment()?;
5019 let envelope_size = 8;
5020 let bytes_len = max_ordinal as usize * envelope_size;
5021 #[allow(unused_variables)]
5022 let offset = encoder.out_of_line_offset(bytes_len);
5023 let mut _prev_end_offset: usize = 0;
5024 if 3 > max_ordinal {
5025 return Ok(());
5026 }
5027
5028 let cur_offset: usize = (3 - 1) * envelope_size;
5031
5032 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5034
5035 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5040 self.duration.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5041 encoder,
5042 offset + cur_offset,
5043 depth,
5044 )?;
5045
5046 _prev_end_offset = cur_offset + envelope_size;
5047 if 4 > max_ordinal {
5048 return Ok(());
5049 }
5050
5051 let cur_offset: usize = (4 - 1) * envelope_size;
5054
5055 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5057
5058 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5063 self.remaining_runtime
5064 .as_ref()
5065 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5066 encoder,
5067 offset + cur_offset,
5068 depth,
5069 )?;
5070
5071 _prev_end_offset = cur_offset + envelope_size;
5072 if 5 > max_ordinal {
5073 return Ok(());
5074 }
5075
5076 let cur_offset: usize = (5 - 1) * envelope_size;
5079
5080 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5082
5083 fidl::encoding::encode_in_envelope_optional::<TraceConfig, D>(
5088 self.config.as_ref().map(<TraceConfig as fidl::encoding::ValueTypeMarker>::borrow),
5089 encoder,
5090 offset + cur_offset,
5091 depth,
5092 )?;
5093
5094 _prev_end_offset = cur_offset + envelope_size;
5095 if 6 > max_ordinal {
5096 return Ok(());
5097 }
5098
5099 let cur_offset: usize = (6 - 1) * envelope_size;
5102
5103 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5105
5106 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Trigger>, D>(
5111 self.triggers.as_ref().map(<fidl::encoding::UnboundedVector<Trigger> as fidl::encoding::ValueTypeMarker>::borrow),
5112 encoder, offset + cur_offset, depth
5113 )?;
5114
5115 _prev_end_offset = cur_offset + envelope_size;
5116 if 7 > max_ordinal {
5117 return Ok(());
5118 }
5119
5120 let cur_offset: usize = (7 - 1) * envelope_size;
5123
5124 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5126
5127 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5132 self.task_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5133 encoder,
5134 offset + cur_offset,
5135 depth,
5136 )?;
5137
5138 _prev_end_offset = cur_offset + envelope_size;
5139
5140 Ok(())
5141 }
5142 }
5143
5144 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TraceStatus {
5145 #[inline(always)]
5146 fn new_empty() -> Self {
5147 Self::default()
5148 }
5149
5150 unsafe fn decode(
5151 &mut self,
5152 decoder: &mut fidl::encoding::Decoder<'_, D>,
5153 offset: usize,
5154 mut depth: fidl::encoding::Depth,
5155 ) -> fidl::Result<()> {
5156 decoder.debug_check_bounds::<Self>(offset);
5157 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5158 None => return Err(fidl::Error::NotNullable),
5159 Some(len) => len,
5160 };
5161 if len == 0 {
5163 return Ok(());
5164 };
5165 depth.increment()?;
5166 let envelope_size = 8;
5167 let bytes_len = len * envelope_size;
5168 let offset = decoder.out_of_line_offset(bytes_len)?;
5169 let mut _next_ordinal_to_read = 0;
5171 let mut next_offset = offset;
5172 let end_offset = offset + bytes_len;
5173 _next_ordinal_to_read += 1;
5174 if next_offset >= end_offset {
5175 return Ok(());
5176 }
5177
5178 while _next_ordinal_to_read < 3 {
5180 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5181 _next_ordinal_to_read += 1;
5182 next_offset += envelope_size;
5183 }
5184
5185 let next_out_of_line = decoder.next_out_of_line();
5186 let handles_before = decoder.remaining_handles();
5187 if let Some((inlined, num_bytes, num_handles)) =
5188 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5189 {
5190 let member_inline_size =
5191 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5192 if inlined != (member_inline_size <= 4) {
5193 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5194 }
5195 let inner_offset;
5196 let mut inner_depth = depth.clone();
5197 if inlined {
5198 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5199 inner_offset = next_offset;
5200 } else {
5201 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5202 inner_depth.increment()?;
5203 }
5204 let val_ref = self.duration.get_or_insert_with(|| fidl::new_empty!(i64, D));
5205 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5206 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5207 {
5208 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5209 }
5210 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5211 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5212 }
5213 }
5214
5215 next_offset += envelope_size;
5216 _next_ordinal_to_read += 1;
5217 if next_offset >= end_offset {
5218 return Ok(());
5219 }
5220
5221 while _next_ordinal_to_read < 4 {
5223 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5224 _next_ordinal_to_read += 1;
5225 next_offset += envelope_size;
5226 }
5227
5228 let next_out_of_line = decoder.next_out_of_line();
5229 let handles_before = decoder.remaining_handles();
5230 if let Some((inlined, num_bytes, num_handles)) =
5231 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5232 {
5233 let member_inline_size =
5234 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5235 if inlined != (member_inline_size <= 4) {
5236 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5237 }
5238 let inner_offset;
5239 let mut inner_depth = depth.clone();
5240 if inlined {
5241 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5242 inner_offset = next_offset;
5243 } else {
5244 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5245 inner_depth.increment()?;
5246 }
5247 let val_ref =
5248 self.remaining_runtime.get_or_insert_with(|| fidl::new_empty!(i64, D));
5249 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5250 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5251 {
5252 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5253 }
5254 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5255 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5256 }
5257 }
5258
5259 next_offset += envelope_size;
5260 _next_ordinal_to_read += 1;
5261 if next_offset >= end_offset {
5262 return Ok(());
5263 }
5264
5265 while _next_ordinal_to_read < 5 {
5267 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5268 _next_ordinal_to_read += 1;
5269 next_offset += envelope_size;
5270 }
5271
5272 let next_out_of_line = decoder.next_out_of_line();
5273 let handles_before = decoder.remaining_handles();
5274 if let Some((inlined, num_bytes, num_handles)) =
5275 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5276 {
5277 let member_inline_size =
5278 <TraceConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5279 if inlined != (member_inline_size <= 4) {
5280 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5281 }
5282 let inner_offset;
5283 let mut inner_depth = depth.clone();
5284 if inlined {
5285 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5286 inner_offset = next_offset;
5287 } else {
5288 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5289 inner_depth.increment()?;
5290 }
5291 let val_ref = self.config.get_or_insert_with(|| fidl::new_empty!(TraceConfig, D));
5292 fidl::decode!(TraceConfig, D, val_ref, decoder, inner_offset, inner_depth)?;
5293 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5294 {
5295 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5296 }
5297 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5298 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5299 }
5300 }
5301
5302 next_offset += envelope_size;
5303 _next_ordinal_to_read += 1;
5304 if next_offset >= end_offset {
5305 return Ok(());
5306 }
5307
5308 while _next_ordinal_to_read < 6 {
5310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5311 _next_ordinal_to_read += 1;
5312 next_offset += envelope_size;
5313 }
5314
5315 let next_out_of_line = decoder.next_out_of_line();
5316 let handles_before = decoder.remaining_handles();
5317 if let Some((inlined, num_bytes, num_handles)) =
5318 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5319 {
5320 let member_inline_size = <fidl::encoding::UnboundedVector<Trigger> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5321 if inlined != (member_inline_size <= 4) {
5322 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5323 }
5324 let inner_offset;
5325 let mut inner_depth = depth.clone();
5326 if inlined {
5327 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5328 inner_offset = next_offset;
5329 } else {
5330 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5331 inner_depth.increment()?;
5332 }
5333 let val_ref = self.triggers.get_or_insert_with(|| {
5334 fidl::new_empty!(fidl::encoding::UnboundedVector<Trigger>, D)
5335 });
5336 fidl::decode!(
5337 fidl::encoding::UnboundedVector<Trigger>,
5338 D,
5339 val_ref,
5340 decoder,
5341 inner_offset,
5342 inner_depth
5343 )?;
5344 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5345 {
5346 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5347 }
5348 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5349 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5350 }
5351 }
5352
5353 next_offset += envelope_size;
5354 _next_ordinal_to_read += 1;
5355 if next_offset >= end_offset {
5356 return Ok(());
5357 }
5358
5359 while _next_ordinal_to_read < 7 {
5361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5362 _next_ordinal_to_read += 1;
5363 next_offset += envelope_size;
5364 }
5365
5366 let next_out_of_line = decoder.next_out_of_line();
5367 let handles_before = decoder.remaining_handles();
5368 if let Some((inlined, num_bytes, num_handles)) =
5369 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5370 {
5371 let member_inline_size =
5372 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5373 if inlined != (member_inline_size <= 4) {
5374 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5375 }
5376 let inner_offset;
5377 let mut inner_depth = depth.clone();
5378 if inlined {
5379 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5380 inner_offset = next_offset;
5381 } else {
5382 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5383 inner_depth.increment()?;
5384 }
5385 let val_ref = self.task_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
5386 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5387 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5388 {
5389 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5390 }
5391 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5392 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5393 }
5394 }
5395
5396 next_offset += envelope_size;
5397
5398 while next_offset < end_offset {
5400 _next_ordinal_to_read += 1;
5401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5402 next_offset += envelope_size;
5403 }
5404
5405 Ok(())
5406 }
5407 }
5408
5409 impl Trigger {
5410 #[inline(always)]
5411 fn max_ordinal_present(&self) -> u64 {
5412 if let Some(_) = self.action {
5413 return 2;
5414 }
5415 if let Some(_) = self.alert {
5416 return 1;
5417 }
5418 0
5419 }
5420 }
5421
5422 impl fidl::encoding::ValueTypeMarker for Trigger {
5423 type Borrowed<'a> = &'a Self;
5424 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5425 value
5426 }
5427 }
5428
5429 unsafe impl fidl::encoding::TypeMarker for Trigger {
5430 type Owned = Self;
5431
5432 #[inline(always)]
5433 fn inline_align(_context: fidl::encoding::Context) -> usize {
5434 8
5435 }
5436
5437 #[inline(always)]
5438 fn inline_size(_context: fidl::encoding::Context) -> usize {
5439 16
5440 }
5441 }
5442
5443 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Trigger, D> for &Trigger {
5444 unsafe fn encode(
5445 self,
5446 encoder: &mut fidl::encoding::Encoder<'_, D>,
5447 offset: usize,
5448 mut depth: fidl::encoding::Depth,
5449 ) -> fidl::Result<()> {
5450 encoder.debug_check_bounds::<Trigger>(offset);
5451 let max_ordinal: u64 = self.max_ordinal_present();
5453 encoder.write_num(max_ordinal, offset);
5454 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5455 if max_ordinal == 0 {
5457 return Ok(());
5458 }
5459 depth.increment()?;
5460 let envelope_size = 8;
5461 let bytes_len = max_ordinal as usize * envelope_size;
5462 #[allow(unused_variables)]
5463 let offset = encoder.out_of_line_offset(bytes_len);
5464 let mut _prev_end_offset: usize = 0;
5465 if 1 > max_ordinal {
5466 return Ok(());
5467 }
5468
5469 let cur_offset: usize = (1 - 1) * envelope_size;
5472
5473 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5475
5476 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<14>, D>(
5481 self.alert.as_ref().map(
5482 <fidl::encoding::BoundedString<14> as fidl::encoding::ValueTypeMarker>::borrow,
5483 ),
5484 encoder,
5485 offset + cur_offset,
5486 depth,
5487 )?;
5488
5489 _prev_end_offset = cur_offset + envelope_size;
5490 if 2 > max_ordinal {
5491 return Ok(());
5492 }
5493
5494 let cur_offset: usize = (2 - 1) * envelope_size;
5497
5498 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5500
5501 fidl::encoding::encode_in_envelope_optional::<Action, D>(
5506 self.action.as_ref().map(<Action as fidl::encoding::ValueTypeMarker>::borrow),
5507 encoder,
5508 offset + cur_offset,
5509 depth,
5510 )?;
5511
5512 _prev_end_offset = cur_offset + envelope_size;
5513
5514 Ok(())
5515 }
5516 }
5517
5518 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Trigger {
5519 #[inline(always)]
5520 fn new_empty() -> Self {
5521 Self::default()
5522 }
5523
5524 unsafe fn decode(
5525 &mut self,
5526 decoder: &mut fidl::encoding::Decoder<'_, D>,
5527 offset: usize,
5528 mut depth: fidl::encoding::Depth,
5529 ) -> fidl::Result<()> {
5530 decoder.debug_check_bounds::<Self>(offset);
5531 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5532 None => return Err(fidl::Error::NotNullable),
5533 Some(len) => len,
5534 };
5535 if len == 0 {
5537 return Ok(());
5538 };
5539 depth.increment()?;
5540 let envelope_size = 8;
5541 let bytes_len = len * envelope_size;
5542 let offset = decoder.out_of_line_offset(bytes_len)?;
5543 let mut _next_ordinal_to_read = 0;
5545 let mut next_offset = offset;
5546 let end_offset = offset + bytes_len;
5547 _next_ordinal_to_read += 1;
5548 if next_offset >= end_offset {
5549 return Ok(());
5550 }
5551
5552 while _next_ordinal_to_read < 1 {
5554 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5555 _next_ordinal_to_read += 1;
5556 next_offset += envelope_size;
5557 }
5558
5559 let next_out_of_line = decoder.next_out_of_line();
5560 let handles_before = decoder.remaining_handles();
5561 if let Some((inlined, num_bytes, num_handles)) =
5562 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5563 {
5564 let member_inline_size =
5565 <fidl::encoding::BoundedString<14> as fidl::encoding::TypeMarker>::inline_size(
5566 decoder.context,
5567 );
5568 if inlined != (member_inline_size <= 4) {
5569 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5570 }
5571 let inner_offset;
5572 let mut inner_depth = depth.clone();
5573 if inlined {
5574 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5575 inner_offset = next_offset;
5576 } else {
5577 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5578 inner_depth.increment()?;
5579 }
5580 let val_ref = self
5581 .alert
5582 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<14>, D));
5583 fidl::decode!(
5584 fidl::encoding::BoundedString<14>,
5585 D,
5586 val_ref,
5587 decoder,
5588 inner_offset,
5589 inner_depth
5590 )?;
5591 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5592 {
5593 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5594 }
5595 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5596 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5597 }
5598 }
5599
5600 next_offset += envelope_size;
5601 _next_ordinal_to_read += 1;
5602 if next_offset >= end_offset {
5603 return Ok(());
5604 }
5605
5606 while _next_ordinal_to_read < 2 {
5608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5609 _next_ordinal_to_read += 1;
5610 next_offset += envelope_size;
5611 }
5612
5613 let next_out_of_line = decoder.next_out_of_line();
5614 let handles_before = decoder.remaining_handles();
5615 if let Some((inlined, num_bytes, num_handles)) =
5616 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5617 {
5618 let member_inline_size =
5619 <Action as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5620 if inlined != (member_inline_size <= 4) {
5621 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5622 }
5623 let inner_offset;
5624 let mut inner_depth = depth.clone();
5625 if inlined {
5626 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5627 inner_offset = next_offset;
5628 } else {
5629 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5630 inner_depth.increment()?;
5631 }
5632 let val_ref = self.action.get_or_insert_with(|| fidl::new_empty!(Action, D));
5633 fidl::decode!(Action, D, val_ref, decoder, inner_offset, inner_depth)?;
5634 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5635 {
5636 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5637 }
5638 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5639 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5640 }
5641 }
5642
5643 next_offset += envelope_size;
5644
5645 while next_offset < end_offset {
5647 _next_ordinal_to_read += 1;
5648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5649 next_offset += envelope_size;
5650 }
5651
5652 Ok(())
5653 }
5654 }
5655}