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)]
139pub enum FlushError {
140 NotInitialized,
142 NotStarted,
144 Aborted,
146 #[doc(hidden)]
147 __SourceBreaking { unknown_ordinal: u32 },
148}
149
150#[macro_export]
152macro_rules! FlushErrorUnknown {
153 () => {
154 _
155 };
156}
157
158impl FlushError {
159 #[inline]
160 pub fn from_primitive(prim: u32) -> Option<Self> {
161 match prim {
162 1 => Some(Self::NotInitialized),
163 2 => Some(Self::NotStarted),
164 3 => Some(Self::Aborted),
165 _ => None,
166 }
167 }
168
169 #[inline]
170 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
171 match prim {
172 1 => Self::NotInitialized,
173 2 => Self::NotStarted,
174 3 => Self::Aborted,
175 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
176 }
177 }
178
179 #[inline]
180 pub fn unknown() -> Self {
181 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
182 }
183
184 #[inline]
185 pub const fn into_primitive(self) -> u32 {
186 match self {
187 Self::NotInitialized => 1,
188 Self::NotStarted => 2,
189 Self::Aborted => 3,
190 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
191 }
192 }
193
194 #[inline]
195 pub fn is_unknown(&self) -> bool {
196 match self {
197 Self::__SourceBreaking { unknown_ordinal: _ } => true,
198 _ => false,
199 }
200 }
201}
202
203#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
206pub enum RecordingError {
207 TargetProxyOpen,
209 RecordingStart,
211 RecordingAlreadyStarted,
214 RecordingStop,
218 DuplicateTraceFile,
221 NoSuchTraceFile,
224 NoSuchTarget,
226 DisconnectedTarget,
229 #[doc(hidden)]
230 __SourceBreaking { unknown_ordinal: u32 },
231}
232
233#[macro_export]
235macro_rules! RecordingErrorUnknown {
236 () => {
237 _
238 };
239}
240
241impl RecordingError {
242 #[inline]
243 pub fn from_primitive(prim: u32) -> Option<Self> {
244 match prim {
245 0 => Some(Self::TargetProxyOpen),
246 1 => Some(Self::RecordingStart),
247 2 => Some(Self::RecordingAlreadyStarted),
248 3 => Some(Self::RecordingStop),
249 4 => Some(Self::DuplicateTraceFile),
250 5 => Some(Self::NoSuchTraceFile),
251 6 => Some(Self::NoSuchTarget),
252 7 => Some(Self::DisconnectedTarget),
253 _ => None,
254 }
255 }
256
257 #[inline]
258 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
259 match prim {
260 0 => Self::TargetProxyOpen,
261 1 => Self::RecordingStart,
262 2 => Self::RecordingAlreadyStarted,
263 3 => Self::RecordingStop,
264 4 => Self::DuplicateTraceFile,
265 5 => Self::NoSuchTraceFile,
266 6 => Self::NoSuchTarget,
267 7 => Self::DisconnectedTarget,
268 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
269 }
270 }
271
272 #[inline]
273 pub fn unknown() -> Self {
274 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
275 }
276
277 #[inline]
278 pub const fn into_primitive(self) -> u32 {
279 match self {
280 Self::TargetProxyOpen => 0,
281 Self::RecordingStart => 1,
282 Self::RecordingAlreadyStarted => 2,
283 Self::RecordingStop => 3,
284 Self::DuplicateTraceFile => 4,
285 Self::NoSuchTraceFile => 5,
286 Self::NoSuchTarget => 6,
287 Self::DisconnectedTarget => 7,
288 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
289 }
290 }
291
292 #[inline]
293 pub fn is_unknown(&self) -> bool {
294 match self {
295 Self::__SourceBreaking { unknown_ordinal: _ } => true,
296 _ => false,
297 }
298 }
299}
300
301#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
304pub enum SessionState {
305 Ready,
308 Initialized,
310 Starting,
312 Started,
314 Stopping,
316 Stopped,
318 Terminating,
322 #[doc(hidden)]
323 __SourceBreaking { unknown_ordinal: u32 },
324}
325
326#[macro_export]
328macro_rules! SessionStateUnknown {
329 () => {
330 _
331 };
332}
333
334impl SessionState {
335 #[inline]
336 pub fn from_primitive(prim: u32) -> Option<Self> {
337 match prim {
338 1 => Some(Self::Ready),
339 2 => Some(Self::Initialized),
340 3 => Some(Self::Starting),
341 4 => Some(Self::Started),
342 5 => Some(Self::Stopping),
343 6 => Some(Self::Stopped),
344 7 => Some(Self::Terminating),
345 _ => None,
346 }
347 }
348
349 #[inline]
350 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
351 match prim {
352 1 => Self::Ready,
353 2 => Self::Initialized,
354 3 => Self::Starting,
355 4 => Self::Started,
356 5 => Self::Stopping,
357 6 => Self::Stopped,
358 7 => Self::Terminating,
359 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
360 }
361 }
362
363 #[inline]
364 pub fn unknown() -> Self {
365 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
366 }
367
368 #[inline]
369 pub const fn into_primitive(self) -> u32 {
370 match self {
371 Self::Ready => 1,
372 Self::Initialized => 2,
373 Self::Starting => 3,
374 Self::Started => 4,
375 Self::Stopping => 5,
376 Self::Stopped => 6,
377 Self::Terminating => 7,
378 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
379 }
380 }
381
382 #[inline]
383 pub fn is_unknown(&self) -> bool {
384 match self {
385 Self::__SourceBreaking { unknown_ordinal: _ } => true,
386 _ => false,
387 }
388 }
389}
390
391#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
393pub enum StartError {
394 NotInitialized,
396 AlreadyStarted,
398 Stopping,
400 Terminating,
402 #[doc(hidden)]
403 __SourceBreaking { unknown_ordinal: u32 },
404}
405
406#[macro_export]
408macro_rules! StartErrorUnknown {
409 () => {
410 _
411 };
412}
413
414impl StartError {
415 #[inline]
416 pub fn from_primitive(prim: u32) -> Option<Self> {
417 match prim {
418 1 => Some(Self::NotInitialized),
419 2 => Some(Self::AlreadyStarted),
420 3 => Some(Self::Stopping),
421 4 => Some(Self::Terminating),
422 _ => None,
423 }
424 }
425
426 #[inline]
427 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
428 match prim {
429 1 => Self::NotInitialized,
430 2 => Self::AlreadyStarted,
431 3 => Self::Stopping,
432 4 => Self::Terminating,
433 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
434 }
435 }
436
437 #[inline]
438 pub fn unknown() -> Self {
439 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
440 }
441
442 #[inline]
443 pub const fn into_primitive(self) -> u32 {
444 match self {
445 Self::NotInitialized => 1,
446 Self::AlreadyStarted => 2,
447 Self::Stopping => 3,
448 Self::Terminating => 4,
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(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
464pub enum StopError {
465 NotInitialized,
467 NotStarted,
469 Aborted,
471 #[doc(hidden)]
472 __SourceBreaking { unknown_ordinal: u32 },
473}
474
475#[macro_export]
477macro_rules! StopErrorUnknown {
478 () => {
479 _
480 };
481}
482
483impl StopError {
484 #[inline]
485 pub fn from_primitive(prim: u32) -> Option<Self> {
486 match prim {
487 1 => Some(Self::NotInitialized),
488 2 => Some(Self::NotStarted),
489 3 => Some(Self::Aborted),
490 _ => None,
491 }
492 }
493
494 #[inline]
495 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
496 match prim {
497 1 => Self::NotInitialized,
498 2 => Self::NotStarted,
499 3 => Self::Aborted,
500 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
501 }
502 }
503
504 #[inline]
505 pub fn unknown() -> Self {
506 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
507 }
508
509 #[inline]
510 pub const fn into_primitive(self) -> u32 {
511 match self {
512 Self::NotInitialized => 1,
513 Self::NotStarted => 2,
514 Self::Aborted => 3,
515 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
516 }
517 }
518
519 #[inline]
520 pub fn is_unknown(&self) -> bool {
521 match self {
522 Self::__SourceBreaking { unknown_ordinal: _ } => true,
523 _ => false,
524 }
525 }
526}
527
528#[derive(Clone, Debug, PartialEq)]
529pub struct ProvisionerGetKnownCategoriesResponse {
530 pub categories: Vec<fidl_fuchsia_tracing__common::KnownCategory>,
531}
532
533impl fidl::Persistable for ProvisionerGetKnownCategoriesResponse {}
534
535#[derive(Clone, Debug, PartialEq)]
536pub struct ProvisionerGetProvidersResponse {
537 pub providers: Vec<ProviderInfo>,
538}
539
540impl fidl::Persistable for ProvisionerGetProvidersResponse {}
541
542#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
543#[repr(C)]
544pub struct SessionManagerAbortTraceSessionRequest {
545 pub task_id: u64,
546}
547
548impl fidl::Persistable for SessionManagerAbortTraceSessionRequest {}
549
550#[derive(Clone, Debug, PartialEq)]
551pub struct SessionManagerEndTraceSessionResponse {
552 pub options: TraceOptions,
553 pub result: StopResult,
554}
555
556impl fidl::Persistable for SessionManagerEndTraceSessionResponse {}
557
558#[derive(Clone, Debug, PartialEq)]
559pub struct SessionManagerGetKnownCategoriesResponse {
560 pub categories: Vec<fidl_fuchsia_tracing__common::KnownCategory>,
561}
562
563impl fidl::Persistable for SessionManagerGetKnownCategoriesResponse {}
564
565#[derive(Clone, Debug, PartialEq)]
566pub struct SessionManagerGetProvidersResponse {
567 pub providers: Vec<ProviderInfo>,
568}
569
570impl fidl::Persistable for SessionManagerGetProvidersResponse {}
571
572#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
573#[repr(C)]
574pub struct SessionManagerStartTraceSessionResponse {
575 pub task_id: u64,
576}
577
578impl fidl::Persistable for SessionManagerStartTraceSessionResponse {}
579
580#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
581pub struct SessionOnSessionStateChangeRequest {
582 pub state: SessionState,
583}
584
585impl fidl::Persistable for SessionOnSessionStateChangeRequest {}
586
587#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
588pub struct SessionWatchAlertResponse {
589 pub alert_name: String,
590}
591
592impl fidl::Persistable for SessionWatchAlertResponse {}
593
594#[derive(Clone, Debug, Default, PartialEq)]
601pub struct FxtVersion {
602 pub major: Option<u32>,
604 pub minor: Option<u32>,
606 #[doc(hidden)]
607 pub __source_breaking: fidl::marker::SourceBreaking,
608}
609
610impl fidl::Persistable for FxtVersion {}
611
612#[derive(Clone, Debug, Default, PartialEq)]
614pub struct ProviderInfo {
615 pub id: Option<u32>,
617 pub pid: Option<u64>,
619 pub name: Option<String>,
621 #[doc(hidden)]
622 pub __source_breaking: fidl::marker::SourceBreaking,
623}
624
625impl fidl::Persistable for ProviderInfo {}
626
627#[derive(Clone, Debug, Default, PartialEq)]
628pub struct ProviderSpec {
629 pub name: Option<String>,
630 pub buffer_size_megabytes_hint: Option<u32>,
631 pub categories: Option<Vec<String>>,
632 #[doc(hidden)]
633 pub __source_breaking: fidl::marker::SourceBreaking,
634}
635
636impl fidl::Persistable for ProviderSpec {}
637
638#[derive(Clone, Debug, Default, PartialEq)]
640pub struct ProviderStats {
641 pub name: Option<String>,
642 pub pid: Option<u64>,
643 pub buffering_mode: Option<fidl_fuchsia_tracing__common::BufferingMode>,
644 pub buffer_wrapped_count: Option<u32>,
645 pub records_dropped: Option<u64>,
646 pub percentage_durable_buffer_used: Option<f32>,
647 pub non_durable_bytes_written: Option<u64>,
648 #[doc(hidden)]
649 pub __source_breaking: fidl::marker::SourceBreaking,
650}
651
652impl fidl::Persistable for ProviderStats {}
653
654#[derive(Clone, Debug, Default, PartialEq)]
656pub struct StartOptions {
657 pub buffer_disposition: Option<fidl_fuchsia_tracing__common::BufferDisposition>,
665 pub additional_categories: Option<Vec<String>>,
669 #[doc(hidden)]
670 pub __source_breaking: fidl::marker::SourceBreaking,
671}
672
673impl fidl::Persistable for StartOptions {}
674
675#[derive(Clone, Debug, Default, PartialEq)]
677pub struct StopOptions {
678 pub write_results: Option<bool>,
683 #[doc(hidden)]
684 pub __source_breaking: fidl::marker::SourceBreaking,
685}
686
687impl fidl::Persistable for StopOptions {}
688
689#[derive(Clone, Debug, Default, PartialEq)]
691pub struct StopResult {
692 pub provider_stats: Option<Vec<ProviderStats>>,
693 #[doc(hidden)]
694 pub __source_breaking: fidl::marker::SourceBreaking,
695}
696
697impl fidl::Persistable for StopResult {}
698
699#[derive(Clone, Debug, Default, PartialEq)]
701pub struct TraceConfig {
702 pub categories: Option<Vec<String>>,
705 pub buffer_size_megabytes_hint: Option<u32>,
707 pub start_timeout_milliseconds: Option<u64>,
709 pub buffering_mode: Option<fidl_fuchsia_tracing__common::BufferingMode>,
710 pub provider_specs: Option<Vec<ProviderSpec>>,
712 pub version: Option<FxtVersion>,
715 pub defer_transfer: Option<bool>,
729 #[doc(hidden)]
730 pub __source_breaking: fidl::marker::SourceBreaking,
731}
732
733impl fidl::Persistable for TraceConfig {}
734
735#[derive(Clone, Debug, Default, PartialEq)]
737pub struct TraceOptions {
738 pub duration_ns: Option<i64>,
746 pub triggers: Option<Vec<Trigger>>,
748 pub requested_categories: Option<Vec<String>>,
754 pub compression: Option<CompressionType>,
756 #[doc(hidden)]
757 pub __source_breaking: fidl::marker::SourceBreaking,
758}
759
760impl fidl::Persistable for TraceOptions {}
761
762#[derive(Clone, Debug, Default, PartialEq)]
764pub struct TraceStatus {
765 pub duration: Option<i64>,
768 pub remaining_runtime: Option<i64>,
771 pub config: Option<TraceConfig>,
773 pub triggers: Option<Vec<Trigger>>,
775 pub task_id: Option<u64>,
777 #[doc(hidden)]
778 pub __source_breaking: fidl::marker::SourceBreaking,
779}
780
781impl fidl::Persistable for TraceStatus {}
782
783#[derive(Clone, Debug, Default, PartialEq)]
786pub struct Trigger {
787 pub alert: Option<String>,
790 pub action: Option<Action>,
792 #[doc(hidden)]
793 pub __source_breaking: fidl::marker::SourceBreaking,
794}
795
796impl fidl::Persistable for Trigger {}
797
798pub mod provisioner_ordinals {
799 pub const INITIALIZE_TRACING: u64 = 0x3b046ed3a0684ab8;
800 pub const GET_PROVIDERS: u64 = 0xc4d4f36edc50d43;
801 pub const GET_KNOWN_CATEGORIES: u64 = 0x41ef99397b945a4;
802}
803
804pub mod session_ordinals {
805 pub const START_TRACING: u64 = 0xde9b6ccbe936631;
806 pub const STOP_TRACING: u64 = 0x50fefc9b3ff9b03a;
807 pub const WATCH_ALERT: u64 = 0x1f1c080716d92276;
808 pub const ON_SESSION_STATE_CHANGE: u64 = 0x7ab1640718b971cd;
809 pub const FLUSH_BUFFERS: u64 = 0x23d801809a99f102;
810}
811
812pub mod session_manager_ordinals {
813 pub const GET_PROVIDERS: u64 = 0x61bd49c4eb1fa03;
814 pub const GET_KNOWN_CATEGORIES: u64 = 0x6f0abdb5401788b2;
815 pub const START_TRACE_SESSION: u64 = 0x54c39e0c173c0162;
816 pub const START_TRACE_SESSION_ON_BOOT: u64 = 0x705558b5612fbf62;
817 pub const END_TRACE_SESSION: u64 = 0x72d6ca80a0787577;
818 pub const ABORT_TRACE_SESSION: u64 = 0x9a14550631bbc7c;
819 pub const STATUS: u64 = 0x2ebc198b7af59063;
820}
821
822mod internal {
823 use super::*;
824 unsafe impl fidl::encoding::TypeMarker for Action {
825 type Owned = Self;
826
827 #[inline(always)]
828 fn inline_align(_context: fidl::encoding::Context) -> usize {
829 std::mem::align_of::<u32>()
830 }
831
832 #[inline(always)]
833 fn inline_size(_context: fidl::encoding::Context) -> usize {
834 std::mem::size_of::<u32>()
835 }
836
837 #[inline(always)]
838 fn encode_is_copy() -> bool {
839 false
840 }
841
842 #[inline(always)]
843 fn decode_is_copy() -> bool {
844 false
845 }
846 }
847
848 impl fidl::encoding::ValueTypeMarker for Action {
849 type Borrowed<'a> = Self;
850 #[inline(always)]
851 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
852 *value
853 }
854 }
855
856 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Action {
857 #[inline]
858 unsafe fn encode(
859 self,
860 encoder: &mut fidl::encoding::Encoder<'_, D>,
861 offset: usize,
862 _depth: fidl::encoding::Depth,
863 ) -> fidl::Result<()> {
864 encoder.debug_check_bounds::<Self>(offset);
865 encoder.write_num(self.into_primitive(), offset);
866 Ok(())
867 }
868 }
869
870 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Action {
871 #[inline(always)]
872 fn new_empty() -> Self {
873 Self::unknown()
874 }
875
876 #[inline]
877 unsafe fn decode(
878 &mut self,
879 decoder: &mut fidl::encoding::Decoder<'_, D>,
880 offset: usize,
881 _depth: fidl::encoding::Depth,
882 ) -> fidl::Result<()> {
883 decoder.debug_check_bounds::<Self>(offset);
884 let prim = decoder.read_num::<u32>(offset);
885
886 *self = Self::from_primitive_allow_unknown(prim);
887 Ok(())
888 }
889 }
890 unsafe impl fidl::encoding::TypeMarker for CompressionType {
891 type Owned = Self;
892
893 #[inline(always)]
894 fn inline_align(_context: fidl::encoding::Context) -> usize {
895 std::mem::align_of::<u32>()
896 }
897
898 #[inline(always)]
899 fn inline_size(_context: fidl::encoding::Context) -> usize {
900 std::mem::size_of::<u32>()
901 }
902
903 #[inline(always)]
904 fn encode_is_copy() -> bool {
905 false
906 }
907
908 #[inline(always)]
909 fn decode_is_copy() -> bool {
910 false
911 }
912 }
913
914 impl fidl::encoding::ValueTypeMarker for CompressionType {
915 type Borrowed<'a> = Self;
916 #[inline(always)]
917 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
918 *value
919 }
920 }
921
922 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
923 for CompressionType
924 {
925 #[inline]
926 unsafe fn encode(
927 self,
928 encoder: &mut fidl::encoding::Encoder<'_, D>,
929 offset: usize,
930 _depth: fidl::encoding::Depth,
931 ) -> fidl::Result<()> {
932 encoder.debug_check_bounds::<Self>(offset);
933 encoder.write_num(self.into_primitive(), offset);
934 Ok(())
935 }
936 }
937
938 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompressionType {
939 #[inline(always)]
940 fn new_empty() -> Self {
941 Self::unknown()
942 }
943
944 #[inline]
945 unsafe fn decode(
946 &mut self,
947 decoder: &mut fidl::encoding::Decoder<'_, D>,
948 offset: usize,
949 _depth: fidl::encoding::Depth,
950 ) -> fidl::Result<()> {
951 decoder.debug_check_bounds::<Self>(offset);
952 let prim = decoder.read_num::<u32>(offset);
953
954 *self = Self::from_primitive_allow_unknown(prim);
955 Ok(())
956 }
957 }
958 unsafe impl fidl::encoding::TypeMarker for FlushError {
959 type Owned = Self;
960
961 #[inline(always)]
962 fn inline_align(_context: fidl::encoding::Context) -> usize {
963 std::mem::align_of::<u32>()
964 }
965
966 #[inline(always)]
967 fn inline_size(_context: fidl::encoding::Context) -> usize {
968 std::mem::size_of::<u32>()
969 }
970
971 #[inline(always)]
972 fn encode_is_copy() -> bool {
973 false
974 }
975
976 #[inline(always)]
977 fn decode_is_copy() -> bool {
978 false
979 }
980 }
981
982 impl fidl::encoding::ValueTypeMarker for FlushError {
983 type Borrowed<'a> = Self;
984 #[inline(always)]
985 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
986 *value
987 }
988 }
989
990 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for FlushError {
991 #[inline]
992 unsafe fn encode(
993 self,
994 encoder: &mut fidl::encoding::Encoder<'_, D>,
995 offset: usize,
996 _depth: fidl::encoding::Depth,
997 ) -> fidl::Result<()> {
998 encoder.debug_check_bounds::<Self>(offset);
999 encoder.write_num(self.into_primitive(), offset);
1000 Ok(())
1001 }
1002 }
1003
1004 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FlushError {
1005 #[inline(always)]
1006 fn new_empty() -> Self {
1007 Self::unknown()
1008 }
1009
1010 #[inline]
1011 unsafe fn decode(
1012 &mut self,
1013 decoder: &mut fidl::encoding::Decoder<'_, D>,
1014 offset: usize,
1015 _depth: fidl::encoding::Depth,
1016 ) -> fidl::Result<()> {
1017 decoder.debug_check_bounds::<Self>(offset);
1018 let prim = decoder.read_num::<u32>(offset);
1019
1020 *self = Self::from_primitive_allow_unknown(prim);
1021 Ok(())
1022 }
1023 }
1024 unsafe impl fidl::encoding::TypeMarker for RecordingError {
1025 type Owned = Self;
1026
1027 #[inline(always)]
1028 fn inline_align(_context: fidl::encoding::Context) -> usize {
1029 std::mem::align_of::<u32>()
1030 }
1031
1032 #[inline(always)]
1033 fn inline_size(_context: fidl::encoding::Context) -> usize {
1034 std::mem::size_of::<u32>()
1035 }
1036
1037 #[inline(always)]
1038 fn encode_is_copy() -> bool {
1039 false
1040 }
1041
1042 #[inline(always)]
1043 fn decode_is_copy() -> bool {
1044 false
1045 }
1046 }
1047
1048 impl fidl::encoding::ValueTypeMarker for RecordingError {
1049 type Borrowed<'a> = Self;
1050 #[inline(always)]
1051 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1052 *value
1053 }
1054 }
1055
1056 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for RecordingError {
1057 #[inline]
1058 unsafe fn encode(
1059 self,
1060 encoder: &mut fidl::encoding::Encoder<'_, D>,
1061 offset: usize,
1062 _depth: fidl::encoding::Depth,
1063 ) -> fidl::Result<()> {
1064 encoder.debug_check_bounds::<Self>(offset);
1065 encoder.write_num(self.into_primitive(), offset);
1066 Ok(())
1067 }
1068 }
1069
1070 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RecordingError {
1071 #[inline(always)]
1072 fn new_empty() -> Self {
1073 Self::unknown()
1074 }
1075
1076 #[inline]
1077 unsafe fn decode(
1078 &mut self,
1079 decoder: &mut fidl::encoding::Decoder<'_, D>,
1080 offset: usize,
1081 _depth: fidl::encoding::Depth,
1082 ) -> fidl::Result<()> {
1083 decoder.debug_check_bounds::<Self>(offset);
1084 let prim = decoder.read_num::<u32>(offset);
1085
1086 *self = Self::from_primitive_allow_unknown(prim);
1087 Ok(())
1088 }
1089 }
1090 unsafe impl fidl::encoding::TypeMarker for SessionState {
1091 type Owned = Self;
1092
1093 #[inline(always)]
1094 fn inline_align(_context: fidl::encoding::Context) -> usize {
1095 std::mem::align_of::<u32>()
1096 }
1097
1098 #[inline(always)]
1099 fn inline_size(_context: fidl::encoding::Context) -> usize {
1100 std::mem::size_of::<u32>()
1101 }
1102
1103 #[inline(always)]
1104 fn encode_is_copy() -> bool {
1105 false
1106 }
1107
1108 #[inline(always)]
1109 fn decode_is_copy() -> bool {
1110 false
1111 }
1112 }
1113
1114 impl fidl::encoding::ValueTypeMarker for SessionState {
1115 type Borrowed<'a> = Self;
1116 #[inline(always)]
1117 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1118 *value
1119 }
1120 }
1121
1122 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SessionState {
1123 #[inline]
1124 unsafe fn encode(
1125 self,
1126 encoder: &mut fidl::encoding::Encoder<'_, D>,
1127 offset: usize,
1128 _depth: fidl::encoding::Depth,
1129 ) -> fidl::Result<()> {
1130 encoder.debug_check_bounds::<Self>(offset);
1131 encoder.write_num(self.into_primitive(), offset);
1132 Ok(())
1133 }
1134 }
1135
1136 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SessionState {
1137 #[inline(always)]
1138 fn new_empty() -> Self {
1139 Self::unknown()
1140 }
1141
1142 #[inline]
1143 unsafe fn decode(
1144 &mut self,
1145 decoder: &mut fidl::encoding::Decoder<'_, D>,
1146 offset: usize,
1147 _depth: fidl::encoding::Depth,
1148 ) -> fidl::Result<()> {
1149 decoder.debug_check_bounds::<Self>(offset);
1150 let prim = decoder.read_num::<u32>(offset);
1151
1152 *self = Self::from_primitive_allow_unknown(prim);
1153 Ok(())
1154 }
1155 }
1156 unsafe impl fidl::encoding::TypeMarker for StartError {
1157 type Owned = Self;
1158
1159 #[inline(always)]
1160 fn inline_align(_context: fidl::encoding::Context) -> usize {
1161 std::mem::align_of::<u32>()
1162 }
1163
1164 #[inline(always)]
1165 fn inline_size(_context: fidl::encoding::Context) -> usize {
1166 std::mem::size_of::<u32>()
1167 }
1168
1169 #[inline(always)]
1170 fn encode_is_copy() -> bool {
1171 false
1172 }
1173
1174 #[inline(always)]
1175 fn decode_is_copy() -> bool {
1176 false
1177 }
1178 }
1179
1180 impl fidl::encoding::ValueTypeMarker for StartError {
1181 type Borrowed<'a> = Self;
1182 #[inline(always)]
1183 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1184 *value
1185 }
1186 }
1187
1188 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartError {
1189 #[inline]
1190 unsafe fn encode(
1191 self,
1192 encoder: &mut fidl::encoding::Encoder<'_, D>,
1193 offset: usize,
1194 _depth: fidl::encoding::Depth,
1195 ) -> fidl::Result<()> {
1196 encoder.debug_check_bounds::<Self>(offset);
1197 encoder.write_num(self.into_primitive(), offset);
1198 Ok(())
1199 }
1200 }
1201
1202 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartError {
1203 #[inline(always)]
1204 fn new_empty() -> Self {
1205 Self::unknown()
1206 }
1207
1208 #[inline]
1209 unsafe fn decode(
1210 &mut self,
1211 decoder: &mut fidl::encoding::Decoder<'_, D>,
1212 offset: usize,
1213 _depth: fidl::encoding::Depth,
1214 ) -> fidl::Result<()> {
1215 decoder.debug_check_bounds::<Self>(offset);
1216 let prim = decoder.read_num::<u32>(offset);
1217
1218 *self = Self::from_primitive_allow_unknown(prim);
1219 Ok(())
1220 }
1221 }
1222 unsafe impl fidl::encoding::TypeMarker for StopError {
1223 type Owned = Self;
1224
1225 #[inline(always)]
1226 fn inline_align(_context: fidl::encoding::Context) -> usize {
1227 std::mem::align_of::<u32>()
1228 }
1229
1230 #[inline(always)]
1231 fn inline_size(_context: fidl::encoding::Context) -> usize {
1232 std::mem::size_of::<u32>()
1233 }
1234
1235 #[inline(always)]
1236 fn encode_is_copy() -> bool {
1237 false
1238 }
1239
1240 #[inline(always)]
1241 fn decode_is_copy() -> bool {
1242 false
1243 }
1244 }
1245
1246 impl fidl::encoding::ValueTypeMarker for StopError {
1247 type Borrowed<'a> = Self;
1248 #[inline(always)]
1249 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1250 *value
1251 }
1252 }
1253
1254 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StopError {
1255 #[inline]
1256 unsafe fn encode(
1257 self,
1258 encoder: &mut fidl::encoding::Encoder<'_, D>,
1259 offset: usize,
1260 _depth: fidl::encoding::Depth,
1261 ) -> fidl::Result<()> {
1262 encoder.debug_check_bounds::<Self>(offset);
1263 encoder.write_num(self.into_primitive(), offset);
1264 Ok(())
1265 }
1266 }
1267
1268 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopError {
1269 #[inline(always)]
1270 fn new_empty() -> Self {
1271 Self::unknown()
1272 }
1273
1274 #[inline]
1275 unsafe fn decode(
1276 &mut self,
1277 decoder: &mut fidl::encoding::Decoder<'_, D>,
1278 offset: usize,
1279 _depth: fidl::encoding::Depth,
1280 ) -> fidl::Result<()> {
1281 decoder.debug_check_bounds::<Self>(offset);
1282 let prim = decoder.read_num::<u32>(offset);
1283
1284 *self = Self::from_primitive_allow_unknown(prim);
1285 Ok(())
1286 }
1287 }
1288
1289 impl fidl::encoding::ValueTypeMarker for ProvisionerGetKnownCategoriesResponse {
1290 type Borrowed<'a> = &'a Self;
1291 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1292 value
1293 }
1294 }
1295
1296 unsafe impl fidl::encoding::TypeMarker for ProvisionerGetKnownCategoriesResponse {
1297 type Owned = Self;
1298
1299 #[inline(always)]
1300 fn inline_align(_context: fidl::encoding::Context) -> usize {
1301 8
1302 }
1303
1304 #[inline(always)]
1305 fn inline_size(_context: fidl::encoding::Context) -> usize {
1306 16
1307 }
1308 }
1309
1310 unsafe impl<D: fidl::encoding::ResourceDialect>
1311 fidl::encoding::Encode<ProvisionerGetKnownCategoriesResponse, D>
1312 for &ProvisionerGetKnownCategoriesResponse
1313 {
1314 #[inline]
1315 unsafe fn encode(
1316 self,
1317 encoder: &mut fidl::encoding::Encoder<'_, D>,
1318 offset: usize,
1319 _depth: fidl::encoding::Depth,
1320 ) -> fidl::Result<()> {
1321 encoder.debug_check_bounds::<ProvisionerGetKnownCategoriesResponse>(offset);
1322 fidl::encoding::Encode::<ProvisionerGetKnownCategoriesResponse, D>::encode(
1324 (
1325 <fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000> as fidl::encoding::ValueTypeMarker>::borrow(&self.categories),
1326 ),
1327 encoder, offset, _depth
1328 )
1329 }
1330 }
1331 unsafe impl<
1332 D: fidl::encoding::ResourceDialect,
1333 T0: fidl::encoding::Encode<
1334 fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>,
1335 D,
1336 >,
1337 > fidl::encoding::Encode<ProvisionerGetKnownCategoriesResponse, D> for (T0,)
1338 {
1339 #[inline]
1340 unsafe fn encode(
1341 self,
1342 encoder: &mut fidl::encoding::Encoder<'_, D>,
1343 offset: usize,
1344 depth: fidl::encoding::Depth,
1345 ) -> fidl::Result<()> {
1346 encoder.debug_check_bounds::<ProvisionerGetKnownCategoriesResponse>(offset);
1347 self.0.encode(encoder, offset + 0, depth)?;
1351 Ok(())
1352 }
1353 }
1354
1355 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1356 for ProvisionerGetKnownCategoriesResponse
1357 {
1358 #[inline(always)]
1359 fn new_empty() -> Self {
1360 Self {
1361 categories: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>, D),
1362 }
1363 }
1364
1365 #[inline]
1366 unsafe fn decode(
1367 &mut self,
1368 decoder: &mut fidl::encoding::Decoder<'_, D>,
1369 offset: usize,
1370 _depth: fidl::encoding::Depth,
1371 ) -> fidl::Result<()> {
1372 decoder.debug_check_bounds::<Self>(offset);
1373 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>, D, &mut self.categories, decoder, offset + 0, _depth)?;
1375 Ok(())
1376 }
1377 }
1378
1379 impl fidl::encoding::ValueTypeMarker for ProvisionerGetProvidersResponse {
1380 type Borrowed<'a> = &'a Self;
1381 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1382 value
1383 }
1384 }
1385
1386 unsafe impl fidl::encoding::TypeMarker for ProvisionerGetProvidersResponse {
1387 type Owned = Self;
1388
1389 #[inline(always)]
1390 fn inline_align(_context: fidl::encoding::Context) -> usize {
1391 8
1392 }
1393
1394 #[inline(always)]
1395 fn inline_size(_context: fidl::encoding::Context) -> usize {
1396 16
1397 }
1398 }
1399
1400 unsafe impl<D: fidl::encoding::ResourceDialect>
1401 fidl::encoding::Encode<ProvisionerGetProvidersResponse, D>
1402 for &ProvisionerGetProvidersResponse
1403 {
1404 #[inline]
1405 unsafe fn encode(
1406 self,
1407 encoder: &mut fidl::encoding::Encoder<'_, D>,
1408 offset: usize,
1409 _depth: fidl::encoding::Depth,
1410 ) -> fidl::Result<()> {
1411 encoder.debug_check_bounds::<ProvisionerGetProvidersResponse>(offset);
1412 fidl::encoding::Encode::<ProvisionerGetProvidersResponse, D>::encode(
1414 (
1415 <fidl::encoding::Vector<ProviderInfo, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.providers),
1416 ),
1417 encoder, offset, _depth
1418 )
1419 }
1420 }
1421 unsafe impl<
1422 D: fidl::encoding::ResourceDialect,
1423 T0: fidl::encoding::Encode<fidl::encoding::Vector<ProviderInfo, 100>, D>,
1424 > fidl::encoding::Encode<ProvisionerGetProvidersResponse, D> for (T0,)
1425 {
1426 #[inline]
1427 unsafe fn encode(
1428 self,
1429 encoder: &mut fidl::encoding::Encoder<'_, D>,
1430 offset: usize,
1431 depth: fidl::encoding::Depth,
1432 ) -> fidl::Result<()> {
1433 encoder.debug_check_bounds::<ProvisionerGetProvidersResponse>(offset);
1434 self.0.encode(encoder, offset + 0, depth)?;
1438 Ok(())
1439 }
1440 }
1441
1442 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1443 for ProvisionerGetProvidersResponse
1444 {
1445 #[inline(always)]
1446 fn new_empty() -> Self {
1447 Self { providers: fidl::new_empty!(fidl::encoding::Vector<ProviderInfo, 100>, D) }
1448 }
1449
1450 #[inline]
1451 unsafe fn decode(
1452 &mut self,
1453 decoder: &mut fidl::encoding::Decoder<'_, D>,
1454 offset: usize,
1455 _depth: fidl::encoding::Depth,
1456 ) -> fidl::Result<()> {
1457 decoder.debug_check_bounds::<Self>(offset);
1458 fidl::decode!(fidl::encoding::Vector<ProviderInfo, 100>, D, &mut self.providers, decoder, offset + 0, _depth)?;
1460 Ok(())
1461 }
1462 }
1463
1464 impl fidl::encoding::ValueTypeMarker for SessionManagerAbortTraceSessionRequest {
1465 type Borrowed<'a> = &'a Self;
1466 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1467 value
1468 }
1469 }
1470
1471 unsafe impl fidl::encoding::TypeMarker for SessionManagerAbortTraceSessionRequest {
1472 type Owned = Self;
1473
1474 #[inline(always)]
1475 fn inline_align(_context: fidl::encoding::Context) -> usize {
1476 8
1477 }
1478
1479 #[inline(always)]
1480 fn inline_size(_context: fidl::encoding::Context) -> usize {
1481 8
1482 }
1483 #[inline(always)]
1484 fn encode_is_copy() -> bool {
1485 true
1486 }
1487
1488 #[inline(always)]
1489 fn decode_is_copy() -> bool {
1490 true
1491 }
1492 }
1493
1494 unsafe impl<D: fidl::encoding::ResourceDialect>
1495 fidl::encoding::Encode<SessionManagerAbortTraceSessionRequest, D>
1496 for &SessionManagerAbortTraceSessionRequest
1497 {
1498 #[inline]
1499 unsafe fn encode(
1500 self,
1501 encoder: &mut fidl::encoding::Encoder<'_, D>,
1502 offset: usize,
1503 _depth: fidl::encoding::Depth,
1504 ) -> fidl::Result<()> {
1505 encoder.debug_check_bounds::<SessionManagerAbortTraceSessionRequest>(offset);
1506 unsafe {
1507 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1509 (buf_ptr as *mut SessionManagerAbortTraceSessionRequest).write_unaligned(
1510 (self as *const SessionManagerAbortTraceSessionRequest).read(),
1511 );
1512 }
1515 Ok(())
1516 }
1517 }
1518 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
1519 fidl::encoding::Encode<SessionManagerAbortTraceSessionRequest, D> for (T0,)
1520 {
1521 #[inline]
1522 unsafe fn encode(
1523 self,
1524 encoder: &mut fidl::encoding::Encoder<'_, D>,
1525 offset: usize,
1526 depth: fidl::encoding::Depth,
1527 ) -> fidl::Result<()> {
1528 encoder.debug_check_bounds::<SessionManagerAbortTraceSessionRequest>(offset);
1529 self.0.encode(encoder, offset + 0, depth)?;
1533 Ok(())
1534 }
1535 }
1536
1537 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1538 for SessionManagerAbortTraceSessionRequest
1539 {
1540 #[inline(always)]
1541 fn new_empty() -> Self {
1542 Self { task_id: fidl::new_empty!(u64, D) }
1543 }
1544
1545 #[inline]
1546 unsafe fn decode(
1547 &mut self,
1548 decoder: &mut fidl::encoding::Decoder<'_, D>,
1549 offset: usize,
1550 _depth: fidl::encoding::Depth,
1551 ) -> fidl::Result<()> {
1552 decoder.debug_check_bounds::<Self>(offset);
1553 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1554 unsafe {
1557 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1558 }
1559 Ok(())
1560 }
1561 }
1562
1563 impl fidl::encoding::ValueTypeMarker for SessionManagerEndTraceSessionResponse {
1564 type Borrowed<'a> = &'a Self;
1565 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1566 value
1567 }
1568 }
1569
1570 unsafe impl fidl::encoding::TypeMarker for SessionManagerEndTraceSessionResponse {
1571 type Owned = Self;
1572
1573 #[inline(always)]
1574 fn inline_align(_context: fidl::encoding::Context) -> usize {
1575 8
1576 }
1577
1578 #[inline(always)]
1579 fn inline_size(_context: fidl::encoding::Context) -> usize {
1580 32
1581 }
1582 }
1583
1584 unsafe impl<D: fidl::encoding::ResourceDialect>
1585 fidl::encoding::Encode<SessionManagerEndTraceSessionResponse, D>
1586 for &SessionManagerEndTraceSessionResponse
1587 {
1588 #[inline]
1589 unsafe fn encode(
1590 self,
1591 encoder: &mut fidl::encoding::Encoder<'_, D>,
1592 offset: usize,
1593 _depth: fidl::encoding::Depth,
1594 ) -> fidl::Result<()> {
1595 encoder.debug_check_bounds::<SessionManagerEndTraceSessionResponse>(offset);
1596 fidl::encoding::Encode::<SessionManagerEndTraceSessionResponse, D>::encode(
1598 (
1599 <TraceOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
1600 <StopResult as fidl::encoding::ValueTypeMarker>::borrow(&self.result),
1601 ),
1602 encoder,
1603 offset,
1604 _depth,
1605 )
1606 }
1607 }
1608 unsafe impl<
1609 D: fidl::encoding::ResourceDialect,
1610 T0: fidl::encoding::Encode<TraceOptions, D>,
1611 T1: fidl::encoding::Encode<StopResult, D>,
1612 > fidl::encoding::Encode<SessionManagerEndTraceSessionResponse, D> for (T0, T1)
1613 {
1614 #[inline]
1615 unsafe fn encode(
1616 self,
1617 encoder: &mut fidl::encoding::Encoder<'_, D>,
1618 offset: usize,
1619 depth: fidl::encoding::Depth,
1620 ) -> fidl::Result<()> {
1621 encoder.debug_check_bounds::<SessionManagerEndTraceSessionResponse>(offset);
1622 self.0.encode(encoder, offset + 0, depth)?;
1626 self.1.encode(encoder, offset + 16, depth)?;
1627 Ok(())
1628 }
1629 }
1630
1631 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1632 for SessionManagerEndTraceSessionResponse
1633 {
1634 #[inline(always)]
1635 fn new_empty() -> Self {
1636 Self {
1637 options: fidl::new_empty!(TraceOptions, D),
1638 result: fidl::new_empty!(StopResult, D),
1639 }
1640 }
1641
1642 #[inline]
1643 unsafe fn decode(
1644 &mut self,
1645 decoder: &mut fidl::encoding::Decoder<'_, D>,
1646 offset: usize,
1647 _depth: fidl::encoding::Depth,
1648 ) -> fidl::Result<()> {
1649 decoder.debug_check_bounds::<Self>(offset);
1650 fidl::decode!(TraceOptions, D, &mut self.options, decoder, offset + 0, _depth)?;
1652 fidl::decode!(StopResult, D, &mut self.result, decoder, offset + 16, _depth)?;
1653 Ok(())
1654 }
1655 }
1656
1657 impl fidl::encoding::ValueTypeMarker for SessionManagerGetKnownCategoriesResponse {
1658 type Borrowed<'a> = &'a Self;
1659 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1660 value
1661 }
1662 }
1663
1664 unsafe impl fidl::encoding::TypeMarker for SessionManagerGetKnownCategoriesResponse {
1665 type Owned = Self;
1666
1667 #[inline(always)]
1668 fn inline_align(_context: fidl::encoding::Context) -> usize {
1669 8
1670 }
1671
1672 #[inline(always)]
1673 fn inline_size(_context: fidl::encoding::Context) -> usize {
1674 16
1675 }
1676 }
1677
1678 unsafe impl<D: fidl::encoding::ResourceDialect>
1679 fidl::encoding::Encode<SessionManagerGetKnownCategoriesResponse, D>
1680 for &SessionManagerGetKnownCategoriesResponse
1681 {
1682 #[inline]
1683 unsafe fn encode(
1684 self,
1685 encoder: &mut fidl::encoding::Encoder<'_, D>,
1686 offset: usize,
1687 _depth: fidl::encoding::Depth,
1688 ) -> fidl::Result<()> {
1689 encoder.debug_check_bounds::<SessionManagerGetKnownCategoriesResponse>(offset);
1690 fidl::encoding::Encode::<SessionManagerGetKnownCategoriesResponse, D>::encode(
1692 (
1693 <fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000> as fidl::encoding::ValueTypeMarker>::borrow(&self.categories),
1694 ),
1695 encoder, offset, _depth
1696 )
1697 }
1698 }
1699 unsafe impl<
1700 D: fidl::encoding::ResourceDialect,
1701 T0: fidl::encoding::Encode<
1702 fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>,
1703 D,
1704 >,
1705 > fidl::encoding::Encode<SessionManagerGetKnownCategoriesResponse, D> for (T0,)
1706 {
1707 #[inline]
1708 unsafe fn encode(
1709 self,
1710 encoder: &mut fidl::encoding::Encoder<'_, D>,
1711 offset: usize,
1712 depth: fidl::encoding::Depth,
1713 ) -> fidl::Result<()> {
1714 encoder.debug_check_bounds::<SessionManagerGetKnownCategoriesResponse>(offset);
1715 self.0.encode(encoder, offset + 0, depth)?;
1719 Ok(())
1720 }
1721 }
1722
1723 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1724 for SessionManagerGetKnownCategoriesResponse
1725 {
1726 #[inline(always)]
1727 fn new_empty() -> Self {
1728 Self {
1729 categories: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>, D),
1730 }
1731 }
1732
1733 #[inline]
1734 unsafe fn decode(
1735 &mut self,
1736 decoder: &mut fidl::encoding::Decoder<'_, D>,
1737 offset: usize,
1738 _depth: fidl::encoding::Depth,
1739 ) -> fidl::Result<()> {
1740 decoder.debug_check_bounds::<Self>(offset);
1741 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_tracing__common::KnownCategory, 5000>, D, &mut self.categories, decoder, offset + 0, _depth)?;
1743 Ok(())
1744 }
1745 }
1746
1747 impl fidl::encoding::ValueTypeMarker for SessionManagerGetProvidersResponse {
1748 type Borrowed<'a> = &'a Self;
1749 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1750 value
1751 }
1752 }
1753
1754 unsafe impl fidl::encoding::TypeMarker for SessionManagerGetProvidersResponse {
1755 type Owned = Self;
1756
1757 #[inline(always)]
1758 fn inline_align(_context: fidl::encoding::Context) -> usize {
1759 8
1760 }
1761
1762 #[inline(always)]
1763 fn inline_size(_context: fidl::encoding::Context) -> usize {
1764 16
1765 }
1766 }
1767
1768 unsafe impl<D: fidl::encoding::ResourceDialect>
1769 fidl::encoding::Encode<SessionManagerGetProvidersResponse, D>
1770 for &SessionManagerGetProvidersResponse
1771 {
1772 #[inline]
1773 unsafe fn encode(
1774 self,
1775 encoder: &mut fidl::encoding::Encoder<'_, D>,
1776 offset: usize,
1777 _depth: fidl::encoding::Depth,
1778 ) -> fidl::Result<()> {
1779 encoder.debug_check_bounds::<SessionManagerGetProvidersResponse>(offset);
1780 fidl::encoding::Encode::<SessionManagerGetProvidersResponse, D>::encode(
1782 (
1783 <fidl::encoding::Vector<ProviderInfo, 100> as fidl::encoding::ValueTypeMarker>::borrow(&self.providers),
1784 ),
1785 encoder, offset, _depth
1786 )
1787 }
1788 }
1789 unsafe impl<
1790 D: fidl::encoding::ResourceDialect,
1791 T0: fidl::encoding::Encode<fidl::encoding::Vector<ProviderInfo, 100>, D>,
1792 > fidl::encoding::Encode<SessionManagerGetProvidersResponse, D> for (T0,)
1793 {
1794 #[inline]
1795 unsafe fn encode(
1796 self,
1797 encoder: &mut fidl::encoding::Encoder<'_, D>,
1798 offset: usize,
1799 depth: fidl::encoding::Depth,
1800 ) -> fidl::Result<()> {
1801 encoder.debug_check_bounds::<SessionManagerGetProvidersResponse>(offset);
1802 self.0.encode(encoder, offset + 0, depth)?;
1806 Ok(())
1807 }
1808 }
1809
1810 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1811 for SessionManagerGetProvidersResponse
1812 {
1813 #[inline(always)]
1814 fn new_empty() -> Self {
1815 Self { providers: fidl::new_empty!(fidl::encoding::Vector<ProviderInfo, 100>, D) }
1816 }
1817
1818 #[inline]
1819 unsafe fn decode(
1820 &mut self,
1821 decoder: &mut fidl::encoding::Decoder<'_, D>,
1822 offset: usize,
1823 _depth: fidl::encoding::Depth,
1824 ) -> fidl::Result<()> {
1825 decoder.debug_check_bounds::<Self>(offset);
1826 fidl::decode!(fidl::encoding::Vector<ProviderInfo, 100>, D, &mut self.providers, decoder, offset + 0, _depth)?;
1828 Ok(())
1829 }
1830 }
1831
1832 impl fidl::encoding::ValueTypeMarker for SessionManagerStartTraceSessionResponse {
1833 type Borrowed<'a> = &'a Self;
1834 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1835 value
1836 }
1837 }
1838
1839 unsafe impl fidl::encoding::TypeMarker for SessionManagerStartTraceSessionResponse {
1840 type Owned = Self;
1841
1842 #[inline(always)]
1843 fn inline_align(_context: fidl::encoding::Context) -> usize {
1844 8
1845 }
1846
1847 #[inline(always)]
1848 fn inline_size(_context: fidl::encoding::Context) -> usize {
1849 8
1850 }
1851 #[inline(always)]
1852 fn encode_is_copy() -> bool {
1853 true
1854 }
1855
1856 #[inline(always)]
1857 fn decode_is_copy() -> bool {
1858 true
1859 }
1860 }
1861
1862 unsafe impl<D: fidl::encoding::ResourceDialect>
1863 fidl::encoding::Encode<SessionManagerStartTraceSessionResponse, D>
1864 for &SessionManagerStartTraceSessionResponse
1865 {
1866 #[inline]
1867 unsafe fn encode(
1868 self,
1869 encoder: &mut fidl::encoding::Encoder<'_, D>,
1870 offset: usize,
1871 _depth: fidl::encoding::Depth,
1872 ) -> fidl::Result<()> {
1873 encoder.debug_check_bounds::<SessionManagerStartTraceSessionResponse>(offset);
1874 unsafe {
1875 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1877 (buf_ptr as *mut SessionManagerStartTraceSessionResponse).write_unaligned(
1878 (self as *const SessionManagerStartTraceSessionResponse).read(),
1879 );
1880 }
1883 Ok(())
1884 }
1885 }
1886 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
1887 fidl::encoding::Encode<SessionManagerStartTraceSessionResponse, D> for (T0,)
1888 {
1889 #[inline]
1890 unsafe fn encode(
1891 self,
1892 encoder: &mut fidl::encoding::Encoder<'_, D>,
1893 offset: usize,
1894 depth: fidl::encoding::Depth,
1895 ) -> fidl::Result<()> {
1896 encoder.debug_check_bounds::<SessionManagerStartTraceSessionResponse>(offset);
1897 self.0.encode(encoder, offset + 0, depth)?;
1901 Ok(())
1902 }
1903 }
1904
1905 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1906 for SessionManagerStartTraceSessionResponse
1907 {
1908 #[inline(always)]
1909 fn new_empty() -> Self {
1910 Self { task_id: fidl::new_empty!(u64, D) }
1911 }
1912
1913 #[inline]
1914 unsafe fn decode(
1915 &mut self,
1916 decoder: &mut fidl::encoding::Decoder<'_, D>,
1917 offset: usize,
1918 _depth: fidl::encoding::Depth,
1919 ) -> fidl::Result<()> {
1920 decoder.debug_check_bounds::<Self>(offset);
1921 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1922 unsafe {
1925 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1926 }
1927 Ok(())
1928 }
1929 }
1930
1931 impl fidl::encoding::ValueTypeMarker for SessionOnSessionStateChangeRequest {
1932 type Borrowed<'a> = &'a Self;
1933 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1934 value
1935 }
1936 }
1937
1938 unsafe impl fidl::encoding::TypeMarker for SessionOnSessionStateChangeRequest {
1939 type Owned = Self;
1940
1941 #[inline(always)]
1942 fn inline_align(_context: fidl::encoding::Context) -> usize {
1943 4
1944 }
1945
1946 #[inline(always)]
1947 fn inline_size(_context: fidl::encoding::Context) -> usize {
1948 4
1949 }
1950 }
1951
1952 unsafe impl<D: fidl::encoding::ResourceDialect>
1953 fidl::encoding::Encode<SessionOnSessionStateChangeRequest, D>
1954 for &SessionOnSessionStateChangeRequest
1955 {
1956 #[inline]
1957 unsafe fn encode(
1958 self,
1959 encoder: &mut fidl::encoding::Encoder<'_, D>,
1960 offset: usize,
1961 _depth: fidl::encoding::Depth,
1962 ) -> fidl::Result<()> {
1963 encoder.debug_check_bounds::<SessionOnSessionStateChangeRequest>(offset);
1964 fidl::encoding::Encode::<SessionOnSessionStateChangeRequest, D>::encode(
1966 (<SessionState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),),
1967 encoder,
1968 offset,
1969 _depth,
1970 )
1971 }
1972 }
1973 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<SessionState, D>>
1974 fidl::encoding::Encode<SessionOnSessionStateChangeRequest, D> for (T0,)
1975 {
1976 #[inline]
1977 unsafe fn encode(
1978 self,
1979 encoder: &mut fidl::encoding::Encoder<'_, D>,
1980 offset: usize,
1981 depth: fidl::encoding::Depth,
1982 ) -> fidl::Result<()> {
1983 encoder.debug_check_bounds::<SessionOnSessionStateChangeRequest>(offset);
1984 self.0.encode(encoder, offset + 0, depth)?;
1988 Ok(())
1989 }
1990 }
1991
1992 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1993 for SessionOnSessionStateChangeRequest
1994 {
1995 #[inline(always)]
1996 fn new_empty() -> Self {
1997 Self { state: fidl::new_empty!(SessionState, D) }
1998 }
1999
2000 #[inline]
2001 unsafe fn decode(
2002 &mut self,
2003 decoder: &mut fidl::encoding::Decoder<'_, D>,
2004 offset: usize,
2005 _depth: fidl::encoding::Depth,
2006 ) -> fidl::Result<()> {
2007 decoder.debug_check_bounds::<Self>(offset);
2008 fidl::decode!(SessionState, D, &mut self.state, decoder, offset + 0, _depth)?;
2010 Ok(())
2011 }
2012 }
2013
2014 impl fidl::encoding::ValueTypeMarker for SessionWatchAlertResponse {
2015 type Borrowed<'a> = &'a Self;
2016 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2017 value
2018 }
2019 }
2020
2021 unsafe impl fidl::encoding::TypeMarker for SessionWatchAlertResponse {
2022 type Owned = Self;
2023
2024 #[inline(always)]
2025 fn inline_align(_context: fidl::encoding::Context) -> usize {
2026 8
2027 }
2028
2029 #[inline(always)]
2030 fn inline_size(_context: fidl::encoding::Context) -> usize {
2031 16
2032 }
2033 }
2034
2035 unsafe impl<D: fidl::encoding::ResourceDialect>
2036 fidl::encoding::Encode<SessionWatchAlertResponse, D> for &SessionWatchAlertResponse
2037 {
2038 #[inline]
2039 unsafe fn encode(
2040 self,
2041 encoder: &mut fidl::encoding::Encoder<'_, D>,
2042 offset: usize,
2043 _depth: fidl::encoding::Depth,
2044 ) -> fidl::Result<()> {
2045 encoder.debug_check_bounds::<SessionWatchAlertResponse>(offset);
2046 fidl::encoding::Encode::<SessionWatchAlertResponse, D>::encode(
2048 (<fidl::encoding::BoundedString<14> as fidl::encoding::ValueTypeMarker>::borrow(
2049 &self.alert_name,
2050 ),),
2051 encoder,
2052 offset,
2053 _depth,
2054 )
2055 }
2056 }
2057 unsafe impl<
2058 D: fidl::encoding::ResourceDialect,
2059 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<14>, D>,
2060 > fidl::encoding::Encode<SessionWatchAlertResponse, D> for (T0,)
2061 {
2062 #[inline]
2063 unsafe fn encode(
2064 self,
2065 encoder: &mut fidl::encoding::Encoder<'_, D>,
2066 offset: usize,
2067 depth: fidl::encoding::Depth,
2068 ) -> fidl::Result<()> {
2069 encoder.debug_check_bounds::<SessionWatchAlertResponse>(offset);
2070 self.0.encode(encoder, offset + 0, depth)?;
2074 Ok(())
2075 }
2076 }
2077
2078 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2079 for SessionWatchAlertResponse
2080 {
2081 #[inline(always)]
2082 fn new_empty() -> Self {
2083 Self { alert_name: fidl::new_empty!(fidl::encoding::BoundedString<14>, D) }
2084 }
2085
2086 #[inline]
2087 unsafe fn decode(
2088 &mut self,
2089 decoder: &mut fidl::encoding::Decoder<'_, D>,
2090 offset: usize,
2091 _depth: fidl::encoding::Depth,
2092 ) -> fidl::Result<()> {
2093 decoder.debug_check_bounds::<Self>(offset);
2094 fidl::decode!(
2096 fidl::encoding::BoundedString<14>,
2097 D,
2098 &mut self.alert_name,
2099 decoder,
2100 offset + 0,
2101 _depth
2102 )?;
2103 Ok(())
2104 }
2105 }
2106
2107 impl FxtVersion {
2108 #[inline(always)]
2109 fn max_ordinal_present(&self) -> u64 {
2110 if let Some(_) = self.minor {
2111 return 2;
2112 }
2113 if let Some(_) = self.major {
2114 return 1;
2115 }
2116 0
2117 }
2118 }
2119
2120 impl fidl::encoding::ValueTypeMarker for FxtVersion {
2121 type Borrowed<'a> = &'a Self;
2122 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2123 value
2124 }
2125 }
2126
2127 unsafe impl fidl::encoding::TypeMarker for FxtVersion {
2128 type Owned = Self;
2129
2130 #[inline(always)]
2131 fn inline_align(_context: fidl::encoding::Context) -> usize {
2132 8
2133 }
2134
2135 #[inline(always)]
2136 fn inline_size(_context: fidl::encoding::Context) -> usize {
2137 16
2138 }
2139 }
2140
2141 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FxtVersion, D>
2142 for &FxtVersion
2143 {
2144 unsafe fn encode(
2145 self,
2146 encoder: &mut fidl::encoding::Encoder<'_, D>,
2147 offset: usize,
2148 mut depth: fidl::encoding::Depth,
2149 ) -> fidl::Result<()> {
2150 encoder.debug_check_bounds::<FxtVersion>(offset);
2151 let max_ordinal: u64 = self.max_ordinal_present();
2153 encoder.write_num(max_ordinal, offset);
2154 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2155 if max_ordinal == 0 {
2157 return Ok(());
2158 }
2159 depth.increment()?;
2160 let envelope_size = 8;
2161 let bytes_len = max_ordinal as usize * envelope_size;
2162 #[allow(unused_variables)]
2163 let offset = encoder.out_of_line_offset(bytes_len);
2164 let mut _prev_end_offset: usize = 0;
2165 if 1 > max_ordinal {
2166 return Ok(());
2167 }
2168
2169 let cur_offset: usize = (1 - 1) * envelope_size;
2172
2173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2175
2176 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2181 self.major.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2182 encoder,
2183 offset + cur_offset,
2184 depth,
2185 )?;
2186
2187 _prev_end_offset = cur_offset + envelope_size;
2188 if 2 > max_ordinal {
2189 return Ok(());
2190 }
2191
2192 let cur_offset: usize = (2 - 1) * envelope_size;
2195
2196 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2198
2199 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2204 self.minor.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2205 encoder,
2206 offset + cur_offset,
2207 depth,
2208 )?;
2209
2210 _prev_end_offset = cur_offset + envelope_size;
2211
2212 Ok(())
2213 }
2214 }
2215
2216 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FxtVersion {
2217 #[inline(always)]
2218 fn new_empty() -> Self {
2219 Self::default()
2220 }
2221
2222 unsafe fn decode(
2223 &mut self,
2224 decoder: &mut fidl::encoding::Decoder<'_, D>,
2225 offset: usize,
2226 mut depth: fidl::encoding::Depth,
2227 ) -> fidl::Result<()> {
2228 decoder.debug_check_bounds::<Self>(offset);
2229 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2230 None => return Err(fidl::Error::NotNullable),
2231 Some(len) => len,
2232 };
2233 if len == 0 {
2235 return Ok(());
2236 };
2237 depth.increment()?;
2238 let envelope_size = 8;
2239 let bytes_len = len * envelope_size;
2240 let offset = decoder.out_of_line_offset(bytes_len)?;
2241 let mut _next_ordinal_to_read = 0;
2243 let mut next_offset = offset;
2244 let end_offset = offset + bytes_len;
2245 _next_ordinal_to_read += 1;
2246 if next_offset >= end_offset {
2247 return Ok(());
2248 }
2249
2250 while _next_ordinal_to_read < 1 {
2252 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2253 _next_ordinal_to_read += 1;
2254 next_offset += envelope_size;
2255 }
2256
2257 let next_out_of_line = decoder.next_out_of_line();
2258 let handles_before = decoder.remaining_handles();
2259 if let Some((inlined, num_bytes, num_handles)) =
2260 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2261 {
2262 let member_inline_size =
2263 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2264 if inlined != (member_inline_size <= 4) {
2265 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2266 }
2267 let inner_offset;
2268 let mut inner_depth = depth.clone();
2269 if inlined {
2270 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2271 inner_offset = next_offset;
2272 } else {
2273 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2274 inner_depth.increment()?;
2275 }
2276 let val_ref = self.major.get_or_insert_with(|| fidl::new_empty!(u32, D));
2277 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2278 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2279 {
2280 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2281 }
2282 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2283 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2284 }
2285 }
2286
2287 next_offset += envelope_size;
2288 _next_ordinal_to_read += 1;
2289 if next_offset >= end_offset {
2290 return Ok(());
2291 }
2292
2293 while _next_ordinal_to_read < 2 {
2295 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2296 _next_ordinal_to_read += 1;
2297 next_offset += envelope_size;
2298 }
2299
2300 let next_out_of_line = decoder.next_out_of_line();
2301 let handles_before = decoder.remaining_handles();
2302 if let Some((inlined, num_bytes, num_handles)) =
2303 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2304 {
2305 let member_inline_size =
2306 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2307 if inlined != (member_inline_size <= 4) {
2308 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2309 }
2310 let inner_offset;
2311 let mut inner_depth = depth.clone();
2312 if inlined {
2313 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2314 inner_offset = next_offset;
2315 } else {
2316 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2317 inner_depth.increment()?;
2318 }
2319 let val_ref = self.minor.get_or_insert_with(|| fidl::new_empty!(u32, D));
2320 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2321 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2322 {
2323 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2324 }
2325 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2326 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2327 }
2328 }
2329
2330 next_offset += envelope_size;
2331
2332 while next_offset < end_offset {
2334 _next_ordinal_to_read += 1;
2335 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2336 next_offset += envelope_size;
2337 }
2338
2339 Ok(())
2340 }
2341 }
2342
2343 impl ProviderInfo {
2344 #[inline(always)]
2345 fn max_ordinal_present(&self) -> u64 {
2346 if let Some(_) = self.name {
2347 return 3;
2348 }
2349 if let Some(_) = self.pid {
2350 return 2;
2351 }
2352 if let Some(_) = self.id {
2353 return 1;
2354 }
2355 0
2356 }
2357 }
2358
2359 impl fidl::encoding::ValueTypeMarker for ProviderInfo {
2360 type Borrowed<'a> = &'a Self;
2361 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2362 value
2363 }
2364 }
2365
2366 unsafe impl fidl::encoding::TypeMarker for ProviderInfo {
2367 type Owned = Self;
2368
2369 #[inline(always)]
2370 fn inline_align(_context: fidl::encoding::Context) -> usize {
2371 8
2372 }
2373
2374 #[inline(always)]
2375 fn inline_size(_context: fidl::encoding::Context) -> usize {
2376 16
2377 }
2378 }
2379
2380 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProviderInfo, D>
2381 for &ProviderInfo
2382 {
2383 unsafe fn encode(
2384 self,
2385 encoder: &mut fidl::encoding::Encoder<'_, D>,
2386 offset: usize,
2387 mut depth: fidl::encoding::Depth,
2388 ) -> fidl::Result<()> {
2389 encoder.debug_check_bounds::<ProviderInfo>(offset);
2390 let max_ordinal: u64 = self.max_ordinal_present();
2392 encoder.write_num(max_ordinal, offset);
2393 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2394 if max_ordinal == 0 {
2396 return Ok(());
2397 }
2398 depth.increment()?;
2399 let envelope_size = 8;
2400 let bytes_len = max_ordinal as usize * envelope_size;
2401 #[allow(unused_variables)]
2402 let offset = encoder.out_of_line_offset(bytes_len);
2403 let mut _prev_end_offset: usize = 0;
2404 if 1 > max_ordinal {
2405 return Ok(());
2406 }
2407
2408 let cur_offset: usize = (1 - 1) * envelope_size;
2411
2412 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2414
2415 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2420 self.id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2421 encoder,
2422 offset + cur_offset,
2423 depth,
2424 )?;
2425
2426 _prev_end_offset = cur_offset + envelope_size;
2427 if 2 > max_ordinal {
2428 return Ok(());
2429 }
2430
2431 let cur_offset: usize = (2 - 1) * envelope_size;
2434
2435 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2437
2438 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2443 self.pid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2444 encoder,
2445 offset + cur_offset,
2446 depth,
2447 )?;
2448
2449 _prev_end_offset = cur_offset + envelope_size;
2450 if 3 > max_ordinal {
2451 return Ok(());
2452 }
2453
2454 let cur_offset: usize = (3 - 1) * envelope_size;
2457
2458 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2460
2461 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
2466 self.name.as_ref().map(
2467 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
2468 ),
2469 encoder,
2470 offset + cur_offset,
2471 depth,
2472 )?;
2473
2474 _prev_end_offset = cur_offset + envelope_size;
2475
2476 Ok(())
2477 }
2478 }
2479
2480 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProviderInfo {
2481 #[inline(always)]
2482 fn new_empty() -> Self {
2483 Self::default()
2484 }
2485
2486 unsafe fn decode(
2487 &mut self,
2488 decoder: &mut fidl::encoding::Decoder<'_, D>,
2489 offset: usize,
2490 mut depth: fidl::encoding::Depth,
2491 ) -> fidl::Result<()> {
2492 decoder.debug_check_bounds::<Self>(offset);
2493 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2494 None => return Err(fidl::Error::NotNullable),
2495 Some(len) => len,
2496 };
2497 if len == 0 {
2499 return Ok(());
2500 };
2501 depth.increment()?;
2502 let envelope_size = 8;
2503 let bytes_len = len * envelope_size;
2504 let offset = decoder.out_of_line_offset(bytes_len)?;
2505 let mut _next_ordinal_to_read = 0;
2507 let mut next_offset = offset;
2508 let end_offset = offset + bytes_len;
2509 _next_ordinal_to_read += 1;
2510 if next_offset >= end_offset {
2511 return Ok(());
2512 }
2513
2514 while _next_ordinal_to_read < 1 {
2516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2517 _next_ordinal_to_read += 1;
2518 next_offset += envelope_size;
2519 }
2520
2521 let next_out_of_line = decoder.next_out_of_line();
2522 let handles_before = decoder.remaining_handles();
2523 if let Some((inlined, num_bytes, num_handles)) =
2524 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2525 {
2526 let member_inline_size =
2527 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2528 if inlined != (member_inline_size <= 4) {
2529 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2530 }
2531 let inner_offset;
2532 let mut inner_depth = depth.clone();
2533 if inlined {
2534 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2535 inner_offset = next_offset;
2536 } else {
2537 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2538 inner_depth.increment()?;
2539 }
2540 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u32, D));
2541 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2542 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2543 {
2544 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2545 }
2546 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2547 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2548 }
2549 }
2550
2551 next_offset += envelope_size;
2552 _next_ordinal_to_read += 1;
2553 if next_offset >= end_offset {
2554 return Ok(());
2555 }
2556
2557 while _next_ordinal_to_read < 2 {
2559 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2560 _next_ordinal_to_read += 1;
2561 next_offset += envelope_size;
2562 }
2563
2564 let next_out_of_line = decoder.next_out_of_line();
2565 let handles_before = decoder.remaining_handles();
2566 if let Some((inlined, num_bytes, num_handles)) =
2567 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2568 {
2569 let member_inline_size =
2570 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2571 if inlined != (member_inline_size <= 4) {
2572 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2573 }
2574 let inner_offset;
2575 let mut inner_depth = depth.clone();
2576 if inlined {
2577 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2578 inner_offset = next_offset;
2579 } else {
2580 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2581 inner_depth.increment()?;
2582 }
2583 let val_ref = self.pid.get_or_insert_with(|| fidl::new_empty!(u64, D));
2584 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2586 {
2587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2588 }
2589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2591 }
2592 }
2593
2594 next_offset += envelope_size;
2595 _next_ordinal_to_read += 1;
2596 if next_offset >= end_offset {
2597 return Ok(());
2598 }
2599
2600 while _next_ordinal_to_read < 3 {
2602 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2603 _next_ordinal_to_read += 1;
2604 next_offset += envelope_size;
2605 }
2606
2607 let next_out_of_line = decoder.next_out_of_line();
2608 let handles_before = decoder.remaining_handles();
2609 if let Some((inlined, num_bytes, num_handles)) =
2610 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2611 {
2612 let member_inline_size =
2613 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
2614 decoder.context,
2615 );
2616 if inlined != (member_inline_size <= 4) {
2617 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2618 }
2619 let inner_offset;
2620 let mut inner_depth = depth.clone();
2621 if inlined {
2622 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2623 inner_offset = next_offset;
2624 } else {
2625 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2626 inner_depth.increment()?;
2627 }
2628 let val_ref = self
2629 .name
2630 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
2631 fidl::decode!(
2632 fidl::encoding::BoundedString<100>,
2633 D,
2634 val_ref,
2635 decoder,
2636 inner_offset,
2637 inner_depth
2638 )?;
2639 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2640 {
2641 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2642 }
2643 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2644 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2645 }
2646 }
2647
2648 next_offset += envelope_size;
2649
2650 while next_offset < end_offset {
2652 _next_ordinal_to_read += 1;
2653 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2654 next_offset += envelope_size;
2655 }
2656
2657 Ok(())
2658 }
2659 }
2660
2661 impl ProviderSpec {
2662 #[inline(always)]
2663 fn max_ordinal_present(&self) -> u64 {
2664 if let Some(_) = self.categories {
2665 return 3;
2666 }
2667 if let Some(_) = self.buffer_size_megabytes_hint {
2668 return 2;
2669 }
2670 if let Some(_) = self.name {
2671 return 1;
2672 }
2673 0
2674 }
2675 }
2676
2677 impl fidl::encoding::ValueTypeMarker for ProviderSpec {
2678 type Borrowed<'a> = &'a Self;
2679 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2680 value
2681 }
2682 }
2683
2684 unsafe impl fidl::encoding::TypeMarker for ProviderSpec {
2685 type Owned = Self;
2686
2687 #[inline(always)]
2688 fn inline_align(_context: fidl::encoding::Context) -> usize {
2689 8
2690 }
2691
2692 #[inline(always)]
2693 fn inline_size(_context: fidl::encoding::Context) -> usize {
2694 16
2695 }
2696 }
2697
2698 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProviderSpec, D>
2699 for &ProviderSpec
2700 {
2701 unsafe fn encode(
2702 self,
2703 encoder: &mut fidl::encoding::Encoder<'_, D>,
2704 offset: usize,
2705 mut depth: fidl::encoding::Depth,
2706 ) -> fidl::Result<()> {
2707 encoder.debug_check_bounds::<ProviderSpec>(offset);
2708 let max_ordinal: u64 = self.max_ordinal_present();
2710 encoder.write_num(max_ordinal, offset);
2711 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2712 if max_ordinal == 0 {
2714 return Ok(());
2715 }
2716 depth.increment()?;
2717 let envelope_size = 8;
2718 let bytes_len = max_ordinal as usize * envelope_size;
2719 #[allow(unused_variables)]
2720 let offset = encoder.out_of_line_offset(bytes_len);
2721 let mut _prev_end_offset: usize = 0;
2722 if 1 > max_ordinal {
2723 return Ok(());
2724 }
2725
2726 let cur_offset: usize = (1 - 1) * envelope_size;
2729
2730 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2732
2733 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
2738 self.name.as_ref().map(
2739 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
2740 ),
2741 encoder,
2742 offset + cur_offset,
2743 depth,
2744 )?;
2745
2746 _prev_end_offset = cur_offset + envelope_size;
2747 if 2 > max_ordinal {
2748 return Ok(());
2749 }
2750
2751 let cur_offset: usize = (2 - 1) * envelope_size;
2754
2755 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2757
2758 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2763 self.buffer_size_megabytes_hint
2764 .as_ref()
2765 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2766 encoder,
2767 offset + cur_offset,
2768 depth,
2769 )?;
2770
2771 _prev_end_offset = cur_offset + envelope_size;
2772 if 3 > max_ordinal {
2773 return Ok(());
2774 }
2775
2776 let cur_offset: usize = (3 - 1) * envelope_size;
2779
2780 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2782
2783 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>, D>(
2788 self.categories.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000> as fidl::encoding::ValueTypeMarker>::borrow),
2789 encoder, offset + cur_offset, depth
2790 )?;
2791
2792 _prev_end_offset = cur_offset + envelope_size;
2793
2794 Ok(())
2795 }
2796 }
2797
2798 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProviderSpec {
2799 #[inline(always)]
2800 fn new_empty() -> Self {
2801 Self::default()
2802 }
2803
2804 unsafe fn decode(
2805 &mut self,
2806 decoder: &mut fidl::encoding::Decoder<'_, D>,
2807 offset: usize,
2808 mut depth: fidl::encoding::Depth,
2809 ) -> fidl::Result<()> {
2810 decoder.debug_check_bounds::<Self>(offset);
2811 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2812 None => return Err(fidl::Error::NotNullable),
2813 Some(len) => len,
2814 };
2815 if len == 0 {
2817 return Ok(());
2818 };
2819 depth.increment()?;
2820 let envelope_size = 8;
2821 let bytes_len = len * envelope_size;
2822 let offset = decoder.out_of_line_offset(bytes_len)?;
2823 let mut _next_ordinal_to_read = 0;
2825 let mut next_offset = offset;
2826 let end_offset = offset + bytes_len;
2827 _next_ordinal_to_read += 1;
2828 if next_offset >= end_offset {
2829 return Ok(());
2830 }
2831
2832 while _next_ordinal_to_read < 1 {
2834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2835 _next_ordinal_to_read += 1;
2836 next_offset += envelope_size;
2837 }
2838
2839 let next_out_of_line = decoder.next_out_of_line();
2840 let handles_before = decoder.remaining_handles();
2841 if let Some((inlined, num_bytes, num_handles)) =
2842 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2843 {
2844 let member_inline_size =
2845 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
2846 decoder.context,
2847 );
2848 if inlined != (member_inline_size <= 4) {
2849 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2850 }
2851 let inner_offset;
2852 let mut inner_depth = depth.clone();
2853 if inlined {
2854 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2855 inner_offset = next_offset;
2856 } else {
2857 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2858 inner_depth.increment()?;
2859 }
2860 let val_ref = self
2861 .name
2862 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
2863 fidl::decode!(
2864 fidl::encoding::BoundedString<100>,
2865 D,
2866 val_ref,
2867 decoder,
2868 inner_offset,
2869 inner_depth
2870 )?;
2871 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2872 {
2873 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2874 }
2875 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2876 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2877 }
2878 }
2879
2880 next_offset += envelope_size;
2881 _next_ordinal_to_read += 1;
2882 if next_offset >= end_offset {
2883 return Ok(());
2884 }
2885
2886 while _next_ordinal_to_read < 2 {
2888 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2889 _next_ordinal_to_read += 1;
2890 next_offset += envelope_size;
2891 }
2892
2893 let next_out_of_line = decoder.next_out_of_line();
2894 let handles_before = decoder.remaining_handles();
2895 if let Some((inlined, num_bytes, num_handles)) =
2896 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2897 {
2898 let member_inline_size =
2899 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2900 if inlined != (member_inline_size <= 4) {
2901 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2902 }
2903 let inner_offset;
2904 let mut inner_depth = depth.clone();
2905 if inlined {
2906 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2907 inner_offset = next_offset;
2908 } else {
2909 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2910 inner_depth.increment()?;
2911 }
2912 let val_ref =
2913 self.buffer_size_megabytes_hint.get_or_insert_with(|| fidl::new_empty!(u32, D));
2914 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2915 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2916 {
2917 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2918 }
2919 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2920 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2921 }
2922 }
2923
2924 next_offset += envelope_size;
2925 _next_ordinal_to_read += 1;
2926 if next_offset >= end_offset {
2927 return Ok(());
2928 }
2929
2930 while _next_ordinal_to_read < 3 {
2932 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2933 _next_ordinal_to_read += 1;
2934 next_offset += envelope_size;
2935 }
2936
2937 let next_out_of_line = decoder.next_out_of_line();
2938 let handles_before = decoder.remaining_handles();
2939 if let Some((inlined, num_bytes, num_handles)) =
2940 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2941 {
2942 let member_inline_size = <fidl::encoding::Vector<
2943 fidl::encoding::BoundedString<100>,
2944 5000,
2945 > as fidl::encoding::TypeMarker>::inline_size(
2946 decoder.context
2947 );
2948 if inlined != (member_inline_size <= 4) {
2949 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2950 }
2951 let inner_offset;
2952 let mut inner_depth = depth.clone();
2953 if inlined {
2954 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2955 inner_offset = next_offset;
2956 } else {
2957 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2958 inner_depth.increment()?;
2959 }
2960 let val_ref = self.categories.get_or_insert_with(|| {
2961 fidl::new_empty!(
2962 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
2963 D
2964 )
2965 });
2966 fidl::decode!(
2967 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
2968 D,
2969 val_ref,
2970 decoder,
2971 inner_offset,
2972 inner_depth
2973 )?;
2974 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2975 {
2976 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2977 }
2978 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2979 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2980 }
2981 }
2982
2983 next_offset += envelope_size;
2984
2985 while next_offset < end_offset {
2987 _next_ordinal_to_read += 1;
2988 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2989 next_offset += envelope_size;
2990 }
2991
2992 Ok(())
2993 }
2994 }
2995
2996 impl ProviderStats {
2997 #[inline(always)]
2998 fn max_ordinal_present(&self) -> u64 {
2999 if let Some(_) = self.non_durable_bytes_written {
3000 return 7;
3001 }
3002 if let Some(_) = self.percentage_durable_buffer_used {
3003 return 6;
3004 }
3005 if let Some(_) = self.records_dropped {
3006 return 5;
3007 }
3008 if let Some(_) = self.buffer_wrapped_count {
3009 return 4;
3010 }
3011 if let Some(_) = self.buffering_mode {
3012 return 3;
3013 }
3014 if let Some(_) = self.pid {
3015 return 2;
3016 }
3017 if let Some(_) = self.name {
3018 return 1;
3019 }
3020 0
3021 }
3022 }
3023
3024 impl fidl::encoding::ValueTypeMarker for ProviderStats {
3025 type Borrowed<'a> = &'a Self;
3026 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3027 value
3028 }
3029 }
3030
3031 unsafe impl fidl::encoding::TypeMarker for ProviderStats {
3032 type Owned = Self;
3033
3034 #[inline(always)]
3035 fn inline_align(_context: fidl::encoding::Context) -> usize {
3036 8
3037 }
3038
3039 #[inline(always)]
3040 fn inline_size(_context: fidl::encoding::Context) -> usize {
3041 16
3042 }
3043 }
3044
3045 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ProviderStats, D>
3046 for &ProviderStats
3047 {
3048 unsafe fn encode(
3049 self,
3050 encoder: &mut fidl::encoding::Encoder<'_, D>,
3051 offset: usize,
3052 mut depth: fidl::encoding::Depth,
3053 ) -> fidl::Result<()> {
3054 encoder.debug_check_bounds::<ProviderStats>(offset);
3055 let max_ordinal: u64 = self.max_ordinal_present();
3057 encoder.write_num(max_ordinal, offset);
3058 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3059 if max_ordinal == 0 {
3061 return Ok(());
3062 }
3063 depth.increment()?;
3064 let envelope_size = 8;
3065 let bytes_len = max_ordinal as usize * envelope_size;
3066 #[allow(unused_variables)]
3067 let offset = encoder.out_of_line_offset(bytes_len);
3068 let mut _prev_end_offset: usize = 0;
3069 if 1 > max_ordinal {
3070 return Ok(());
3071 }
3072
3073 let cur_offset: usize = (1 - 1) * envelope_size;
3076
3077 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3079
3080 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
3085 self.name.as_ref().map(
3086 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
3087 ),
3088 encoder,
3089 offset + cur_offset,
3090 depth,
3091 )?;
3092
3093 _prev_end_offset = cur_offset + envelope_size;
3094 if 2 > max_ordinal {
3095 return Ok(());
3096 }
3097
3098 let cur_offset: usize = (2 - 1) * envelope_size;
3101
3102 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3104
3105 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3110 self.pid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3111 encoder,
3112 offset + cur_offset,
3113 depth,
3114 )?;
3115
3116 _prev_end_offset = cur_offset + envelope_size;
3117 if 3 > max_ordinal {
3118 return Ok(());
3119 }
3120
3121 let cur_offset: usize = (3 - 1) * envelope_size;
3124
3125 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3127
3128 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_tracing__common::BufferingMode, D>(
3133 self.buffering_mode.as_ref().map(<fidl_fuchsia_tracing__common::BufferingMode as fidl::encoding::ValueTypeMarker>::borrow),
3134 encoder, offset + cur_offset, depth
3135 )?;
3136
3137 _prev_end_offset = cur_offset + envelope_size;
3138 if 4 > max_ordinal {
3139 return Ok(());
3140 }
3141
3142 let cur_offset: usize = (4 - 1) * envelope_size;
3145
3146 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3148
3149 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3154 self.buffer_wrapped_count
3155 .as_ref()
3156 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3157 encoder,
3158 offset + cur_offset,
3159 depth,
3160 )?;
3161
3162 _prev_end_offset = cur_offset + envelope_size;
3163 if 5 > max_ordinal {
3164 return Ok(());
3165 }
3166
3167 let cur_offset: usize = (5 - 1) * envelope_size;
3170
3171 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3173
3174 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3179 self.records_dropped.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3180 encoder,
3181 offset + cur_offset,
3182 depth,
3183 )?;
3184
3185 _prev_end_offset = cur_offset + envelope_size;
3186 if 6 > max_ordinal {
3187 return Ok(());
3188 }
3189
3190 let cur_offset: usize = (6 - 1) * envelope_size;
3193
3194 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3196
3197 fidl::encoding::encode_in_envelope_optional::<f32, D>(
3202 self.percentage_durable_buffer_used
3203 .as_ref()
3204 .map(<f32 as fidl::encoding::ValueTypeMarker>::borrow),
3205 encoder,
3206 offset + cur_offset,
3207 depth,
3208 )?;
3209
3210 _prev_end_offset = cur_offset + envelope_size;
3211 if 7 > max_ordinal {
3212 return Ok(());
3213 }
3214
3215 let cur_offset: usize = (7 - 1) * envelope_size;
3218
3219 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3221
3222 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3227 self.non_durable_bytes_written
3228 .as_ref()
3229 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3230 encoder,
3231 offset + cur_offset,
3232 depth,
3233 )?;
3234
3235 _prev_end_offset = cur_offset + envelope_size;
3236
3237 Ok(())
3238 }
3239 }
3240
3241 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ProviderStats {
3242 #[inline(always)]
3243 fn new_empty() -> Self {
3244 Self::default()
3245 }
3246
3247 unsafe fn decode(
3248 &mut self,
3249 decoder: &mut fidl::encoding::Decoder<'_, D>,
3250 offset: usize,
3251 mut depth: fidl::encoding::Depth,
3252 ) -> fidl::Result<()> {
3253 decoder.debug_check_bounds::<Self>(offset);
3254 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3255 None => return Err(fidl::Error::NotNullable),
3256 Some(len) => len,
3257 };
3258 if len == 0 {
3260 return Ok(());
3261 };
3262 depth.increment()?;
3263 let envelope_size = 8;
3264 let bytes_len = len * envelope_size;
3265 let offset = decoder.out_of_line_offset(bytes_len)?;
3266 let mut _next_ordinal_to_read = 0;
3268 let mut next_offset = offset;
3269 let end_offset = offset + bytes_len;
3270 _next_ordinal_to_read += 1;
3271 if next_offset >= end_offset {
3272 return Ok(());
3273 }
3274
3275 while _next_ordinal_to_read < 1 {
3277 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3278 _next_ordinal_to_read += 1;
3279 next_offset += envelope_size;
3280 }
3281
3282 let next_out_of_line = decoder.next_out_of_line();
3283 let handles_before = decoder.remaining_handles();
3284 if let Some((inlined, num_bytes, num_handles)) =
3285 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3286 {
3287 let member_inline_size =
3288 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
3289 decoder.context,
3290 );
3291 if inlined != (member_inline_size <= 4) {
3292 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3293 }
3294 let inner_offset;
3295 let mut inner_depth = depth.clone();
3296 if inlined {
3297 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3298 inner_offset = next_offset;
3299 } else {
3300 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3301 inner_depth.increment()?;
3302 }
3303 let val_ref = self
3304 .name
3305 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
3306 fidl::decode!(
3307 fidl::encoding::BoundedString<100>,
3308 D,
3309 val_ref,
3310 decoder,
3311 inner_offset,
3312 inner_depth
3313 )?;
3314 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3315 {
3316 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3317 }
3318 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3319 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3320 }
3321 }
3322
3323 next_offset += envelope_size;
3324 _next_ordinal_to_read += 1;
3325 if next_offset >= end_offset {
3326 return Ok(());
3327 }
3328
3329 while _next_ordinal_to_read < 2 {
3331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3332 _next_ordinal_to_read += 1;
3333 next_offset += envelope_size;
3334 }
3335
3336 let next_out_of_line = decoder.next_out_of_line();
3337 let handles_before = decoder.remaining_handles();
3338 if let Some((inlined, num_bytes, num_handles)) =
3339 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3340 {
3341 let member_inline_size =
3342 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3343 if inlined != (member_inline_size <= 4) {
3344 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3345 }
3346 let inner_offset;
3347 let mut inner_depth = depth.clone();
3348 if inlined {
3349 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3350 inner_offset = next_offset;
3351 } else {
3352 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3353 inner_depth.increment()?;
3354 }
3355 let val_ref = self.pid.get_or_insert_with(|| fidl::new_empty!(u64, D));
3356 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3357 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3358 {
3359 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3360 }
3361 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3362 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3363 }
3364 }
3365
3366 next_offset += envelope_size;
3367 _next_ordinal_to_read += 1;
3368 if next_offset >= end_offset {
3369 return Ok(());
3370 }
3371
3372 while _next_ordinal_to_read < 3 {
3374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3375 _next_ordinal_to_read += 1;
3376 next_offset += envelope_size;
3377 }
3378
3379 let next_out_of_line = decoder.next_out_of_line();
3380 let handles_before = decoder.remaining_handles();
3381 if let Some((inlined, num_bytes, num_handles)) =
3382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3383 {
3384 let member_inline_size = <fidl_fuchsia_tracing__common::BufferingMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3385 if inlined != (member_inline_size <= 4) {
3386 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3387 }
3388 let inner_offset;
3389 let mut inner_depth = depth.clone();
3390 if inlined {
3391 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3392 inner_offset = next_offset;
3393 } else {
3394 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3395 inner_depth.increment()?;
3396 }
3397 let val_ref = self.buffering_mode.get_or_insert_with(|| {
3398 fidl::new_empty!(fidl_fuchsia_tracing__common::BufferingMode, D)
3399 });
3400 fidl::decode!(
3401 fidl_fuchsia_tracing__common::BufferingMode,
3402 D,
3403 val_ref,
3404 decoder,
3405 inner_offset,
3406 inner_depth
3407 )?;
3408 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3409 {
3410 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3411 }
3412 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3413 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3414 }
3415 }
3416
3417 next_offset += envelope_size;
3418 _next_ordinal_to_read += 1;
3419 if next_offset >= end_offset {
3420 return Ok(());
3421 }
3422
3423 while _next_ordinal_to_read < 4 {
3425 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3426 _next_ordinal_to_read += 1;
3427 next_offset += envelope_size;
3428 }
3429
3430 let next_out_of_line = decoder.next_out_of_line();
3431 let handles_before = decoder.remaining_handles();
3432 if let Some((inlined, num_bytes, num_handles)) =
3433 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3434 {
3435 let member_inline_size =
3436 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3437 if inlined != (member_inline_size <= 4) {
3438 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3439 }
3440 let inner_offset;
3441 let mut inner_depth = depth.clone();
3442 if inlined {
3443 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3444 inner_offset = next_offset;
3445 } else {
3446 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3447 inner_depth.increment()?;
3448 }
3449 let val_ref =
3450 self.buffer_wrapped_count.get_or_insert_with(|| fidl::new_empty!(u32, D));
3451 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3452 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3453 {
3454 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3455 }
3456 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3457 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3458 }
3459 }
3460
3461 next_offset += envelope_size;
3462 _next_ordinal_to_read += 1;
3463 if next_offset >= end_offset {
3464 return Ok(());
3465 }
3466
3467 while _next_ordinal_to_read < 5 {
3469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3470 _next_ordinal_to_read += 1;
3471 next_offset += envelope_size;
3472 }
3473
3474 let next_out_of_line = decoder.next_out_of_line();
3475 let handles_before = decoder.remaining_handles();
3476 if let Some((inlined, num_bytes, num_handles)) =
3477 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3478 {
3479 let member_inline_size =
3480 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3481 if inlined != (member_inline_size <= 4) {
3482 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3483 }
3484 let inner_offset;
3485 let mut inner_depth = depth.clone();
3486 if inlined {
3487 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3488 inner_offset = next_offset;
3489 } else {
3490 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3491 inner_depth.increment()?;
3492 }
3493 let val_ref = self.records_dropped.get_or_insert_with(|| fidl::new_empty!(u64, D));
3494 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3496 {
3497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3498 }
3499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3501 }
3502 }
3503
3504 next_offset += envelope_size;
3505 _next_ordinal_to_read += 1;
3506 if next_offset >= end_offset {
3507 return Ok(());
3508 }
3509
3510 while _next_ordinal_to_read < 6 {
3512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3513 _next_ordinal_to_read += 1;
3514 next_offset += envelope_size;
3515 }
3516
3517 let next_out_of_line = decoder.next_out_of_line();
3518 let handles_before = decoder.remaining_handles();
3519 if let Some((inlined, num_bytes, num_handles)) =
3520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3521 {
3522 let member_inline_size =
3523 <f32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3524 if inlined != (member_inline_size <= 4) {
3525 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3526 }
3527 let inner_offset;
3528 let mut inner_depth = depth.clone();
3529 if inlined {
3530 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3531 inner_offset = next_offset;
3532 } else {
3533 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3534 inner_depth.increment()?;
3535 }
3536 let val_ref = self
3537 .percentage_durable_buffer_used
3538 .get_or_insert_with(|| fidl::new_empty!(f32, D));
3539 fidl::decode!(f32, D, val_ref, decoder, inner_offset, inner_depth)?;
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 < 7 {
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 =
3568 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3569 if inlined != (member_inline_size <= 4) {
3570 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3571 }
3572 let inner_offset;
3573 let mut inner_depth = depth.clone();
3574 if inlined {
3575 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3576 inner_offset = next_offset;
3577 } else {
3578 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3579 inner_depth.increment()?;
3580 }
3581 let val_ref =
3582 self.non_durable_bytes_written.get_or_insert_with(|| fidl::new_empty!(u64, D));
3583 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3584 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3585 {
3586 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3587 }
3588 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3589 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3590 }
3591 }
3592
3593 next_offset += envelope_size;
3594
3595 while next_offset < end_offset {
3597 _next_ordinal_to_read += 1;
3598 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3599 next_offset += envelope_size;
3600 }
3601
3602 Ok(())
3603 }
3604 }
3605
3606 impl StartOptions {
3607 #[inline(always)]
3608 fn max_ordinal_present(&self) -> u64 {
3609 if let Some(_) = self.additional_categories {
3610 return 2;
3611 }
3612 if let Some(_) = self.buffer_disposition {
3613 return 1;
3614 }
3615 0
3616 }
3617 }
3618
3619 impl fidl::encoding::ValueTypeMarker for StartOptions {
3620 type Borrowed<'a> = &'a Self;
3621 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3622 value
3623 }
3624 }
3625
3626 unsafe impl fidl::encoding::TypeMarker for StartOptions {
3627 type Owned = Self;
3628
3629 #[inline(always)]
3630 fn inline_align(_context: fidl::encoding::Context) -> usize {
3631 8
3632 }
3633
3634 #[inline(always)]
3635 fn inline_size(_context: fidl::encoding::Context) -> usize {
3636 16
3637 }
3638 }
3639
3640 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StartOptions, D>
3641 for &StartOptions
3642 {
3643 unsafe fn encode(
3644 self,
3645 encoder: &mut fidl::encoding::Encoder<'_, D>,
3646 offset: usize,
3647 mut depth: fidl::encoding::Depth,
3648 ) -> fidl::Result<()> {
3649 encoder.debug_check_bounds::<StartOptions>(offset);
3650 let max_ordinal: u64 = self.max_ordinal_present();
3652 encoder.write_num(max_ordinal, offset);
3653 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3654 if max_ordinal == 0 {
3656 return Ok(());
3657 }
3658 depth.increment()?;
3659 let envelope_size = 8;
3660 let bytes_len = max_ordinal as usize * envelope_size;
3661 #[allow(unused_variables)]
3662 let offset = encoder.out_of_line_offset(bytes_len);
3663 let mut _prev_end_offset: usize = 0;
3664 if 1 > max_ordinal {
3665 return Ok(());
3666 }
3667
3668 let cur_offset: usize = (1 - 1) * envelope_size;
3671
3672 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3674
3675 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_tracing__common::BufferDisposition, D>(
3680 self.buffer_disposition.as_ref().map(<fidl_fuchsia_tracing__common::BufferDisposition as fidl::encoding::ValueTypeMarker>::borrow),
3681 encoder, offset + cur_offset, depth
3682 )?;
3683
3684 _prev_end_offset = cur_offset + envelope_size;
3685 if 2 > max_ordinal {
3686 return Ok(());
3687 }
3688
3689 let cur_offset: usize = (2 - 1) * envelope_size;
3692
3693 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3695
3696 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>, D>(
3701 self.additional_categories.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000> as fidl::encoding::ValueTypeMarker>::borrow),
3702 encoder, offset + cur_offset, depth
3703 )?;
3704
3705 _prev_end_offset = cur_offset + envelope_size;
3706
3707 Ok(())
3708 }
3709 }
3710
3711 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartOptions {
3712 #[inline(always)]
3713 fn new_empty() -> Self {
3714 Self::default()
3715 }
3716
3717 unsafe fn decode(
3718 &mut self,
3719 decoder: &mut fidl::encoding::Decoder<'_, D>,
3720 offset: usize,
3721 mut depth: fidl::encoding::Depth,
3722 ) -> fidl::Result<()> {
3723 decoder.debug_check_bounds::<Self>(offset);
3724 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3725 None => return Err(fidl::Error::NotNullable),
3726 Some(len) => len,
3727 };
3728 if len == 0 {
3730 return Ok(());
3731 };
3732 depth.increment()?;
3733 let envelope_size = 8;
3734 let bytes_len = len * envelope_size;
3735 let offset = decoder.out_of_line_offset(bytes_len)?;
3736 let mut _next_ordinal_to_read = 0;
3738 let mut next_offset = offset;
3739 let end_offset = offset + bytes_len;
3740 _next_ordinal_to_read += 1;
3741 if next_offset >= end_offset {
3742 return Ok(());
3743 }
3744
3745 while _next_ordinal_to_read < 1 {
3747 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3748 _next_ordinal_to_read += 1;
3749 next_offset += envelope_size;
3750 }
3751
3752 let next_out_of_line = decoder.next_out_of_line();
3753 let handles_before = decoder.remaining_handles();
3754 if let Some((inlined, num_bytes, num_handles)) =
3755 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3756 {
3757 let member_inline_size = <fidl_fuchsia_tracing__common::BufferDisposition as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3758 if inlined != (member_inline_size <= 4) {
3759 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3760 }
3761 let inner_offset;
3762 let mut inner_depth = depth.clone();
3763 if inlined {
3764 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3765 inner_offset = next_offset;
3766 } else {
3767 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3768 inner_depth.increment()?;
3769 }
3770 let val_ref = self.buffer_disposition.get_or_insert_with(|| {
3771 fidl::new_empty!(fidl_fuchsia_tracing__common::BufferDisposition, D)
3772 });
3773 fidl::decode!(
3774 fidl_fuchsia_tracing__common::BufferDisposition,
3775 D,
3776 val_ref,
3777 decoder,
3778 inner_offset,
3779 inner_depth
3780 )?;
3781 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3782 {
3783 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3784 }
3785 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3786 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3787 }
3788 }
3789
3790 next_offset += envelope_size;
3791 _next_ordinal_to_read += 1;
3792 if next_offset >= end_offset {
3793 return Ok(());
3794 }
3795
3796 while _next_ordinal_to_read < 2 {
3798 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3799 _next_ordinal_to_read += 1;
3800 next_offset += envelope_size;
3801 }
3802
3803 let next_out_of_line = decoder.next_out_of_line();
3804 let handles_before = decoder.remaining_handles();
3805 if let Some((inlined, num_bytes, num_handles)) =
3806 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3807 {
3808 let member_inline_size = <fidl::encoding::Vector<
3809 fidl::encoding::BoundedString<100>,
3810 5000,
3811 > as fidl::encoding::TypeMarker>::inline_size(
3812 decoder.context
3813 );
3814 if inlined != (member_inline_size <= 4) {
3815 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3816 }
3817 let inner_offset;
3818 let mut inner_depth = depth.clone();
3819 if inlined {
3820 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3821 inner_offset = next_offset;
3822 } else {
3823 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3824 inner_depth.increment()?;
3825 }
3826 let val_ref = self.additional_categories.get_or_insert_with(|| {
3827 fidl::new_empty!(
3828 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
3829 D
3830 )
3831 });
3832 fidl::decode!(
3833 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
3834 D,
3835 val_ref,
3836 decoder,
3837 inner_offset,
3838 inner_depth
3839 )?;
3840 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3841 {
3842 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3843 }
3844 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3845 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3846 }
3847 }
3848
3849 next_offset += envelope_size;
3850
3851 while next_offset < end_offset {
3853 _next_ordinal_to_read += 1;
3854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3855 next_offset += envelope_size;
3856 }
3857
3858 Ok(())
3859 }
3860 }
3861
3862 impl StopOptions {
3863 #[inline(always)]
3864 fn max_ordinal_present(&self) -> u64 {
3865 if let Some(_) = self.write_results {
3866 return 1;
3867 }
3868 0
3869 }
3870 }
3871
3872 impl fidl::encoding::ValueTypeMarker for StopOptions {
3873 type Borrowed<'a> = &'a Self;
3874 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3875 value
3876 }
3877 }
3878
3879 unsafe impl fidl::encoding::TypeMarker for StopOptions {
3880 type Owned = Self;
3881
3882 #[inline(always)]
3883 fn inline_align(_context: fidl::encoding::Context) -> usize {
3884 8
3885 }
3886
3887 #[inline(always)]
3888 fn inline_size(_context: fidl::encoding::Context) -> usize {
3889 16
3890 }
3891 }
3892
3893 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StopOptions, D>
3894 for &StopOptions
3895 {
3896 unsafe fn encode(
3897 self,
3898 encoder: &mut fidl::encoding::Encoder<'_, D>,
3899 offset: usize,
3900 mut depth: fidl::encoding::Depth,
3901 ) -> fidl::Result<()> {
3902 encoder.debug_check_bounds::<StopOptions>(offset);
3903 let max_ordinal: u64 = self.max_ordinal_present();
3905 encoder.write_num(max_ordinal, offset);
3906 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3907 if max_ordinal == 0 {
3909 return Ok(());
3910 }
3911 depth.increment()?;
3912 let envelope_size = 8;
3913 let bytes_len = max_ordinal as usize * envelope_size;
3914 #[allow(unused_variables)]
3915 let offset = encoder.out_of_line_offset(bytes_len);
3916 let mut _prev_end_offset: usize = 0;
3917 if 1 > max_ordinal {
3918 return Ok(());
3919 }
3920
3921 let cur_offset: usize = (1 - 1) * envelope_size;
3924
3925 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3927
3928 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3933 self.write_results.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3934 encoder,
3935 offset + cur_offset,
3936 depth,
3937 )?;
3938
3939 _prev_end_offset = cur_offset + envelope_size;
3940
3941 Ok(())
3942 }
3943 }
3944
3945 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopOptions {
3946 #[inline(always)]
3947 fn new_empty() -> Self {
3948 Self::default()
3949 }
3950
3951 unsafe fn decode(
3952 &mut self,
3953 decoder: &mut fidl::encoding::Decoder<'_, D>,
3954 offset: usize,
3955 mut depth: fidl::encoding::Depth,
3956 ) -> fidl::Result<()> {
3957 decoder.debug_check_bounds::<Self>(offset);
3958 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3959 None => return Err(fidl::Error::NotNullable),
3960 Some(len) => len,
3961 };
3962 if len == 0 {
3964 return Ok(());
3965 };
3966 depth.increment()?;
3967 let envelope_size = 8;
3968 let bytes_len = len * envelope_size;
3969 let offset = decoder.out_of_line_offset(bytes_len)?;
3970 let mut _next_ordinal_to_read = 0;
3972 let mut next_offset = offset;
3973 let end_offset = offset + bytes_len;
3974 _next_ordinal_to_read += 1;
3975 if next_offset >= end_offset {
3976 return Ok(());
3977 }
3978
3979 while _next_ordinal_to_read < 1 {
3981 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3982 _next_ordinal_to_read += 1;
3983 next_offset += envelope_size;
3984 }
3985
3986 let next_out_of_line = decoder.next_out_of_line();
3987 let handles_before = decoder.remaining_handles();
3988 if let Some((inlined, num_bytes, num_handles)) =
3989 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3990 {
3991 let member_inline_size =
3992 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3993 if inlined != (member_inline_size <= 4) {
3994 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3995 }
3996 let inner_offset;
3997 let mut inner_depth = depth.clone();
3998 if inlined {
3999 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4000 inner_offset = next_offset;
4001 } else {
4002 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4003 inner_depth.increment()?;
4004 }
4005 let val_ref = self.write_results.get_or_insert_with(|| fidl::new_empty!(bool, D));
4006 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4007 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4008 {
4009 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4010 }
4011 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4012 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4013 }
4014 }
4015
4016 next_offset += envelope_size;
4017
4018 while next_offset < end_offset {
4020 _next_ordinal_to_read += 1;
4021 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4022 next_offset += envelope_size;
4023 }
4024
4025 Ok(())
4026 }
4027 }
4028
4029 impl StopResult {
4030 #[inline(always)]
4031 fn max_ordinal_present(&self) -> u64 {
4032 if let Some(_) = self.provider_stats {
4033 return 1;
4034 }
4035 0
4036 }
4037 }
4038
4039 impl fidl::encoding::ValueTypeMarker for StopResult {
4040 type Borrowed<'a> = &'a Self;
4041 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4042 value
4043 }
4044 }
4045
4046 unsafe impl fidl::encoding::TypeMarker for StopResult {
4047 type Owned = Self;
4048
4049 #[inline(always)]
4050 fn inline_align(_context: fidl::encoding::Context) -> usize {
4051 8
4052 }
4053
4054 #[inline(always)]
4055 fn inline_size(_context: fidl::encoding::Context) -> usize {
4056 16
4057 }
4058 }
4059
4060 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StopResult, D>
4061 for &StopResult
4062 {
4063 unsafe fn encode(
4064 self,
4065 encoder: &mut fidl::encoding::Encoder<'_, D>,
4066 offset: usize,
4067 mut depth: fidl::encoding::Depth,
4068 ) -> fidl::Result<()> {
4069 encoder.debug_check_bounds::<StopResult>(offset);
4070 let max_ordinal: u64 = self.max_ordinal_present();
4072 encoder.write_num(max_ordinal, offset);
4073 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4074 if max_ordinal == 0 {
4076 return Ok(());
4077 }
4078 depth.increment()?;
4079 let envelope_size = 8;
4080 let bytes_len = max_ordinal as usize * envelope_size;
4081 #[allow(unused_variables)]
4082 let offset = encoder.out_of_line_offset(bytes_len);
4083 let mut _prev_end_offset: usize = 0;
4084 if 1 > max_ordinal {
4085 return Ok(());
4086 }
4087
4088 let cur_offset: usize = (1 - 1) * envelope_size;
4091
4092 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4094
4095 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ProviderStats, 100>, D>(
4100 self.provider_stats.as_ref().map(<fidl::encoding::Vector<ProviderStats, 100> as fidl::encoding::ValueTypeMarker>::borrow),
4101 encoder, offset + cur_offset, depth
4102 )?;
4103
4104 _prev_end_offset = cur_offset + envelope_size;
4105
4106 Ok(())
4107 }
4108 }
4109
4110 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StopResult {
4111 #[inline(always)]
4112 fn new_empty() -> Self {
4113 Self::default()
4114 }
4115
4116 unsafe fn decode(
4117 &mut self,
4118 decoder: &mut fidl::encoding::Decoder<'_, D>,
4119 offset: usize,
4120 mut depth: fidl::encoding::Depth,
4121 ) -> fidl::Result<()> {
4122 decoder.debug_check_bounds::<Self>(offset);
4123 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4124 None => return Err(fidl::Error::NotNullable),
4125 Some(len) => len,
4126 };
4127 if len == 0 {
4129 return Ok(());
4130 };
4131 depth.increment()?;
4132 let envelope_size = 8;
4133 let bytes_len = len * envelope_size;
4134 let offset = decoder.out_of_line_offset(bytes_len)?;
4135 let mut _next_ordinal_to_read = 0;
4137 let mut next_offset = offset;
4138 let end_offset = offset + bytes_len;
4139 _next_ordinal_to_read += 1;
4140 if next_offset >= end_offset {
4141 return Ok(());
4142 }
4143
4144 while _next_ordinal_to_read < 1 {
4146 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4147 _next_ordinal_to_read += 1;
4148 next_offset += envelope_size;
4149 }
4150
4151 let next_out_of_line = decoder.next_out_of_line();
4152 let handles_before = decoder.remaining_handles();
4153 if let Some((inlined, num_bytes, num_handles)) =
4154 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4155 {
4156 let member_inline_size = <fidl::encoding::Vector<ProviderStats, 100> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4157 if inlined != (member_inline_size <= 4) {
4158 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4159 }
4160 let inner_offset;
4161 let mut inner_depth = depth.clone();
4162 if inlined {
4163 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4164 inner_offset = next_offset;
4165 } else {
4166 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4167 inner_depth.increment()?;
4168 }
4169 let val_ref = self.provider_stats.get_or_insert_with(
4170 || fidl::new_empty!(fidl::encoding::Vector<ProviderStats, 100>, D),
4171 );
4172 fidl::decode!(fidl::encoding::Vector<ProviderStats, 100>, D, val_ref, decoder, inner_offset, inner_depth)?;
4173 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4174 {
4175 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4176 }
4177 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4178 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4179 }
4180 }
4181
4182 next_offset += envelope_size;
4183
4184 while next_offset < end_offset {
4186 _next_ordinal_to_read += 1;
4187 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4188 next_offset += envelope_size;
4189 }
4190
4191 Ok(())
4192 }
4193 }
4194
4195 impl TraceConfig {
4196 #[inline(always)]
4197 fn max_ordinal_present(&self) -> u64 {
4198 if let Some(_) = self.defer_transfer {
4199 return 7;
4200 }
4201 if let Some(_) = self.version {
4202 return 6;
4203 }
4204 if let Some(_) = self.provider_specs {
4205 return 5;
4206 }
4207 if let Some(_) = self.buffering_mode {
4208 return 4;
4209 }
4210 if let Some(_) = self.start_timeout_milliseconds {
4211 return 3;
4212 }
4213 if let Some(_) = self.buffer_size_megabytes_hint {
4214 return 2;
4215 }
4216 if let Some(_) = self.categories {
4217 return 1;
4218 }
4219 0
4220 }
4221 }
4222
4223 impl fidl::encoding::ValueTypeMarker for TraceConfig {
4224 type Borrowed<'a> = &'a Self;
4225 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4226 value
4227 }
4228 }
4229
4230 unsafe impl fidl::encoding::TypeMarker for TraceConfig {
4231 type Owned = Self;
4232
4233 #[inline(always)]
4234 fn inline_align(_context: fidl::encoding::Context) -> usize {
4235 8
4236 }
4237
4238 #[inline(always)]
4239 fn inline_size(_context: fidl::encoding::Context) -> usize {
4240 16
4241 }
4242 }
4243
4244 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TraceConfig, D>
4245 for &TraceConfig
4246 {
4247 unsafe fn encode(
4248 self,
4249 encoder: &mut fidl::encoding::Encoder<'_, D>,
4250 offset: usize,
4251 mut depth: fidl::encoding::Depth,
4252 ) -> fidl::Result<()> {
4253 encoder.debug_check_bounds::<TraceConfig>(offset);
4254 let max_ordinal: u64 = self.max_ordinal_present();
4256 encoder.write_num(max_ordinal, offset);
4257 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4258 if max_ordinal == 0 {
4260 return Ok(());
4261 }
4262 depth.increment()?;
4263 let envelope_size = 8;
4264 let bytes_len = max_ordinal as usize * envelope_size;
4265 #[allow(unused_variables)]
4266 let offset = encoder.out_of_line_offset(bytes_len);
4267 let mut _prev_end_offset: usize = 0;
4268 if 1 > max_ordinal {
4269 return Ok(());
4270 }
4271
4272 let cur_offset: usize = (1 - 1) * envelope_size;
4275
4276 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4278
4279 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>, D>(
4284 self.categories.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000> as fidl::encoding::ValueTypeMarker>::borrow),
4285 encoder, offset + cur_offset, depth
4286 )?;
4287
4288 _prev_end_offset = cur_offset + envelope_size;
4289 if 2 > max_ordinal {
4290 return Ok(());
4291 }
4292
4293 let cur_offset: usize = (2 - 1) * envelope_size;
4296
4297 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4299
4300 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4305 self.buffer_size_megabytes_hint
4306 .as_ref()
4307 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4308 encoder,
4309 offset + cur_offset,
4310 depth,
4311 )?;
4312
4313 _prev_end_offset = cur_offset + envelope_size;
4314 if 3 > max_ordinal {
4315 return Ok(());
4316 }
4317
4318 let cur_offset: usize = (3 - 1) * envelope_size;
4321
4322 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4324
4325 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4330 self.start_timeout_milliseconds
4331 .as_ref()
4332 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4333 encoder,
4334 offset + cur_offset,
4335 depth,
4336 )?;
4337
4338 _prev_end_offset = cur_offset + envelope_size;
4339 if 4 > max_ordinal {
4340 return Ok(());
4341 }
4342
4343 let cur_offset: usize = (4 - 1) * envelope_size;
4346
4347 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4349
4350 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_tracing__common::BufferingMode, D>(
4355 self.buffering_mode.as_ref().map(<fidl_fuchsia_tracing__common::BufferingMode as fidl::encoding::ValueTypeMarker>::borrow),
4356 encoder, offset + cur_offset, depth
4357 )?;
4358
4359 _prev_end_offset = cur_offset + envelope_size;
4360 if 5 > max_ordinal {
4361 return Ok(());
4362 }
4363
4364 let cur_offset: usize = (5 - 1) * envelope_size;
4367
4368 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4370
4371 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<ProviderSpec, 100>, D>(
4376 self.provider_specs.as_ref().map(<fidl::encoding::Vector<ProviderSpec, 100> as fidl::encoding::ValueTypeMarker>::borrow),
4377 encoder, offset + cur_offset, depth
4378 )?;
4379
4380 _prev_end_offset = cur_offset + envelope_size;
4381 if 6 > max_ordinal {
4382 return Ok(());
4383 }
4384
4385 let cur_offset: usize = (6 - 1) * envelope_size;
4388
4389 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4391
4392 fidl::encoding::encode_in_envelope_optional::<FxtVersion, D>(
4397 self.version.as_ref().map(<FxtVersion as fidl::encoding::ValueTypeMarker>::borrow),
4398 encoder,
4399 offset + cur_offset,
4400 depth,
4401 )?;
4402
4403 _prev_end_offset = cur_offset + envelope_size;
4404 if 7 > max_ordinal {
4405 return Ok(());
4406 }
4407
4408 let cur_offset: usize = (7 - 1) * envelope_size;
4411
4412 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4414
4415 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4420 self.defer_transfer.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4421 encoder,
4422 offset + cur_offset,
4423 depth,
4424 )?;
4425
4426 _prev_end_offset = cur_offset + envelope_size;
4427
4428 Ok(())
4429 }
4430 }
4431
4432 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TraceConfig {
4433 #[inline(always)]
4434 fn new_empty() -> Self {
4435 Self::default()
4436 }
4437
4438 unsafe fn decode(
4439 &mut self,
4440 decoder: &mut fidl::encoding::Decoder<'_, D>,
4441 offset: usize,
4442 mut depth: fidl::encoding::Depth,
4443 ) -> fidl::Result<()> {
4444 decoder.debug_check_bounds::<Self>(offset);
4445 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4446 None => return Err(fidl::Error::NotNullable),
4447 Some(len) => len,
4448 };
4449 if len == 0 {
4451 return Ok(());
4452 };
4453 depth.increment()?;
4454 let envelope_size = 8;
4455 let bytes_len = len * envelope_size;
4456 let offset = decoder.out_of_line_offset(bytes_len)?;
4457 let mut _next_ordinal_to_read = 0;
4459 let mut next_offset = offset;
4460 let end_offset = offset + bytes_len;
4461 _next_ordinal_to_read += 1;
4462 if next_offset >= end_offset {
4463 return Ok(());
4464 }
4465
4466 while _next_ordinal_to_read < 1 {
4468 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4469 _next_ordinal_to_read += 1;
4470 next_offset += envelope_size;
4471 }
4472
4473 let next_out_of_line = decoder.next_out_of_line();
4474 let handles_before = decoder.remaining_handles();
4475 if let Some((inlined, num_bytes, num_handles)) =
4476 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4477 {
4478 let member_inline_size = <fidl::encoding::Vector<
4479 fidl::encoding::BoundedString<100>,
4480 5000,
4481 > as fidl::encoding::TypeMarker>::inline_size(
4482 decoder.context
4483 );
4484 if inlined != (member_inline_size <= 4) {
4485 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4486 }
4487 let inner_offset;
4488 let mut inner_depth = depth.clone();
4489 if inlined {
4490 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4491 inner_offset = next_offset;
4492 } else {
4493 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4494 inner_depth.increment()?;
4495 }
4496 let val_ref = self.categories.get_or_insert_with(|| {
4497 fidl::new_empty!(
4498 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
4499 D
4500 )
4501 });
4502 fidl::decode!(
4503 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
4504 D,
4505 val_ref,
4506 decoder,
4507 inner_offset,
4508 inner_depth
4509 )?;
4510 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4511 {
4512 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4513 }
4514 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4515 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4516 }
4517 }
4518
4519 next_offset += envelope_size;
4520 _next_ordinal_to_read += 1;
4521 if next_offset >= end_offset {
4522 return Ok(());
4523 }
4524
4525 while _next_ordinal_to_read < 2 {
4527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4528 _next_ordinal_to_read += 1;
4529 next_offset += envelope_size;
4530 }
4531
4532 let next_out_of_line = decoder.next_out_of_line();
4533 let handles_before = decoder.remaining_handles();
4534 if let Some((inlined, num_bytes, num_handles)) =
4535 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4536 {
4537 let member_inline_size =
4538 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4539 if inlined != (member_inline_size <= 4) {
4540 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4541 }
4542 let inner_offset;
4543 let mut inner_depth = depth.clone();
4544 if inlined {
4545 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4546 inner_offset = next_offset;
4547 } else {
4548 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4549 inner_depth.increment()?;
4550 }
4551 let val_ref =
4552 self.buffer_size_megabytes_hint.get_or_insert_with(|| fidl::new_empty!(u32, D));
4553 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4554 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4555 {
4556 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4557 }
4558 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4559 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4560 }
4561 }
4562
4563 next_offset += envelope_size;
4564 _next_ordinal_to_read += 1;
4565 if next_offset >= end_offset {
4566 return Ok(());
4567 }
4568
4569 while _next_ordinal_to_read < 3 {
4571 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4572 _next_ordinal_to_read += 1;
4573 next_offset += envelope_size;
4574 }
4575
4576 let next_out_of_line = decoder.next_out_of_line();
4577 let handles_before = decoder.remaining_handles();
4578 if let Some((inlined, num_bytes, num_handles)) =
4579 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4580 {
4581 let member_inline_size =
4582 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4583 if inlined != (member_inline_size <= 4) {
4584 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4585 }
4586 let inner_offset;
4587 let mut inner_depth = depth.clone();
4588 if inlined {
4589 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4590 inner_offset = next_offset;
4591 } else {
4592 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4593 inner_depth.increment()?;
4594 }
4595 let val_ref =
4596 self.start_timeout_milliseconds.get_or_insert_with(|| fidl::new_empty!(u64, D));
4597 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4598 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4599 {
4600 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4601 }
4602 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4603 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4604 }
4605 }
4606
4607 next_offset += envelope_size;
4608 _next_ordinal_to_read += 1;
4609 if next_offset >= end_offset {
4610 return Ok(());
4611 }
4612
4613 while _next_ordinal_to_read < 4 {
4615 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4616 _next_ordinal_to_read += 1;
4617 next_offset += envelope_size;
4618 }
4619
4620 let next_out_of_line = decoder.next_out_of_line();
4621 let handles_before = decoder.remaining_handles();
4622 if let Some((inlined, num_bytes, num_handles)) =
4623 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4624 {
4625 let member_inline_size = <fidl_fuchsia_tracing__common::BufferingMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4626 if inlined != (member_inline_size <= 4) {
4627 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4628 }
4629 let inner_offset;
4630 let mut inner_depth = depth.clone();
4631 if inlined {
4632 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4633 inner_offset = next_offset;
4634 } else {
4635 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4636 inner_depth.increment()?;
4637 }
4638 let val_ref = self.buffering_mode.get_or_insert_with(|| {
4639 fidl::new_empty!(fidl_fuchsia_tracing__common::BufferingMode, D)
4640 });
4641 fidl::decode!(
4642 fidl_fuchsia_tracing__common::BufferingMode,
4643 D,
4644 val_ref,
4645 decoder,
4646 inner_offset,
4647 inner_depth
4648 )?;
4649 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4650 {
4651 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4652 }
4653 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4654 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4655 }
4656 }
4657
4658 next_offset += envelope_size;
4659 _next_ordinal_to_read += 1;
4660 if next_offset >= end_offset {
4661 return Ok(());
4662 }
4663
4664 while _next_ordinal_to_read < 5 {
4666 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4667 _next_ordinal_to_read += 1;
4668 next_offset += envelope_size;
4669 }
4670
4671 let next_out_of_line = decoder.next_out_of_line();
4672 let handles_before = decoder.remaining_handles();
4673 if let Some((inlined, num_bytes, num_handles)) =
4674 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4675 {
4676 let member_inline_size = <fidl::encoding::Vector<ProviderSpec, 100> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4677 if inlined != (member_inline_size <= 4) {
4678 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4679 }
4680 let inner_offset;
4681 let mut inner_depth = depth.clone();
4682 if inlined {
4683 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4684 inner_offset = next_offset;
4685 } else {
4686 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4687 inner_depth.increment()?;
4688 }
4689 let val_ref = self.provider_specs.get_or_insert_with(
4690 || fidl::new_empty!(fidl::encoding::Vector<ProviderSpec, 100>, D),
4691 );
4692 fidl::decode!(fidl::encoding::Vector<ProviderSpec, 100>, D, val_ref, decoder, inner_offset, inner_depth)?;
4693 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4694 {
4695 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4696 }
4697 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4698 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4699 }
4700 }
4701
4702 next_offset += envelope_size;
4703 _next_ordinal_to_read += 1;
4704 if next_offset >= end_offset {
4705 return Ok(());
4706 }
4707
4708 while _next_ordinal_to_read < 6 {
4710 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4711 _next_ordinal_to_read += 1;
4712 next_offset += envelope_size;
4713 }
4714
4715 let next_out_of_line = decoder.next_out_of_line();
4716 let handles_before = decoder.remaining_handles();
4717 if let Some((inlined, num_bytes, num_handles)) =
4718 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4719 {
4720 let member_inline_size =
4721 <FxtVersion as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4722 if inlined != (member_inline_size <= 4) {
4723 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4724 }
4725 let inner_offset;
4726 let mut inner_depth = depth.clone();
4727 if inlined {
4728 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4729 inner_offset = next_offset;
4730 } else {
4731 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4732 inner_depth.increment()?;
4733 }
4734 let val_ref = self.version.get_or_insert_with(|| fidl::new_empty!(FxtVersion, D));
4735 fidl::decode!(FxtVersion, D, val_ref, decoder, inner_offset, inner_depth)?;
4736 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4737 {
4738 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4739 }
4740 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4741 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4742 }
4743 }
4744
4745 next_offset += envelope_size;
4746 _next_ordinal_to_read += 1;
4747 if next_offset >= end_offset {
4748 return Ok(());
4749 }
4750
4751 while _next_ordinal_to_read < 7 {
4753 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4754 _next_ordinal_to_read += 1;
4755 next_offset += envelope_size;
4756 }
4757
4758 let next_out_of_line = decoder.next_out_of_line();
4759 let handles_before = decoder.remaining_handles();
4760 if let Some((inlined, num_bytes, num_handles)) =
4761 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4762 {
4763 let member_inline_size =
4764 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4765 if inlined != (member_inline_size <= 4) {
4766 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4767 }
4768 let inner_offset;
4769 let mut inner_depth = depth.clone();
4770 if inlined {
4771 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4772 inner_offset = next_offset;
4773 } else {
4774 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4775 inner_depth.increment()?;
4776 }
4777 let val_ref = self.defer_transfer.get_or_insert_with(|| fidl::new_empty!(bool, D));
4778 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4779 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4780 {
4781 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4782 }
4783 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4784 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4785 }
4786 }
4787
4788 next_offset += envelope_size;
4789
4790 while next_offset < end_offset {
4792 _next_ordinal_to_read += 1;
4793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4794 next_offset += envelope_size;
4795 }
4796
4797 Ok(())
4798 }
4799 }
4800
4801 impl TraceOptions {
4802 #[inline(always)]
4803 fn max_ordinal_present(&self) -> u64 {
4804 if let Some(_) = self.compression {
4805 return 4;
4806 }
4807 if let Some(_) = self.requested_categories {
4808 return 3;
4809 }
4810 if let Some(_) = self.triggers {
4811 return 2;
4812 }
4813 if let Some(_) = self.duration_ns {
4814 return 1;
4815 }
4816 0
4817 }
4818 }
4819
4820 impl fidl::encoding::ValueTypeMarker for TraceOptions {
4821 type Borrowed<'a> = &'a Self;
4822 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4823 value
4824 }
4825 }
4826
4827 unsafe impl fidl::encoding::TypeMarker for TraceOptions {
4828 type Owned = Self;
4829
4830 #[inline(always)]
4831 fn inline_align(_context: fidl::encoding::Context) -> usize {
4832 8
4833 }
4834
4835 #[inline(always)]
4836 fn inline_size(_context: fidl::encoding::Context) -> usize {
4837 16
4838 }
4839 }
4840
4841 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TraceOptions, D>
4842 for &TraceOptions
4843 {
4844 unsafe fn encode(
4845 self,
4846 encoder: &mut fidl::encoding::Encoder<'_, D>,
4847 offset: usize,
4848 mut depth: fidl::encoding::Depth,
4849 ) -> fidl::Result<()> {
4850 encoder.debug_check_bounds::<TraceOptions>(offset);
4851 let max_ordinal: u64 = self.max_ordinal_present();
4853 encoder.write_num(max_ordinal, offset);
4854 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4855 if max_ordinal == 0 {
4857 return Ok(());
4858 }
4859 depth.increment()?;
4860 let envelope_size = 8;
4861 let bytes_len = max_ordinal as usize * envelope_size;
4862 #[allow(unused_variables)]
4863 let offset = encoder.out_of_line_offset(bytes_len);
4864 let mut _prev_end_offset: usize = 0;
4865 if 1 > max_ordinal {
4866 return Ok(());
4867 }
4868
4869 let cur_offset: usize = (1 - 1) * envelope_size;
4872
4873 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4875
4876 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4881 self.duration_ns.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4882 encoder,
4883 offset + cur_offset,
4884 depth,
4885 )?;
4886
4887 _prev_end_offset = cur_offset + envelope_size;
4888 if 2 > max_ordinal {
4889 return Ok(());
4890 }
4891
4892 let cur_offset: usize = (2 - 1) * envelope_size;
4895
4896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4898
4899 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Trigger>, D>(
4904 self.triggers.as_ref().map(<fidl::encoding::UnboundedVector<Trigger> as fidl::encoding::ValueTypeMarker>::borrow),
4905 encoder, offset + cur_offset, depth
4906 )?;
4907
4908 _prev_end_offset = cur_offset + envelope_size;
4909 if 3 > max_ordinal {
4910 return Ok(());
4911 }
4912
4913 let cur_offset: usize = (3 - 1) * envelope_size;
4916
4917 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4919
4920 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>, D>(
4925 self.requested_categories.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000> as fidl::encoding::ValueTypeMarker>::borrow),
4926 encoder, offset + cur_offset, depth
4927 )?;
4928
4929 _prev_end_offset = cur_offset + envelope_size;
4930 if 4 > max_ordinal {
4931 return Ok(());
4932 }
4933
4934 let cur_offset: usize = (4 - 1) * envelope_size;
4937
4938 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4940
4941 fidl::encoding::encode_in_envelope_optional::<CompressionType, D>(
4946 self.compression
4947 .as_ref()
4948 .map(<CompressionType as fidl::encoding::ValueTypeMarker>::borrow),
4949 encoder,
4950 offset + cur_offset,
4951 depth,
4952 )?;
4953
4954 _prev_end_offset = cur_offset + envelope_size;
4955
4956 Ok(())
4957 }
4958 }
4959
4960 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TraceOptions {
4961 #[inline(always)]
4962 fn new_empty() -> Self {
4963 Self::default()
4964 }
4965
4966 unsafe fn decode(
4967 &mut self,
4968 decoder: &mut fidl::encoding::Decoder<'_, D>,
4969 offset: usize,
4970 mut depth: fidl::encoding::Depth,
4971 ) -> fidl::Result<()> {
4972 decoder.debug_check_bounds::<Self>(offset);
4973 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4974 None => return Err(fidl::Error::NotNullable),
4975 Some(len) => len,
4976 };
4977 if len == 0 {
4979 return Ok(());
4980 };
4981 depth.increment()?;
4982 let envelope_size = 8;
4983 let bytes_len = len * envelope_size;
4984 let offset = decoder.out_of_line_offset(bytes_len)?;
4985 let mut _next_ordinal_to_read = 0;
4987 let mut next_offset = offset;
4988 let end_offset = offset + bytes_len;
4989 _next_ordinal_to_read += 1;
4990 if next_offset >= end_offset {
4991 return Ok(());
4992 }
4993
4994 while _next_ordinal_to_read < 1 {
4996 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4997 _next_ordinal_to_read += 1;
4998 next_offset += envelope_size;
4999 }
5000
5001 let next_out_of_line = decoder.next_out_of_line();
5002 let handles_before = decoder.remaining_handles();
5003 if let Some((inlined, num_bytes, num_handles)) =
5004 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5005 {
5006 let member_inline_size =
5007 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5008 if inlined != (member_inline_size <= 4) {
5009 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5010 }
5011 let inner_offset;
5012 let mut inner_depth = depth.clone();
5013 if inlined {
5014 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5015 inner_offset = next_offset;
5016 } else {
5017 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5018 inner_depth.increment()?;
5019 }
5020 let val_ref = self.duration_ns.get_or_insert_with(|| fidl::new_empty!(i64, D));
5021 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5022 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5023 {
5024 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5025 }
5026 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5027 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5028 }
5029 }
5030
5031 next_offset += envelope_size;
5032 _next_ordinal_to_read += 1;
5033 if next_offset >= end_offset {
5034 return Ok(());
5035 }
5036
5037 while _next_ordinal_to_read < 2 {
5039 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5040 _next_ordinal_to_read += 1;
5041 next_offset += envelope_size;
5042 }
5043
5044 let next_out_of_line = decoder.next_out_of_line();
5045 let handles_before = decoder.remaining_handles();
5046 if let Some((inlined, num_bytes, num_handles)) =
5047 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5048 {
5049 let member_inline_size = <fidl::encoding::UnboundedVector<Trigger> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5050 if inlined != (member_inline_size <= 4) {
5051 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5052 }
5053 let inner_offset;
5054 let mut inner_depth = depth.clone();
5055 if inlined {
5056 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5057 inner_offset = next_offset;
5058 } else {
5059 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5060 inner_depth.increment()?;
5061 }
5062 let val_ref = self.triggers.get_or_insert_with(|| {
5063 fidl::new_empty!(fidl::encoding::UnboundedVector<Trigger>, D)
5064 });
5065 fidl::decode!(
5066 fidl::encoding::UnboundedVector<Trigger>,
5067 D,
5068 val_ref,
5069 decoder,
5070 inner_offset,
5071 inner_depth
5072 )?;
5073 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5074 {
5075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5076 }
5077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5079 }
5080 }
5081
5082 next_offset += envelope_size;
5083 _next_ordinal_to_read += 1;
5084 if next_offset >= end_offset {
5085 return Ok(());
5086 }
5087
5088 while _next_ordinal_to_read < 3 {
5090 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5091 _next_ordinal_to_read += 1;
5092 next_offset += envelope_size;
5093 }
5094
5095 let next_out_of_line = decoder.next_out_of_line();
5096 let handles_before = decoder.remaining_handles();
5097 if let Some((inlined, num_bytes, num_handles)) =
5098 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5099 {
5100 let member_inline_size = <fidl::encoding::Vector<
5101 fidl::encoding::BoundedString<100>,
5102 5000,
5103 > as fidl::encoding::TypeMarker>::inline_size(
5104 decoder.context
5105 );
5106 if inlined != (member_inline_size <= 4) {
5107 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5108 }
5109 let inner_offset;
5110 let mut inner_depth = depth.clone();
5111 if inlined {
5112 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5113 inner_offset = next_offset;
5114 } else {
5115 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5116 inner_depth.increment()?;
5117 }
5118 let val_ref = self.requested_categories.get_or_insert_with(|| {
5119 fidl::new_empty!(
5120 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
5121 D
5122 )
5123 });
5124 fidl::decode!(
5125 fidl::encoding::Vector<fidl::encoding::BoundedString<100>, 5000>,
5126 D,
5127 val_ref,
5128 decoder,
5129 inner_offset,
5130 inner_depth
5131 )?;
5132 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5133 {
5134 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5135 }
5136 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5137 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5138 }
5139 }
5140
5141 next_offset += envelope_size;
5142 _next_ordinal_to_read += 1;
5143 if next_offset >= end_offset {
5144 return Ok(());
5145 }
5146
5147 while _next_ordinal_to_read < 4 {
5149 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5150 _next_ordinal_to_read += 1;
5151 next_offset += envelope_size;
5152 }
5153
5154 let next_out_of_line = decoder.next_out_of_line();
5155 let handles_before = decoder.remaining_handles();
5156 if let Some((inlined, num_bytes, num_handles)) =
5157 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5158 {
5159 let member_inline_size =
5160 <CompressionType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5161 if inlined != (member_inline_size <= 4) {
5162 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5163 }
5164 let inner_offset;
5165 let mut inner_depth = depth.clone();
5166 if inlined {
5167 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5168 inner_offset = next_offset;
5169 } else {
5170 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5171 inner_depth.increment()?;
5172 }
5173 let val_ref =
5174 self.compression.get_or_insert_with(|| fidl::new_empty!(CompressionType, D));
5175 fidl::decode!(CompressionType, D, val_ref, decoder, inner_offset, inner_depth)?;
5176 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5177 {
5178 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5179 }
5180 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5181 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5182 }
5183 }
5184
5185 next_offset += envelope_size;
5186
5187 while next_offset < end_offset {
5189 _next_ordinal_to_read += 1;
5190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5191 next_offset += envelope_size;
5192 }
5193
5194 Ok(())
5195 }
5196 }
5197
5198 impl TraceStatus {
5199 #[inline(always)]
5200 fn max_ordinal_present(&self) -> u64 {
5201 if let Some(_) = self.task_id {
5202 return 7;
5203 }
5204 if let Some(_) = self.triggers {
5205 return 6;
5206 }
5207 if let Some(_) = self.config {
5208 return 5;
5209 }
5210 if let Some(_) = self.remaining_runtime {
5211 return 4;
5212 }
5213 if let Some(_) = self.duration {
5214 return 3;
5215 }
5216 0
5217 }
5218 }
5219
5220 impl fidl::encoding::ValueTypeMarker for TraceStatus {
5221 type Borrowed<'a> = &'a Self;
5222 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5223 value
5224 }
5225 }
5226
5227 unsafe impl fidl::encoding::TypeMarker for TraceStatus {
5228 type Owned = Self;
5229
5230 #[inline(always)]
5231 fn inline_align(_context: fidl::encoding::Context) -> usize {
5232 8
5233 }
5234
5235 #[inline(always)]
5236 fn inline_size(_context: fidl::encoding::Context) -> usize {
5237 16
5238 }
5239 }
5240
5241 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TraceStatus, D>
5242 for &TraceStatus
5243 {
5244 unsafe fn encode(
5245 self,
5246 encoder: &mut fidl::encoding::Encoder<'_, D>,
5247 offset: usize,
5248 mut depth: fidl::encoding::Depth,
5249 ) -> fidl::Result<()> {
5250 encoder.debug_check_bounds::<TraceStatus>(offset);
5251 let max_ordinal: u64 = self.max_ordinal_present();
5253 encoder.write_num(max_ordinal, offset);
5254 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5255 if max_ordinal == 0 {
5257 return Ok(());
5258 }
5259 depth.increment()?;
5260 let envelope_size = 8;
5261 let bytes_len = max_ordinal as usize * envelope_size;
5262 #[allow(unused_variables)]
5263 let offset = encoder.out_of_line_offset(bytes_len);
5264 let mut _prev_end_offset: usize = 0;
5265 if 3 > max_ordinal {
5266 return Ok(());
5267 }
5268
5269 let cur_offset: usize = (3 - 1) * envelope_size;
5272
5273 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5275
5276 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5281 self.duration.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5282 encoder,
5283 offset + cur_offset,
5284 depth,
5285 )?;
5286
5287 _prev_end_offset = cur_offset + envelope_size;
5288 if 4 > max_ordinal {
5289 return Ok(());
5290 }
5291
5292 let cur_offset: usize = (4 - 1) * envelope_size;
5295
5296 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5298
5299 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5304 self.remaining_runtime
5305 .as_ref()
5306 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5307 encoder,
5308 offset + cur_offset,
5309 depth,
5310 )?;
5311
5312 _prev_end_offset = cur_offset + envelope_size;
5313 if 5 > max_ordinal {
5314 return Ok(());
5315 }
5316
5317 let cur_offset: usize = (5 - 1) * envelope_size;
5320
5321 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5323
5324 fidl::encoding::encode_in_envelope_optional::<TraceConfig, D>(
5329 self.config.as_ref().map(<TraceConfig as fidl::encoding::ValueTypeMarker>::borrow),
5330 encoder,
5331 offset + cur_offset,
5332 depth,
5333 )?;
5334
5335 _prev_end_offset = cur_offset + envelope_size;
5336 if 6 > max_ordinal {
5337 return Ok(());
5338 }
5339
5340 let cur_offset: usize = (6 - 1) * envelope_size;
5343
5344 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5346
5347 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Trigger>, D>(
5352 self.triggers.as_ref().map(<fidl::encoding::UnboundedVector<Trigger> as fidl::encoding::ValueTypeMarker>::borrow),
5353 encoder, offset + cur_offset, depth
5354 )?;
5355
5356 _prev_end_offset = cur_offset + envelope_size;
5357 if 7 > max_ordinal {
5358 return Ok(());
5359 }
5360
5361 let cur_offset: usize = (7 - 1) * envelope_size;
5364
5365 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5367
5368 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5373 self.task_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5374 encoder,
5375 offset + cur_offset,
5376 depth,
5377 )?;
5378
5379 _prev_end_offset = cur_offset + envelope_size;
5380
5381 Ok(())
5382 }
5383 }
5384
5385 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TraceStatus {
5386 #[inline(always)]
5387 fn new_empty() -> Self {
5388 Self::default()
5389 }
5390
5391 unsafe fn decode(
5392 &mut self,
5393 decoder: &mut fidl::encoding::Decoder<'_, D>,
5394 offset: usize,
5395 mut depth: fidl::encoding::Depth,
5396 ) -> fidl::Result<()> {
5397 decoder.debug_check_bounds::<Self>(offset);
5398 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5399 None => return Err(fidl::Error::NotNullable),
5400 Some(len) => len,
5401 };
5402 if len == 0 {
5404 return Ok(());
5405 };
5406 depth.increment()?;
5407 let envelope_size = 8;
5408 let bytes_len = len * envelope_size;
5409 let offset = decoder.out_of_line_offset(bytes_len)?;
5410 let mut _next_ordinal_to_read = 0;
5412 let mut next_offset = offset;
5413 let end_offset = offset + bytes_len;
5414 _next_ordinal_to_read += 1;
5415 if next_offset >= end_offset {
5416 return Ok(());
5417 }
5418
5419 while _next_ordinal_to_read < 3 {
5421 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5422 _next_ordinal_to_read += 1;
5423 next_offset += envelope_size;
5424 }
5425
5426 let next_out_of_line = decoder.next_out_of_line();
5427 let handles_before = decoder.remaining_handles();
5428 if let Some((inlined, num_bytes, num_handles)) =
5429 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5430 {
5431 let member_inline_size =
5432 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5433 if inlined != (member_inline_size <= 4) {
5434 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5435 }
5436 let inner_offset;
5437 let mut inner_depth = depth.clone();
5438 if inlined {
5439 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5440 inner_offset = next_offset;
5441 } else {
5442 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5443 inner_depth.increment()?;
5444 }
5445 let val_ref = self.duration.get_or_insert_with(|| fidl::new_empty!(i64, D));
5446 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5447 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5448 {
5449 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5450 }
5451 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5452 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5453 }
5454 }
5455
5456 next_offset += envelope_size;
5457 _next_ordinal_to_read += 1;
5458 if next_offset >= end_offset {
5459 return Ok(());
5460 }
5461
5462 while _next_ordinal_to_read < 4 {
5464 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5465 _next_ordinal_to_read += 1;
5466 next_offset += envelope_size;
5467 }
5468
5469 let next_out_of_line = decoder.next_out_of_line();
5470 let handles_before = decoder.remaining_handles();
5471 if let Some((inlined, num_bytes, num_handles)) =
5472 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5473 {
5474 let member_inline_size =
5475 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5476 if inlined != (member_inline_size <= 4) {
5477 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5478 }
5479 let inner_offset;
5480 let mut inner_depth = depth.clone();
5481 if inlined {
5482 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5483 inner_offset = next_offset;
5484 } else {
5485 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5486 inner_depth.increment()?;
5487 }
5488 let val_ref =
5489 self.remaining_runtime.get_or_insert_with(|| fidl::new_empty!(i64, D));
5490 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5491 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5492 {
5493 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5494 }
5495 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5496 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5497 }
5498 }
5499
5500 next_offset += envelope_size;
5501 _next_ordinal_to_read += 1;
5502 if next_offset >= end_offset {
5503 return Ok(());
5504 }
5505
5506 while _next_ordinal_to_read < 5 {
5508 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5509 _next_ordinal_to_read += 1;
5510 next_offset += envelope_size;
5511 }
5512
5513 let next_out_of_line = decoder.next_out_of_line();
5514 let handles_before = decoder.remaining_handles();
5515 if let Some((inlined, num_bytes, num_handles)) =
5516 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5517 {
5518 let member_inline_size =
5519 <TraceConfig as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5520 if inlined != (member_inline_size <= 4) {
5521 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5522 }
5523 let inner_offset;
5524 let mut inner_depth = depth.clone();
5525 if inlined {
5526 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5527 inner_offset = next_offset;
5528 } else {
5529 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5530 inner_depth.increment()?;
5531 }
5532 let val_ref = self.config.get_or_insert_with(|| fidl::new_empty!(TraceConfig, D));
5533 fidl::decode!(TraceConfig, D, val_ref, decoder, inner_offset, inner_depth)?;
5534 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5535 {
5536 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5537 }
5538 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5539 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5540 }
5541 }
5542
5543 next_offset += envelope_size;
5544 _next_ordinal_to_read += 1;
5545 if next_offset >= end_offset {
5546 return Ok(());
5547 }
5548
5549 while _next_ordinal_to_read < 6 {
5551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5552 _next_ordinal_to_read += 1;
5553 next_offset += envelope_size;
5554 }
5555
5556 let next_out_of_line = decoder.next_out_of_line();
5557 let handles_before = decoder.remaining_handles();
5558 if let Some((inlined, num_bytes, num_handles)) =
5559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5560 {
5561 let member_inline_size = <fidl::encoding::UnboundedVector<Trigger> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5562 if inlined != (member_inline_size <= 4) {
5563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5564 }
5565 let inner_offset;
5566 let mut inner_depth = depth.clone();
5567 if inlined {
5568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5569 inner_offset = next_offset;
5570 } else {
5571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5572 inner_depth.increment()?;
5573 }
5574 let val_ref = self.triggers.get_or_insert_with(|| {
5575 fidl::new_empty!(fidl::encoding::UnboundedVector<Trigger>, D)
5576 });
5577 fidl::decode!(
5578 fidl::encoding::UnboundedVector<Trigger>,
5579 D,
5580 val_ref,
5581 decoder,
5582 inner_offset,
5583 inner_depth
5584 )?;
5585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5586 {
5587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5588 }
5589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5591 }
5592 }
5593
5594 next_offset += envelope_size;
5595 _next_ordinal_to_read += 1;
5596 if next_offset >= end_offset {
5597 return Ok(());
5598 }
5599
5600 while _next_ordinal_to_read < 7 {
5602 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5603 _next_ordinal_to_read += 1;
5604 next_offset += envelope_size;
5605 }
5606
5607 let next_out_of_line = decoder.next_out_of_line();
5608 let handles_before = decoder.remaining_handles();
5609 if let Some((inlined, num_bytes, num_handles)) =
5610 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5611 {
5612 let member_inline_size =
5613 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5614 if inlined != (member_inline_size <= 4) {
5615 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5616 }
5617 let inner_offset;
5618 let mut inner_depth = depth.clone();
5619 if inlined {
5620 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5621 inner_offset = next_offset;
5622 } else {
5623 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5624 inner_depth.increment()?;
5625 }
5626 let val_ref = self.task_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
5627 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5628 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5629 {
5630 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5631 }
5632 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5633 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5634 }
5635 }
5636
5637 next_offset += envelope_size;
5638
5639 while next_offset < end_offset {
5641 _next_ordinal_to_read += 1;
5642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5643 next_offset += envelope_size;
5644 }
5645
5646 Ok(())
5647 }
5648 }
5649
5650 impl Trigger {
5651 #[inline(always)]
5652 fn max_ordinal_present(&self) -> u64 {
5653 if let Some(_) = self.action {
5654 return 2;
5655 }
5656 if let Some(_) = self.alert {
5657 return 1;
5658 }
5659 0
5660 }
5661 }
5662
5663 impl fidl::encoding::ValueTypeMarker for Trigger {
5664 type Borrowed<'a> = &'a Self;
5665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5666 value
5667 }
5668 }
5669
5670 unsafe impl fidl::encoding::TypeMarker for Trigger {
5671 type Owned = Self;
5672
5673 #[inline(always)]
5674 fn inline_align(_context: fidl::encoding::Context) -> usize {
5675 8
5676 }
5677
5678 #[inline(always)]
5679 fn inline_size(_context: fidl::encoding::Context) -> usize {
5680 16
5681 }
5682 }
5683
5684 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Trigger, D> for &Trigger {
5685 unsafe fn encode(
5686 self,
5687 encoder: &mut fidl::encoding::Encoder<'_, D>,
5688 offset: usize,
5689 mut depth: fidl::encoding::Depth,
5690 ) -> fidl::Result<()> {
5691 encoder.debug_check_bounds::<Trigger>(offset);
5692 let max_ordinal: u64 = self.max_ordinal_present();
5694 encoder.write_num(max_ordinal, offset);
5695 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5696 if max_ordinal == 0 {
5698 return Ok(());
5699 }
5700 depth.increment()?;
5701 let envelope_size = 8;
5702 let bytes_len = max_ordinal as usize * envelope_size;
5703 #[allow(unused_variables)]
5704 let offset = encoder.out_of_line_offset(bytes_len);
5705 let mut _prev_end_offset: usize = 0;
5706 if 1 > max_ordinal {
5707 return Ok(());
5708 }
5709
5710 let cur_offset: usize = (1 - 1) * envelope_size;
5713
5714 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5716
5717 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<14>, D>(
5722 self.alert.as_ref().map(
5723 <fidl::encoding::BoundedString<14> as fidl::encoding::ValueTypeMarker>::borrow,
5724 ),
5725 encoder,
5726 offset + cur_offset,
5727 depth,
5728 )?;
5729
5730 _prev_end_offset = cur_offset + envelope_size;
5731 if 2 > max_ordinal {
5732 return Ok(());
5733 }
5734
5735 let cur_offset: usize = (2 - 1) * envelope_size;
5738
5739 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5741
5742 fidl::encoding::encode_in_envelope_optional::<Action, D>(
5747 self.action.as_ref().map(<Action as fidl::encoding::ValueTypeMarker>::borrow),
5748 encoder,
5749 offset + cur_offset,
5750 depth,
5751 )?;
5752
5753 _prev_end_offset = cur_offset + envelope_size;
5754
5755 Ok(())
5756 }
5757 }
5758
5759 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Trigger {
5760 #[inline(always)]
5761 fn new_empty() -> Self {
5762 Self::default()
5763 }
5764
5765 unsafe fn decode(
5766 &mut self,
5767 decoder: &mut fidl::encoding::Decoder<'_, D>,
5768 offset: usize,
5769 mut depth: fidl::encoding::Depth,
5770 ) -> fidl::Result<()> {
5771 decoder.debug_check_bounds::<Self>(offset);
5772 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5773 None => return Err(fidl::Error::NotNullable),
5774 Some(len) => len,
5775 };
5776 if len == 0 {
5778 return Ok(());
5779 };
5780 depth.increment()?;
5781 let envelope_size = 8;
5782 let bytes_len = len * envelope_size;
5783 let offset = decoder.out_of_line_offset(bytes_len)?;
5784 let mut _next_ordinal_to_read = 0;
5786 let mut next_offset = offset;
5787 let end_offset = offset + bytes_len;
5788 _next_ordinal_to_read += 1;
5789 if next_offset >= end_offset {
5790 return Ok(());
5791 }
5792
5793 while _next_ordinal_to_read < 1 {
5795 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5796 _next_ordinal_to_read += 1;
5797 next_offset += envelope_size;
5798 }
5799
5800 let next_out_of_line = decoder.next_out_of_line();
5801 let handles_before = decoder.remaining_handles();
5802 if let Some((inlined, num_bytes, num_handles)) =
5803 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5804 {
5805 let member_inline_size =
5806 <fidl::encoding::BoundedString<14> as fidl::encoding::TypeMarker>::inline_size(
5807 decoder.context,
5808 );
5809 if inlined != (member_inline_size <= 4) {
5810 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5811 }
5812 let inner_offset;
5813 let mut inner_depth = depth.clone();
5814 if inlined {
5815 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5816 inner_offset = next_offset;
5817 } else {
5818 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5819 inner_depth.increment()?;
5820 }
5821 let val_ref = self
5822 .alert
5823 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<14>, D));
5824 fidl::decode!(
5825 fidl::encoding::BoundedString<14>,
5826 D,
5827 val_ref,
5828 decoder,
5829 inner_offset,
5830 inner_depth
5831 )?;
5832 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5833 {
5834 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5835 }
5836 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5837 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5838 }
5839 }
5840
5841 next_offset += envelope_size;
5842 _next_ordinal_to_read += 1;
5843 if next_offset >= end_offset {
5844 return Ok(());
5845 }
5846
5847 while _next_ordinal_to_read < 2 {
5849 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5850 _next_ordinal_to_read += 1;
5851 next_offset += envelope_size;
5852 }
5853
5854 let next_out_of_line = decoder.next_out_of_line();
5855 let handles_before = decoder.remaining_handles();
5856 if let Some((inlined, num_bytes, num_handles)) =
5857 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5858 {
5859 let member_inline_size =
5860 <Action as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5861 if inlined != (member_inline_size <= 4) {
5862 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5863 }
5864 let inner_offset;
5865 let mut inner_depth = depth.clone();
5866 if inlined {
5867 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5868 inner_offset = next_offset;
5869 } else {
5870 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5871 inner_depth.increment()?;
5872 }
5873 let val_ref = self.action.get_or_insert_with(|| fidl::new_empty!(Action, D));
5874 fidl::decode!(Action, D, val_ref, decoder, inner_offset, inner_depth)?;
5875 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5876 {
5877 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5878 }
5879 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5880 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5881 }
5882 }
5883
5884 next_offset += envelope_size;
5885
5886 while next_offset < end_offset {
5888 _next_ordinal_to_read += 1;
5889 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5890 next_offset += envelope_size;
5891 }
5892
5893 Ok(())
5894 }
5895 }
5896}