1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const BINDING_RESULT_MAX: u8 = 10;
12
13pub const BINDING_RESULT_MAX_2: u32 = 256;
14
15pub const HASH_LENGTH: u8 = 64;
16
17pub const MAX_SEGMENTS: u32 = 20;
18
19pub const NODE_MONIKER_MAX: u32 = 1024;
20
21pub const POWER_TOKEN_OVERRIDES_MAX: u8 = 16;
22
23bitflags! {
24 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
28 pub struct RestartRematchFlags: u32 {
29 const REQUESTED = 1;
32 const NON_REQUESTED = 2;
36 const COMPOSITE_SPEC = 8;
38 }
39}
40
41impl RestartRematchFlags {
42 #[inline(always)]
43 pub fn from_bits_allow_unknown(bits: u32) -> Self {
44 Self::from_bits_retain(bits)
45 }
46
47 #[inline(always)]
48 pub fn has_unknown_bits(&self) -> bool {
49 self.get_unknown_bits() != 0
50 }
51
52 #[inline(always)]
53 pub fn get_unknown_bits(&self) -> u32 {
54 self.bits() & !Self::all().bits()
55 }
56}
57
58#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
60pub enum DispatcherState {
61 Running,
62 ShuttingDown,
63 Shutdown,
64 Destroyed,
65 #[doc(hidden)]
66 __SourceBreaking {
67 unknown_ordinal: u32,
68 },
69}
70
71#[macro_export]
73macro_rules! DispatcherStateUnknown {
74 () => {
75 _
76 };
77}
78
79impl DispatcherState {
80 #[inline]
81 pub fn from_primitive(prim: u32) -> Option<Self> {
82 match prim {
83 1 => Some(Self::Running),
84 2 => Some(Self::ShuttingDown),
85 3 => Some(Self::Shutdown),
86 4 => Some(Self::Destroyed),
87 _ => None,
88 }
89 }
90
91 #[inline]
92 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
93 match prim {
94 1 => Self::Running,
95 2 => Self::ShuttingDown,
96 3 => Self::Shutdown,
97 4 => Self::Destroyed,
98 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
99 }
100 }
101
102 #[inline]
103 pub fn unknown() -> Self {
104 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
105 }
106
107 #[inline]
108 pub const fn into_primitive(self) -> u32 {
109 match self {
110 Self::Running => 1,
111 Self::ShuttingDown => 2,
112 Self::Shutdown => 3,
113 Self::Destroyed => 4,
114 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
115 }
116 }
117
118 #[inline]
119 pub fn is_unknown(&self) -> bool {
120 match self {
121 Self::__SourceBreaking { unknown_ordinal: _ } => true,
122 _ => false,
123 }
124 }
125}
126
127#[derive(Clone, Debug, PartialEq)]
128pub struct CompositeInfoIteratorGetNextResponse {
129 pub composites: Vec<CompositeNodeInfo>,
130}
131
132impl fidl::Persistable for CompositeInfoIteratorGetNextResponse {}
133
134#[derive(Clone, Debug, PartialEq)]
135pub struct CompositeNodeSpecIteratorGetNextResponse {
136 pub specs: Vec<fidl_fuchsia_driver_framework_common::CompositeInfo>,
137}
138
139impl fidl::Persistable for CompositeNodeSpecIteratorGetNextResponse {}
140
141#[derive(Clone, Debug, PartialEq)]
142pub struct DriverHostInfoIteratorGetNextResponse {
143 pub driver_hosts: Vec<DriverHostInfo>,
144}
145
146impl fidl::Persistable for DriverHostInfoIteratorGetNextResponse {}
147
148#[derive(Clone, Debug, PartialEq)]
149pub struct DriverInfoIteratorGetNextResponse {
150 pub drivers: Vec<fidl_fuchsia_driver_framework_common::DriverInfo>,
151}
152
153impl fidl::Persistable for DriverInfoIteratorGetNextResponse {}
154
155#[derive(Clone, Debug, PartialEq)]
156pub struct ManagerAddTestNodeRequest {
157 pub args: TestNodeAddArgs,
158}
159
160impl fidl::Persistable for ManagerAddTestNodeRequest {}
161
162#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
163pub struct ManagerDisableDriverRequest {
164 pub driver_url: String,
165 pub package_hash: Option<String>,
166}
167
168impl fidl::Persistable for ManagerDisableDriverRequest {}
169
170#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
171pub struct ManagerEnableDriverRequest {
172 pub driver_url: String,
173 pub package_hash: Option<String>,
174}
175
176impl fidl::Persistable for ManagerEnableDriverRequest {}
177
178#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
179pub struct ManagerRebindCompositesWithDriverRequest {
180 pub driver_url: String,
181}
182
183impl fidl::Persistable for ManagerRebindCompositesWithDriverRequest {}
184
185#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
186pub struct ManagerRemoveTestNodeRequest {
187 pub name: String,
188}
189
190impl fidl::Persistable for ManagerRemoveTestNodeRequest {}
191
192#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
193pub struct ManagerRestartDriverHostsRequest {
194 pub driver_url: String,
195 pub rematch_flags: RestartRematchFlags,
196}
197
198impl fidl::Persistable for ManagerRestartDriverHostsRequest {}
199
200#[derive(Clone, Debug, PartialEq)]
201pub struct ManagerBindAllUnboundNodes2Response {
202 pub binding_result: Vec<NodeBindingInfo>,
204}
205
206impl fidl::Persistable for ManagerBindAllUnboundNodes2Response {}
207
208#[derive(Clone, Debug, PartialEq)]
209pub struct ManagerBindAllUnboundNodesResponse {
210 pub binding_result: Vec<NodeBindingInfo>,
212}
213
214impl fidl::Persistable for ManagerBindAllUnboundNodesResponse {}
215
216#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
217#[repr(C)]
218pub struct ManagerRebindCompositesWithDriverResponse {
219 pub count: u32,
220}
221
222impl fidl::Persistable for ManagerRebindCompositesWithDriverResponse {}
223
224#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
225#[repr(C)]
226pub struct ManagerRestartDriverHostsResponse {
227 pub count: u32,
228}
229
230impl fidl::Persistable for ManagerRestartDriverHostsResponse {}
231
232#[derive(Clone, Debug, PartialEq)]
233pub struct NodeInfoIteratorGetNextResponse {
234 pub nodes: Vec<NodeInfo>,
235}
236
237impl fidl::Persistable for NodeInfoIteratorGetNextResponse {}
238
239#[derive(Clone, Debug, Default, PartialEq)]
241pub struct CompositeNodeInfo {
242 pub parent_topological_paths: Option<Vec<Option<String>>>,
244 pub topological_path: Option<String>,
246 pub composite: Option<CompositeInfo>,
247 pub parent_monikers: Option<Vec<Option<String>>>,
249 pub moniker: Option<String>,
251 #[doc(hidden)]
252 pub __source_breaking: fidl::marker::SourceBreaking,
253}
254
255impl fidl::Persistable for CompositeNodeInfo {}
256
257#[derive(Clone, Debug, Default, PartialEq)]
259pub struct DispatcherDebugStats {
260 pub num_total_requests: Option<u64>,
262 pub num_inlined_requests: Option<u64>,
264 pub non_inlined: Option<NonInlinedRequestStats>,
266 #[doc(hidden)]
267 pub __source_breaking: fidl::marker::SourceBreaking,
268}
269
270impl fidl::Persistable for DispatcherDebugStats {}
271
272#[derive(Clone, Debug, Default, PartialEq)]
274pub struct DispatcherInfo {
275 pub driver: Option<String>,
277 pub name: Option<String>,
279 pub options: Option<u32>,
281 pub scheduler_role: Option<String>,
283 pub dispatcher_ptr: Option<u64>,
285 pub driver_ptr: Option<u64>,
287 pub synchronized: Option<bool>,
289 pub allow_sync_calls: Option<bool>,
291 pub state: Option<DispatcherState>,
293 pub destroy_context: Option<String>,
295 pub destroy_user_initiated: Option<bool>,
297 pub debug_stats: Option<DispatcherDebugStats>,
299 pub queued_tasks: Option<Vec<QueuedTaskInfo>>,
301 pub num_queued_tasks: Option<u64>,
303 #[doc(hidden)]
304 pub __source_breaking: fidl::marker::SourceBreaking,
305}
306
307impl fidl::Persistable for DispatcherInfo {}
308
309#[derive(Clone, Debug, Default, PartialEq)]
311pub struct DriverHostInfo {
312 pub process_koid: Option<u64>,
314 pub threads: Option<Vec<ThreadInfo>>,
316 pub drivers: Option<Vec<String>>,
318 pub dispatchers: Option<Vec<DispatcherInfo>>,
320 pub name: Option<String>,
322 #[doc(hidden)]
323 pub __source_breaking: fidl::marker::SourceBreaking,
324}
325
326impl fidl::Persistable for DriverHostInfo {}
327
328#[derive(Clone, Debug, Default, PartialEq)]
330pub struct NodeBindingInfo {
331 pub node_name: Option<String>,
333 pub driver_url: Option<String>,
336 pub composite_parents: Option<Vec<fidl_fuchsia_driver_framework_common::CompositeParent>>,
339 #[doc(hidden)]
340 pub __source_breaking: fidl::marker::SourceBreaking,
341}
342
343impl fidl::Persistable for NodeBindingInfo {}
344
345#[derive(Clone, Debug, Default, PartialEq)]
346pub struct NodeInfo {
347 pub id: Option<u64>,
349 pub parent_ids: Option<Vec<u64>>,
351 pub child_ids: Option<Vec<u64>>,
353 pub driver_host_koid: Option<u64>,
355 pub bound_driver_url: Option<String>,
357 pub moniker: Option<String>,
359 pub node_property_list: Option<Vec<fidl_fuchsia_driver_framework_common::NodeProperty>>,
361 pub offer_list: Option<Vec<fidl_fuchsia_component_decl_common::Offer>>,
363 pub quarantined: Option<bool>,
366 pub bus_topology: Option<Vec<fidl_fuchsia_driver_framework_common::BusInfo>>,
368 pub topological_path: Option<String>,
370 #[doc(hidden)]
371 pub __source_breaking: fidl::marker::SourceBreaking,
372}
373
374impl fidl::Persistable for NodeInfo {}
375
376#[derive(Clone, Debug, Default, PartialEq)]
378pub struct NonInlinedRequestStats {
379 pub allow_sync_calls: Option<u64>,
381 pub parallel_dispatch: Option<u64>,
383 pub task: Option<u64>,
385 pub unknown_thread: Option<u64>,
387 pub reentrant: Option<u64>,
389 pub channel_wait_not_yet_registered: Option<u64>,
391 pub no_thread_migration: Option<u64>,
393 #[doc(hidden)]
394 pub __source_breaking: fidl::marker::SourceBreaking,
395}
396
397impl fidl::Persistable for NonInlinedRequestStats {}
398
399#[derive(Clone, Debug, Default, PartialEq)]
401pub struct QueuedTaskInfo {
402 pub ptr: Option<u64>,
404 pub handler: Option<u64>,
406 pub initiating_dispatcher: Option<u64>,
408 pub initiating_dispatcher_name: Option<String>,
410 pub initiating_driver: Option<u64>,
412 pub initiating_driver_url: Option<String>,
414 #[doc(hidden)]
415 pub __source_breaking: fidl::marker::SourceBreaking,
416}
417
418impl fidl::Persistable for QueuedTaskInfo {}
419
420#[derive(Clone, Debug, Default, PartialEq)]
421pub struct TestNodeAddArgs {
422 pub name: Option<String>,
424 pub properties: Option<Vec<fidl_fuchsia_driver_framework_common::NodeProperty>>,
426 #[doc(hidden)]
427 pub __source_breaking: fidl::marker::SourceBreaking,
428}
429
430impl fidl::Persistable for TestNodeAddArgs {}
431
432#[derive(Clone, Debug, Default, PartialEq)]
434pub struct ThreadInfo {
435 pub koid: Option<u64>,
437 pub name: Option<String>,
439 pub scheduler_role: Option<String>,
441 #[doc(hidden)]
442 pub __source_breaking: fidl::marker::SourceBreaking,
443}
444
445impl fidl::Persistable for ThreadInfo {}
446
447#[derive(Clone, Debug, PartialEq)]
449pub enum CompositeInfo {
450 Composite(fidl_fuchsia_driver_framework_common::CompositeInfo),
451}
452
453impl CompositeInfo {
454 #[inline]
455 pub fn ordinal(&self) -> u64 {
456 match *self {
457 Self::Composite(_) => 2,
458 }
459 }
460}
461
462impl fidl::Persistable for CompositeInfo {}
463
464pub mod composite_info_iterator_ordinals {
465 pub const GET_NEXT: u64 = 0x50af808a6e34bb96;
466}
467
468pub mod composite_node_spec_iterator_ordinals {
469 pub const GET_NEXT: u64 = 0x32fd110355479f71;
470}
471
472pub mod driver_host_info_iterator_ordinals {
473 pub const GET_NEXT: u64 = 0xbf58e5cd863a86;
474}
475
476pub mod driver_info_iterator_ordinals {
477 pub const GET_NEXT: u64 = 0x2c394711c6784952;
478}
479
480pub mod manager_ordinals {
481 pub const GET_DRIVER_INFO: u64 = 0x34b1541e24e5d587;
482 pub const GET_COMPOSITE_NODE_SPECS: u64 = 0x258540c7ff37328f;
483 pub const GET_NODE_INFO: u64 = 0x7c272c6b7bcb4f9e;
484 pub const GET_COMPOSITE_INFO: u64 = 0x4456da4372a49a36;
485 pub const GET_DRIVER_HOST_INFO: u64 = 0x366b2c4429d44155;
486 pub const RESTART_DRIVER_HOSTS: u64 = 0x64fb09a17a4dd8c7;
487 pub const DISABLE_DRIVER: u64 = 0x3cabde92ba1ac967;
488 pub const ENABLE_DRIVER: u64 = 0x76a7518712965faf;
489 pub const BIND_ALL_UNBOUND_NODES: u64 = 0x2b4343fe1cfb9f21;
490 pub const BIND_ALL_UNBOUND_NODES2: u64 = 0x3e82ce2d6fc998d7;
491 pub const ADD_TEST_NODE: u64 = 0x774836bbb7fbc5b9;
492 pub const REMOVE_TEST_NODE: u64 = 0x1618ec4e5fc4010e;
493 pub const WAIT_FOR_BOOTUP: u64 = 0x52077de068225cdc;
494 pub const RESTART_WITH_DICTIONARY: u64 = 0x5eb620a85359a10e;
495 pub const RESTART_WITH_DICTIONARY_AND_POWER_DEPENDENCIES: u64 = 0x42914549590210;
496 pub const REBIND_COMPOSITES_WITH_DRIVER: u64 = 0x175d492045f61f28;
497}
498
499pub mod node_info_iterator_ordinals {
500 pub const GET_NEXT: u64 = 0x33c7c070412f889f;
501}
502
503mod internal {
504 use super::*;
505 unsafe impl fidl::encoding::TypeMarker for RestartRematchFlags {
506 type Owned = Self;
507
508 #[inline(always)]
509 fn inline_align(_context: fidl::encoding::Context) -> usize {
510 4
511 }
512
513 #[inline(always)]
514 fn inline_size(_context: fidl::encoding::Context) -> usize {
515 4
516 }
517 }
518
519 impl fidl::encoding::ValueTypeMarker for RestartRematchFlags {
520 type Borrowed<'a> = Self;
521 #[inline(always)]
522 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
523 *value
524 }
525 }
526
527 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
528 for RestartRematchFlags
529 {
530 #[inline]
531 unsafe fn encode(
532 self,
533 encoder: &mut fidl::encoding::Encoder<'_, D>,
534 offset: usize,
535 _depth: fidl::encoding::Depth,
536 ) -> fidl::Result<()> {
537 encoder.debug_check_bounds::<Self>(offset);
538 encoder.write_num(self.bits(), offset);
539 Ok(())
540 }
541 }
542
543 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RestartRematchFlags {
544 #[inline(always)]
545 fn new_empty() -> Self {
546 Self::empty()
547 }
548
549 #[inline]
550 unsafe fn decode(
551 &mut self,
552 decoder: &mut fidl::encoding::Decoder<'_, D>,
553 offset: usize,
554 _depth: fidl::encoding::Depth,
555 ) -> fidl::Result<()> {
556 decoder.debug_check_bounds::<Self>(offset);
557 let prim = decoder.read_num::<u32>(offset);
558 *self = Self::from_bits_allow_unknown(prim);
559 Ok(())
560 }
561 }
562 unsafe impl fidl::encoding::TypeMarker for DispatcherState {
563 type Owned = Self;
564
565 #[inline(always)]
566 fn inline_align(_context: fidl::encoding::Context) -> usize {
567 std::mem::align_of::<u32>()
568 }
569
570 #[inline(always)]
571 fn inline_size(_context: fidl::encoding::Context) -> usize {
572 std::mem::size_of::<u32>()
573 }
574
575 #[inline(always)]
576 fn encode_is_copy() -> bool {
577 false
578 }
579
580 #[inline(always)]
581 fn decode_is_copy() -> bool {
582 false
583 }
584 }
585
586 impl fidl::encoding::ValueTypeMarker for DispatcherState {
587 type Borrowed<'a> = Self;
588 #[inline(always)]
589 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
590 *value
591 }
592 }
593
594 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
595 for DispatcherState
596 {
597 #[inline]
598 unsafe fn encode(
599 self,
600 encoder: &mut fidl::encoding::Encoder<'_, D>,
601 offset: usize,
602 _depth: fidl::encoding::Depth,
603 ) -> fidl::Result<()> {
604 encoder.debug_check_bounds::<Self>(offset);
605 encoder.write_num(self.into_primitive(), offset);
606 Ok(())
607 }
608 }
609
610 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DispatcherState {
611 #[inline(always)]
612 fn new_empty() -> Self {
613 Self::unknown()
614 }
615
616 #[inline]
617 unsafe fn decode(
618 &mut self,
619 decoder: &mut fidl::encoding::Decoder<'_, D>,
620 offset: usize,
621 _depth: fidl::encoding::Depth,
622 ) -> fidl::Result<()> {
623 decoder.debug_check_bounds::<Self>(offset);
624 let prim = decoder.read_num::<u32>(offset);
625
626 *self = Self::from_primitive_allow_unknown(prim);
627 Ok(())
628 }
629 }
630
631 impl fidl::encoding::ValueTypeMarker for CompositeInfoIteratorGetNextResponse {
632 type Borrowed<'a> = &'a Self;
633 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
634 value
635 }
636 }
637
638 unsafe impl fidl::encoding::TypeMarker for CompositeInfoIteratorGetNextResponse {
639 type Owned = Self;
640
641 #[inline(always)]
642 fn inline_align(_context: fidl::encoding::Context) -> usize {
643 8
644 }
645
646 #[inline(always)]
647 fn inline_size(_context: fidl::encoding::Context) -> usize {
648 16
649 }
650 }
651
652 unsafe impl<D: fidl::encoding::ResourceDialect>
653 fidl::encoding::Encode<CompositeInfoIteratorGetNextResponse, D>
654 for &CompositeInfoIteratorGetNextResponse
655 {
656 #[inline]
657 unsafe fn encode(
658 self,
659 encoder: &mut fidl::encoding::Encoder<'_, D>,
660 offset: usize,
661 _depth: fidl::encoding::Depth,
662 ) -> fidl::Result<()> {
663 encoder.debug_check_bounds::<CompositeInfoIteratorGetNextResponse>(offset);
664 fidl::encoding::Encode::<CompositeInfoIteratorGetNextResponse, D>::encode(
666 (
667 <fidl::encoding::UnboundedVector<CompositeNodeInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.composites),
668 ),
669 encoder, offset, _depth
670 )
671 }
672 }
673 unsafe impl<
674 D: fidl::encoding::ResourceDialect,
675 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<CompositeNodeInfo>, D>,
676 > fidl::encoding::Encode<CompositeInfoIteratorGetNextResponse, D> for (T0,)
677 {
678 #[inline]
679 unsafe fn encode(
680 self,
681 encoder: &mut fidl::encoding::Encoder<'_, D>,
682 offset: usize,
683 depth: fidl::encoding::Depth,
684 ) -> fidl::Result<()> {
685 encoder.debug_check_bounds::<CompositeInfoIteratorGetNextResponse>(offset);
686 self.0.encode(encoder, offset + 0, depth)?;
690 Ok(())
691 }
692 }
693
694 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
695 for CompositeInfoIteratorGetNextResponse
696 {
697 #[inline(always)]
698 fn new_empty() -> Self {
699 Self {
700 composites: fidl::new_empty!(fidl::encoding::UnboundedVector<CompositeNodeInfo>, D),
701 }
702 }
703
704 #[inline]
705 unsafe fn decode(
706 &mut self,
707 decoder: &mut fidl::encoding::Decoder<'_, D>,
708 offset: usize,
709 _depth: fidl::encoding::Depth,
710 ) -> fidl::Result<()> {
711 decoder.debug_check_bounds::<Self>(offset);
712 fidl::decode!(
714 fidl::encoding::UnboundedVector<CompositeNodeInfo>,
715 D,
716 &mut self.composites,
717 decoder,
718 offset + 0,
719 _depth
720 )?;
721 Ok(())
722 }
723 }
724
725 impl fidl::encoding::ValueTypeMarker for CompositeNodeSpecIteratorGetNextResponse {
726 type Borrowed<'a> = &'a Self;
727 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
728 value
729 }
730 }
731
732 unsafe impl fidl::encoding::TypeMarker for CompositeNodeSpecIteratorGetNextResponse {
733 type Owned = Self;
734
735 #[inline(always)]
736 fn inline_align(_context: fidl::encoding::Context) -> usize {
737 8
738 }
739
740 #[inline(always)]
741 fn inline_size(_context: fidl::encoding::Context) -> usize {
742 16
743 }
744 }
745
746 unsafe impl<D: fidl::encoding::ResourceDialect>
747 fidl::encoding::Encode<CompositeNodeSpecIteratorGetNextResponse, D>
748 for &CompositeNodeSpecIteratorGetNextResponse
749 {
750 #[inline]
751 unsafe fn encode(
752 self,
753 encoder: &mut fidl::encoding::Encoder<'_, D>,
754 offset: usize,
755 _depth: fidl::encoding::Depth,
756 ) -> fidl::Result<()> {
757 encoder.debug_check_bounds::<CompositeNodeSpecIteratorGetNextResponse>(offset);
758 fidl::encoding::Encode::<CompositeNodeSpecIteratorGetNextResponse, D>::encode(
760 (<fidl::encoding::UnboundedVector<
761 fidl_fuchsia_driver_framework_common::CompositeInfo,
762 > as fidl::encoding::ValueTypeMarker>::borrow(&self.specs),),
763 encoder,
764 offset,
765 _depth,
766 )
767 }
768 }
769 unsafe impl<
770 D: fidl::encoding::ResourceDialect,
771 T0: fidl::encoding::Encode<
772 fidl::encoding::UnboundedVector<
773 fidl_fuchsia_driver_framework_common::CompositeInfo,
774 >,
775 D,
776 >,
777 > fidl::encoding::Encode<CompositeNodeSpecIteratorGetNextResponse, D> for (T0,)
778 {
779 #[inline]
780 unsafe fn encode(
781 self,
782 encoder: &mut fidl::encoding::Encoder<'_, D>,
783 offset: usize,
784 depth: fidl::encoding::Depth,
785 ) -> fidl::Result<()> {
786 encoder.debug_check_bounds::<CompositeNodeSpecIteratorGetNextResponse>(offset);
787 self.0.encode(encoder, offset + 0, depth)?;
791 Ok(())
792 }
793 }
794
795 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
796 for CompositeNodeSpecIteratorGetNextResponse
797 {
798 #[inline(always)]
799 fn new_empty() -> Self {
800 Self {
801 specs: fidl::new_empty!(
802 fidl::encoding::UnboundedVector<
803 fidl_fuchsia_driver_framework_common::CompositeInfo,
804 >,
805 D
806 ),
807 }
808 }
809
810 #[inline]
811 unsafe fn decode(
812 &mut self,
813 decoder: &mut fidl::encoding::Decoder<'_, D>,
814 offset: usize,
815 _depth: fidl::encoding::Depth,
816 ) -> fidl::Result<()> {
817 decoder.debug_check_bounds::<Self>(offset);
818 fidl::decode!(
820 fidl::encoding::UnboundedVector<
821 fidl_fuchsia_driver_framework_common::CompositeInfo,
822 >,
823 D,
824 &mut self.specs,
825 decoder,
826 offset + 0,
827 _depth
828 )?;
829 Ok(())
830 }
831 }
832
833 impl fidl::encoding::ValueTypeMarker for DriverHostInfoIteratorGetNextResponse {
834 type Borrowed<'a> = &'a Self;
835 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
836 value
837 }
838 }
839
840 unsafe impl fidl::encoding::TypeMarker for DriverHostInfoIteratorGetNextResponse {
841 type Owned = Self;
842
843 #[inline(always)]
844 fn inline_align(_context: fidl::encoding::Context) -> usize {
845 8
846 }
847
848 #[inline(always)]
849 fn inline_size(_context: fidl::encoding::Context) -> usize {
850 16
851 }
852 }
853
854 unsafe impl<D: fidl::encoding::ResourceDialect>
855 fidl::encoding::Encode<DriverHostInfoIteratorGetNextResponse, D>
856 for &DriverHostInfoIteratorGetNextResponse
857 {
858 #[inline]
859 unsafe fn encode(
860 self,
861 encoder: &mut fidl::encoding::Encoder<'_, D>,
862 offset: usize,
863 _depth: fidl::encoding::Depth,
864 ) -> fidl::Result<()> {
865 encoder.debug_check_bounds::<DriverHostInfoIteratorGetNextResponse>(offset);
866 fidl::encoding::Encode::<DriverHostInfoIteratorGetNextResponse, D>::encode(
868 (
869 <fidl::encoding::UnboundedVector<DriverHostInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.driver_hosts),
870 ),
871 encoder, offset, _depth
872 )
873 }
874 }
875 unsafe impl<
876 D: fidl::encoding::ResourceDialect,
877 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<DriverHostInfo>, D>,
878 > fidl::encoding::Encode<DriverHostInfoIteratorGetNextResponse, D> for (T0,)
879 {
880 #[inline]
881 unsafe fn encode(
882 self,
883 encoder: &mut fidl::encoding::Encoder<'_, D>,
884 offset: usize,
885 depth: fidl::encoding::Depth,
886 ) -> fidl::Result<()> {
887 encoder.debug_check_bounds::<DriverHostInfoIteratorGetNextResponse>(offset);
888 self.0.encode(encoder, offset + 0, depth)?;
892 Ok(())
893 }
894 }
895
896 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
897 for DriverHostInfoIteratorGetNextResponse
898 {
899 #[inline(always)]
900 fn new_empty() -> Self {
901 Self {
902 driver_hosts: fidl::new_empty!(fidl::encoding::UnboundedVector<DriverHostInfo>, D),
903 }
904 }
905
906 #[inline]
907 unsafe fn decode(
908 &mut self,
909 decoder: &mut fidl::encoding::Decoder<'_, D>,
910 offset: usize,
911 _depth: fidl::encoding::Depth,
912 ) -> fidl::Result<()> {
913 decoder.debug_check_bounds::<Self>(offset);
914 fidl::decode!(
916 fidl::encoding::UnboundedVector<DriverHostInfo>,
917 D,
918 &mut self.driver_hosts,
919 decoder,
920 offset + 0,
921 _depth
922 )?;
923 Ok(())
924 }
925 }
926
927 impl fidl::encoding::ValueTypeMarker for DriverInfoIteratorGetNextResponse {
928 type Borrowed<'a> = &'a Self;
929 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
930 value
931 }
932 }
933
934 unsafe impl fidl::encoding::TypeMarker for DriverInfoIteratorGetNextResponse {
935 type Owned = Self;
936
937 #[inline(always)]
938 fn inline_align(_context: fidl::encoding::Context) -> usize {
939 8
940 }
941
942 #[inline(always)]
943 fn inline_size(_context: fidl::encoding::Context) -> usize {
944 16
945 }
946 }
947
948 unsafe impl<D: fidl::encoding::ResourceDialect>
949 fidl::encoding::Encode<DriverInfoIteratorGetNextResponse, D>
950 for &DriverInfoIteratorGetNextResponse
951 {
952 #[inline]
953 unsafe fn encode(
954 self,
955 encoder: &mut fidl::encoding::Encoder<'_, D>,
956 offset: usize,
957 _depth: fidl::encoding::Depth,
958 ) -> fidl::Result<()> {
959 encoder.debug_check_bounds::<DriverInfoIteratorGetNextResponse>(offset);
960 fidl::encoding::Encode::<DriverInfoIteratorGetNextResponse, D>::encode(
962 (
963 <fidl::encoding::UnboundedVector<
964 fidl_fuchsia_driver_framework_common::DriverInfo,
965 > as fidl::encoding::ValueTypeMarker>::borrow(&self.drivers),
966 ),
967 encoder,
968 offset,
969 _depth,
970 )
971 }
972 }
973 unsafe impl<
974 D: fidl::encoding::ResourceDialect,
975 T0: fidl::encoding::Encode<
976 fidl::encoding::UnboundedVector<fidl_fuchsia_driver_framework_common::DriverInfo>,
977 D,
978 >,
979 > fidl::encoding::Encode<DriverInfoIteratorGetNextResponse, D> for (T0,)
980 {
981 #[inline]
982 unsafe fn encode(
983 self,
984 encoder: &mut fidl::encoding::Encoder<'_, D>,
985 offset: usize,
986 depth: fidl::encoding::Depth,
987 ) -> fidl::Result<()> {
988 encoder.debug_check_bounds::<DriverInfoIteratorGetNextResponse>(offset);
989 self.0.encode(encoder, offset + 0, depth)?;
993 Ok(())
994 }
995 }
996
997 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
998 for DriverInfoIteratorGetNextResponse
999 {
1000 #[inline(always)]
1001 fn new_empty() -> Self {
1002 Self {
1003 drivers: fidl::new_empty!(
1004 fidl::encoding::UnboundedVector<
1005 fidl_fuchsia_driver_framework_common::DriverInfo,
1006 >,
1007 D
1008 ),
1009 }
1010 }
1011
1012 #[inline]
1013 unsafe fn decode(
1014 &mut self,
1015 decoder: &mut fidl::encoding::Decoder<'_, D>,
1016 offset: usize,
1017 _depth: fidl::encoding::Depth,
1018 ) -> fidl::Result<()> {
1019 decoder.debug_check_bounds::<Self>(offset);
1020 fidl::decode!(
1022 fidl::encoding::UnboundedVector<fidl_fuchsia_driver_framework_common::DriverInfo>,
1023 D,
1024 &mut self.drivers,
1025 decoder,
1026 offset + 0,
1027 _depth
1028 )?;
1029 Ok(())
1030 }
1031 }
1032
1033 impl fidl::encoding::ValueTypeMarker for ManagerAddTestNodeRequest {
1034 type Borrowed<'a> = &'a Self;
1035 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1036 value
1037 }
1038 }
1039
1040 unsafe impl fidl::encoding::TypeMarker for ManagerAddTestNodeRequest {
1041 type Owned = Self;
1042
1043 #[inline(always)]
1044 fn inline_align(_context: fidl::encoding::Context) -> usize {
1045 8
1046 }
1047
1048 #[inline(always)]
1049 fn inline_size(_context: fidl::encoding::Context) -> usize {
1050 16
1051 }
1052 }
1053
1054 unsafe impl<D: fidl::encoding::ResourceDialect>
1055 fidl::encoding::Encode<ManagerAddTestNodeRequest, D> for &ManagerAddTestNodeRequest
1056 {
1057 #[inline]
1058 unsafe fn encode(
1059 self,
1060 encoder: &mut fidl::encoding::Encoder<'_, D>,
1061 offset: usize,
1062 _depth: fidl::encoding::Depth,
1063 ) -> fidl::Result<()> {
1064 encoder.debug_check_bounds::<ManagerAddTestNodeRequest>(offset);
1065 fidl::encoding::Encode::<ManagerAddTestNodeRequest, D>::encode(
1067 (<TestNodeAddArgs as fidl::encoding::ValueTypeMarker>::borrow(&self.args),),
1068 encoder,
1069 offset,
1070 _depth,
1071 )
1072 }
1073 }
1074 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<TestNodeAddArgs, D>>
1075 fidl::encoding::Encode<ManagerAddTestNodeRequest, D> for (T0,)
1076 {
1077 #[inline]
1078 unsafe fn encode(
1079 self,
1080 encoder: &mut fidl::encoding::Encoder<'_, D>,
1081 offset: usize,
1082 depth: fidl::encoding::Depth,
1083 ) -> fidl::Result<()> {
1084 encoder.debug_check_bounds::<ManagerAddTestNodeRequest>(offset);
1085 self.0.encode(encoder, offset + 0, depth)?;
1089 Ok(())
1090 }
1091 }
1092
1093 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1094 for ManagerAddTestNodeRequest
1095 {
1096 #[inline(always)]
1097 fn new_empty() -> Self {
1098 Self { args: fidl::new_empty!(TestNodeAddArgs, D) }
1099 }
1100
1101 #[inline]
1102 unsafe fn decode(
1103 &mut self,
1104 decoder: &mut fidl::encoding::Decoder<'_, D>,
1105 offset: usize,
1106 _depth: fidl::encoding::Depth,
1107 ) -> fidl::Result<()> {
1108 decoder.debug_check_bounds::<Self>(offset);
1109 fidl::decode!(TestNodeAddArgs, D, &mut self.args, decoder, offset + 0, _depth)?;
1111 Ok(())
1112 }
1113 }
1114
1115 impl fidl::encoding::ValueTypeMarker for ManagerDisableDriverRequest {
1116 type Borrowed<'a> = &'a Self;
1117 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1118 value
1119 }
1120 }
1121
1122 unsafe impl fidl::encoding::TypeMarker for ManagerDisableDriverRequest {
1123 type Owned = Self;
1124
1125 #[inline(always)]
1126 fn inline_align(_context: fidl::encoding::Context) -> usize {
1127 8
1128 }
1129
1130 #[inline(always)]
1131 fn inline_size(_context: fidl::encoding::Context) -> usize {
1132 32
1133 }
1134 }
1135
1136 unsafe impl<D: fidl::encoding::ResourceDialect>
1137 fidl::encoding::Encode<ManagerDisableDriverRequest, D> for &ManagerDisableDriverRequest
1138 {
1139 #[inline]
1140 unsafe fn encode(
1141 self,
1142 encoder: &mut fidl::encoding::Encoder<'_, D>,
1143 offset: usize,
1144 _depth: fidl::encoding::Depth,
1145 ) -> fidl::Result<()> {
1146 encoder.debug_check_bounds::<ManagerDisableDriverRequest>(offset);
1147 fidl::encoding::Encode::<ManagerDisableDriverRequest, D>::encode(
1149 (
1150 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.driver_url),
1151 <fidl::encoding::Optional<fidl::encoding::BoundedString<64>> as fidl::encoding::ValueTypeMarker>::borrow(&self.package_hash),
1152 ),
1153 encoder, offset, _depth
1154 )
1155 }
1156 }
1157 unsafe impl<
1158 D: fidl::encoding::ResourceDialect,
1159 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1160 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<64>>, D>,
1161 > fidl::encoding::Encode<ManagerDisableDriverRequest, D> for (T0, T1)
1162 {
1163 #[inline]
1164 unsafe fn encode(
1165 self,
1166 encoder: &mut fidl::encoding::Encoder<'_, D>,
1167 offset: usize,
1168 depth: fidl::encoding::Depth,
1169 ) -> fidl::Result<()> {
1170 encoder.debug_check_bounds::<ManagerDisableDriverRequest>(offset);
1171 self.0.encode(encoder, offset + 0, depth)?;
1175 self.1.encode(encoder, offset + 16, depth)?;
1176 Ok(())
1177 }
1178 }
1179
1180 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1181 for ManagerDisableDriverRequest
1182 {
1183 #[inline(always)]
1184 fn new_empty() -> Self {
1185 Self {
1186 driver_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
1187 package_hash: fidl::new_empty!(
1188 fidl::encoding::Optional<fidl::encoding::BoundedString<64>>,
1189 D
1190 ),
1191 }
1192 }
1193
1194 #[inline]
1195 unsafe fn decode(
1196 &mut self,
1197 decoder: &mut fidl::encoding::Decoder<'_, D>,
1198 offset: usize,
1199 _depth: fidl::encoding::Depth,
1200 ) -> fidl::Result<()> {
1201 decoder.debug_check_bounds::<Self>(offset);
1202 fidl::decode!(
1204 fidl::encoding::BoundedString<4096>,
1205 D,
1206 &mut self.driver_url,
1207 decoder,
1208 offset + 0,
1209 _depth
1210 )?;
1211 fidl::decode!(
1212 fidl::encoding::Optional<fidl::encoding::BoundedString<64>>,
1213 D,
1214 &mut self.package_hash,
1215 decoder,
1216 offset + 16,
1217 _depth
1218 )?;
1219 Ok(())
1220 }
1221 }
1222
1223 impl fidl::encoding::ValueTypeMarker for ManagerEnableDriverRequest {
1224 type Borrowed<'a> = &'a Self;
1225 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1226 value
1227 }
1228 }
1229
1230 unsafe impl fidl::encoding::TypeMarker for ManagerEnableDriverRequest {
1231 type Owned = Self;
1232
1233 #[inline(always)]
1234 fn inline_align(_context: fidl::encoding::Context) -> usize {
1235 8
1236 }
1237
1238 #[inline(always)]
1239 fn inline_size(_context: fidl::encoding::Context) -> usize {
1240 32
1241 }
1242 }
1243
1244 unsafe impl<D: fidl::encoding::ResourceDialect>
1245 fidl::encoding::Encode<ManagerEnableDriverRequest, D> for &ManagerEnableDriverRequest
1246 {
1247 #[inline]
1248 unsafe fn encode(
1249 self,
1250 encoder: &mut fidl::encoding::Encoder<'_, D>,
1251 offset: usize,
1252 _depth: fidl::encoding::Depth,
1253 ) -> fidl::Result<()> {
1254 encoder.debug_check_bounds::<ManagerEnableDriverRequest>(offset);
1255 fidl::encoding::Encode::<ManagerEnableDriverRequest, D>::encode(
1257 (
1258 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.driver_url),
1259 <fidl::encoding::Optional<fidl::encoding::BoundedString<64>> as fidl::encoding::ValueTypeMarker>::borrow(&self.package_hash),
1260 ),
1261 encoder, offset, _depth
1262 )
1263 }
1264 }
1265 unsafe impl<
1266 D: fidl::encoding::ResourceDialect,
1267 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1268 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<64>>, D>,
1269 > fidl::encoding::Encode<ManagerEnableDriverRequest, D> for (T0, T1)
1270 {
1271 #[inline]
1272 unsafe fn encode(
1273 self,
1274 encoder: &mut fidl::encoding::Encoder<'_, D>,
1275 offset: usize,
1276 depth: fidl::encoding::Depth,
1277 ) -> fidl::Result<()> {
1278 encoder.debug_check_bounds::<ManagerEnableDriverRequest>(offset);
1279 self.0.encode(encoder, offset + 0, depth)?;
1283 self.1.encode(encoder, offset + 16, depth)?;
1284 Ok(())
1285 }
1286 }
1287
1288 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1289 for ManagerEnableDriverRequest
1290 {
1291 #[inline(always)]
1292 fn new_empty() -> Self {
1293 Self {
1294 driver_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
1295 package_hash: fidl::new_empty!(
1296 fidl::encoding::Optional<fidl::encoding::BoundedString<64>>,
1297 D
1298 ),
1299 }
1300 }
1301
1302 #[inline]
1303 unsafe fn decode(
1304 &mut self,
1305 decoder: &mut fidl::encoding::Decoder<'_, D>,
1306 offset: usize,
1307 _depth: fidl::encoding::Depth,
1308 ) -> fidl::Result<()> {
1309 decoder.debug_check_bounds::<Self>(offset);
1310 fidl::decode!(
1312 fidl::encoding::BoundedString<4096>,
1313 D,
1314 &mut self.driver_url,
1315 decoder,
1316 offset + 0,
1317 _depth
1318 )?;
1319 fidl::decode!(
1320 fidl::encoding::Optional<fidl::encoding::BoundedString<64>>,
1321 D,
1322 &mut self.package_hash,
1323 decoder,
1324 offset + 16,
1325 _depth
1326 )?;
1327 Ok(())
1328 }
1329 }
1330
1331 impl fidl::encoding::ValueTypeMarker for ManagerRebindCompositesWithDriverRequest {
1332 type Borrowed<'a> = &'a Self;
1333 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1334 value
1335 }
1336 }
1337
1338 unsafe impl fidl::encoding::TypeMarker for ManagerRebindCompositesWithDriverRequest {
1339 type Owned = Self;
1340
1341 #[inline(always)]
1342 fn inline_align(_context: fidl::encoding::Context) -> usize {
1343 8
1344 }
1345
1346 #[inline(always)]
1347 fn inline_size(_context: fidl::encoding::Context) -> usize {
1348 16
1349 }
1350 }
1351
1352 unsafe impl<D: fidl::encoding::ResourceDialect>
1353 fidl::encoding::Encode<ManagerRebindCompositesWithDriverRequest, D>
1354 for &ManagerRebindCompositesWithDriverRequest
1355 {
1356 #[inline]
1357 unsafe fn encode(
1358 self,
1359 encoder: &mut fidl::encoding::Encoder<'_, D>,
1360 offset: usize,
1361 _depth: fidl::encoding::Depth,
1362 ) -> fidl::Result<()> {
1363 encoder.debug_check_bounds::<ManagerRebindCompositesWithDriverRequest>(offset);
1364 fidl::encoding::Encode::<ManagerRebindCompositesWithDriverRequest, D>::encode(
1366 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
1367 &self.driver_url,
1368 ),),
1369 encoder,
1370 offset,
1371 _depth,
1372 )
1373 }
1374 }
1375 unsafe impl<
1376 D: fidl::encoding::ResourceDialect,
1377 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1378 > fidl::encoding::Encode<ManagerRebindCompositesWithDriverRequest, D> for (T0,)
1379 {
1380 #[inline]
1381 unsafe fn encode(
1382 self,
1383 encoder: &mut fidl::encoding::Encoder<'_, D>,
1384 offset: usize,
1385 depth: fidl::encoding::Depth,
1386 ) -> fidl::Result<()> {
1387 encoder.debug_check_bounds::<ManagerRebindCompositesWithDriverRequest>(offset);
1388 self.0.encode(encoder, offset + 0, depth)?;
1392 Ok(())
1393 }
1394 }
1395
1396 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1397 for ManagerRebindCompositesWithDriverRequest
1398 {
1399 #[inline(always)]
1400 fn new_empty() -> Self {
1401 Self { driver_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D) }
1402 }
1403
1404 #[inline]
1405 unsafe fn decode(
1406 &mut self,
1407 decoder: &mut fidl::encoding::Decoder<'_, D>,
1408 offset: usize,
1409 _depth: fidl::encoding::Depth,
1410 ) -> fidl::Result<()> {
1411 decoder.debug_check_bounds::<Self>(offset);
1412 fidl::decode!(
1414 fidl::encoding::BoundedString<4096>,
1415 D,
1416 &mut self.driver_url,
1417 decoder,
1418 offset + 0,
1419 _depth
1420 )?;
1421 Ok(())
1422 }
1423 }
1424
1425 impl fidl::encoding::ValueTypeMarker for ManagerRemoveTestNodeRequest {
1426 type Borrowed<'a> = &'a Self;
1427 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1428 value
1429 }
1430 }
1431
1432 unsafe impl fidl::encoding::TypeMarker for ManagerRemoveTestNodeRequest {
1433 type Owned = Self;
1434
1435 #[inline(always)]
1436 fn inline_align(_context: fidl::encoding::Context) -> usize {
1437 8
1438 }
1439
1440 #[inline(always)]
1441 fn inline_size(_context: fidl::encoding::Context) -> usize {
1442 16
1443 }
1444 }
1445
1446 unsafe impl<D: fidl::encoding::ResourceDialect>
1447 fidl::encoding::Encode<ManagerRemoveTestNodeRequest, D> for &ManagerRemoveTestNodeRequest
1448 {
1449 #[inline]
1450 unsafe fn encode(
1451 self,
1452 encoder: &mut fidl::encoding::Encoder<'_, D>,
1453 offset: usize,
1454 _depth: fidl::encoding::Depth,
1455 ) -> fidl::Result<()> {
1456 encoder.debug_check_bounds::<ManagerRemoveTestNodeRequest>(offset);
1457 fidl::encoding::Encode::<ManagerRemoveTestNodeRequest, D>::encode(
1459 (<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(
1460 &self.name,
1461 ),),
1462 encoder,
1463 offset,
1464 _depth,
1465 )
1466 }
1467 }
1468 unsafe impl<
1469 D: fidl::encoding::ResourceDialect,
1470 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1471 > fidl::encoding::Encode<ManagerRemoveTestNodeRequest, D> for (T0,)
1472 {
1473 #[inline]
1474 unsafe fn encode(
1475 self,
1476 encoder: &mut fidl::encoding::Encoder<'_, D>,
1477 offset: usize,
1478 depth: fidl::encoding::Depth,
1479 ) -> fidl::Result<()> {
1480 encoder.debug_check_bounds::<ManagerRemoveTestNodeRequest>(offset);
1481 self.0.encode(encoder, offset + 0, depth)?;
1485 Ok(())
1486 }
1487 }
1488
1489 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1490 for ManagerRemoveTestNodeRequest
1491 {
1492 #[inline(always)]
1493 fn new_empty() -> Self {
1494 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D) }
1495 }
1496
1497 #[inline]
1498 unsafe fn decode(
1499 &mut self,
1500 decoder: &mut fidl::encoding::Decoder<'_, D>,
1501 offset: usize,
1502 _depth: fidl::encoding::Depth,
1503 ) -> fidl::Result<()> {
1504 decoder.debug_check_bounds::<Self>(offset);
1505 fidl::decode!(
1507 fidl::encoding::BoundedString<1024>,
1508 D,
1509 &mut self.name,
1510 decoder,
1511 offset + 0,
1512 _depth
1513 )?;
1514 Ok(())
1515 }
1516 }
1517
1518 impl fidl::encoding::ValueTypeMarker for ManagerRestartDriverHostsRequest {
1519 type Borrowed<'a> = &'a Self;
1520 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1521 value
1522 }
1523 }
1524
1525 unsafe impl fidl::encoding::TypeMarker for ManagerRestartDriverHostsRequest {
1526 type Owned = Self;
1527
1528 #[inline(always)]
1529 fn inline_align(_context: fidl::encoding::Context) -> usize {
1530 8
1531 }
1532
1533 #[inline(always)]
1534 fn inline_size(_context: fidl::encoding::Context) -> usize {
1535 24
1536 }
1537 }
1538
1539 unsafe impl<D: fidl::encoding::ResourceDialect>
1540 fidl::encoding::Encode<ManagerRestartDriverHostsRequest, D>
1541 for &ManagerRestartDriverHostsRequest
1542 {
1543 #[inline]
1544 unsafe fn encode(
1545 self,
1546 encoder: &mut fidl::encoding::Encoder<'_, D>,
1547 offset: usize,
1548 _depth: fidl::encoding::Depth,
1549 ) -> fidl::Result<()> {
1550 encoder.debug_check_bounds::<ManagerRestartDriverHostsRequest>(offset);
1551 fidl::encoding::Encode::<ManagerRestartDriverHostsRequest, D>::encode(
1553 (
1554 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.driver_url),
1555 <RestartRematchFlags as fidl::encoding::ValueTypeMarker>::borrow(&self.rematch_flags),
1556 ),
1557 encoder, offset, _depth
1558 )
1559 }
1560 }
1561 unsafe impl<
1562 D: fidl::encoding::ResourceDialect,
1563 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1564 T1: fidl::encoding::Encode<RestartRematchFlags, D>,
1565 > fidl::encoding::Encode<ManagerRestartDriverHostsRequest, D> for (T0, T1)
1566 {
1567 #[inline]
1568 unsafe fn encode(
1569 self,
1570 encoder: &mut fidl::encoding::Encoder<'_, D>,
1571 offset: usize,
1572 depth: fidl::encoding::Depth,
1573 ) -> fidl::Result<()> {
1574 encoder.debug_check_bounds::<ManagerRestartDriverHostsRequest>(offset);
1575 unsafe {
1578 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
1579 (ptr as *mut u64).write_unaligned(0);
1580 }
1581 self.0.encode(encoder, offset + 0, depth)?;
1583 self.1.encode(encoder, offset + 16, depth)?;
1584 Ok(())
1585 }
1586 }
1587
1588 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1589 for ManagerRestartDriverHostsRequest
1590 {
1591 #[inline(always)]
1592 fn new_empty() -> Self {
1593 Self {
1594 driver_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
1595 rematch_flags: fidl::new_empty!(RestartRematchFlags, D),
1596 }
1597 }
1598
1599 #[inline]
1600 unsafe fn decode(
1601 &mut self,
1602 decoder: &mut fidl::encoding::Decoder<'_, D>,
1603 offset: usize,
1604 _depth: fidl::encoding::Depth,
1605 ) -> fidl::Result<()> {
1606 decoder.debug_check_bounds::<Self>(offset);
1607 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
1609 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1610 let mask = 0xffffffff00000000u64;
1611 let maskedval = padval & mask;
1612 if maskedval != 0 {
1613 return Err(fidl::Error::NonZeroPadding {
1614 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
1615 });
1616 }
1617 fidl::decode!(
1618 fidl::encoding::BoundedString<4096>,
1619 D,
1620 &mut self.driver_url,
1621 decoder,
1622 offset + 0,
1623 _depth
1624 )?;
1625 fidl::decode!(
1626 RestartRematchFlags,
1627 D,
1628 &mut self.rematch_flags,
1629 decoder,
1630 offset + 16,
1631 _depth
1632 )?;
1633 Ok(())
1634 }
1635 }
1636
1637 impl fidl::encoding::ValueTypeMarker for ManagerBindAllUnboundNodes2Response {
1638 type Borrowed<'a> = &'a Self;
1639 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1640 value
1641 }
1642 }
1643
1644 unsafe impl fidl::encoding::TypeMarker for ManagerBindAllUnboundNodes2Response {
1645 type Owned = Self;
1646
1647 #[inline(always)]
1648 fn inline_align(_context: fidl::encoding::Context) -> usize {
1649 8
1650 }
1651
1652 #[inline(always)]
1653 fn inline_size(_context: fidl::encoding::Context) -> usize {
1654 16
1655 }
1656 }
1657
1658 unsafe impl<D: fidl::encoding::ResourceDialect>
1659 fidl::encoding::Encode<ManagerBindAllUnboundNodes2Response, D>
1660 for &ManagerBindAllUnboundNodes2Response
1661 {
1662 #[inline]
1663 unsafe fn encode(
1664 self,
1665 encoder: &mut fidl::encoding::Encoder<'_, D>,
1666 offset: usize,
1667 _depth: fidl::encoding::Depth,
1668 ) -> fidl::Result<()> {
1669 encoder.debug_check_bounds::<ManagerBindAllUnboundNodes2Response>(offset);
1670 fidl::encoding::Encode::<ManagerBindAllUnboundNodes2Response, D>::encode(
1672 (
1673 <fidl::encoding::Vector<NodeBindingInfo, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.binding_result),
1674 ),
1675 encoder, offset, _depth
1676 )
1677 }
1678 }
1679 unsafe impl<
1680 D: fidl::encoding::ResourceDialect,
1681 T0: fidl::encoding::Encode<fidl::encoding::Vector<NodeBindingInfo, 256>, D>,
1682 > fidl::encoding::Encode<ManagerBindAllUnboundNodes2Response, D> for (T0,)
1683 {
1684 #[inline]
1685 unsafe fn encode(
1686 self,
1687 encoder: &mut fidl::encoding::Encoder<'_, D>,
1688 offset: usize,
1689 depth: fidl::encoding::Depth,
1690 ) -> fidl::Result<()> {
1691 encoder.debug_check_bounds::<ManagerBindAllUnboundNodes2Response>(offset);
1692 self.0.encode(encoder, offset + 0, depth)?;
1696 Ok(())
1697 }
1698 }
1699
1700 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1701 for ManagerBindAllUnboundNodes2Response
1702 {
1703 #[inline(always)]
1704 fn new_empty() -> Self {
1705 Self {
1706 binding_result: fidl::new_empty!(fidl::encoding::Vector<NodeBindingInfo, 256>, D),
1707 }
1708 }
1709
1710 #[inline]
1711 unsafe fn decode(
1712 &mut self,
1713 decoder: &mut fidl::encoding::Decoder<'_, D>,
1714 offset: usize,
1715 _depth: fidl::encoding::Depth,
1716 ) -> fidl::Result<()> {
1717 decoder.debug_check_bounds::<Self>(offset);
1718 fidl::decode!(fidl::encoding::Vector<NodeBindingInfo, 256>, D, &mut self.binding_result, decoder, offset + 0, _depth)?;
1720 Ok(())
1721 }
1722 }
1723
1724 impl fidl::encoding::ValueTypeMarker for ManagerBindAllUnboundNodesResponse {
1725 type Borrowed<'a> = &'a Self;
1726 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1727 value
1728 }
1729 }
1730
1731 unsafe impl fidl::encoding::TypeMarker for ManagerBindAllUnboundNodesResponse {
1732 type Owned = Self;
1733
1734 #[inline(always)]
1735 fn inline_align(_context: fidl::encoding::Context) -> usize {
1736 8
1737 }
1738
1739 #[inline(always)]
1740 fn inline_size(_context: fidl::encoding::Context) -> usize {
1741 16
1742 }
1743 }
1744
1745 unsafe impl<D: fidl::encoding::ResourceDialect>
1746 fidl::encoding::Encode<ManagerBindAllUnboundNodesResponse, D>
1747 for &ManagerBindAllUnboundNodesResponse
1748 {
1749 #[inline]
1750 unsafe fn encode(
1751 self,
1752 encoder: &mut fidl::encoding::Encoder<'_, D>,
1753 offset: usize,
1754 _depth: fidl::encoding::Depth,
1755 ) -> fidl::Result<()> {
1756 encoder.debug_check_bounds::<ManagerBindAllUnboundNodesResponse>(offset);
1757 fidl::encoding::Encode::<ManagerBindAllUnboundNodesResponse, D>::encode(
1759 (
1760 <fidl::encoding::Vector<NodeBindingInfo, 10> as fidl::encoding::ValueTypeMarker>::borrow(&self.binding_result),
1761 ),
1762 encoder, offset, _depth
1763 )
1764 }
1765 }
1766 unsafe impl<
1767 D: fidl::encoding::ResourceDialect,
1768 T0: fidl::encoding::Encode<fidl::encoding::Vector<NodeBindingInfo, 10>, D>,
1769 > fidl::encoding::Encode<ManagerBindAllUnboundNodesResponse, D> for (T0,)
1770 {
1771 #[inline]
1772 unsafe fn encode(
1773 self,
1774 encoder: &mut fidl::encoding::Encoder<'_, D>,
1775 offset: usize,
1776 depth: fidl::encoding::Depth,
1777 ) -> fidl::Result<()> {
1778 encoder.debug_check_bounds::<ManagerBindAllUnboundNodesResponse>(offset);
1779 self.0.encode(encoder, offset + 0, depth)?;
1783 Ok(())
1784 }
1785 }
1786
1787 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1788 for ManagerBindAllUnboundNodesResponse
1789 {
1790 #[inline(always)]
1791 fn new_empty() -> Self {
1792 Self {
1793 binding_result: fidl::new_empty!(fidl::encoding::Vector<NodeBindingInfo, 10>, D),
1794 }
1795 }
1796
1797 #[inline]
1798 unsafe fn decode(
1799 &mut self,
1800 decoder: &mut fidl::encoding::Decoder<'_, D>,
1801 offset: usize,
1802 _depth: fidl::encoding::Depth,
1803 ) -> fidl::Result<()> {
1804 decoder.debug_check_bounds::<Self>(offset);
1805 fidl::decode!(fidl::encoding::Vector<NodeBindingInfo, 10>, D, &mut self.binding_result, decoder, offset + 0, _depth)?;
1807 Ok(())
1808 }
1809 }
1810
1811 impl fidl::encoding::ValueTypeMarker for ManagerRebindCompositesWithDriverResponse {
1812 type Borrowed<'a> = &'a Self;
1813 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1814 value
1815 }
1816 }
1817
1818 unsafe impl fidl::encoding::TypeMarker for ManagerRebindCompositesWithDriverResponse {
1819 type Owned = Self;
1820
1821 #[inline(always)]
1822 fn inline_align(_context: fidl::encoding::Context) -> usize {
1823 4
1824 }
1825
1826 #[inline(always)]
1827 fn inline_size(_context: fidl::encoding::Context) -> usize {
1828 4
1829 }
1830 #[inline(always)]
1831 fn encode_is_copy() -> bool {
1832 true
1833 }
1834
1835 #[inline(always)]
1836 fn decode_is_copy() -> bool {
1837 true
1838 }
1839 }
1840
1841 unsafe impl<D: fidl::encoding::ResourceDialect>
1842 fidl::encoding::Encode<ManagerRebindCompositesWithDriverResponse, D>
1843 for &ManagerRebindCompositesWithDriverResponse
1844 {
1845 #[inline]
1846 unsafe fn encode(
1847 self,
1848 encoder: &mut fidl::encoding::Encoder<'_, D>,
1849 offset: usize,
1850 _depth: fidl::encoding::Depth,
1851 ) -> fidl::Result<()> {
1852 encoder.debug_check_bounds::<ManagerRebindCompositesWithDriverResponse>(offset);
1853 unsafe {
1854 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1856 (buf_ptr as *mut ManagerRebindCompositesWithDriverResponse).write_unaligned(
1857 (self as *const ManagerRebindCompositesWithDriverResponse).read(),
1858 );
1859 }
1862 Ok(())
1863 }
1864 }
1865 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1866 fidl::encoding::Encode<ManagerRebindCompositesWithDriverResponse, D> for (T0,)
1867 {
1868 #[inline]
1869 unsafe fn encode(
1870 self,
1871 encoder: &mut fidl::encoding::Encoder<'_, D>,
1872 offset: usize,
1873 depth: fidl::encoding::Depth,
1874 ) -> fidl::Result<()> {
1875 encoder.debug_check_bounds::<ManagerRebindCompositesWithDriverResponse>(offset);
1876 self.0.encode(encoder, offset + 0, depth)?;
1880 Ok(())
1881 }
1882 }
1883
1884 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1885 for ManagerRebindCompositesWithDriverResponse
1886 {
1887 #[inline(always)]
1888 fn new_empty() -> Self {
1889 Self { count: fidl::new_empty!(u32, D) }
1890 }
1891
1892 #[inline]
1893 unsafe fn decode(
1894 &mut self,
1895 decoder: &mut fidl::encoding::Decoder<'_, D>,
1896 offset: usize,
1897 _depth: fidl::encoding::Depth,
1898 ) -> fidl::Result<()> {
1899 decoder.debug_check_bounds::<Self>(offset);
1900 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1901 unsafe {
1904 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1905 }
1906 Ok(())
1907 }
1908 }
1909
1910 impl fidl::encoding::ValueTypeMarker for ManagerRestartDriverHostsResponse {
1911 type Borrowed<'a> = &'a Self;
1912 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1913 value
1914 }
1915 }
1916
1917 unsafe impl fidl::encoding::TypeMarker for ManagerRestartDriverHostsResponse {
1918 type Owned = Self;
1919
1920 #[inline(always)]
1921 fn inline_align(_context: fidl::encoding::Context) -> usize {
1922 4
1923 }
1924
1925 #[inline(always)]
1926 fn inline_size(_context: fidl::encoding::Context) -> usize {
1927 4
1928 }
1929 #[inline(always)]
1930 fn encode_is_copy() -> bool {
1931 true
1932 }
1933
1934 #[inline(always)]
1935 fn decode_is_copy() -> bool {
1936 true
1937 }
1938 }
1939
1940 unsafe impl<D: fidl::encoding::ResourceDialect>
1941 fidl::encoding::Encode<ManagerRestartDriverHostsResponse, D>
1942 for &ManagerRestartDriverHostsResponse
1943 {
1944 #[inline]
1945 unsafe fn encode(
1946 self,
1947 encoder: &mut fidl::encoding::Encoder<'_, D>,
1948 offset: usize,
1949 _depth: fidl::encoding::Depth,
1950 ) -> fidl::Result<()> {
1951 encoder.debug_check_bounds::<ManagerRestartDriverHostsResponse>(offset);
1952 unsafe {
1953 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1955 (buf_ptr as *mut ManagerRestartDriverHostsResponse)
1956 .write_unaligned((self as *const ManagerRestartDriverHostsResponse).read());
1957 }
1960 Ok(())
1961 }
1962 }
1963 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1964 fidl::encoding::Encode<ManagerRestartDriverHostsResponse, D> for (T0,)
1965 {
1966 #[inline]
1967 unsafe fn encode(
1968 self,
1969 encoder: &mut fidl::encoding::Encoder<'_, D>,
1970 offset: usize,
1971 depth: fidl::encoding::Depth,
1972 ) -> fidl::Result<()> {
1973 encoder.debug_check_bounds::<ManagerRestartDriverHostsResponse>(offset);
1974 self.0.encode(encoder, offset + 0, depth)?;
1978 Ok(())
1979 }
1980 }
1981
1982 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1983 for ManagerRestartDriverHostsResponse
1984 {
1985 #[inline(always)]
1986 fn new_empty() -> Self {
1987 Self { count: fidl::new_empty!(u32, D) }
1988 }
1989
1990 #[inline]
1991 unsafe fn decode(
1992 &mut self,
1993 decoder: &mut fidl::encoding::Decoder<'_, D>,
1994 offset: usize,
1995 _depth: fidl::encoding::Depth,
1996 ) -> fidl::Result<()> {
1997 decoder.debug_check_bounds::<Self>(offset);
1998 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1999 unsafe {
2002 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2003 }
2004 Ok(())
2005 }
2006 }
2007
2008 impl fidl::encoding::ValueTypeMarker for NodeInfoIteratorGetNextResponse {
2009 type Borrowed<'a> = &'a Self;
2010 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2011 value
2012 }
2013 }
2014
2015 unsafe impl fidl::encoding::TypeMarker for NodeInfoIteratorGetNextResponse {
2016 type Owned = Self;
2017
2018 #[inline(always)]
2019 fn inline_align(_context: fidl::encoding::Context) -> usize {
2020 8
2021 }
2022
2023 #[inline(always)]
2024 fn inline_size(_context: fidl::encoding::Context) -> usize {
2025 16
2026 }
2027 }
2028
2029 unsafe impl<D: fidl::encoding::ResourceDialect>
2030 fidl::encoding::Encode<NodeInfoIteratorGetNextResponse, D>
2031 for &NodeInfoIteratorGetNextResponse
2032 {
2033 #[inline]
2034 unsafe fn encode(
2035 self,
2036 encoder: &mut fidl::encoding::Encoder<'_, D>,
2037 offset: usize,
2038 _depth: fidl::encoding::Depth,
2039 ) -> fidl::Result<()> {
2040 encoder.debug_check_bounds::<NodeInfoIteratorGetNextResponse>(offset);
2041 fidl::encoding::Encode::<NodeInfoIteratorGetNextResponse, D>::encode(
2043 (
2044 <fidl::encoding::UnboundedVector<NodeInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.nodes),
2045 ),
2046 encoder, offset, _depth
2047 )
2048 }
2049 }
2050 unsafe impl<
2051 D: fidl::encoding::ResourceDialect,
2052 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<NodeInfo>, D>,
2053 > fidl::encoding::Encode<NodeInfoIteratorGetNextResponse, D> for (T0,)
2054 {
2055 #[inline]
2056 unsafe fn encode(
2057 self,
2058 encoder: &mut fidl::encoding::Encoder<'_, D>,
2059 offset: usize,
2060 depth: fidl::encoding::Depth,
2061 ) -> fidl::Result<()> {
2062 encoder.debug_check_bounds::<NodeInfoIteratorGetNextResponse>(offset);
2063 self.0.encode(encoder, offset + 0, depth)?;
2067 Ok(())
2068 }
2069 }
2070
2071 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2072 for NodeInfoIteratorGetNextResponse
2073 {
2074 #[inline(always)]
2075 fn new_empty() -> Self {
2076 Self { nodes: fidl::new_empty!(fidl::encoding::UnboundedVector<NodeInfo>, D) }
2077 }
2078
2079 #[inline]
2080 unsafe fn decode(
2081 &mut self,
2082 decoder: &mut fidl::encoding::Decoder<'_, D>,
2083 offset: usize,
2084 _depth: fidl::encoding::Depth,
2085 ) -> fidl::Result<()> {
2086 decoder.debug_check_bounds::<Self>(offset);
2087 fidl::decode!(
2089 fidl::encoding::UnboundedVector<NodeInfo>,
2090 D,
2091 &mut self.nodes,
2092 decoder,
2093 offset + 0,
2094 _depth
2095 )?;
2096 Ok(())
2097 }
2098 }
2099
2100 impl CompositeNodeInfo {
2101 #[inline(always)]
2102 fn max_ordinal_present(&self) -> u64 {
2103 if let Some(_) = self.moniker {
2104 return 5;
2105 }
2106 if let Some(_) = self.parent_monikers {
2107 return 4;
2108 }
2109 if let Some(_) = self.composite {
2110 return 3;
2111 }
2112 if let Some(_) = self.topological_path {
2113 return 2;
2114 }
2115 if let Some(_) = self.parent_topological_paths {
2116 return 1;
2117 }
2118 0
2119 }
2120 }
2121
2122 impl fidl::encoding::ValueTypeMarker for CompositeNodeInfo {
2123 type Borrowed<'a> = &'a Self;
2124 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2125 value
2126 }
2127 }
2128
2129 unsafe impl fidl::encoding::TypeMarker for CompositeNodeInfo {
2130 type Owned = Self;
2131
2132 #[inline(always)]
2133 fn inline_align(_context: fidl::encoding::Context) -> usize {
2134 8
2135 }
2136
2137 #[inline(always)]
2138 fn inline_size(_context: fidl::encoding::Context) -> usize {
2139 16
2140 }
2141 }
2142
2143 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CompositeNodeInfo, D>
2144 for &CompositeNodeInfo
2145 {
2146 unsafe fn encode(
2147 self,
2148 encoder: &mut fidl::encoding::Encoder<'_, D>,
2149 offset: usize,
2150 mut depth: fidl::encoding::Depth,
2151 ) -> fidl::Result<()> {
2152 encoder.debug_check_bounds::<CompositeNodeInfo>(offset);
2153 let max_ordinal: u64 = self.max_ordinal_present();
2155 encoder.write_num(max_ordinal, offset);
2156 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2157 if max_ordinal == 0 {
2159 return Ok(());
2160 }
2161 depth.increment()?;
2162 let envelope_size = 8;
2163 let bytes_len = max_ordinal as usize * envelope_size;
2164 #[allow(unused_variables)]
2165 let offset = encoder.out_of_line_offset(bytes_len);
2166 let mut _prev_end_offset: usize = 0;
2167 if 1 > max_ordinal {
2168 return Ok(());
2169 }
2170
2171 let cur_offset: usize = (1 - 1) * envelope_size;
2174
2175 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2177
2178 fidl::encoding::encode_in_envelope_optional::<
2183 fidl::encoding::UnboundedVector<
2184 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2185 >,
2186 D,
2187 >(
2188 self.parent_topological_paths.as_ref().map(
2189 <fidl::encoding::UnboundedVector<
2190 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2191 > as fidl::encoding::ValueTypeMarker>::borrow,
2192 ),
2193 encoder,
2194 offset + cur_offset,
2195 depth,
2196 )?;
2197
2198 _prev_end_offset = cur_offset + envelope_size;
2199 if 2 > max_ordinal {
2200 return Ok(());
2201 }
2202
2203 let cur_offset: usize = (2 - 1) * envelope_size;
2206
2207 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2209
2210 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
2215 self.topological_path.as_ref().map(
2216 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
2217 ),
2218 encoder,
2219 offset + cur_offset,
2220 depth,
2221 )?;
2222
2223 _prev_end_offset = cur_offset + envelope_size;
2224 if 3 > max_ordinal {
2225 return Ok(());
2226 }
2227
2228 let cur_offset: usize = (3 - 1) * envelope_size;
2231
2232 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2234
2235 fidl::encoding::encode_in_envelope_optional::<CompositeInfo, D>(
2240 self.composite
2241 .as_ref()
2242 .map(<CompositeInfo as fidl::encoding::ValueTypeMarker>::borrow),
2243 encoder,
2244 offset + cur_offset,
2245 depth,
2246 )?;
2247
2248 _prev_end_offset = cur_offset + envelope_size;
2249 if 4 > max_ordinal {
2250 return Ok(());
2251 }
2252
2253 let cur_offset: usize = (4 - 1) * envelope_size;
2256
2257 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2259
2260 fidl::encoding::encode_in_envelope_optional::<
2265 fidl::encoding::UnboundedVector<
2266 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2267 >,
2268 D,
2269 >(
2270 self.parent_monikers.as_ref().map(
2271 <fidl::encoding::UnboundedVector<
2272 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2273 > as fidl::encoding::ValueTypeMarker>::borrow,
2274 ),
2275 encoder,
2276 offset + cur_offset,
2277 depth,
2278 )?;
2279
2280 _prev_end_offset = cur_offset + envelope_size;
2281 if 5 > max_ordinal {
2282 return Ok(());
2283 }
2284
2285 let cur_offset: usize = (5 - 1) * envelope_size;
2288
2289 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2291
2292 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
2297 self.moniker.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
2298 encoder, offset + cur_offset, depth
2299 )?;
2300
2301 _prev_end_offset = cur_offset + envelope_size;
2302
2303 Ok(())
2304 }
2305 }
2306
2307 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompositeNodeInfo {
2308 #[inline(always)]
2309 fn new_empty() -> Self {
2310 Self::default()
2311 }
2312
2313 unsafe fn decode(
2314 &mut self,
2315 decoder: &mut fidl::encoding::Decoder<'_, D>,
2316 offset: usize,
2317 mut depth: fidl::encoding::Depth,
2318 ) -> fidl::Result<()> {
2319 decoder.debug_check_bounds::<Self>(offset);
2320 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2321 None => return Err(fidl::Error::NotNullable),
2322 Some(len) => len,
2323 };
2324 if len == 0 {
2326 return Ok(());
2327 };
2328 depth.increment()?;
2329 let envelope_size = 8;
2330 let bytes_len = len * envelope_size;
2331 let offset = decoder.out_of_line_offset(bytes_len)?;
2332 let mut _next_ordinal_to_read = 0;
2334 let mut next_offset = offset;
2335 let end_offset = offset + bytes_len;
2336 _next_ordinal_to_read += 1;
2337 if next_offset >= end_offset {
2338 return Ok(());
2339 }
2340
2341 while _next_ordinal_to_read < 1 {
2343 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2344 _next_ordinal_to_read += 1;
2345 next_offset += envelope_size;
2346 }
2347
2348 let next_out_of_line = decoder.next_out_of_line();
2349 let handles_before = decoder.remaining_handles();
2350 if let Some((inlined, num_bytes, num_handles)) =
2351 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2352 {
2353 let member_inline_size = <fidl::encoding::UnboundedVector<
2354 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2355 > as fidl::encoding::TypeMarker>::inline_size(
2356 decoder.context
2357 );
2358 if inlined != (member_inline_size <= 4) {
2359 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2360 }
2361 let inner_offset;
2362 let mut inner_depth = depth.clone();
2363 if inlined {
2364 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2365 inner_offset = next_offset;
2366 } else {
2367 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2368 inner_depth.increment()?;
2369 }
2370 let val_ref = self.parent_topological_paths.get_or_insert_with(|| {
2371 fidl::new_empty!(
2372 fidl::encoding::UnboundedVector<
2373 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2374 >,
2375 D
2376 )
2377 });
2378 fidl::decode!(
2379 fidl::encoding::UnboundedVector<
2380 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2381 >,
2382 D,
2383 val_ref,
2384 decoder,
2385 inner_offset,
2386 inner_depth
2387 )?;
2388 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2389 {
2390 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2391 }
2392 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2393 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2394 }
2395 }
2396
2397 next_offset += envelope_size;
2398 _next_ordinal_to_read += 1;
2399 if next_offset >= end_offset {
2400 return Ok(());
2401 }
2402
2403 while _next_ordinal_to_read < 2 {
2405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2406 _next_ordinal_to_read += 1;
2407 next_offset += envelope_size;
2408 }
2409
2410 let next_out_of_line = decoder.next_out_of_line();
2411 let handles_before = decoder.remaining_handles();
2412 if let Some((inlined, num_bytes, num_handles)) =
2413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2414 {
2415 let member_inline_size =
2416 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
2417 decoder.context,
2418 );
2419 if inlined != (member_inline_size <= 4) {
2420 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2421 }
2422 let inner_offset;
2423 let mut inner_depth = depth.clone();
2424 if inlined {
2425 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2426 inner_offset = next_offset;
2427 } else {
2428 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2429 inner_depth.increment()?;
2430 }
2431 let val_ref = self
2432 .topological_path
2433 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
2434 fidl::decode!(
2435 fidl::encoding::UnboundedString,
2436 D,
2437 val_ref,
2438 decoder,
2439 inner_offset,
2440 inner_depth
2441 )?;
2442 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2443 {
2444 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2445 }
2446 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2447 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2448 }
2449 }
2450
2451 next_offset += envelope_size;
2452 _next_ordinal_to_read += 1;
2453 if next_offset >= end_offset {
2454 return Ok(());
2455 }
2456
2457 while _next_ordinal_to_read < 3 {
2459 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2460 _next_ordinal_to_read += 1;
2461 next_offset += envelope_size;
2462 }
2463
2464 let next_out_of_line = decoder.next_out_of_line();
2465 let handles_before = decoder.remaining_handles();
2466 if let Some((inlined, num_bytes, num_handles)) =
2467 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2468 {
2469 let member_inline_size =
2470 <CompositeInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2471 if inlined != (member_inline_size <= 4) {
2472 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2473 }
2474 let inner_offset;
2475 let mut inner_depth = depth.clone();
2476 if inlined {
2477 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2478 inner_offset = next_offset;
2479 } else {
2480 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2481 inner_depth.increment()?;
2482 }
2483 let val_ref =
2484 self.composite.get_or_insert_with(|| fidl::new_empty!(CompositeInfo, D));
2485 fidl::decode!(CompositeInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
2486 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2487 {
2488 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2489 }
2490 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2491 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2492 }
2493 }
2494
2495 next_offset += envelope_size;
2496 _next_ordinal_to_read += 1;
2497 if next_offset >= end_offset {
2498 return Ok(());
2499 }
2500
2501 while _next_ordinal_to_read < 4 {
2503 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2504 _next_ordinal_to_read += 1;
2505 next_offset += envelope_size;
2506 }
2507
2508 let next_out_of_line = decoder.next_out_of_line();
2509 let handles_before = decoder.remaining_handles();
2510 if let Some((inlined, num_bytes, num_handles)) =
2511 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2512 {
2513 let member_inline_size = <fidl::encoding::UnboundedVector<
2514 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2515 > as fidl::encoding::TypeMarker>::inline_size(
2516 decoder.context
2517 );
2518 if inlined != (member_inline_size <= 4) {
2519 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2520 }
2521 let inner_offset;
2522 let mut inner_depth = depth.clone();
2523 if inlined {
2524 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2525 inner_offset = next_offset;
2526 } else {
2527 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2528 inner_depth.increment()?;
2529 }
2530 let val_ref = self.parent_monikers.get_or_insert_with(|| {
2531 fidl::new_empty!(
2532 fidl::encoding::UnboundedVector<
2533 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2534 >,
2535 D
2536 )
2537 });
2538 fidl::decode!(
2539 fidl::encoding::UnboundedVector<
2540 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2541 >,
2542 D,
2543 val_ref,
2544 decoder,
2545 inner_offset,
2546 inner_depth
2547 )?;
2548 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2549 {
2550 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2551 }
2552 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2553 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2554 }
2555 }
2556
2557 next_offset += envelope_size;
2558 _next_ordinal_to_read += 1;
2559 if next_offset >= end_offset {
2560 return Ok(());
2561 }
2562
2563 while _next_ordinal_to_read < 5 {
2565 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2566 _next_ordinal_to_read += 1;
2567 next_offset += envelope_size;
2568 }
2569
2570 let next_out_of_line = decoder.next_out_of_line();
2571 let handles_before = decoder.remaining_handles();
2572 if let Some((inlined, num_bytes, num_handles)) =
2573 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2574 {
2575 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2576 if inlined != (member_inline_size <= 4) {
2577 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2578 }
2579 let inner_offset;
2580 let mut inner_depth = depth.clone();
2581 if inlined {
2582 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2583 inner_offset = next_offset;
2584 } else {
2585 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2586 inner_depth.increment()?;
2587 }
2588 let val_ref = self.moniker.get_or_insert_with(|| {
2589 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
2590 });
2591 fidl::decode!(
2592 fidl::encoding::BoundedString<1024>,
2593 D,
2594 val_ref,
2595 decoder,
2596 inner_offset,
2597 inner_depth
2598 )?;
2599 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2600 {
2601 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2602 }
2603 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2604 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2605 }
2606 }
2607
2608 next_offset += envelope_size;
2609
2610 while next_offset < end_offset {
2612 _next_ordinal_to_read += 1;
2613 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2614 next_offset += envelope_size;
2615 }
2616
2617 Ok(())
2618 }
2619 }
2620
2621 impl DispatcherDebugStats {
2622 #[inline(always)]
2623 fn max_ordinal_present(&self) -> u64 {
2624 if let Some(_) = self.non_inlined {
2625 return 3;
2626 }
2627 if let Some(_) = self.num_inlined_requests {
2628 return 2;
2629 }
2630 if let Some(_) = self.num_total_requests {
2631 return 1;
2632 }
2633 0
2634 }
2635 }
2636
2637 impl fidl::encoding::ValueTypeMarker for DispatcherDebugStats {
2638 type Borrowed<'a> = &'a Self;
2639 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2640 value
2641 }
2642 }
2643
2644 unsafe impl fidl::encoding::TypeMarker for DispatcherDebugStats {
2645 type Owned = Self;
2646
2647 #[inline(always)]
2648 fn inline_align(_context: fidl::encoding::Context) -> usize {
2649 8
2650 }
2651
2652 #[inline(always)]
2653 fn inline_size(_context: fidl::encoding::Context) -> usize {
2654 16
2655 }
2656 }
2657
2658 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DispatcherDebugStats, D>
2659 for &DispatcherDebugStats
2660 {
2661 unsafe fn encode(
2662 self,
2663 encoder: &mut fidl::encoding::Encoder<'_, D>,
2664 offset: usize,
2665 mut depth: fidl::encoding::Depth,
2666 ) -> fidl::Result<()> {
2667 encoder.debug_check_bounds::<DispatcherDebugStats>(offset);
2668 let max_ordinal: u64 = self.max_ordinal_present();
2670 encoder.write_num(max_ordinal, offset);
2671 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2672 if max_ordinal == 0 {
2674 return Ok(());
2675 }
2676 depth.increment()?;
2677 let envelope_size = 8;
2678 let bytes_len = max_ordinal as usize * envelope_size;
2679 #[allow(unused_variables)]
2680 let offset = encoder.out_of_line_offset(bytes_len);
2681 let mut _prev_end_offset: usize = 0;
2682 if 1 > max_ordinal {
2683 return Ok(());
2684 }
2685
2686 let cur_offset: usize = (1 - 1) * envelope_size;
2689
2690 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2692
2693 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2698 self.num_total_requests
2699 .as_ref()
2700 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2701 encoder,
2702 offset + cur_offset,
2703 depth,
2704 )?;
2705
2706 _prev_end_offset = cur_offset + envelope_size;
2707 if 2 > max_ordinal {
2708 return Ok(());
2709 }
2710
2711 let cur_offset: usize = (2 - 1) * envelope_size;
2714
2715 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2717
2718 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2723 self.num_inlined_requests
2724 .as_ref()
2725 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2726 encoder,
2727 offset + cur_offset,
2728 depth,
2729 )?;
2730
2731 _prev_end_offset = cur_offset + envelope_size;
2732 if 3 > max_ordinal {
2733 return Ok(());
2734 }
2735
2736 let cur_offset: usize = (3 - 1) * envelope_size;
2739
2740 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2742
2743 fidl::encoding::encode_in_envelope_optional::<NonInlinedRequestStats, D>(
2748 self.non_inlined
2749 .as_ref()
2750 .map(<NonInlinedRequestStats as fidl::encoding::ValueTypeMarker>::borrow),
2751 encoder,
2752 offset + cur_offset,
2753 depth,
2754 )?;
2755
2756 _prev_end_offset = cur_offset + envelope_size;
2757
2758 Ok(())
2759 }
2760 }
2761
2762 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DispatcherDebugStats {
2763 #[inline(always)]
2764 fn new_empty() -> Self {
2765 Self::default()
2766 }
2767
2768 unsafe fn decode(
2769 &mut self,
2770 decoder: &mut fidl::encoding::Decoder<'_, D>,
2771 offset: usize,
2772 mut depth: fidl::encoding::Depth,
2773 ) -> fidl::Result<()> {
2774 decoder.debug_check_bounds::<Self>(offset);
2775 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2776 None => return Err(fidl::Error::NotNullable),
2777 Some(len) => len,
2778 };
2779 if len == 0 {
2781 return Ok(());
2782 };
2783 depth.increment()?;
2784 let envelope_size = 8;
2785 let bytes_len = len * envelope_size;
2786 let offset = decoder.out_of_line_offset(bytes_len)?;
2787 let mut _next_ordinal_to_read = 0;
2789 let mut next_offset = offset;
2790 let end_offset = offset + bytes_len;
2791 _next_ordinal_to_read += 1;
2792 if next_offset >= end_offset {
2793 return Ok(());
2794 }
2795
2796 while _next_ordinal_to_read < 1 {
2798 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2799 _next_ordinal_to_read += 1;
2800 next_offset += envelope_size;
2801 }
2802
2803 let next_out_of_line = decoder.next_out_of_line();
2804 let handles_before = decoder.remaining_handles();
2805 if let Some((inlined, num_bytes, num_handles)) =
2806 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2807 {
2808 let member_inline_size =
2809 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2810 if inlined != (member_inline_size <= 4) {
2811 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2812 }
2813 let inner_offset;
2814 let mut inner_depth = depth.clone();
2815 if inlined {
2816 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2817 inner_offset = next_offset;
2818 } else {
2819 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2820 inner_depth.increment()?;
2821 }
2822 let val_ref =
2823 self.num_total_requests.get_or_insert_with(|| fidl::new_empty!(u64, D));
2824 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2825 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2826 {
2827 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2828 }
2829 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2830 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2831 }
2832 }
2833
2834 next_offset += envelope_size;
2835 _next_ordinal_to_read += 1;
2836 if next_offset >= end_offset {
2837 return Ok(());
2838 }
2839
2840 while _next_ordinal_to_read < 2 {
2842 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2843 _next_ordinal_to_read += 1;
2844 next_offset += envelope_size;
2845 }
2846
2847 let next_out_of_line = decoder.next_out_of_line();
2848 let handles_before = decoder.remaining_handles();
2849 if let Some((inlined, num_bytes, num_handles)) =
2850 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2851 {
2852 let member_inline_size =
2853 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2854 if inlined != (member_inline_size <= 4) {
2855 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2856 }
2857 let inner_offset;
2858 let mut inner_depth = depth.clone();
2859 if inlined {
2860 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2861 inner_offset = next_offset;
2862 } else {
2863 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2864 inner_depth.increment()?;
2865 }
2866 let val_ref =
2867 self.num_inlined_requests.get_or_insert_with(|| fidl::new_empty!(u64, D));
2868 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2869 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2870 {
2871 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2872 }
2873 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2874 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2875 }
2876 }
2877
2878 next_offset += envelope_size;
2879 _next_ordinal_to_read += 1;
2880 if next_offset >= end_offset {
2881 return Ok(());
2882 }
2883
2884 while _next_ordinal_to_read < 3 {
2886 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2887 _next_ordinal_to_read += 1;
2888 next_offset += envelope_size;
2889 }
2890
2891 let next_out_of_line = decoder.next_out_of_line();
2892 let handles_before = decoder.remaining_handles();
2893 if let Some((inlined, num_bytes, num_handles)) =
2894 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2895 {
2896 let member_inline_size =
2897 <NonInlinedRequestStats as fidl::encoding::TypeMarker>::inline_size(
2898 decoder.context,
2899 );
2900 if inlined != (member_inline_size <= 4) {
2901 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2902 }
2903 let inner_offset;
2904 let mut inner_depth = depth.clone();
2905 if inlined {
2906 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2907 inner_offset = next_offset;
2908 } else {
2909 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2910 inner_depth.increment()?;
2911 }
2912 let val_ref = self
2913 .non_inlined
2914 .get_or_insert_with(|| fidl::new_empty!(NonInlinedRequestStats, D));
2915 fidl::decode!(
2916 NonInlinedRequestStats,
2917 D,
2918 val_ref,
2919 decoder,
2920 inner_offset,
2921 inner_depth
2922 )?;
2923 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2924 {
2925 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2926 }
2927 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2928 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2929 }
2930 }
2931
2932 next_offset += envelope_size;
2933
2934 while next_offset < end_offset {
2936 _next_ordinal_to_read += 1;
2937 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2938 next_offset += envelope_size;
2939 }
2940
2941 Ok(())
2942 }
2943 }
2944
2945 impl DispatcherInfo {
2946 #[inline(always)]
2947 fn max_ordinal_present(&self) -> u64 {
2948 if let Some(_) = self.num_queued_tasks {
2949 return 14;
2950 }
2951 if let Some(_) = self.queued_tasks {
2952 return 13;
2953 }
2954 if let Some(_) = self.debug_stats {
2955 return 12;
2956 }
2957 if let Some(_) = self.destroy_user_initiated {
2958 return 11;
2959 }
2960 if let Some(_) = self.destroy_context {
2961 return 10;
2962 }
2963 if let Some(_) = self.state {
2964 return 9;
2965 }
2966 if let Some(_) = self.allow_sync_calls {
2967 return 8;
2968 }
2969 if let Some(_) = self.synchronized {
2970 return 7;
2971 }
2972 if let Some(_) = self.driver_ptr {
2973 return 6;
2974 }
2975 if let Some(_) = self.dispatcher_ptr {
2976 return 5;
2977 }
2978 if let Some(_) = self.scheduler_role {
2979 return 4;
2980 }
2981 if let Some(_) = self.options {
2982 return 3;
2983 }
2984 if let Some(_) = self.name {
2985 return 2;
2986 }
2987 if let Some(_) = self.driver {
2988 return 1;
2989 }
2990 0
2991 }
2992 }
2993
2994 impl fidl::encoding::ValueTypeMarker for DispatcherInfo {
2995 type Borrowed<'a> = &'a Self;
2996 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2997 value
2998 }
2999 }
3000
3001 unsafe impl fidl::encoding::TypeMarker for DispatcherInfo {
3002 type Owned = Self;
3003
3004 #[inline(always)]
3005 fn inline_align(_context: fidl::encoding::Context) -> usize {
3006 8
3007 }
3008
3009 #[inline(always)]
3010 fn inline_size(_context: fidl::encoding::Context) -> usize {
3011 16
3012 }
3013 }
3014
3015 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DispatcherInfo, D>
3016 for &DispatcherInfo
3017 {
3018 unsafe fn encode(
3019 self,
3020 encoder: &mut fidl::encoding::Encoder<'_, D>,
3021 offset: usize,
3022 mut depth: fidl::encoding::Depth,
3023 ) -> fidl::Result<()> {
3024 encoder.debug_check_bounds::<DispatcherInfo>(offset);
3025 let max_ordinal: u64 = self.max_ordinal_present();
3027 encoder.write_num(max_ordinal, offset);
3028 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3029 if max_ordinal == 0 {
3031 return Ok(());
3032 }
3033 depth.increment()?;
3034 let envelope_size = 8;
3035 let bytes_len = max_ordinal as usize * envelope_size;
3036 #[allow(unused_variables)]
3037 let offset = encoder.out_of_line_offset(bytes_len);
3038 let mut _prev_end_offset: usize = 0;
3039 if 1 > max_ordinal {
3040 return Ok(());
3041 }
3042
3043 let cur_offset: usize = (1 - 1) * envelope_size;
3046
3047 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3049
3050 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
3055 self.driver.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
3056 encoder, offset + cur_offset, depth
3057 )?;
3058
3059 _prev_end_offset = cur_offset + envelope_size;
3060 if 2 > max_ordinal {
3061 return Ok(());
3062 }
3063
3064 let cur_offset: usize = (2 - 1) * envelope_size;
3067
3068 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3070
3071 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3076 self.name.as_ref().map(
3077 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3078 ),
3079 encoder,
3080 offset + cur_offset,
3081 depth,
3082 )?;
3083
3084 _prev_end_offset = cur_offset + envelope_size;
3085 if 3 > max_ordinal {
3086 return Ok(());
3087 }
3088
3089 let cur_offset: usize = (3 - 1) * envelope_size;
3092
3093 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3095
3096 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3101 self.options.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3102 encoder,
3103 offset + cur_offset,
3104 depth,
3105 )?;
3106
3107 _prev_end_offset = cur_offset + envelope_size;
3108 if 4 > max_ordinal {
3109 return Ok(());
3110 }
3111
3112 let cur_offset: usize = (4 - 1) * envelope_size;
3115
3116 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3118
3119 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3124 self.scheduler_role.as_ref().map(
3125 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3126 ),
3127 encoder,
3128 offset + cur_offset,
3129 depth,
3130 )?;
3131
3132 _prev_end_offset = cur_offset + envelope_size;
3133 if 5 > max_ordinal {
3134 return Ok(());
3135 }
3136
3137 let cur_offset: usize = (5 - 1) * envelope_size;
3140
3141 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3143
3144 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3149 self.dispatcher_ptr.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3150 encoder,
3151 offset + cur_offset,
3152 depth,
3153 )?;
3154
3155 _prev_end_offset = cur_offset + envelope_size;
3156 if 6 > max_ordinal {
3157 return Ok(());
3158 }
3159
3160 let cur_offset: usize = (6 - 1) * envelope_size;
3163
3164 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3166
3167 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3172 self.driver_ptr.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3173 encoder,
3174 offset + cur_offset,
3175 depth,
3176 )?;
3177
3178 _prev_end_offset = cur_offset + envelope_size;
3179 if 7 > max_ordinal {
3180 return Ok(());
3181 }
3182
3183 let cur_offset: usize = (7 - 1) * envelope_size;
3186
3187 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3189
3190 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3195 self.synchronized.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3196 encoder,
3197 offset + cur_offset,
3198 depth,
3199 )?;
3200
3201 _prev_end_offset = cur_offset + envelope_size;
3202 if 8 > max_ordinal {
3203 return Ok(());
3204 }
3205
3206 let cur_offset: usize = (8 - 1) * envelope_size;
3209
3210 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3212
3213 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3218 self.allow_sync_calls
3219 .as_ref()
3220 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3221 encoder,
3222 offset + cur_offset,
3223 depth,
3224 )?;
3225
3226 _prev_end_offset = cur_offset + envelope_size;
3227 if 9 > max_ordinal {
3228 return Ok(());
3229 }
3230
3231 let cur_offset: usize = (9 - 1) * envelope_size;
3234
3235 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3237
3238 fidl::encoding::encode_in_envelope_optional::<DispatcherState, D>(
3243 self.state
3244 .as_ref()
3245 .map(<DispatcherState as fidl::encoding::ValueTypeMarker>::borrow),
3246 encoder,
3247 offset + cur_offset,
3248 depth,
3249 )?;
3250
3251 _prev_end_offset = cur_offset + envelope_size;
3252 if 10 > max_ordinal {
3253 return Ok(());
3254 }
3255
3256 let cur_offset: usize = (10 - 1) * envelope_size;
3259
3260 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3262
3263 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3268 self.destroy_context.as_ref().map(
3269 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3270 ),
3271 encoder,
3272 offset + cur_offset,
3273 depth,
3274 )?;
3275
3276 _prev_end_offset = cur_offset + envelope_size;
3277 if 11 > max_ordinal {
3278 return Ok(());
3279 }
3280
3281 let cur_offset: usize = (11 - 1) * envelope_size;
3284
3285 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3287
3288 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3293 self.destroy_user_initiated
3294 .as_ref()
3295 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3296 encoder,
3297 offset + cur_offset,
3298 depth,
3299 )?;
3300
3301 _prev_end_offset = cur_offset + envelope_size;
3302 if 12 > max_ordinal {
3303 return Ok(());
3304 }
3305
3306 let cur_offset: usize = (12 - 1) * envelope_size;
3309
3310 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3312
3313 fidl::encoding::encode_in_envelope_optional::<DispatcherDebugStats, D>(
3318 self.debug_stats
3319 .as_ref()
3320 .map(<DispatcherDebugStats as fidl::encoding::ValueTypeMarker>::borrow),
3321 encoder,
3322 offset + cur_offset,
3323 depth,
3324 )?;
3325
3326 _prev_end_offset = cur_offset + envelope_size;
3327 if 13 > max_ordinal {
3328 return Ok(());
3329 }
3330
3331 let cur_offset: usize = (13 - 1) * envelope_size;
3334
3335 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3337
3338 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<QueuedTaskInfo>, D>(
3343 self.queued_tasks.as_ref().map(<fidl::encoding::UnboundedVector<QueuedTaskInfo> as fidl::encoding::ValueTypeMarker>::borrow),
3344 encoder, offset + cur_offset, depth
3345 )?;
3346
3347 _prev_end_offset = cur_offset + envelope_size;
3348 if 14 > max_ordinal {
3349 return Ok(());
3350 }
3351
3352 let cur_offset: usize = (14 - 1) * envelope_size;
3355
3356 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3358
3359 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3364 self.num_queued_tasks
3365 .as_ref()
3366 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3367 encoder,
3368 offset + cur_offset,
3369 depth,
3370 )?;
3371
3372 _prev_end_offset = cur_offset + envelope_size;
3373
3374 Ok(())
3375 }
3376 }
3377
3378 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DispatcherInfo {
3379 #[inline(always)]
3380 fn new_empty() -> Self {
3381 Self::default()
3382 }
3383
3384 unsafe fn decode(
3385 &mut self,
3386 decoder: &mut fidl::encoding::Decoder<'_, D>,
3387 offset: usize,
3388 mut depth: fidl::encoding::Depth,
3389 ) -> fidl::Result<()> {
3390 decoder.debug_check_bounds::<Self>(offset);
3391 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3392 None => return Err(fidl::Error::NotNullable),
3393 Some(len) => len,
3394 };
3395 if len == 0 {
3397 return Ok(());
3398 };
3399 depth.increment()?;
3400 let envelope_size = 8;
3401 let bytes_len = len * envelope_size;
3402 let offset = decoder.out_of_line_offset(bytes_len)?;
3403 let mut _next_ordinal_to_read = 0;
3405 let mut next_offset = offset;
3406 let end_offset = offset + bytes_len;
3407 _next_ordinal_to_read += 1;
3408 if next_offset >= end_offset {
3409 return Ok(());
3410 }
3411
3412 while _next_ordinal_to_read < 1 {
3414 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3415 _next_ordinal_to_read += 1;
3416 next_offset += envelope_size;
3417 }
3418
3419 let next_out_of_line = decoder.next_out_of_line();
3420 let handles_before = decoder.remaining_handles();
3421 if let Some((inlined, num_bytes, num_handles)) =
3422 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3423 {
3424 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3425 if inlined != (member_inline_size <= 4) {
3426 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3427 }
3428 let inner_offset;
3429 let mut inner_depth = depth.clone();
3430 if inlined {
3431 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3432 inner_offset = next_offset;
3433 } else {
3434 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3435 inner_depth.increment()?;
3436 }
3437 let val_ref = self.driver.get_or_insert_with(|| {
3438 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
3439 });
3440 fidl::decode!(
3441 fidl::encoding::BoundedString<4096>,
3442 D,
3443 val_ref,
3444 decoder,
3445 inner_offset,
3446 inner_depth
3447 )?;
3448 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3449 {
3450 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3451 }
3452 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3453 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3454 }
3455 }
3456
3457 next_offset += envelope_size;
3458 _next_ordinal_to_read += 1;
3459 if next_offset >= end_offset {
3460 return Ok(());
3461 }
3462
3463 while _next_ordinal_to_read < 2 {
3465 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3466 _next_ordinal_to_read += 1;
3467 next_offset += envelope_size;
3468 }
3469
3470 let next_out_of_line = decoder.next_out_of_line();
3471 let handles_before = decoder.remaining_handles();
3472 if let Some((inlined, num_bytes, num_handles)) =
3473 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3474 {
3475 let member_inline_size =
3476 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
3477 decoder.context,
3478 );
3479 if inlined != (member_inline_size <= 4) {
3480 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3481 }
3482 let inner_offset;
3483 let mut inner_depth = depth.clone();
3484 if inlined {
3485 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3486 inner_offset = next_offset;
3487 } else {
3488 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3489 inner_depth.increment()?;
3490 }
3491 let val_ref = self
3492 .name
3493 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
3494 fidl::decode!(
3495 fidl::encoding::UnboundedString,
3496 D,
3497 val_ref,
3498 decoder,
3499 inner_offset,
3500 inner_depth
3501 )?;
3502 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3503 {
3504 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3505 }
3506 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3507 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3508 }
3509 }
3510
3511 next_offset += envelope_size;
3512 _next_ordinal_to_read += 1;
3513 if next_offset >= end_offset {
3514 return Ok(());
3515 }
3516
3517 while _next_ordinal_to_read < 3 {
3519 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3520 _next_ordinal_to_read += 1;
3521 next_offset += envelope_size;
3522 }
3523
3524 let next_out_of_line = decoder.next_out_of_line();
3525 let handles_before = decoder.remaining_handles();
3526 if let Some((inlined, num_bytes, num_handles)) =
3527 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3528 {
3529 let member_inline_size =
3530 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3531 if inlined != (member_inline_size <= 4) {
3532 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3533 }
3534 let inner_offset;
3535 let mut inner_depth = depth.clone();
3536 if inlined {
3537 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3538 inner_offset = next_offset;
3539 } else {
3540 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3541 inner_depth.increment()?;
3542 }
3543 let val_ref = self.options.get_or_insert_with(|| fidl::new_empty!(u32, D));
3544 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3545 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3546 {
3547 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3548 }
3549 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3550 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3551 }
3552 }
3553
3554 next_offset += envelope_size;
3555 _next_ordinal_to_read += 1;
3556 if next_offset >= end_offset {
3557 return Ok(());
3558 }
3559
3560 while _next_ordinal_to_read < 4 {
3562 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3563 _next_ordinal_to_read += 1;
3564 next_offset += envelope_size;
3565 }
3566
3567 let next_out_of_line = decoder.next_out_of_line();
3568 let handles_before = decoder.remaining_handles();
3569 if let Some((inlined, num_bytes, num_handles)) =
3570 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3571 {
3572 let member_inline_size =
3573 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
3574 decoder.context,
3575 );
3576 if inlined != (member_inline_size <= 4) {
3577 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3578 }
3579 let inner_offset;
3580 let mut inner_depth = depth.clone();
3581 if inlined {
3582 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3583 inner_offset = next_offset;
3584 } else {
3585 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3586 inner_depth.increment()?;
3587 }
3588 let val_ref = self
3589 .scheduler_role
3590 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
3591 fidl::decode!(
3592 fidl::encoding::UnboundedString,
3593 D,
3594 val_ref,
3595 decoder,
3596 inner_offset,
3597 inner_depth
3598 )?;
3599 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3600 {
3601 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3602 }
3603 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3604 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3605 }
3606 }
3607
3608 next_offset += envelope_size;
3609 _next_ordinal_to_read += 1;
3610 if next_offset >= end_offset {
3611 return Ok(());
3612 }
3613
3614 while _next_ordinal_to_read < 5 {
3616 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3617 _next_ordinal_to_read += 1;
3618 next_offset += envelope_size;
3619 }
3620
3621 let next_out_of_line = decoder.next_out_of_line();
3622 let handles_before = decoder.remaining_handles();
3623 if let Some((inlined, num_bytes, num_handles)) =
3624 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3625 {
3626 let member_inline_size =
3627 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3628 if inlined != (member_inline_size <= 4) {
3629 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3630 }
3631 let inner_offset;
3632 let mut inner_depth = depth.clone();
3633 if inlined {
3634 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3635 inner_offset = next_offset;
3636 } else {
3637 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3638 inner_depth.increment()?;
3639 }
3640 let val_ref = self.dispatcher_ptr.get_or_insert_with(|| fidl::new_empty!(u64, D));
3641 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3642 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3643 {
3644 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3645 }
3646 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3647 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3648 }
3649 }
3650
3651 next_offset += envelope_size;
3652 _next_ordinal_to_read += 1;
3653 if next_offset >= end_offset {
3654 return Ok(());
3655 }
3656
3657 while _next_ordinal_to_read < 6 {
3659 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3660 _next_ordinal_to_read += 1;
3661 next_offset += envelope_size;
3662 }
3663
3664 let next_out_of_line = decoder.next_out_of_line();
3665 let handles_before = decoder.remaining_handles();
3666 if let Some((inlined, num_bytes, num_handles)) =
3667 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3668 {
3669 let member_inline_size =
3670 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3671 if inlined != (member_inline_size <= 4) {
3672 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3673 }
3674 let inner_offset;
3675 let mut inner_depth = depth.clone();
3676 if inlined {
3677 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3678 inner_offset = next_offset;
3679 } else {
3680 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3681 inner_depth.increment()?;
3682 }
3683 let val_ref = self.driver_ptr.get_or_insert_with(|| fidl::new_empty!(u64, D));
3684 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3685 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3686 {
3687 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3688 }
3689 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3690 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3691 }
3692 }
3693
3694 next_offset += envelope_size;
3695 _next_ordinal_to_read += 1;
3696 if next_offset >= end_offset {
3697 return Ok(());
3698 }
3699
3700 while _next_ordinal_to_read < 7 {
3702 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3703 _next_ordinal_to_read += 1;
3704 next_offset += envelope_size;
3705 }
3706
3707 let next_out_of_line = decoder.next_out_of_line();
3708 let handles_before = decoder.remaining_handles();
3709 if let Some((inlined, num_bytes, num_handles)) =
3710 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3711 {
3712 let member_inline_size =
3713 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3714 if inlined != (member_inline_size <= 4) {
3715 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3716 }
3717 let inner_offset;
3718 let mut inner_depth = depth.clone();
3719 if inlined {
3720 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3721 inner_offset = next_offset;
3722 } else {
3723 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3724 inner_depth.increment()?;
3725 }
3726 let val_ref = self.synchronized.get_or_insert_with(|| fidl::new_empty!(bool, D));
3727 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3728 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3729 {
3730 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3731 }
3732 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3733 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3734 }
3735 }
3736
3737 next_offset += envelope_size;
3738 _next_ordinal_to_read += 1;
3739 if next_offset >= end_offset {
3740 return Ok(());
3741 }
3742
3743 while _next_ordinal_to_read < 8 {
3745 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3746 _next_ordinal_to_read += 1;
3747 next_offset += envelope_size;
3748 }
3749
3750 let next_out_of_line = decoder.next_out_of_line();
3751 let handles_before = decoder.remaining_handles();
3752 if let Some((inlined, num_bytes, num_handles)) =
3753 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3754 {
3755 let member_inline_size =
3756 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3757 if inlined != (member_inline_size <= 4) {
3758 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3759 }
3760 let inner_offset;
3761 let mut inner_depth = depth.clone();
3762 if inlined {
3763 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3764 inner_offset = next_offset;
3765 } else {
3766 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3767 inner_depth.increment()?;
3768 }
3769 let val_ref =
3770 self.allow_sync_calls.get_or_insert_with(|| fidl::new_empty!(bool, D));
3771 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3772 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3773 {
3774 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3775 }
3776 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3777 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3778 }
3779 }
3780
3781 next_offset += envelope_size;
3782 _next_ordinal_to_read += 1;
3783 if next_offset >= end_offset {
3784 return Ok(());
3785 }
3786
3787 while _next_ordinal_to_read < 9 {
3789 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3790 _next_ordinal_to_read += 1;
3791 next_offset += envelope_size;
3792 }
3793
3794 let next_out_of_line = decoder.next_out_of_line();
3795 let handles_before = decoder.remaining_handles();
3796 if let Some((inlined, num_bytes, num_handles)) =
3797 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3798 {
3799 let member_inline_size =
3800 <DispatcherState as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3801 if inlined != (member_inline_size <= 4) {
3802 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3803 }
3804 let inner_offset;
3805 let mut inner_depth = depth.clone();
3806 if inlined {
3807 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3808 inner_offset = next_offset;
3809 } else {
3810 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3811 inner_depth.increment()?;
3812 }
3813 let val_ref =
3814 self.state.get_or_insert_with(|| fidl::new_empty!(DispatcherState, D));
3815 fidl::decode!(DispatcherState, D, val_ref, decoder, inner_offset, inner_depth)?;
3816 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3817 {
3818 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3819 }
3820 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3821 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3822 }
3823 }
3824
3825 next_offset += envelope_size;
3826 _next_ordinal_to_read += 1;
3827 if next_offset >= end_offset {
3828 return Ok(());
3829 }
3830
3831 while _next_ordinal_to_read < 10 {
3833 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3834 _next_ordinal_to_read += 1;
3835 next_offset += envelope_size;
3836 }
3837
3838 let next_out_of_line = decoder.next_out_of_line();
3839 let handles_before = decoder.remaining_handles();
3840 if let Some((inlined, num_bytes, num_handles)) =
3841 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3842 {
3843 let member_inline_size =
3844 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
3845 decoder.context,
3846 );
3847 if inlined != (member_inline_size <= 4) {
3848 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3849 }
3850 let inner_offset;
3851 let mut inner_depth = depth.clone();
3852 if inlined {
3853 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3854 inner_offset = next_offset;
3855 } else {
3856 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3857 inner_depth.increment()?;
3858 }
3859 let val_ref = self
3860 .destroy_context
3861 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
3862 fidl::decode!(
3863 fidl::encoding::UnboundedString,
3864 D,
3865 val_ref,
3866 decoder,
3867 inner_offset,
3868 inner_depth
3869 )?;
3870 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3871 {
3872 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3873 }
3874 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3875 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3876 }
3877 }
3878
3879 next_offset += envelope_size;
3880 _next_ordinal_to_read += 1;
3881 if next_offset >= end_offset {
3882 return Ok(());
3883 }
3884
3885 while _next_ordinal_to_read < 11 {
3887 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3888 _next_ordinal_to_read += 1;
3889 next_offset += envelope_size;
3890 }
3891
3892 let next_out_of_line = decoder.next_out_of_line();
3893 let handles_before = decoder.remaining_handles();
3894 if let Some((inlined, num_bytes, num_handles)) =
3895 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3896 {
3897 let member_inline_size =
3898 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3899 if inlined != (member_inline_size <= 4) {
3900 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3901 }
3902 let inner_offset;
3903 let mut inner_depth = depth.clone();
3904 if inlined {
3905 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3906 inner_offset = next_offset;
3907 } else {
3908 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3909 inner_depth.increment()?;
3910 }
3911 let val_ref =
3912 self.destroy_user_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
3913 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3914 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3915 {
3916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3917 }
3918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3920 }
3921 }
3922
3923 next_offset += envelope_size;
3924 _next_ordinal_to_read += 1;
3925 if next_offset >= end_offset {
3926 return Ok(());
3927 }
3928
3929 while _next_ordinal_to_read < 12 {
3931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3932 _next_ordinal_to_read += 1;
3933 next_offset += envelope_size;
3934 }
3935
3936 let next_out_of_line = decoder.next_out_of_line();
3937 let handles_before = decoder.remaining_handles();
3938 if let Some((inlined, num_bytes, num_handles)) =
3939 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3940 {
3941 let member_inline_size =
3942 <DispatcherDebugStats as fidl::encoding::TypeMarker>::inline_size(
3943 decoder.context,
3944 );
3945 if inlined != (member_inline_size <= 4) {
3946 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3947 }
3948 let inner_offset;
3949 let mut inner_depth = depth.clone();
3950 if inlined {
3951 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3952 inner_offset = next_offset;
3953 } else {
3954 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3955 inner_depth.increment()?;
3956 }
3957 let val_ref = self
3958 .debug_stats
3959 .get_or_insert_with(|| fidl::new_empty!(DispatcherDebugStats, D));
3960 fidl::decode!(
3961 DispatcherDebugStats,
3962 D,
3963 val_ref,
3964 decoder,
3965 inner_offset,
3966 inner_depth
3967 )?;
3968 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3969 {
3970 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3971 }
3972 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3973 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3974 }
3975 }
3976
3977 next_offset += envelope_size;
3978 _next_ordinal_to_read += 1;
3979 if next_offset >= end_offset {
3980 return Ok(());
3981 }
3982
3983 while _next_ordinal_to_read < 13 {
3985 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3986 _next_ordinal_to_read += 1;
3987 next_offset += envelope_size;
3988 }
3989
3990 let next_out_of_line = decoder.next_out_of_line();
3991 let handles_before = decoder.remaining_handles();
3992 if let Some((inlined, num_bytes, num_handles)) =
3993 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3994 {
3995 let member_inline_size = <fidl::encoding::UnboundedVector<QueuedTaskInfo> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3996 if inlined != (member_inline_size <= 4) {
3997 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3998 }
3999 let inner_offset;
4000 let mut inner_depth = depth.clone();
4001 if inlined {
4002 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4003 inner_offset = next_offset;
4004 } else {
4005 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4006 inner_depth.increment()?;
4007 }
4008 let val_ref = self.queued_tasks.get_or_insert_with(|| {
4009 fidl::new_empty!(fidl::encoding::UnboundedVector<QueuedTaskInfo>, D)
4010 });
4011 fidl::decode!(
4012 fidl::encoding::UnboundedVector<QueuedTaskInfo>,
4013 D,
4014 val_ref,
4015 decoder,
4016 inner_offset,
4017 inner_depth
4018 )?;
4019 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4020 {
4021 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4022 }
4023 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4024 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4025 }
4026 }
4027
4028 next_offset += envelope_size;
4029 _next_ordinal_to_read += 1;
4030 if next_offset >= end_offset {
4031 return Ok(());
4032 }
4033
4034 while _next_ordinal_to_read < 14 {
4036 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4037 _next_ordinal_to_read += 1;
4038 next_offset += envelope_size;
4039 }
4040
4041 let next_out_of_line = decoder.next_out_of_line();
4042 let handles_before = decoder.remaining_handles();
4043 if let Some((inlined, num_bytes, num_handles)) =
4044 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4045 {
4046 let member_inline_size =
4047 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4048 if inlined != (member_inline_size <= 4) {
4049 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4050 }
4051 let inner_offset;
4052 let mut inner_depth = depth.clone();
4053 if inlined {
4054 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4055 inner_offset = next_offset;
4056 } else {
4057 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4058 inner_depth.increment()?;
4059 }
4060 let val_ref = self.num_queued_tasks.get_or_insert_with(|| fidl::new_empty!(u64, D));
4061 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4062 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4063 {
4064 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4065 }
4066 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4067 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4068 }
4069 }
4070
4071 next_offset += envelope_size;
4072
4073 while next_offset < end_offset {
4075 _next_ordinal_to_read += 1;
4076 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4077 next_offset += envelope_size;
4078 }
4079
4080 Ok(())
4081 }
4082 }
4083
4084 impl DriverHostInfo {
4085 #[inline(always)]
4086 fn max_ordinal_present(&self) -> u64 {
4087 if let Some(_) = self.name {
4088 return 5;
4089 }
4090 if let Some(_) = self.dispatchers {
4091 return 4;
4092 }
4093 if let Some(_) = self.drivers {
4094 return 3;
4095 }
4096 if let Some(_) = self.threads {
4097 return 2;
4098 }
4099 if let Some(_) = self.process_koid {
4100 return 1;
4101 }
4102 0
4103 }
4104 }
4105
4106 impl fidl::encoding::ValueTypeMarker for DriverHostInfo {
4107 type Borrowed<'a> = &'a Self;
4108 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4109 value
4110 }
4111 }
4112
4113 unsafe impl fidl::encoding::TypeMarker for DriverHostInfo {
4114 type Owned = Self;
4115
4116 #[inline(always)]
4117 fn inline_align(_context: fidl::encoding::Context) -> usize {
4118 8
4119 }
4120
4121 #[inline(always)]
4122 fn inline_size(_context: fidl::encoding::Context) -> usize {
4123 16
4124 }
4125 }
4126
4127 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DriverHostInfo, D>
4128 for &DriverHostInfo
4129 {
4130 unsafe fn encode(
4131 self,
4132 encoder: &mut fidl::encoding::Encoder<'_, D>,
4133 offset: usize,
4134 mut depth: fidl::encoding::Depth,
4135 ) -> fidl::Result<()> {
4136 encoder.debug_check_bounds::<DriverHostInfo>(offset);
4137 let max_ordinal: u64 = self.max_ordinal_present();
4139 encoder.write_num(max_ordinal, offset);
4140 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4141 if max_ordinal == 0 {
4143 return Ok(());
4144 }
4145 depth.increment()?;
4146 let envelope_size = 8;
4147 let bytes_len = max_ordinal as usize * envelope_size;
4148 #[allow(unused_variables)]
4149 let offset = encoder.out_of_line_offset(bytes_len);
4150 let mut _prev_end_offset: usize = 0;
4151 if 1 > max_ordinal {
4152 return Ok(());
4153 }
4154
4155 let cur_offset: usize = (1 - 1) * envelope_size;
4158
4159 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4161
4162 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4167 self.process_koid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4168 encoder,
4169 offset + cur_offset,
4170 depth,
4171 )?;
4172
4173 _prev_end_offset = cur_offset + envelope_size;
4174 if 2 > max_ordinal {
4175 return Ok(());
4176 }
4177
4178 let cur_offset: usize = (2 - 1) * envelope_size;
4181
4182 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4184
4185 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ThreadInfo>, D>(
4190 self.threads.as_ref().map(<fidl::encoding::UnboundedVector<ThreadInfo> as fidl::encoding::ValueTypeMarker>::borrow),
4191 encoder, offset + cur_offset, depth
4192 )?;
4193
4194 _prev_end_offset = cur_offset + envelope_size;
4195 if 3 > max_ordinal {
4196 return Ok(());
4197 }
4198
4199 let cur_offset: usize = (3 - 1) * envelope_size;
4202
4203 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4205
4206 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<4096>>, D>(
4211 self.drivers.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<4096>> as fidl::encoding::ValueTypeMarker>::borrow),
4212 encoder, offset + cur_offset, depth
4213 )?;
4214
4215 _prev_end_offset = cur_offset + envelope_size;
4216 if 4 > max_ordinal {
4217 return Ok(());
4218 }
4219
4220 let cur_offset: usize = (4 - 1) * envelope_size;
4223
4224 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4226
4227 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<DispatcherInfo>, D>(
4232 self.dispatchers.as_ref().map(<fidl::encoding::UnboundedVector<DispatcherInfo> as fidl::encoding::ValueTypeMarker>::borrow),
4233 encoder, offset + cur_offset, depth
4234 )?;
4235
4236 _prev_end_offset = cur_offset + envelope_size;
4237 if 5 > max_ordinal {
4238 return Ok(());
4239 }
4240
4241 let cur_offset: usize = (5 - 1) * envelope_size;
4244
4245 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4247
4248 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
4253 self.name.as_ref().map(
4254 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
4255 ),
4256 encoder,
4257 offset + cur_offset,
4258 depth,
4259 )?;
4260
4261 _prev_end_offset = cur_offset + envelope_size;
4262
4263 Ok(())
4264 }
4265 }
4266
4267 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DriverHostInfo {
4268 #[inline(always)]
4269 fn new_empty() -> Self {
4270 Self::default()
4271 }
4272
4273 unsafe fn decode(
4274 &mut self,
4275 decoder: &mut fidl::encoding::Decoder<'_, D>,
4276 offset: usize,
4277 mut depth: fidl::encoding::Depth,
4278 ) -> fidl::Result<()> {
4279 decoder.debug_check_bounds::<Self>(offset);
4280 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4281 None => return Err(fidl::Error::NotNullable),
4282 Some(len) => len,
4283 };
4284 if len == 0 {
4286 return Ok(());
4287 };
4288 depth.increment()?;
4289 let envelope_size = 8;
4290 let bytes_len = len * envelope_size;
4291 let offset = decoder.out_of_line_offset(bytes_len)?;
4292 let mut _next_ordinal_to_read = 0;
4294 let mut next_offset = offset;
4295 let end_offset = offset + bytes_len;
4296 _next_ordinal_to_read += 1;
4297 if next_offset >= end_offset {
4298 return Ok(());
4299 }
4300
4301 while _next_ordinal_to_read < 1 {
4303 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4304 _next_ordinal_to_read += 1;
4305 next_offset += envelope_size;
4306 }
4307
4308 let next_out_of_line = decoder.next_out_of_line();
4309 let handles_before = decoder.remaining_handles();
4310 if let Some((inlined, num_bytes, num_handles)) =
4311 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4312 {
4313 let member_inline_size =
4314 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4315 if inlined != (member_inline_size <= 4) {
4316 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4317 }
4318 let inner_offset;
4319 let mut inner_depth = depth.clone();
4320 if inlined {
4321 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4322 inner_offset = next_offset;
4323 } else {
4324 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4325 inner_depth.increment()?;
4326 }
4327 let val_ref = self.process_koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
4328 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4330 {
4331 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4332 }
4333 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4334 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4335 }
4336 }
4337
4338 next_offset += envelope_size;
4339 _next_ordinal_to_read += 1;
4340 if next_offset >= end_offset {
4341 return Ok(());
4342 }
4343
4344 while _next_ordinal_to_read < 2 {
4346 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4347 _next_ordinal_to_read += 1;
4348 next_offset += envelope_size;
4349 }
4350
4351 let next_out_of_line = decoder.next_out_of_line();
4352 let handles_before = decoder.remaining_handles();
4353 if let Some((inlined, num_bytes, num_handles)) =
4354 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4355 {
4356 let member_inline_size = <fidl::encoding::UnboundedVector<ThreadInfo> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4357 if inlined != (member_inline_size <= 4) {
4358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4359 }
4360 let inner_offset;
4361 let mut inner_depth = depth.clone();
4362 if inlined {
4363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4364 inner_offset = next_offset;
4365 } else {
4366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4367 inner_depth.increment()?;
4368 }
4369 let val_ref = self.threads.get_or_insert_with(|| {
4370 fidl::new_empty!(fidl::encoding::UnboundedVector<ThreadInfo>, D)
4371 });
4372 fidl::decode!(
4373 fidl::encoding::UnboundedVector<ThreadInfo>,
4374 D,
4375 val_ref,
4376 decoder,
4377 inner_offset,
4378 inner_depth
4379 )?;
4380 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4381 {
4382 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4383 }
4384 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4385 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4386 }
4387 }
4388
4389 next_offset += envelope_size;
4390 _next_ordinal_to_read += 1;
4391 if next_offset >= end_offset {
4392 return Ok(());
4393 }
4394
4395 while _next_ordinal_to_read < 3 {
4397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4398 _next_ordinal_to_read += 1;
4399 next_offset += envelope_size;
4400 }
4401
4402 let next_out_of_line = decoder.next_out_of_line();
4403 let handles_before = decoder.remaining_handles();
4404 if let Some((inlined, num_bytes, num_handles)) =
4405 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4406 {
4407 let member_inline_size = <fidl::encoding::UnboundedVector<
4408 fidl::encoding::BoundedString<4096>,
4409 > as fidl::encoding::TypeMarker>::inline_size(
4410 decoder.context
4411 );
4412 if inlined != (member_inline_size <= 4) {
4413 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4414 }
4415 let inner_offset;
4416 let mut inner_depth = depth.clone();
4417 if inlined {
4418 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4419 inner_offset = next_offset;
4420 } else {
4421 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4422 inner_depth.increment()?;
4423 }
4424 let val_ref = self.drivers.get_or_insert_with(|| {
4425 fidl::new_empty!(
4426 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<4096>>,
4427 D
4428 )
4429 });
4430 fidl::decode!(
4431 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<4096>>,
4432 D,
4433 val_ref,
4434 decoder,
4435 inner_offset,
4436 inner_depth
4437 )?;
4438 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4439 {
4440 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4441 }
4442 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4443 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4444 }
4445 }
4446
4447 next_offset += envelope_size;
4448 _next_ordinal_to_read += 1;
4449 if next_offset >= end_offset {
4450 return Ok(());
4451 }
4452
4453 while _next_ordinal_to_read < 4 {
4455 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4456 _next_ordinal_to_read += 1;
4457 next_offset += envelope_size;
4458 }
4459
4460 let next_out_of_line = decoder.next_out_of_line();
4461 let handles_before = decoder.remaining_handles();
4462 if let Some((inlined, num_bytes, num_handles)) =
4463 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4464 {
4465 let member_inline_size = <fidl::encoding::UnboundedVector<DispatcherInfo> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4466 if inlined != (member_inline_size <= 4) {
4467 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4468 }
4469 let inner_offset;
4470 let mut inner_depth = depth.clone();
4471 if inlined {
4472 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4473 inner_offset = next_offset;
4474 } else {
4475 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4476 inner_depth.increment()?;
4477 }
4478 let val_ref = self.dispatchers.get_or_insert_with(|| {
4479 fidl::new_empty!(fidl::encoding::UnboundedVector<DispatcherInfo>, D)
4480 });
4481 fidl::decode!(
4482 fidl::encoding::UnboundedVector<DispatcherInfo>,
4483 D,
4484 val_ref,
4485 decoder,
4486 inner_offset,
4487 inner_depth
4488 )?;
4489 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4490 {
4491 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4492 }
4493 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4494 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4495 }
4496 }
4497
4498 next_offset += envelope_size;
4499 _next_ordinal_to_read += 1;
4500 if next_offset >= end_offset {
4501 return Ok(());
4502 }
4503
4504 while _next_ordinal_to_read < 5 {
4506 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4507 _next_ordinal_to_read += 1;
4508 next_offset += envelope_size;
4509 }
4510
4511 let next_out_of_line = decoder.next_out_of_line();
4512 let handles_before = decoder.remaining_handles();
4513 if let Some((inlined, num_bytes, num_handles)) =
4514 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4515 {
4516 let member_inline_size =
4517 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
4518 decoder.context,
4519 );
4520 if inlined != (member_inline_size <= 4) {
4521 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4522 }
4523 let inner_offset;
4524 let mut inner_depth = depth.clone();
4525 if inlined {
4526 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4527 inner_offset = next_offset;
4528 } else {
4529 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4530 inner_depth.increment()?;
4531 }
4532 let val_ref = self
4533 .name
4534 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
4535 fidl::decode!(
4536 fidl::encoding::UnboundedString,
4537 D,
4538 val_ref,
4539 decoder,
4540 inner_offset,
4541 inner_depth
4542 )?;
4543 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4544 {
4545 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4546 }
4547 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4548 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4549 }
4550 }
4551
4552 next_offset += envelope_size;
4553
4554 while next_offset < end_offset {
4556 _next_ordinal_to_read += 1;
4557 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4558 next_offset += envelope_size;
4559 }
4560
4561 Ok(())
4562 }
4563 }
4564
4565 impl NodeBindingInfo {
4566 #[inline(always)]
4567 fn max_ordinal_present(&self) -> u64 {
4568 if let Some(_) = self.composite_parents {
4569 return 3;
4570 }
4571 if let Some(_) = self.driver_url {
4572 return 2;
4573 }
4574 if let Some(_) = self.node_name {
4575 return 1;
4576 }
4577 0
4578 }
4579 }
4580
4581 impl fidl::encoding::ValueTypeMarker for NodeBindingInfo {
4582 type Borrowed<'a> = &'a Self;
4583 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4584 value
4585 }
4586 }
4587
4588 unsafe impl fidl::encoding::TypeMarker for NodeBindingInfo {
4589 type Owned = Self;
4590
4591 #[inline(always)]
4592 fn inline_align(_context: fidl::encoding::Context) -> usize {
4593 8
4594 }
4595
4596 #[inline(always)]
4597 fn inline_size(_context: fidl::encoding::Context) -> usize {
4598 16
4599 }
4600 }
4601
4602 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NodeBindingInfo, D>
4603 for &NodeBindingInfo
4604 {
4605 unsafe fn encode(
4606 self,
4607 encoder: &mut fidl::encoding::Encoder<'_, D>,
4608 offset: usize,
4609 mut depth: fidl::encoding::Depth,
4610 ) -> fidl::Result<()> {
4611 encoder.debug_check_bounds::<NodeBindingInfo>(offset);
4612 let max_ordinal: u64 = self.max_ordinal_present();
4614 encoder.write_num(max_ordinal, offset);
4615 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4616 if max_ordinal == 0 {
4618 return Ok(());
4619 }
4620 depth.increment()?;
4621 let envelope_size = 8;
4622 let bytes_len = max_ordinal as usize * envelope_size;
4623 #[allow(unused_variables)]
4624 let offset = encoder.out_of_line_offset(bytes_len);
4625 let mut _prev_end_offset: usize = 0;
4626 if 1 > max_ordinal {
4627 return Ok(());
4628 }
4629
4630 let cur_offset: usize = (1 - 1) * envelope_size;
4633
4634 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4636
4637 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
4642 self.node_name.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
4643 encoder, offset + cur_offset, depth
4644 )?;
4645
4646 _prev_end_offset = cur_offset + envelope_size;
4647 if 2 > max_ordinal {
4648 return Ok(());
4649 }
4650
4651 let cur_offset: usize = (2 - 1) * envelope_size;
4654
4655 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4657
4658 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
4663 self.driver_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
4664 encoder, offset + cur_offset, depth
4665 )?;
4666
4667 _prev_end_offset = cur_offset + envelope_size;
4668 if 3 > max_ordinal {
4669 return Ok(());
4670 }
4671
4672 let cur_offset: usize = (3 - 1) * envelope_size;
4675
4676 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4678
4679 fidl::encoding::encode_in_envelope_optional::<
4684 fidl::encoding::UnboundedVector<
4685 fidl_fuchsia_driver_framework_common::CompositeParent,
4686 >,
4687 D,
4688 >(
4689 self.composite_parents.as_ref().map(
4690 <fidl::encoding::UnboundedVector<
4691 fidl_fuchsia_driver_framework_common::CompositeParent,
4692 > as fidl::encoding::ValueTypeMarker>::borrow,
4693 ),
4694 encoder,
4695 offset + cur_offset,
4696 depth,
4697 )?;
4698
4699 _prev_end_offset = cur_offset + envelope_size;
4700
4701 Ok(())
4702 }
4703 }
4704
4705 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NodeBindingInfo {
4706 #[inline(always)]
4707 fn new_empty() -> Self {
4708 Self::default()
4709 }
4710
4711 unsafe fn decode(
4712 &mut self,
4713 decoder: &mut fidl::encoding::Decoder<'_, D>,
4714 offset: usize,
4715 mut depth: fidl::encoding::Depth,
4716 ) -> fidl::Result<()> {
4717 decoder.debug_check_bounds::<Self>(offset);
4718 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4719 None => return Err(fidl::Error::NotNullable),
4720 Some(len) => len,
4721 };
4722 if len == 0 {
4724 return Ok(());
4725 };
4726 depth.increment()?;
4727 let envelope_size = 8;
4728 let bytes_len = len * envelope_size;
4729 let offset = decoder.out_of_line_offset(bytes_len)?;
4730 let mut _next_ordinal_to_read = 0;
4732 let mut next_offset = offset;
4733 let end_offset = offset + bytes_len;
4734 _next_ordinal_to_read += 1;
4735 if next_offset >= end_offset {
4736 return Ok(());
4737 }
4738
4739 while _next_ordinal_to_read < 1 {
4741 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4742 _next_ordinal_to_read += 1;
4743 next_offset += envelope_size;
4744 }
4745
4746 let next_out_of_line = decoder.next_out_of_line();
4747 let handles_before = decoder.remaining_handles();
4748 if let Some((inlined, num_bytes, num_handles)) =
4749 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4750 {
4751 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4752 if inlined != (member_inline_size <= 4) {
4753 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4754 }
4755 let inner_offset;
4756 let mut inner_depth = depth.clone();
4757 if inlined {
4758 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4759 inner_offset = next_offset;
4760 } else {
4761 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4762 inner_depth.increment()?;
4763 }
4764 let val_ref = self.node_name.get_or_insert_with(|| {
4765 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
4766 });
4767 fidl::decode!(
4768 fidl::encoding::BoundedString<1024>,
4769 D,
4770 val_ref,
4771 decoder,
4772 inner_offset,
4773 inner_depth
4774 )?;
4775 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4776 {
4777 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4778 }
4779 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4780 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4781 }
4782 }
4783
4784 next_offset += envelope_size;
4785 _next_ordinal_to_read += 1;
4786 if next_offset >= end_offset {
4787 return Ok(());
4788 }
4789
4790 while _next_ordinal_to_read < 2 {
4792 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4793 _next_ordinal_to_read += 1;
4794 next_offset += envelope_size;
4795 }
4796
4797 let next_out_of_line = decoder.next_out_of_line();
4798 let handles_before = decoder.remaining_handles();
4799 if let Some((inlined, num_bytes, num_handles)) =
4800 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4801 {
4802 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4803 if inlined != (member_inline_size <= 4) {
4804 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4805 }
4806 let inner_offset;
4807 let mut inner_depth = depth.clone();
4808 if inlined {
4809 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4810 inner_offset = next_offset;
4811 } else {
4812 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4813 inner_depth.increment()?;
4814 }
4815 let val_ref = self.driver_url.get_or_insert_with(|| {
4816 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
4817 });
4818 fidl::decode!(
4819 fidl::encoding::BoundedString<4096>,
4820 D,
4821 val_ref,
4822 decoder,
4823 inner_offset,
4824 inner_depth
4825 )?;
4826 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4827 {
4828 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4829 }
4830 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4831 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4832 }
4833 }
4834
4835 next_offset += envelope_size;
4836 _next_ordinal_to_read += 1;
4837 if next_offset >= end_offset {
4838 return Ok(());
4839 }
4840
4841 while _next_ordinal_to_read < 3 {
4843 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4844 _next_ordinal_to_read += 1;
4845 next_offset += envelope_size;
4846 }
4847
4848 let next_out_of_line = decoder.next_out_of_line();
4849 let handles_before = decoder.remaining_handles();
4850 if let Some((inlined, num_bytes, num_handles)) =
4851 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4852 {
4853 let member_inline_size = <fidl::encoding::UnboundedVector<
4854 fidl_fuchsia_driver_framework_common::CompositeParent,
4855 > as fidl::encoding::TypeMarker>::inline_size(
4856 decoder.context
4857 );
4858 if inlined != (member_inline_size <= 4) {
4859 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4860 }
4861 let inner_offset;
4862 let mut inner_depth = depth.clone();
4863 if inlined {
4864 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4865 inner_offset = next_offset;
4866 } else {
4867 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4868 inner_depth.increment()?;
4869 }
4870 let val_ref = self.composite_parents.get_or_insert_with(|| {
4871 fidl::new_empty!(
4872 fidl::encoding::UnboundedVector<
4873 fidl_fuchsia_driver_framework_common::CompositeParent,
4874 >,
4875 D
4876 )
4877 });
4878 fidl::decode!(
4879 fidl::encoding::UnboundedVector<
4880 fidl_fuchsia_driver_framework_common::CompositeParent,
4881 >,
4882 D,
4883 val_ref,
4884 decoder,
4885 inner_offset,
4886 inner_depth
4887 )?;
4888 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4889 {
4890 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4891 }
4892 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4893 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4894 }
4895 }
4896
4897 next_offset += envelope_size;
4898
4899 while next_offset < end_offset {
4901 _next_ordinal_to_read += 1;
4902 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4903 next_offset += envelope_size;
4904 }
4905
4906 Ok(())
4907 }
4908 }
4909
4910 impl NodeInfo {
4911 #[inline(always)]
4912 fn max_ordinal_present(&self) -> u64 {
4913 if let Some(_) = self.topological_path {
4914 return 12;
4915 }
4916 if let Some(_) = self.bus_topology {
4917 return 11;
4918 }
4919 if let Some(_) = self.quarantined {
4920 return 10;
4921 }
4922 if let Some(_) = self.offer_list {
4923 return 9;
4924 }
4925 if let Some(_) = self.node_property_list {
4926 return 8;
4927 }
4928 if let Some(_) = self.moniker {
4929 return 7;
4930 }
4931 if let Some(_) = self.bound_driver_url {
4932 return 5;
4933 }
4934 if let Some(_) = self.driver_host_koid {
4935 return 4;
4936 }
4937 if let Some(_) = self.child_ids {
4938 return 3;
4939 }
4940 if let Some(_) = self.parent_ids {
4941 return 2;
4942 }
4943 if let Some(_) = self.id {
4944 return 1;
4945 }
4946 0
4947 }
4948 }
4949
4950 impl fidl::encoding::ValueTypeMarker for NodeInfo {
4951 type Borrowed<'a> = &'a Self;
4952 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4953 value
4954 }
4955 }
4956
4957 unsafe impl fidl::encoding::TypeMarker for NodeInfo {
4958 type Owned = Self;
4959
4960 #[inline(always)]
4961 fn inline_align(_context: fidl::encoding::Context) -> usize {
4962 8
4963 }
4964
4965 #[inline(always)]
4966 fn inline_size(_context: fidl::encoding::Context) -> usize {
4967 16
4968 }
4969 }
4970
4971 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NodeInfo, D> for &NodeInfo {
4972 unsafe fn encode(
4973 self,
4974 encoder: &mut fidl::encoding::Encoder<'_, D>,
4975 offset: usize,
4976 mut depth: fidl::encoding::Depth,
4977 ) -> fidl::Result<()> {
4978 encoder.debug_check_bounds::<NodeInfo>(offset);
4979 let max_ordinal: u64 = self.max_ordinal_present();
4981 encoder.write_num(max_ordinal, offset);
4982 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4983 if max_ordinal == 0 {
4985 return Ok(());
4986 }
4987 depth.increment()?;
4988 let envelope_size = 8;
4989 let bytes_len = max_ordinal as usize * envelope_size;
4990 #[allow(unused_variables)]
4991 let offset = encoder.out_of_line_offset(bytes_len);
4992 let mut _prev_end_offset: usize = 0;
4993 if 1 > max_ordinal {
4994 return Ok(());
4995 }
4996
4997 let cur_offset: usize = (1 - 1) * envelope_size;
5000
5001 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5003
5004 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5009 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5010 encoder,
5011 offset + cur_offset,
5012 depth,
5013 )?;
5014
5015 _prev_end_offset = cur_offset + envelope_size;
5016 if 2 > max_ordinal {
5017 return Ok(());
5018 }
5019
5020 let cur_offset: usize = (2 - 1) * envelope_size;
5023
5024 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5026
5027 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
5032 self.parent_ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
5033 encoder, offset + cur_offset, depth
5034 )?;
5035
5036 _prev_end_offset = cur_offset + envelope_size;
5037 if 3 > max_ordinal {
5038 return Ok(());
5039 }
5040
5041 let cur_offset: usize = (3 - 1) * envelope_size;
5044
5045 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5047
5048 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
5053 self.child_ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
5054 encoder, offset + cur_offset, depth
5055 )?;
5056
5057 _prev_end_offset = cur_offset + envelope_size;
5058 if 4 > max_ordinal {
5059 return Ok(());
5060 }
5061
5062 let cur_offset: usize = (4 - 1) * envelope_size;
5065
5066 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5068
5069 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5074 self.driver_host_koid
5075 .as_ref()
5076 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5077 encoder,
5078 offset + cur_offset,
5079 depth,
5080 )?;
5081
5082 _prev_end_offset = cur_offset + envelope_size;
5083 if 5 > max_ordinal {
5084 return Ok(());
5085 }
5086
5087 let cur_offset: usize = (5 - 1) * envelope_size;
5090
5091 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5093
5094 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
5099 self.bound_driver_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
5100 encoder, offset + cur_offset, depth
5101 )?;
5102
5103 _prev_end_offset = cur_offset + envelope_size;
5104 if 7 > max_ordinal {
5105 return Ok(());
5106 }
5107
5108 let cur_offset: usize = (7 - 1) * envelope_size;
5111
5112 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5114
5115 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
5120 self.moniker.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
5121 encoder, offset + cur_offset, depth
5122 )?;
5123
5124 _prev_end_offset = cur_offset + envelope_size;
5125 if 8 > max_ordinal {
5126 return Ok(());
5127 }
5128
5129 let cur_offset: usize = (8 - 1) * envelope_size;
5132
5133 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5135
5136 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty, 64>, D>(
5141 self.node_property_list.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty, 64> as fidl::encoding::ValueTypeMarker>::borrow),
5142 encoder, offset + cur_offset, depth
5143 )?;
5144
5145 _prev_end_offset = cur_offset + envelope_size;
5146 if 9 > max_ordinal {
5147 return Ok(());
5148 }
5149
5150 let cur_offset: usize = (9 - 1) * envelope_size;
5153
5154 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5156
5157 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Offer>, D>(
5162 self.offer_list.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Offer> as fidl::encoding::ValueTypeMarker>::borrow),
5163 encoder, offset + cur_offset, depth
5164 )?;
5165
5166 _prev_end_offset = cur_offset + envelope_size;
5167 if 10 > max_ordinal {
5168 return Ok(());
5169 }
5170
5171 let cur_offset: usize = (10 - 1) * envelope_size;
5174
5175 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5177
5178 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5183 self.quarantined.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5184 encoder,
5185 offset + cur_offset,
5186 depth,
5187 )?;
5188
5189 _prev_end_offset = cur_offset + envelope_size;
5190 if 11 > max_ordinal {
5191 return Ok(());
5192 }
5193
5194 let cur_offset: usize = (11 - 1) * envelope_size;
5197
5198 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5200
5201 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::BusInfo, 20>, D>(
5206 self.bus_topology.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::BusInfo, 20> as fidl::encoding::ValueTypeMarker>::borrow),
5207 encoder, offset + cur_offset, depth
5208 )?;
5209
5210 _prev_end_offset = cur_offset + envelope_size;
5211 if 12 > max_ordinal {
5212 return Ok(());
5213 }
5214
5215 let cur_offset: usize = (12 - 1) * envelope_size;
5218
5219 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5221
5222 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
5227 self.topological_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
5228 encoder, offset + cur_offset, depth
5229 )?;
5230
5231 _prev_end_offset = cur_offset + envelope_size;
5232
5233 Ok(())
5234 }
5235 }
5236
5237 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NodeInfo {
5238 #[inline(always)]
5239 fn new_empty() -> Self {
5240 Self::default()
5241 }
5242
5243 unsafe fn decode(
5244 &mut self,
5245 decoder: &mut fidl::encoding::Decoder<'_, D>,
5246 offset: usize,
5247 mut depth: fidl::encoding::Depth,
5248 ) -> fidl::Result<()> {
5249 decoder.debug_check_bounds::<Self>(offset);
5250 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5251 None => return Err(fidl::Error::NotNullable),
5252 Some(len) => len,
5253 };
5254 if len == 0 {
5256 return Ok(());
5257 };
5258 depth.increment()?;
5259 let envelope_size = 8;
5260 let bytes_len = len * envelope_size;
5261 let offset = decoder.out_of_line_offset(bytes_len)?;
5262 let mut _next_ordinal_to_read = 0;
5264 let mut next_offset = offset;
5265 let end_offset = offset + bytes_len;
5266 _next_ordinal_to_read += 1;
5267 if next_offset >= end_offset {
5268 return Ok(());
5269 }
5270
5271 while _next_ordinal_to_read < 1 {
5273 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5274 _next_ordinal_to_read += 1;
5275 next_offset += envelope_size;
5276 }
5277
5278 let next_out_of_line = decoder.next_out_of_line();
5279 let handles_before = decoder.remaining_handles();
5280 if let Some((inlined, num_bytes, num_handles)) =
5281 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5282 {
5283 let member_inline_size =
5284 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5285 if inlined != (member_inline_size <= 4) {
5286 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5287 }
5288 let inner_offset;
5289 let mut inner_depth = depth.clone();
5290 if inlined {
5291 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5292 inner_offset = next_offset;
5293 } else {
5294 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5295 inner_depth.increment()?;
5296 }
5297 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
5298 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5300 {
5301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5302 }
5303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5305 }
5306 }
5307
5308 next_offset += envelope_size;
5309 _next_ordinal_to_read += 1;
5310 if next_offset >= end_offset {
5311 return Ok(());
5312 }
5313
5314 while _next_ordinal_to_read < 2 {
5316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5317 _next_ordinal_to_read += 1;
5318 next_offset += envelope_size;
5319 }
5320
5321 let next_out_of_line = decoder.next_out_of_line();
5322 let handles_before = decoder.remaining_handles();
5323 if let Some((inlined, num_bytes, num_handles)) =
5324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5325 {
5326 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5327 if inlined != (member_inline_size <= 4) {
5328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5329 }
5330 let inner_offset;
5331 let mut inner_depth = depth.clone();
5332 if inlined {
5333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5334 inner_offset = next_offset;
5335 } else {
5336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5337 inner_depth.increment()?;
5338 }
5339 let val_ref = self.parent_ids.get_or_insert_with(|| {
5340 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
5341 });
5342 fidl::decode!(
5343 fidl::encoding::UnboundedVector<u64>,
5344 D,
5345 val_ref,
5346 decoder,
5347 inner_offset,
5348 inner_depth
5349 )?;
5350 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5351 {
5352 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5353 }
5354 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5355 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5356 }
5357 }
5358
5359 next_offset += envelope_size;
5360 _next_ordinal_to_read += 1;
5361 if next_offset >= end_offset {
5362 return Ok(());
5363 }
5364
5365 while _next_ordinal_to_read < 3 {
5367 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5368 _next_ordinal_to_read += 1;
5369 next_offset += envelope_size;
5370 }
5371
5372 let next_out_of_line = decoder.next_out_of_line();
5373 let handles_before = decoder.remaining_handles();
5374 if let Some((inlined, num_bytes, num_handles)) =
5375 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5376 {
5377 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5378 if inlined != (member_inline_size <= 4) {
5379 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5380 }
5381 let inner_offset;
5382 let mut inner_depth = depth.clone();
5383 if inlined {
5384 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5385 inner_offset = next_offset;
5386 } else {
5387 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5388 inner_depth.increment()?;
5389 }
5390 let val_ref = self.child_ids.get_or_insert_with(|| {
5391 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
5392 });
5393 fidl::decode!(
5394 fidl::encoding::UnboundedVector<u64>,
5395 D,
5396 val_ref,
5397 decoder,
5398 inner_offset,
5399 inner_depth
5400 )?;
5401 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5402 {
5403 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5404 }
5405 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5406 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5407 }
5408 }
5409
5410 next_offset += envelope_size;
5411 _next_ordinal_to_read += 1;
5412 if next_offset >= end_offset {
5413 return Ok(());
5414 }
5415
5416 while _next_ordinal_to_read < 4 {
5418 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5419 _next_ordinal_to_read += 1;
5420 next_offset += envelope_size;
5421 }
5422
5423 let next_out_of_line = decoder.next_out_of_line();
5424 let handles_before = decoder.remaining_handles();
5425 if let Some((inlined, num_bytes, num_handles)) =
5426 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5427 {
5428 let member_inline_size =
5429 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5430 if inlined != (member_inline_size <= 4) {
5431 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5432 }
5433 let inner_offset;
5434 let mut inner_depth = depth.clone();
5435 if inlined {
5436 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5437 inner_offset = next_offset;
5438 } else {
5439 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5440 inner_depth.increment()?;
5441 }
5442 let val_ref = self.driver_host_koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
5443 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5444 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5445 {
5446 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5447 }
5448 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5449 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5450 }
5451 }
5452
5453 next_offset += envelope_size;
5454 _next_ordinal_to_read += 1;
5455 if next_offset >= end_offset {
5456 return Ok(());
5457 }
5458
5459 while _next_ordinal_to_read < 5 {
5461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5462 _next_ordinal_to_read += 1;
5463 next_offset += envelope_size;
5464 }
5465
5466 let next_out_of_line = decoder.next_out_of_line();
5467 let handles_before = decoder.remaining_handles();
5468 if let Some((inlined, num_bytes, num_handles)) =
5469 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5470 {
5471 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5472 if inlined != (member_inline_size <= 4) {
5473 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5474 }
5475 let inner_offset;
5476 let mut inner_depth = depth.clone();
5477 if inlined {
5478 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5479 inner_offset = next_offset;
5480 } else {
5481 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5482 inner_depth.increment()?;
5483 }
5484 let val_ref = self.bound_driver_url.get_or_insert_with(|| {
5485 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
5486 });
5487 fidl::decode!(
5488 fidl::encoding::BoundedString<4096>,
5489 D,
5490 val_ref,
5491 decoder,
5492 inner_offset,
5493 inner_depth
5494 )?;
5495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5496 {
5497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5498 }
5499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5501 }
5502 }
5503
5504 next_offset += envelope_size;
5505 _next_ordinal_to_read += 1;
5506 if next_offset >= end_offset {
5507 return Ok(());
5508 }
5509
5510 while _next_ordinal_to_read < 7 {
5512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5513 _next_ordinal_to_read += 1;
5514 next_offset += envelope_size;
5515 }
5516
5517 let next_out_of_line = decoder.next_out_of_line();
5518 let handles_before = decoder.remaining_handles();
5519 if let Some((inlined, num_bytes, num_handles)) =
5520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5521 {
5522 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5523 if inlined != (member_inline_size <= 4) {
5524 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5525 }
5526 let inner_offset;
5527 let mut inner_depth = depth.clone();
5528 if inlined {
5529 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5530 inner_offset = next_offset;
5531 } else {
5532 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5533 inner_depth.increment()?;
5534 }
5535 let val_ref = self.moniker.get_or_insert_with(|| {
5536 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
5537 });
5538 fidl::decode!(
5539 fidl::encoding::BoundedString<1024>,
5540 D,
5541 val_ref,
5542 decoder,
5543 inner_offset,
5544 inner_depth
5545 )?;
5546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5547 {
5548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5549 }
5550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5552 }
5553 }
5554
5555 next_offset += envelope_size;
5556 _next_ordinal_to_read += 1;
5557 if next_offset >= end_offset {
5558 return Ok(());
5559 }
5560
5561 while _next_ordinal_to_read < 8 {
5563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5564 _next_ordinal_to_read += 1;
5565 next_offset += envelope_size;
5566 }
5567
5568 let next_out_of_line = decoder.next_out_of_line();
5569 let handles_before = decoder.remaining_handles();
5570 if let Some((inlined, num_bytes, num_handles)) =
5571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5572 {
5573 let member_inline_size = <fidl::encoding::Vector<
5574 fidl_fuchsia_driver_framework_common::NodeProperty,
5575 64,
5576 > as fidl::encoding::TypeMarker>::inline_size(
5577 decoder.context
5578 );
5579 if inlined != (member_inline_size <= 4) {
5580 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5581 }
5582 let inner_offset;
5583 let mut inner_depth = depth.clone();
5584 if inlined {
5585 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5586 inner_offset = next_offset;
5587 } else {
5588 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5589 inner_depth.increment()?;
5590 }
5591 let val_ref =
5592 self.node_property_list.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty, 64>, D));
5593 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
5594 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5595 {
5596 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5597 }
5598 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5599 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5600 }
5601 }
5602
5603 next_offset += envelope_size;
5604 _next_ordinal_to_read += 1;
5605 if next_offset >= end_offset {
5606 return Ok(());
5607 }
5608
5609 while _next_ordinal_to_read < 9 {
5611 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5612 _next_ordinal_to_read += 1;
5613 next_offset += envelope_size;
5614 }
5615
5616 let next_out_of_line = decoder.next_out_of_line();
5617 let handles_before = decoder.remaining_handles();
5618 if let Some((inlined, num_bytes, num_handles)) =
5619 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5620 {
5621 let member_inline_size = <fidl::encoding::UnboundedVector<
5622 fidl_fuchsia_component_decl_common::Offer,
5623 > as fidl::encoding::TypeMarker>::inline_size(
5624 decoder.context
5625 );
5626 if inlined != (member_inline_size <= 4) {
5627 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5628 }
5629 let inner_offset;
5630 let mut inner_depth = depth.clone();
5631 if inlined {
5632 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5633 inner_offset = next_offset;
5634 } else {
5635 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5636 inner_depth.increment()?;
5637 }
5638 let val_ref = self.offer_list.get_or_insert_with(|| {
5639 fidl::new_empty!(
5640 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Offer>,
5641 D
5642 )
5643 });
5644 fidl::decode!(
5645 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Offer>,
5646 D,
5647 val_ref,
5648 decoder,
5649 inner_offset,
5650 inner_depth
5651 )?;
5652 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5653 {
5654 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5655 }
5656 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5657 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5658 }
5659 }
5660
5661 next_offset += envelope_size;
5662 _next_ordinal_to_read += 1;
5663 if next_offset >= end_offset {
5664 return Ok(());
5665 }
5666
5667 while _next_ordinal_to_read < 10 {
5669 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5670 _next_ordinal_to_read += 1;
5671 next_offset += envelope_size;
5672 }
5673
5674 let next_out_of_line = decoder.next_out_of_line();
5675 let handles_before = decoder.remaining_handles();
5676 if let Some((inlined, num_bytes, num_handles)) =
5677 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5678 {
5679 let member_inline_size =
5680 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5681 if inlined != (member_inline_size <= 4) {
5682 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5683 }
5684 let inner_offset;
5685 let mut inner_depth = depth.clone();
5686 if inlined {
5687 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5688 inner_offset = next_offset;
5689 } else {
5690 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5691 inner_depth.increment()?;
5692 }
5693 let val_ref = self.quarantined.get_or_insert_with(|| fidl::new_empty!(bool, D));
5694 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5695 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5696 {
5697 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5698 }
5699 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5700 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5701 }
5702 }
5703
5704 next_offset += envelope_size;
5705 _next_ordinal_to_read += 1;
5706 if next_offset >= end_offset {
5707 return Ok(());
5708 }
5709
5710 while _next_ordinal_to_read < 11 {
5712 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5713 _next_ordinal_to_read += 1;
5714 next_offset += envelope_size;
5715 }
5716
5717 let next_out_of_line = decoder.next_out_of_line();
5718 let handles_before = decoder.remaining_handles();
5719 if let Some((inlined, num_bytes, num_handles)) =
5720 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5721 {
5722 let member_inline_size = <fidl::encoding::Vector<
5723 fidl_fuchsia_driver_framework_common::BusInfo,
5724 20,
5725 > as fidl::encoding::TypeMarker>::inline_size(
5726 decoder.context
5727 );
5728 if inlined != (member_inline_size <= 4) {
5729 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5730 }
5731 let inner_offset;
5732 let mut inner_depth = depth.clone();
5733 if inlined {
5734 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5735 inner_offset = next_offset;
5736 } else {
5737 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5738 inner_depth.increment()?;
5739 }
5740 let val_ref =
5741 self.bus_topology.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::BusInfo, 20>, D));
5742 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::BusInfo, 20>, D, val_ref, decoder, inner_offset, inner_depth)?;
5743 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5744 {
5745 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5746 }
5747 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5748 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5749 }
5750 }
5751
5752 next_offset += envelope_size;
5753 _next_ordinal_to_read += 1;
5754 if next_offset >= end_offset {
5755 return Ok(());
5756 }
5757
5758 while _next_ordinal_to_read < 12 {
5760 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5761 _next_ordinal_to_read += 1;
5762 next_offset += envelope_size;
5763 }
5764
5765 let next_out_of_line = decoder.next_out_of_line();
5766 let handles_before = decoder.remaining_handles();
5767 if let Some((inlined, num_bytes, num_handles)) =
5768 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5769 {
5770 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5771 if inlined != (member_inline_size <= 4) {
5772 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5773 }
5774 let inner_offset;
5775 let mut inner_depth = depth.clone();
5776 if inlined {
5777 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5778 inner_offset = next_offset;
5779 } else {
5780 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5781 inner_depth.increment()?;
5782 }
5783 let val_ref = self.topological_path.get_or_insert_with(|| {
5784 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
5785 });
5786 fidl::decode!(
5787 fidl::encoding::BoundedString<1024>,
5788 D,
5789 val_ref,
5790 decoder,
5791 inner_offset,
5792 inner_depth
5793 )?;
5794 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5795 {
5796 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5797 }
5798 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5799 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5800 }
5801 }
5802
5803 next_offset += envelope_size;
5804
5805 while next_offset < end_offset {
5807 _next_ordinal_to_read += 1;
5808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5809 next_offset += envelope_size;
5810 }
5811
5812 Ok(())
5813 }
5814 }
5815
5816 impl NonInlinedRequestStats {
5817 #[inline(always)]
5818 fn max_ordinal_present(&self) -> u64 {
5819 if let Some(_) = self.no_thread_migration {
5820 return 7;
5821 }
5822 if let Some(_) = self.channel_wait_not_yet_registered {
5823 return 6;
5824 }
5825 if let Some(_) = self.reentrant {
5826 return 5;
5827 }
5828 if let Some(_) = self.unknown_thread {
5829 return 4;
5830 }
5831 if let Some(_) = self.task {
5832 return 3;
5833 }
5834 if let Some(_) = self.parallel_dispatch {
5835 return 2;
5836 }
5837 if let Some(_) = self.allow_sync_calls {
5838 return 1;
5839 }
5840 0
5841 }
5842 }
5843
5844 impl fidl::encoding::ValueTypeMarker for NonInlinedRequestStats {
5845 type Borrowed<'a> = &'a Self;
5846 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5847 value
5848 }
5849 }
5850
5851 unsafe impl fidl::encoding::TypeMarker for NonInlinedRequestStats {
5852 type Owned = Self;
5853
5854 #[inline(always)]
5855 fn inline_align(_context: fidl::encoding::Context) -> usize {
5856 8
5857 }
5858
5859 #[inline(always)]
5860 fn inline_size(_context: fidl::encoding::Context) -> usize {
5861 16
5862 }
5863 }
5864
5865 unsafe impl<D: fidl::encoding::ResourceDialect>
5866 fidl::encoding::Encode<NonInlinedRequestStats, D> for &NonInlinedRequestStats
5867 {
5868 unsafe fn encode(
5869 self,
5870 encoder: &mut fidl::encoding::Encoder<'_, D>,
5871 offset: usize,
5872 mut depth: fidl::encoding::Depth,
5873 ) -> fidl::Result<()> {
5874 encoder.debug_check_bounds::<NonInlinedRequestStats>(offset);
5875 let max_ordinal: u64 = self.max_ordinal_present();
5877 encoder.write_num(max_ordinal, offset);
5878 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5879 if max_ordinal == 0 {
5881 return Ok(());
5882 }
5883 depth.increment()?;
5884 let envelope_size = 8;
5885 let bytes_len = max_ordinal as usize * envelope_size;
5886 #[allow(unused_variables)]
5887 let offset = encoder.out_of_line_offset(bytes_len);
5888 let mut _prev_end_offset: usize = 0;
5889 if 1 > max_ordinal {
5890 return Ok(());
5891 }
5892
5893 let cur_offset: usize = (1 - 1) * envelope_size;
5896
5897 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5899
5900 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5905 self.allow_sync_calls
5906 .as_ref()
5907 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5908 encoder,
5909 offset + cur_offset,
5910 depth,
5911 )?;
5912
5913 _prev_end_offset = cur_offset + envelope_size;
5914 if 2 > max_ordinal {
5915 return Ok(());
5916 }
5917
5918 let cur_offset: usize = (2 - 1) * envelope_size;
5921
5922 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5924
5925 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5930 self.parallel_dispatch
5931 .as_ref()
5932 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5933 encoder,
5934 offset + cur_offset,
5935 depth,
5936 )?;
5937
5938 _prev_end_offset = cur_offset + envelope_size;
5939 if 3 > max_ordinal {
5940 return Ok(());
5941 }
5942
5943 let cur_offset: usize = (3 - 1) * envelope_size;
5946
5947 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5949
5950 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5955 self.task.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5956 encoder,
5957 offset + cur_offset,
5958 depth,
5959 )?;
5960
5961 _prev_end_offset = cur_offset + envelope_size;
5962 if 4 > max_ordinal {
5963 return Ok(());
5964 }
5965
5966 let cur_offset: usize = (4 - 1) * envelope_size;
5969
5970 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5972
5973 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5978 self.unknown_thread.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5979 encoder,
5980 offset + cur_offset,
5981 depth,
5982 )?;
5983
5984 _prev_end_offset = cur_offset + envelope_size;
5985 if 5 > max_ordinal {
5986 return Ok(());
5987 }
5988
5989 let cur_offset: usize = (5 - 1) * envelope_size;
5992
5993 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5995
5996 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6001 self.reentrant.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6002 encoder,
6003 offset + cur_offset,
6004 depth,
6005 )?;
6006
6007 _prev_end_offset = cur_offset + envelope_size;
6008 if 6 > max_ordinal {
6009 return Ok(());
6010 }
6011
6012 let cur_offset: usize = (6 - 1) * envelope_size;
6015
6016 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6018
6019 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6024 self.channel_wait_not_yet_registered
6025 .as_ref()
6026 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6027 encoder,
6028 offset + cur_offset,
6029 depth,
6030 )?;
6031
6032 _prev_end_offset = cur_offset + envelope_size;
6033 if 7 > max_ordinal {
6034 return Ok(());
6035 }
6036
6037 let cur_offset: usize = (7 - 1) * envelope_size;
6040
6041 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6043
6044 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6049 self.no_thread_migration
6050 .as_ref()
6051 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6052 encoder,
6053 offset + cur_offset,
6054 depth,
6055 )?;
6056
6057 _prev_end_offset = cur_offset + envelope_size;
6058
6059 Ok(())
6060 }
6061 }
6062
6063 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6064 for NonInlinedRequestStats
6065 {
6066 #[inline(always)]
6067 fn new_empty() -> Self {
6068 Self::default()
6069 }
6070
6071 unsafe fn decode(
6072 &mut self,
6073 decoder: &mut fidl::encoding::Decoder<'_, D>,
6074 offset: usize,
6075 mut depth: fidl::encoding::Depth,
6076 ) -> fidl::Result<()> {
6077 decoder.debug_check_bounds::<Self>(offset);
6078 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6079 None => return Err(fidl::Error::NotNullable),
6080 Some(len) => len,
6081 };
6082 if len == 0 {
6084 return Ok(());
6085 };
6086 depth.increment()?;
6087 let envelope_size = 8;
6088 let bytes_len = len * envelope_size;
6089 let offset = decoder.out_of_line_offset(bytes_len)?;
6090 let mut _next_ordinal_to_read = 0;
6092 let mut next_offset = offset;
6093 let end_offset = offset + bytes_len;
6094 _next_ordinal_to_read += 1;
6095 if next_offset >= end_offset {
6096 return Ok(());
6097 }
6098
6099 while _next_ordinal_to_read < 1 {
6101 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6102 _next_ordinal_to_read += 1;
6103 next_offset += envelope_size;
6104 }
6105
6106 let next_out_of_line = decoder.next_out_of_line();
6107 let handles_before = decoder.remaining_handles();
6108 if let Some((inlined, num_bytes, num_handles)) =
6109 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6110 {
6111 let member_inline_size =
6112 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6113 if inlined != (member_inline_size <= 4) {
6114 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6115 }
6116 let inner_offset;
6117 let mut inner_depth = depth.clone();
6118 if inlined {
6119 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6120 inner_offset = next_offset;
6121 } else {
6122 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6123 inner_depth.increment()?;
6124 }
6125 let val_ref = self.allow_sync_calls.get_or_insert_with(|| fidl::new_empty!(u64, D));
6126 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6127 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6128 {
6129 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6130 }
6131 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6132 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6133 }
6134 }
6135
6136 next_offset += envelope_size;
6137 _next_ordinal_to_read += 1;
6138 if next_offset >= end_offset {
6139 return Ok(());
6140 }
6141
6142 while _next_ordinal_to_read < 2 {
6144 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6145 _next_ordinal_to_read += 1;
6146 next_offset += envelope_size;
6147 }
6148
6149 let next_out_of_line = decoder.next_out_of_line();
6150 let handles_before = decoder.remaining_handles();
6151 if let Some((inlined, num_bytes, num_handles)) =
6152 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6153 {
6154 let member_inline_size =
6155 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6156 if inlined != (member_inline_size <= 4) {
6157 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6158 }
6159 let inner_offset;
6160 let mut inner_depth = depth.clone();
6161 if inlined {
6162 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6163 inner_offset = next_offset;
6164 } else {
6165 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6166 inner_depth.increment()?;
6167 }
6168 let val_ref =
6169 self.parallel_dispatch.get_or_insert_with(|| fidl::new_empty!(u64, D));
6170 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6171 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6172 {
6173 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6174 }
6175 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6176 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6177 }
6178 }
6179
6180 next_offset += envelope_size;
6181 _next_ordinal_to_read += 1;
6182 if next_offset >= end_offset {
6183 return Ok(());
6184 }
6185
6186 while _next_ordinal_to_read < 3 {
6188 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6189 _next_ordinal_to_read += 1;
6190 next_offset += envelope_size;
6191 }
6192
6193 let next_out_of_line = decoder.next_out_of_line();
6194 let handles_before = decoder.remaining_handles();
6195 if let Some((inlined, num_bytes, num_handles)) =
6196 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6197 {
6198 let member_inline_size =
6199 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6200 if inlined != (member_inline_size <= 4) {
6201 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6202 }
6203 let inner_offset;
6204 let mut inner_depth = depth.clone();
6205 if inlined {
6206 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6207 inner_offset = next_offset;
6208 } else {
6209 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6210 inner_depth.increment()?;
6211 }
6212 let val_ref = self.task.get_or_insert_with(|| fidl::new_empty!(u64, D));
6213 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6214 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6215 {
6216 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6217 }
6218 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6219 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6220 }
6221 }
6222
6223 next_offset += envelope_size;
6224 _next_ordinal_to_read += 1;
6225 if next_offset >= end_offset {
6226 return Ok(());
6227 }
6228
6229 while _next_ordinal_to_read < 4 {
6231 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6232 _next_ordinal_to_read += 1;
6233 next_offset += envelope_size;
6234 }
6235
6236 let next_out_of_line = decoder.next_out_of_line();
6237 let handles_before = decoder.remaining_handles();
6238 if let Some((inlined, num_bytes, num_handles)) =
6239 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6240 {
6241 let member_inline_size =
6242 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6243 if inlined != (member_inline_size <= 4) {
6244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6245 }
6246 let inner_offset;
6247 let mut inner_depth = depth.clone();
6248 if inlined {
6249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6250 inner_offset = next_offset;
6251 } else {
6252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6253 inner_depth.increment()?;
6254 }
6255 let val_ref = self.unknown_thread.get_or_insert_with(|| fidl::new_empty!(u64, D));
6256 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6257 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6258 {
6259 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6260 }
6261 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6262 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6263 }
6264 }
6265
6266 next_offset += envelope_size;
6267 _next_ordinal_to_read += 1;
6268 if next_offset >= end_offset {
6269 return Ok(());
6270 }
6271
6272 while _next_ordinal_to_read < 5 {
6274 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6275 _next_ordinal_to_read += 1;
6276 next_offset += envelope_size;
6277 }
6278
6279 let next_out_of_line = decoder.next_out_of_line();
6280 let handles_before = decoder.remaining_handles();
6281 if let Some((inlined, num_bytes, num_handles)) =
6282 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6283 {
6284 let member_inline_size =
6285 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6286 if inlined != (member_inline_size <= 4) {
6287 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6288 }
6289 let inner_offset;
6290 let mut inner_depth = depth.clone();
6291 if inlined {
6292 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6293 inner_offset = next_offset;
6294 } else {
6295 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6296 inner_depth.increment()?;
6297 }
6298 let val_ref = self.reentrant.get_or_insert_with(|| fidl::new_empty!(u64, D));
6299 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6300 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6301 {
6302 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6303 }
6304 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6305 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6306 }
6307 }
6308
6309 next_offset += envelope_size;
6310 _next_ordinal_to_read += 1;
6311 if next_offset >= end_offset {
6312 return Ok(());
6313 }
6314
6315 while _next_ordinal_to_read < 6 {
6317 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6318 _next_ordinal_to_read += 1;
6319 next_offset += envelope_size;
6320 }
6321
6322 let next_out_of_line = decoder.next_out_of_line();
6323 let handles_before = decoder.remaining_handles();
6324 if let Some((inlined, num_bytes, num_handles)) =
6325 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6326 {
6327 let member_inline_size =
6328 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6329 if inlined != (member_inline_size <= 4) {
6330 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6331 }
6332 let inner_offset;
6333 let mut inner_depth = depth.clone();
6334 if inlined {
6335 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6336 inner_offset = next_offset;
6337 } else {
6338 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6339 inner_depth.increment()?;
6340 }
6341 let val_ref = self
6342 .channel_wait_not_yet_registered
6343 .get_or_insert_with(|| fidl::new_empty!(u64, D));
6344 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6345 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6346 {
6347 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6348 }
6349 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6350 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6351 }
6352 }
6353
6354 next_offset += envelope_size;
6355 _next_ordinal_to_read += 1;
6356 if next_offset >= end_offset {
6357 return Ok(());
6358 }
6359
6360 while _next_ordinal_to_read < 7 {
6362 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6363 _next_ordinal_to_read += 1;
6364 next_offset += envelope_size;
6365 }
6366
6367 let next_out_of_line = decoder.next_out_of_line();
6368 let handles_before = decoder.remaining_handles();
6369 if let Some((inlined, num_bytes, num_handles)) =
6370 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6371 {
6372 let member_inline_size =
6373 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6374 if inlined != (member_inline_size <= 4) {
6375 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6376 }
6377 let inner_offset;
6378 let mut inner_depth = depth.clone();
6379 if inlined {
6380 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6381 inner_offset = next_offset;
6382 } else {
6383 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6384 inner_depth.increment()?;
6385 }
6386 let val_ref =
6387 self.no_thread_migration.get_or_insert_with(|| fidl::new_empty!(u64, D));
6388 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6389 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6390 {
6391 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6392 }
6393 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6394 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6395 }
6396 }
6397
6398 next_offset += envelope_size;
6399
6400 while next_offset < end_offset {
6402 _next_ordinal_to_read += 1;
6403 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6404 next_offset += envelope_size;
6405 }
6406
6407 Ok(())
6408 }
6409 }
6410
6411 impl QueuedTaskInfo {
6412 #[inline(always)]
6413 fn max_ordinal_present(&self) -> u64 {
6414 if let Some(_) = self.initiating_driver_url {
6415 return 6;
6416 }
6417 if let Some(_) = self.initiating_driver {
6418 return 5;
6419 }
6420 if let Some(_) = self.initiating_dispatcher_name {
6421 return 4;
6422 }
6423 if let Some(_) = self.initiating_dispatcher {
6424 return 3;
6425 }
6426 if let Some(_) = self.handler {
6427 return 2;
6428 }
6429 if let Some(_) = self.ptr {
6430 return 1;
6431 }
6432 0
6433 }
6434 }
6435
6436 impl fidl::encoding::ValueTypeMarker for QueuedTaskInfo {
6437 type Borrowed<'a> = &'a Self;
6438 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6439 value
6440 }
6441 }
6442
6443 unsafe impl fidl::encoding::TypeMarker for QueuedTaskInfo {
6444 type Owned = Self;
6445
6446 #[inline(always)]
6447 fn inline_align(_context: fidl::encoding::Context) -> usize {
6448 8
6449 }
6450
6451 #[inline(always)]
6452 fn inline_size(_context: fidl::encoding::Context) -> usize {
6453 16
6454 }
6455 }
6456
6457 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<QueuedTaskInfo, D>
6458 for &QueuedTaskInfo
6459 {
6460 unsafe fn encode(
6461 self,
6462 encoder: &mut fidl::encoding::Encoder<'_, D>,
6463 offset: usize,
6464 mut depth: fidl::encoding::Depth,
6465 ) -> fidl::Result<()> {
6466 encoder.debug_check_bounds::<QueuedTaskInfo>(offset);
6467 let max_ordinal: u64 = self.max_ordinal_present();
6469 encoder.write_num(max_ordinal, offset);
6470 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6471 if max_ordinal == 0 {
6473 return Ok(());
6474 }
6475 depth.increment()?;
6476 let envelope_size = 8;
6477 let bytes_len = max_ordinal as usize * envelope_size;
6478 #[allow(unused_variables)]
6479 let offset = encoder.out_of_line_offset(bytes_len);
6480 let mut _prev_end_offset: usize = 0;
6481 if 1 > max_ordinal {
6482 return Ok(());
6483 }
6484
6485 let cur_offset: usize = (1 - 1) * envelope_size;
6488
6489 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6491
6492 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6497 self.ptr.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6498 encoder,
6499 offset + cur_offset,
6500 depth,
6501 )?;
6502
6503 _prev_end_offset = cur_offset + envelope_size;
6504 if 2 > max_ordinal {
6505 return Ok(());
6506 }
6507
6508 let cur_offset: usize = (2 - 1) * envelope_size;
6511
6512 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6514
6515 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6520 self.handler.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6521 encoder,
6522 offset + cur_offset,
6523 depth,
6524 )?;
6525
6526 _prev_end_offset = cur_offset + envelope_size;
6527 if 3 > max_ordinal {
6528 return Ok(());
6529 }
6530
6531 let cur_offset: usize = (3 - 1) * envelope_size;
6534
6535 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6537
6538 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6543 self.initiating_dispatcher
6544 .as_ref()
6545 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6546 encoder,
6547 offset + cur_offset,
6548 depth,
6549 )?;
6550
6551 _prev_end_offset = cur_offset + envelope_size;
6552 if 4 > max_ordinal {
6553 return Ok(());
6554 }
6555
6556 let cur_offset: usize = (4 - 1) * envelope_size;
6559
6560 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6562
6563 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
6568 self.initiating_dispatcher_name.as_ref().map(
6569 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
6570 ),
6571 encoder,
6572 offset + cur_offset,
6573 depth,
6574 )?;
6575
6576 _prev_end_offset = cur_offset + envelope_size;
6577 if 5 > max_ordinal {
6578 return Ok(());
6579 }
6580
6581 let cur_offset: usize = (5 - 1) * envelope_size;
6584
6585 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6587
6588 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6593 self.initiating_driver
6594 .as_ref()
6595 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6596 encoder,
6597 offset + cur_offset,
6598 depth,
6599 )?;
6600
6601 _prev_end_offset = cur_offset + envelope_size;
6602 if 6 > max_ordinal {
6603 return Ok(());
6604 }
6605
6606 let cur_offset: usize = (6 - 1) * envelope_size;
6609
6610 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6612
6613 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
6618 self.initiating_driver_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
6619 encoder, offset + cur_offset, depth
6620 )?;
6621
6622 _prev_end_offset = cur_offset + envelope_size;
6623
6624 Ok(())
6625 }
6626 }
6627
6628 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for QueuedTaskInfo {
6629 #[inline(always)]
6630 fn new_empty() -> Self {
6631 Self::default()
6632 }
6633
6634 unsafe fn decode(
6635 &mut self,
6636 decoder: &mut fidl::encoding::Decoder<'_, D>,
6637 offset: usize,
6638 mut depth: fidl::encoding::Depth,
6639 ) -> fidl::Result<()> {
6640 decoder.debug_check_bounds::<Self>(offset);
6641 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6642 None => return Err(fidl::Error::NotNullable),
6643 Some(len) => len,
6644 };
6645 if len == 0 {
6647 return Ok(());
6648 };
6649 depth.increment()?;
6650 let envelope_size = 8;
6651 let bytes_len = len * envelope_size;
6652 let offset = decoder.out_of_line_offset(bytes_len)?;
6653 let mut _next_ordinal_to_read = 0;
6655 let mut next_offset = offset;
6656 let end_offset = offset + bytes_len;
6657 _next_ordinal_to_read += 1;
6658 if next_offset >= end_offset {
6659 return Ok(());
6660 }
6661
6662 while _next_ordinal_to_read < 1 {
6664 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6665 _next_ordinal_to_read += 1;
6666 next_offset += envelope_size;
6667 }
6668
6669 let next_out_of_line = decoder.next_out_of_line();
6670 let handles_before = decoder.remaining_handles();
6671 if let Some((inlined, num_bytes, num_handles)) =
6672 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6673 {
6674 let member_inline_size =
6675 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6676 if inlined != (member_inline_size <= 4) {
6677 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6678 }
6679 let inner_offset;
6680 let mut inner_depth = depth.clone();
6681 if inlined {
6682 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6683 inner_offset = next_offset;
6684 } else {
6685 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6686 inner_depth.increment()?;
6687 }
6688 let val_ref = self.ptr.get_or_insert_with(|| fidl::new_empty!(u64, D));
6689 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6690 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6691 {
6692 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6693 }
6694 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6695 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6696 }
6697 }
6698
6699 next_offset += envelope_size;
6700 _next_ordinal_to_read += 1;
6701 if next_offset >= end_offset {
6702 return Ok(());
6703 }
6704
6705 while _next_ordinal_to_read < 2 {
6707 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6708 _next_ordinal_to_read += 1;
6709 next_offset += envelope_size;
6710 }
6711
6712 let next_out_of_line = decoder.next_out_of_line();
6713 let handles_before = decoder.remaining_handles();
6714 if let Some((inlined, num_bytes, num_handles)) =
6715 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6716 {
6717 let member_inline_size =
6718 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6719 if inlined != (member_inline_size <= 4) {
6720 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6721 }
6722 let inner_offset;
6723 let mut inner_depth = depth.clone();
6724 if inlined {
6725 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6726 inner_offset = next_offset;
6727 } else {
6728 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6729 inner_depth.increment()?;
6730 }
6731 let val_ref = self.handler.get_or_insert_with(|| fidl::new_empty!(u64, D));
6732 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6733 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6734 {
6735 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6736 }
6737 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6738 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6739 }
6740 }
6741
6742 next_offset += envelope_size;
6743 _next_ordinal_to_read += 1;
6744 if next_offset >= end_offset {
6745 return Ok(());
6746 }
6747
6748 while _next_ordinal_to_read < 3 {
6750 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6751 _next_ordinal_to_read += 1;
6752 next_offset += envelope_size;
6753 }
6754
6755 let next_out_of_line = decoder.next_out_of_line();
6756 let handles_before = decoder.remaining_handles();
6757 if let Some((inlined, num_bytes, num_handles)) =
6758 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6759 {
6760 let member_inline_size =
6761 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6762 if inlined != (member_inline_size <= 4) {
6763 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6764 }
6765 let inner_offset;
6766 let mut inner_depth = depth.clone();
6767 if inlined {
6768 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6769 inner_offset = next_offset;
6770 } else {
6771 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6772 inner_depth.increment()?;
6773 }
6774 let val_ref =
6775 self.initiating_dispatcher.get_or_insert_with(|| fidl::new_empty!(u64, D));
6776 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6777 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6778 {
6779 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6780 }
6781 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6782 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6783 }
6784 }
6785
6786 next_offset += envelope_size;
6787 _next_ordinal_to_read += 1;
6788 if next_offset >= end_offset {
6789 return Ok(());
6790 }
6791
6792 while _next_ordinal_to_read < 4 {
6794 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6795 _next_ordinal_to_read += 1;
6796 next_offset += envelope_size;
6797 }
6798
6799 let next_out_of_line = decoder.next_out_of_line();
6800 let handles_before = decoder.remaining_handles();
6801 if let Some((inlined, num_bytes, num_handles)) =
6802 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6803 {
6804 let member_inline_size =
6805 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
6806 decoder.context,
6807 );
6808 if inlined != (member_inline_size <= 4) {
6809 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6810 }
6811 let inner_offset;
6812 let mut inner_depth = depth.clone();
6813 if inlined {
6814 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6815 inner_offset = next_offset;
6816 } else {
6817 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6818 inner_depth.increment()?;
6819 }
6820 let val_ref = self
6821 .initiating_dispatcher_name
6822 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
6823 fidl::decode!(
6824 fidl::encoding::UnboundedString,
6825 D,
6826 val_ref,
6827 decoder,
6828 inner_offset,
6829 inner_depth
6830 )?;
6831 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6832 {
6833 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6834 }
6835 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6836 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6837 }
6838 }
6839
6840 next_offset += envelope_size;
6841 _next_ordinal_to_read += 1;
6842 if next_offset >= end_offset {
6843 return Ok(());
6844 }
6845
6846 while _next_ordinal_to_read < 5 {
6848 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6849 _next_ordinal_to_read += 1;
6850 next_offset += envelope_size;
6851 }
6852
6853 let next_out_of_line = decoder.next_out_of_line();
6854 let handles_before = decoder.remaining_handles();
6855 if let Some((inlined, num_bytes, num_handles)) =
6856 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6857 {
6858 let member_inline_size =
6859 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6860 if inlined != (member_inline_size <= 4) {
6861 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6862 }
6863 let inner_offset;
6864 let mut inner_depth = depth.clone();
6865 if inlined {
6866 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6867 inner_offset = next_offset;
6868 } else {
6869 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6870 inner_depth.increment()?;
6871 }
6872 let val_ref =
6873 self.initiating_driver.get_or_insert_with(|| fidl::new_empty!(u64, D));
6874 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6875 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6876 {
6877 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6878 }
6879 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6880 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6881 }
6882 }
6883
6884 next_offset += envelope_size;
6885 _next_ordinal_to_read += 1;
6886 if next_offset >= end_offset {
6887 return Ok(());
6888 }
6889
6890 while _next_ordinal_to_read < 6 {
6892 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6893 _next_ordinal_to_read += 1;
6894 next_offset += envelope_size;
6895 }
6896
6897 let next_out_of_line = decoder.next_out_of_line();
6898 let handles_before = decoder.remaining_handles();
6899 if let Some((inlined, num_bytes, num_handles)) =
6900 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6901 {
6902 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6903 if inlined != (member_inline_size <= 4) {
6904 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6905 }
6906 let inner_offset;
6907 let mut inner_depth = depth.clone();
6908 if inlined {
6909 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6910 inner_offset = next_offset;
6911 } else {
6912 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6913 inner_depth.increment()?;
6914 }
6915 let val_ref = self.initiating_driver_url.get_or_insert_with(|| {
6916 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
6917 });
6918 fidl::decode!(
6919 fidl::encoding::BoundedString<4096>,
6920 D,
6921 val_ref,
6922 decoder,
6923 inner_offset,
6924 inner_depth
6925 )?;
6926 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6927 {
6928 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6929 }
6930 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6931 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6932 }
6933 }
6934
6935 next_offset += envelope_size;
6936
6937 while next_offset < end_offset {
6939 _next_ordinal_to_read += 1;
6940 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6941 next_offset += envelope_size;
6942 }
6943
6944 Ok(())
6945 }
6946 }
6947
6948 impl TestNodeAddArgs {
6949 #[inline(always)]
6950 fn max_ordinal_present(&self) -> u64 {
6951 if let Some(_) = self.properties {
6952 return 2;
6953 }
6954 if let Some(_) = self.name {
6955 return 1;
6956 }
6957 0
6958 }
6959 }
6960
6961 impl fidl::encoding::ValueTypeMarker for TestNodeAddArgs {
6962 type Borrowed<'a> = &'a Self;
6963 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6964 value
6965 }
6966 }
6967
6968 unsafe impl fidl::encoding::TypeMarker for TestNodeAddArgs {
6969 type Owned = Self;
6970
6971 #[inline(always)]
6972 fn inline_align(_context: fidl::encoding::Context) -> usize {
6973 8
6974 }
6975
6976 #[inline(always)]
6977 fn inline_size(_context: fidl::encoding::Context) -> usize {
6978 16
6979 }
6980 }
6981
6982 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TestNodeAddArgs, D>
6983 for &TestNodeAddArgs
6984 {
6985 unsafe fn encode(
6986 self,
6987 encoder: &mut fidl::encoding::Encoder<'_, D>,
6988 offset: usize,
6989 mut depth: fidl::encoding::Depth,
6990 ) -> fidl::Result<()> {
6991 encoder.debug_check_bounds::<TestNodeAddArgs>(offset);
6992 let max_ordinal: u64 = self.max_ordinal_present();
6994 encoder.write_num(max_ordinal, offset);
6995 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6996 if max_ordinal == 0 {
6998 return Ok(());
6999 }
7000 depth.increment()?;
7001 let envelope_size = 8;
7002 let bytes_len = max_ordinal as usize * envelope_size;
7003 #[allow(unused_variables)]
7004 let offset = encoder.out_of_line_offset(bytes_len);
7005 let mut _prev_end_offset: usize = 0;
7006 if 1 > max_ordinal {
7007 return Ok(());
7008 }
7009
7010 let cur_offset: usize = (1 - 1) * envelope_size;
7013
7014 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7016
7017 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
7022 self.name.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
7023 encoder, offset + cur_offset, depth
7024 )?;
7025
7026 _prev_end_offset = cur_offset + envelope_size;
7027 if 2 > max_ordinal {
7028 return Ok(());
7029 }
7030
7031 let cur_offset: usize = (2 - 1) * envelope_size;
7034
7035 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7037
7038 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty, 64>, D>(
7043 self.properties.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty, 64> as fidl::encoding::ValueTypeMarker>::borrow),
7044 encoder, offset + cur_offset, depth
7045 )?;
7046
7047 _prev_end_offset = cur_offset + envelope_size;
7048
7049 Ok(())
7050 }
7051 }
7052
7053 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TestNodeAddArgs {
7054 #[inline(always)]
7055 fn new_empty() -> Self {
7056 Self::default()
7057 }
7058
7059 unsafe fn decode(
7060 &mut self,
7061 decoder: &mut fidl::encoding::Decoder<'_, D>,
7062 offset: usize,
7063 mut depth: fidl::encoding::Depth,
7064 ) -> fidl::Result<()> {
7065 decoder.debug_check_bounds::<Self>(offset);
7066 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7067 None => return Err(fidl::Error::NotNullable),
7068 Some(len) => len,
7069 };
7070 if len == 0 {
7072 return Ok(());
7073 };
7074 depth.increment()?;
7075 let envelope_size = 8;
7076 let bytes_len = len * envelope_size;
7077 let offset = decoder.out_of_line_offset(bytes_len)?;
7078 let mut _next_ordinal_to_read = 0;
7080 let mut next_offset = offset;
7081 let end_offset = offset + bytes_len;
7082 _next_ordinal_to_read += 1;
7083 if next_offset >= end_offset {
7084 return Ok(());
7085 }
7086
7087 while _next_ordinal_to_read < 1 {
7089 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7090 _next_ordinal_to_read += 1;
7091 next_offset += envelope_size;
7092 }
7093
7094 let next_out_of_line = decoder.next_out_of_line();
7095 let handles_before = decoder.remaining_handles();
7096 if let Some((inlined, num_bytes, num_handles)) =
7097 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7098 {
7099 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7100 if inlined != (member_inline_size <= 4) {
7101 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7102 }
7103 let inner_offset;
7104 let mut inner_depth = depth.clone();
7105 if inlined {
7106 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7107 inner_offset = next_offset;
7108 } else {
7109 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7110 inner_depth.increment()?;
7111 }
7112 let val_ref = self.name.get_or_insert_with(|| {
7113 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
7114 });
7115 fidl::decode!(
7116 fidl::encoding::BoundedString<1024>,
7117 D,
7118 val_ref,
7119 decoder,
7120 inner_offset,
7121 inner_depth
7122 )?;
7123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7124 {
7125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7126 }
7127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7129 }
7130 }
7131
7132 next_offset += envelope_size;
7133 _next_ordinal_to_read += 1;
7134 if next_offset >= end_offset {
7135 return Ok(());
7136 }
7137
7138 while _next_ordinal_to_read < 2 {
7140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7141 _next_ordinal_to_read += 1;
7142 next_offset += envelope_size;
7143 }
7144
7145 let next_out_of_line = decoder.next_out_of_line();
7146 let handles_before = decoder.remaining_handles();
7147 if let Some((inlined, num_bytes, num_handles)) =
7148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7149 {
7150 let member_inline_size = <fidl::encoding::Vector<
7151 fidl_fuchsia_driver_framework_common::NodeProperty,
7152 64,
7153 > as fidl::encoding::TypeMarker>::inline_size(
7154 decoder.context
7155 );
7156 if inlined != (member_inline_size <= 4) {
7157 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7158 }
7159 let inner_offset;
7160 let mut inner_depth = depth.clone();
7161 if inlined {
7162 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7163 inner_offset = next_offset;
7164 } else {
7165 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7166 inner_depth.increment()?;
7167 }
7168 let val_ref =
7169 self.properties.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty, 64>, D));
7170 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
7171 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7172 {
7173 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7174 }
7175 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7176 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7177 }
7178 }
7179
7180 next_offset += envelope_size;
7181
7182 while next_offset < end_offset {
7184 _next_ordinal_to_read += 1;
7185 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7186 next_offset += envelope_size;
7187 }
7188
7189 Ok(())
7190 }
7191 }
7192
7193 impl ThreadInfo {
7194 #[inline(always)]
7195 fn max_ordinal_present(&self) -> u64 {
7196 if let Some(_) = self.scheduler_role {
7197 return 3;
7198 }
7199 if let Some(_) = self.name {
7200 return 2;
7201 }
7202 if let Some(_) = self.koid {
7203 return 1;
7204 }
7205 0
7206 }
7207 }
7208
7209 impl fidl::encoding::ValueTypeMarker for ThreadInfo {
7210 type Borrowed<'a> = &'a Self;
7211 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7212 value
7213 }
7214 }
7215
7216 unsafe impl fidl::encoding::TypeMarker for ThreadInfo {
7217 type Owned = Self;
7218
7219 #[inline(always)]
7220 fn inline_align(_context: fidl::encoding::Context) -> usize {
7221 8
7222 }
7223
7224 #[inline(always)]
7225 fn inline_size(_context: fidl::encoding::Context) -> usize {
7226 16
7227 }
7228 }
7229
7230 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ThreadInfo, D>
7231 for &ThreadInfo
7232 {
7233 unsafe fn encode(
7234 self,
7235 encoder: &mut fidl::encoding::Encoder<'_, D>,
7236 offset: usize,
7237 mut depth: fidl::encoding::Depth,
7238 ) -> fidl::Result<()> {
7239 encoder.debug_check_bounds::<ThreadInfo>(offset);
7240 let max_ordinal: u64 = self.max_ordinal_present();
7242 encoder.write_num(max_ordinal, offset);
7243 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7244 if max_ordinal == 0 {
7246 return Ok(());
7247 }
7248 depth.increment()?;
7249 let envelope_size = 8;
7250 let bytes_len = max_ordinal as usize * envelope_size;
7251 #[allow(unused_variables)]
7252 let offset = encoder.out_of_line_offset(bytes_len);
7253 let mut _prev_end_offset: usize = 0;
7254 if 1 > max_ordinal {
7255 return Ok(());
7256 }
7257
7258 let cur_offset: usize = (1 - 1) * envelope_size;
7261
7262 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7264
7265 fidl::encoding::encode_in_envelope_optional::<u64, D>(
7270 self.koid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
7271 encoder,
7272 offset + cur_offset,
7273 depth,
7274 )?;
7275
7276 _prev_end_offset = cur_offset + envelope_size;
7277 if 2 > max_ordinal {
7278 return Ok(());
7279 }
7280
7281 let cur_offset: usize = (2 - 1) * envelope_size;
7284
7285 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7287
7288 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
7293 self.name.as_ref().map(
7294 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
7295 ),
7296 encoder,
7297 offset + cur_offset,
7298 depth,
7299 )?;
7300
7301 _prev_end_offset = cur_offset + envelope_size;
7302 if 3 > max_ordinal {
7303 return Ok(());
7304 }
7305
7306 let cur_offset: usize = (3 - 1) * envelope_size;
7309
7310 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7312
7313 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
7318 self.scheduler_role.as_ref().map(
7319 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
7320 ),
7321 encoder,
7322 offset + cur_offset,
7323 depth,
7324 )?;
7325
7326 _prev_end_offset = cur_offset + envelope_size;
7327
7328 Ok(())
7329 }
7330 }
7331
7332 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ThreadInfo {
7333 #[inline(always)]
7334 fn new_empty() -> Self {
7335 Self::default()
7336 }
7337
7338 unsafe fn decode(
7339 &mut self,
7340 decoder: &mut fidl::encoding::Decoder<'_, D>,
7341 offset: usize,
7342 mut depth: fidl::encoding::Depth,
7343 ) -> fidl::Result<()> {
7344 decoder.debug_check_bounds::<Self>(offset);
7345 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7346 None => return Err(fidl::Error::NotNullable),
7347 Some(len) => len,
7348 };
7349 if len == 0 {
7351 return Ok(());
7352 };
7353 depth.increment()?;
7354 let envelope_size = 8;
7355 let bytes_len = len * envelope_size;
7356 let offset = decoder.out_of_line_offset(bytes_len)?;
7357 let mut _next_ordinal_to_read = 0;
7359 let mut next_offset = offset;
7360 let end_offset = offset + bytes_len;
7361 _next_ordinal_to_read += 1;
7362 if next_offset >= end_offset {
7363 return Ok(());
7364 }
7365
7366 while _next_ordinal_to_read < 1 {
7368 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7369 _next_ordinal_to_read += 1;
7370 next_offset += envelope_size;
7371 }
7372
7373 let next_out_of_line = decoder.next_out_of_line();
7374 let handles_before = decoder.remaining_handles();
7375 if let Some((inlined, num_bytes, num_handles)) =
7376 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7377 {
7378 let member_inline_size =
7379 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7380 if inlined != (member_inline_size <= 4) {
7381 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7382 }
7383 let inner_offset;
7384 let mut inner_depth = depth.clone();
7385 if inlined {
7386 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7387 inner_offset = next_offset;
7388 } else {
7389 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7390 inner_depth.increment()?;
7391 }
7392 let val_ref = self.koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
7393 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
7394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7395 {
7396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7397 }
7398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7400 }
7401 }
7402
7403 next_offset += envelope_size;
7404 _next_ordinal_to_read += 1;
7405 if next_offset >= end_offset {
7406 return Ok(());
7407 }
7408
7409 while _next_ordinal_to_read < 2 {
7411 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7412 _next_ordinal_to_read += 1;
7413 next_offset += envelope_size;
7414 }
7415
7416 let next_out_of_line = decoder.next_out_of_line();
7417 let handles_before = decoder.remaining_handles();
7418 if let Some((inlined, num_bytes, num_handles)) =
7419 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7420 {
7421 let member_inline_size =
7422 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
7423 decoder.context,
7424 );
7425 if inlined != (member_inline_size <= 4) {
7426 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7427 }
7428 let inner_offset;
7429 let mut inner_depth = depth.clone();
7430 if inlined {
7431 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7432 inner_offset = next_offset;
7433 } else {
7434 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7435 inner_depth.increment()?;
7436 }
7437 let val_ref = self
7438 .name
7439 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
7440 fidl::decode!(
7441 fidl::encoding::UnboundedString,
7442 D,
7443 val_ref,
7444 decoder,
7445 inner_offset,
7446 inner_depth
7447 )?;
7448 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7449 {
7450 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7451 }
7452 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7453 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7454 }
7455 }
7456
7457 next_offset += envelope_size;
7458 _next_ordinal_to_read += 1;
7459 if next_offset >= end_offset {
7460 return Ok(());
7461 }
7462
7463 while _next_ordinal_to_read < 3 {
7465 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7466 _next_ordinal_to_read += 1;
7467 next_offset += envelope_size;
7468 }
7469
7470 let next_out_of_line = decoder.next_out_of_line();
7471 let handles_before = decoder.remaining_handles();
7472 if let Some((inlined, num_bytes, num_handles)) =
7473 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7474 {
7475 let member_inline_size =
7476 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
7477 decoder.context,
7478 );
7479 if inlined != (member_inline_size <= 4) {
7480 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7481 }
7482 let inner_offset;
7483 let mut inner_depth = depth.clone();
7484 if inlined {
7485 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7486 inner_offset = next_offset;
7487 } else {
7488 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7489 inner_depth.increment()?;
7490 }
7491 let val_ref = self
7492 .scheduler_role
7493 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
7494 fidl::decode!(
7495 fidl::encoding::UnboundedString,
7496 D,
7497 val_ref,
7498 decoder,
7499 inner_offset,
7500 inner_depth
7501 )?;
7502 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7503 {
7504 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7505 }
7506 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7507 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7508 }
7509 }
7510
7511 next_offset += envelope_size;
7512
7513 while next_offset < end_offset {
7515 _next_ordinal_to_read += 1;
7516 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7517 next_offset += envelope_size;
7518 }
7519
7520 Ok(())
7521 }
7522 }
7523
7524 impl fidl::encoding::ValueTypeMarker for CompositeInfo {
7525 type Borrowed<'a> = &'a Self;
7526 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7527 value
7528 }
7529 }
7530
7531 unsafe impl fidl::encoding::TypeMarker for CompositeInfo {
7532 type Owned = Self;
7533
7534 #[inline(always)]
7535 fn inline_align(_context: fidl::encoding::Context) -> usize {
7536 8
7537 }
7538
7539 #[inline(always)]
7540 fn inline_size(_context: fidl::encoding::Context) -> usize {
7541 16
7542 }
7543 }
7544
7545 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CompositeInfo, D>
7546 for &CompositeInfo
7547 {
7548 #[inline]
7549 unsafe fn encode(
7550 self,
7551 encoder: &mut fidl::encoding::Encoder<'_, D>,
7552 offset: usize,
7553 _depth: fidl::encoding::Depth,
7554 ) -> fidl::Result<()> {
7555 encoder.debug_check_bounds::<CompositeInfo>(offset);
7556 encoder.write_num::<u64>(self.ordinal(), offset);
7557 match self {
7558 CompositeInfo::Composite(ref val) => {
7559 fidl::encoding::encode_in_envelope::<fidl_fuchsia_driver_framework_common::CompositeInfo, D>(
7560 <fidl_fuchsia_driver_framework_common::CompositeInfo as fidl::encoding::ValueTypeMarker>::borrow(val),
7561 encoder, offset + 8, _depth
7562 )
7563 }
7564 }
7565 }
7566 }
7567
7568 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompositeInfo {
7569 #[inline(always)]
7570 fn new_empty() -> Self {
7571 Self::Composite(fidl::new_empty!(
7572 fidl_fuchsia_driver_framework_common::CompositeInfo,
7573 D
7574 ))
7575 }
7576
7577 #[inline]
7578 unsafe fn decode(
7579 &mut self,
7580 decoder: &mut fidl::encoding::Decoder<'_, D>,
7581 offset: usize,
7582 mut depth: fidl::encoding::Depth,
7583 ) -> fidl::Result<()> {
7584 decoder.debug_check_bounds::<Self>(offset);
7585 #[allow(unused_variables)]
7586 let next_out_of_line = decoder.next_out_of_line();
7587 let handles_before = decoder.remaining_handles();
7588 let (ordinal, inlined, num_bytes, num_handles) =
7589 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7590
7591 let member_inline_size = match ordinal {
7592 2 => <fidl_fuchsia_driver_framework_common::CompositeInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7593 _ => return Err(fidl::Error::UnknownUnionTag),
7594 };
7595
7596 if inlined != (member_inline_size <= 4) {
7597 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7598 }
7599 let _inner_offset;
7600 if inlined {
7601 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7602 _inner_offset = offset + 8;
7603 } else {
7604 depth.increment()?;
7605 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7606 }
7607 match ordinal {
7608 2 => {
7609 #[allow(irrefutable_let_patterns)]
7610 if let CompositeInfo::Composite(_) = self {
7611 } else {
7613 *self = CompositeInfo::Composite(fidl::new_empty!(
7615 fidl_fuchsia_driver_framework_common::CompositeInfo,
7616 D
7617 ));
7618 }
7619 #[allow(irrefutable_let_patterns)]
7620 if let CompositeInfo::Composite(ref mut val) = self {
7621 fidl::decode!(
7622 fidl_fuchsia_driver_framework_common::CompositeInfo,
7623 D,
7624 val,
7625 decoder,
7626 _inner_offset,
7627 depth
7628 )?;
7629 } else {
7630 unreachable!()
7631 }
7632 }
7633 ordinal => panic!("unexpected ordinal {:?}", ordinal),
7634 }
7635 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7636 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7637 }
7638 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7639 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7640 }
7641 Ok(())
7642 }
7643 }
7644}