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