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, Eq, Hash, Ord, PartialEq, PartialOrd)]
201pub struct ManagerRunHealthCheckRequest {
202 pub moniker: String,
203 pub request: fidl_fuchsia_driver_framework_common::HealthCheckRequest,
204}
205
206impl fidl::Persistable for ManagerRunHealthCheckRequest {}
207
208#[derive(Clone, Debug, PartialEq)]
209pub struct ManagerBindAllUnboundNodes2Response {
210 pub binding_result: Vec<NodeBindingInfo>,
212}
213
214impl fidl::Persistable for ManagerBindAllUnboundNodes2Response {}
215
216#[derive(Clone, Debug, PartialEq)]
217pub struct ManagerBindAllUnboundNodesResponse {
218 pub binding_result: Vec<NodeBindingInfo>,
220}
221
222impl fidl::Persistable for ManagerBindAllUnboundNodesResponse {}
223
224#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
225#[repr(C)]
226pub struct ManagerRebindCompositesWithDriverResponse {
227 pub count: u32,
228}
229
230impl fidl::Persistable for ManagerRebindCompositesWithDriverResponse {}
231
232#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
233#[repr(C)]
234pub struct ManagerRestartDriverHostsResponse {
235 pub count: u32,
236}
237
238impl fidl::Persistable for ManagerRestartDriverHostsResponse {}
239
240#[derive(Clone, Debug, PartialEq)]
241pub struct NodeInfoIteratorGetNextResponse {
242 pub nodes: Vec<NodeInfo>,
243}
244
245impl fidl::Persistable for NodeInfoIteratorGetNextResponse {}
246
247#[derive(Clone, Debug, Default, PartialEq)]
249pub struct CompositeNodeInfo {
250 pub parent_topological_paths: Option<Vec<Option<String>>>,
252 pub topological_path: Option<String>,
254 pub composite: Option<CompositeInfo>,
255 pub parent_monikers: Option<Vec<Option<String>>>,
257 pub moniker: Option<String>,
259 #[doc(hidden)]
260 pub __source_breaking: fidl::marker::SourceBreaking,
261}
262
263impl fidl::Persistable for CompositeNodeInfo {}
264
265#[derive(Clone, Debug, Default, PartialEq)]
267pub struct DispatcherDebugStats {
268 pub num_total_requests: Option<u64>,
270 pub num_inlined_requests: Option<u64>,
272 pub non_inlined: Option<NonInlinedRequestStats>,
274 #[doc(hidden)]
275 pub __source_breaking: fidl::marker::SourceBreaking,
276}
277
278impl fidl::Persistable for DispatcherDebugStats {}
279
280#[derive(Clone, Debug, Default, PartialEq)]
282pub struct DispatcherInfo {
283 pub driver: Option<String>,
285 pub name: Option<String>,
287 pub options: Option<u32>,
289 pub scheduler_role: Option<String>,
291 pub dispatcher_ptr: Option<u64>,
293 pub driver_ptr: Option<u64>,
295 pub synchronized: Option<bool>,
297 pub allow_sync_calls: Option<bool>,
299 pub state: Option<DispatcherState>,
301 pub destroy_context: Option<String>,
303 pub destroy_user_initiated: Option<bool>,
305 pub debug_stats: Option<DispatcherDebugStats>,
307 pub queued_tasks: Option<Vec<QueuedTaskInfo>>,
309 pub num_queued_tasks: Option<u64>,
311 #[doc(hidden)]
312 pub __source_breaking: fidl::marker::SourceBreaking,
313}
314
315impl fidl::Persistable for DispatcherInfo {}
316
317#[derive(Clone, Debug, Default, PartialEq)]
319pub struct DriverHostInfo {
320 pub process_koid: Option<u64>,
322 pub threads: Option<Vec<ThreadInfo>>,
324 pub drivers: Option<Vec<String>>,
326 pub dispatchers: Option<Vec<DispatcherInfo>>,
328 pub name: Option<String>,
330 #[doc(hidden)]
331 pub __source_breaking: fidl::marker::SourceBreaking,
332}
333
334impl fidl::Persistable for DriverHostInfo {}
335
336#[derive(Clone, Debug, Default, PartialEq)]
338pub struct NodeBindingInfo {
339 pub node_name: Option<String>,
341 pub driver_url: Option<String>,
344 pub composite_parents: Option<Vec<fidl_fuchsia_driver_framework_common::CompositeParent>>,
347 #[doc(hidden)]
348 pub __source_breaking: fidl::marker::SourceBreaking,
349}
350
351impl fidl::Persistable for NodeBindingInfo {}
352
353#[derive(Clone, Debug, Default, PartialEq)]
354pub struct NodeInfo {
355 pub id: Option<u64>,
357 pub parent_ids: Option<Vec<u64>>,
359 pub child_ids: Option<Vec<u64>>,
361 pub driver_host_koid: Option<u64>,
363 pub bound_driver_url: Option<String>,
365 pub moniker: Option<String>,
367 pub node_property_list: Option<Vec<fidl_fuchsia_driver_framework_common::NodeProperty2>>,
369 pub offer_list: Option<Vec<fidl_fuchsia_component_decl_common::Offer>>,
371 pub quarantined: Option<bool>,
374 pub bus_topology: Option<Vec<fidl_fuchsia_driver_framework_common::BusInfo>>,
376 pub topological_path: Option<String>,
378 pub is_running: Option<bool>,
380 #[doc(hidden)]
381 pub __source_breaking: fidl::marker::SourceBreaking,
382}
383
384impl fidl::Persistable for NodeInfo {}
385
386#[derive(Clone, Debug, Default, PartialEq)]
388pub struct NonInlinedRequestStats {
389 pub allow_sync_calls: Option<u64>,
391 pub parallel_dispatch: Option<u64>,
393 pub task: Option<u64>,
395 pub unknown_thread: Option<u64>,
397 pub reentrant: Option<u64>,
399 pub channel_wait_not_yet_registered: Option<u64>,
401 pub no_thread_migration: Option<u64>,
403 #[doc(hidden)]
404 pub __source_breaking: fidl::marker::SourceBreaking,
405}
406
407impl fidl::Persistable for NonInlinedRequestStats {}
408
409#[derive(Clone, Debug, Default, PartialEq)]
411pub struct QueuedTaskInfo {
412 pub ptr: Option<u64>,
414 pub handler: Option<u64>,
416 pub initiating_dispatcher: Option<u64>,
418 pub initiating_dispatcher_name: Option<String>,
420 pub initiating_driver: Option<u64>,
422 pub initiating_driver_url: Option<String>,
424 #[doc(hidden)]
425 pub __source_breaking: fidl::marker::SourceBreaking,
426}
427
428impl fidl::Persistable for QueuedTaskInfo {}
429
430#[derive(Clone, Debug, Default, PartialEq)]
431pub struct TestNodeAddArgs {
432 pub name: Option<String>,
434 pub properties: Option<Vec<fidl_fuchsia_driver_framework_common::NodeProperty2>>,
436 #[doc(hidden)]
437 pub __source_breaking: fidl::marker::SourceBreaking,
438}
439
440impl fidl::Persistable for TestNodeAddArgs {}
441
442#[derive(Clone, Debug, Default, PartialEq)]
444pub struct ThreadInfo {
445 pub koid: Option<u64>,
447 pub name: Option<String>,
449 pub scheduler_role: Option<String>,
451 #[doc(hidden)]
452 pub __source_breaking: fidl::marker::SourceBreaking,
453}
454
455impl fidl::Persistable for ThreadInfo {}
456
457#[derive(Clone, Debug, PartialEq)]
459pub enum CompositeInfo {
460 Composite(fidl_fuchsia_driver_framework_common::CompositeInfo),
461}
462
463impl CompositeInfo {
464 #[inline]
465 pub fn ordinal(&self) -> u64 {
466 match *self {
467 Self::Composite(_) => 2,
468 }
469 }
470}
471
472impl fidl::Persistable for CompositeInfo {}
473
474pub mod composite_info_iterator_ordinals {
475 pub const GET_NEXT: u64 = 0x50af808a6e34bb96;
476}
477
478pub mod composite_node_spec_iterator_ordinals {
479 pub const GET_NEXT: u64 = 0x32fd110355479f71;
480}
481
482pub mod driver_host_info_iterator_ordinals {
483 pub const GET_NEXT: u64 = 0xbf58e5cd863a86;
484}
485
486pub mod driver_info_iterator_ordinals {
487 pub const GET_NEXT: u64 = 0x2c394711c6784952;
488}
489
490pub mod manager_ordinals {
491 pub const GET_DRIVER_INFO: u64 = 0x34b1541e24e5d587;
492 pub const GET_COMPOSITE_NODE_SPECS: u64 = 0x258540c7ff37328f;
493 pub const GET_NODE_INFO: u64 = 0x7c272c6b7bcb4f9e;
494 pub const GET_COMPOSITE_INFO: u64 = 0x4456da4372a49a36;
495 pub const GET_DRIVER_HOST_INFO: u64 = 0x366b2c4429d44155;
496 pub const RESTART_DRIVER_HOSTS: u64 = 0x64fb09a17a4dd8c7;
497 pub const DISABLE_DRIVER: u64 = 0x3cabde92ba1ac967;
498 pub const ENABLE_DRIVER: u64 = 0x76a7518712965faf;
499 pub const BIND_ALL_UNBOUND_NODES: u64 = 0x2b4343fe1cfb9f21;
500 pub const BIND_ALL_UNBOUND_NODES2: u64 = 0x3e82ce2d6fc998d7;
501 pub const ADD_TEST_NODE: u64 = 0x774836bbb7fbc5b9;
502 pub const REMOVE_TEST_NODE: u64 = 0x1618ec4e5fc4010e;
503 pub const WAIT_FOR_BOOTUP: u64 = 0x52077de068225cdc;
504 pub const RESTART_WITH_DICTIONARY: u64 = 0x5eb620a85359a10e;
505 pub const RESTART_WITH_DICTIONARY_AND_POWER_DEPENDENCIES: u64 = 0x42914549590210;
506 pub const REBIND_COMPOSITES_WITH_DRIVER: u64 = 0x175d492045f61f28;
507 pub const RUN_HEALTH_CHECK: u64 = 0x40c5975519795d82;
508}
509
510pub mod node_info_iterator_ordinals {
511 pub const GET_NEXT: u64 = 0x33c7c070412f889f;
512}
513
514mod internal {
515 use super::*;
516 unsafe impl fidl::encoding::TypeMarker for RestartRematchFlags {
517 type Owned = Self;
518
519 #[inline(always)]
520 fn inline_align(_context: fidl::encoding::Context) -> usize {
521 4
522 }
523
524 #[inline(always)]
525 fn inline_size(_context: fidl::encoding::Context) -> usize {
526 4
527 }
528 }
529
530 impl fidl::encoding::ValueTypeMarker for RestartRematchFlags {
531 type Borrowed<'a> = Self;
532 #[inline(always)]
533 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
534 *value
535 }
536 }
537
538 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
539 for RestartRematchFlags
540 {
541 #[inline]
542 unsafe fn encode(
543 self,
544 encoder: &mut fidl::encoding::Encoder<'_, D>,
545 offset: usize,
546 _depth: fidl::encoding::Depth,
547 ) -> fidl::Result<()> {
548 encoder.debug_check_bounds::<Self>(offset);
549 encoder.write_num(self.bits(), offset);
550 Ok(())
551 }
552 }
553
554 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RestartRematchFlags {
555 #[inline(always)]
556 fn new_empty() -> Self {
557 Self::empty()
558 }
559
560 #[inline]
561 unsafe fn decode(
562 &mut self,
563 decoder: &mut fidl::encoding::Decoder<'_, D>,
564 offset: usize,
565 _depth: fidl::encoding::Depth,
566 ) -> fidl::Result<()> {
567 decoder.debug_check_bounds::<Self>(offset);
568 let prim = decoder.read_num::<u32>(offset);
569 *self = Self::from_bits_allow_unknown(prim);
570 Ok(())
571 }
572 }
573 unsafe impl fidl::encoding::TypeMarker for DispatcherState {
574 type Owned = Self;
575
576 #[inline(always)]
577 fn inline_align(_context: fidl::encoding::Context) -> usize {
578 std::mem::align_of::<u32>()
579 }
580
581 #[inline(always)]
582 fn inline_size(_context: fidl::encoding::Context) -> usize {
583 std::mem::size_of::<u32>()
584 }
585
586 #[inline(always)]
587 fn encode_is_copy() -> bool {
588 false
589 }
590
591 #[inline(always)]
592 fn decode_is_copy() -> bool {
593 false
594 }
595 }
596
597 impl fidl::encoding::ValueTypeMarker for DispatcherState {
598 type Borrowed<'a> = Self;
599 #[inline(always)]
600 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
601 *value
602 }
603 }
604
605 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
606 for DispatcherState
607 {
608 #[inline]
609 unsafe fn encode(
610 self,
611 encoder: &mut fidl::encoding::Encoder<'_, D>,
612 offset: usize,
613 _depth: fidl::encoding::Depth,
614 ) -> fidl::Result<()> {
615 encoder.debug_check_bounds::<Self>(offset);
616 encoder.write_num(self.into_primitive(), offset);
617 Ok(())
618 }
619 }
620
621 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DispatcherState {
622 #[inline(always)]
623 fn new_empty() -> Self {
624 Self::unknown()
625 }
626
627 #[inline]
628 unsafe fn decode(
629 &mut self,
630 decoder: &mut fidl::encoding::Decoder<'_, D>,
631 offset: usize,
632 _depth: fidl::encoding::Depth,
633 ) -> fidl::Result<()> {
634 decoder.debug_check_bounds::<Self>(offset);
635 let prim = decoder.read_num::<u32>(offset);
636
637 *self = Self::from_primitive_allow_unknown(prim);
638 Ok(())
639 }
640 }
641
642 impl fidl::encoding::ValueTypeMarker for CompositeInfoIteratorGetNextResponse {
643 type Borrowed<'a> = &'a Self;
644 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
645 value
646 }
647 }
648
649 unsafe impl fidl::encoding::TypeMarker for CompositeInfoIteratorGetNextResponse {
650 type Owned = Self;
651
652 #[inline(always)]
653 fn inline_align(_context: fidl::encoding::Context) -> usize {
654 8
655 }
656
657 #[inline(always)]
658 fn inline_size(_context: fidl::encoding::Context) -> usize {
659 16
660 }
661 }
662
663 unsafe impl<D: fidl::encoding::ResourceDialect>
664 fidl::encoding::Encode<CompositeInfoIteratorGetNextResponse, D>
665 for &CompositeInfoIteratorGetNextResponse
666 {
667 #[inline]
668 unsafe fn encode(
669 self,
670 encoder: &mut fidl::encoding::Encoder<'_, D>,
671 offset: usize,
672 _depth: fidl::encoding::Depth,
673 ) -> fidl::Result<()> {
674 encoder.debug_check_bounds::<CompositeInfoIteratorGetNextResponse>(offset);
675 fidl::encoding::Encode::<CompositeInfoIteratorGetNextResponse, D>::encode(
677 (
678 <fidl::encoding::UnboundedVector<CompositeNodeInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.composites),
679 ),
680 encoder, offset, _depth
681 )
682 }
683 }
684 unsafe impl<
685 D: fidl::encoding::ResourceDialect,
686 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<CompositeNodeInfo>, D>,
687 > fidl::encoding::Encode<CompositeInfoIteratorGetNextResponse, D> for (T0,)
688 {
689 #[inline]
690 unsafe fn encode(
691 self,
692 encoder: &mut fidl::encoding::Encoder<'_, D>,
693 offset: usize,
694 depth: fidl::encoding::Depth,
695 ) -> fidl::Result<()> {
696 encoder.debug_check_bounds::<CompositeInfoIteratorGetNextResponse>(offset);
697 self.0.encode(encoder, offset + 0, depth)?;
701 Ok(())
702 }
703 }
704
705 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
706 for CompositeInfoIteratorGetNextResponse
707 {
708 #[inline(always)]
709 fn new_empty() -> Self {
710 Self {
711 composites: fidl::new_empty!(fidl::encoding::UnboundedVector<CompositeNodeInfo>, D),
712 }
713 }
714
715 #[inline]
716 unsafe fn decode(
717 &mut self,
718 decoder: &mut fidl::encoding::Decoder<'_, D>,
719 offset: usize,
720 _depth: fidl::encoding::Depth,
721 ) -> fidl::Result<()> {
722 decoder.debug_check_bounds::<Self>(offset);
723 fidl::decode!(
725 fidl::encoding::UnboundedVector<CompositeNodeInfo>,
726 D,
727 &mut self.composites,
728 decoder,
729 offset + 0,
730 _depth
731 )?;
732 Ok(())
733 }
734 }
735
736 impl fidl::encoding::ValueTypeMarker for CompositeNodeSpecIteratorGetNextResponse {
737 type Borrowed<'a> = &'a Self;
738 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
739 value
740 }
741 }
742
743 unsafe impl fidl::encoding::TypeMarker for CompositeNodeSpecIteratorGetNextResponse {
744 type Owned = Self;
745
746 #[inline(always)]
747 fn inline_align(_context: fidl::encoding::Context) -> usize {
748 8
749 }
750
751 #[inline(always)]
752 fn inline_size(_context: fidl::encoding::Context) -> usize {
753 16
754 }
755 }
756
757 unsafe impl<D: fidl::encoding::ResourceDialect>
758 fidl::encoding::Encode<CompositeNodeSpecIteratorGetNextResponse, D>
759 for &CompositeNodeSpecIteratorGetNextResponse
760 {
761 #[inline]
762 unsafe fn encode(
763 self,
764 encoder: &mut fidl::encoding::Encoder<'_, D>,
765 offset: usize,
766 _depth: fidl::encoding::Depth,
767 ) -> fidl::Result<()> {
768 encoder.debug_check_bounds::<CompositeNodeSpecIteratorGetNextResponse>(offset);
769 fidl::encoding::Encode::<CompositeNodeSpecIteratorGetNextResponse, D>::encode(
771 (<fidl::encoding::UnboundedVector<
772 fidl_fuchsia_driver_framework_common::CompositeInfo,
773 > as fidl::encoding::ValueTypeMarker>::borrow(&self.specs),),
774 encoder,
775 offset,
776 _depth,
777 )
778 }
779 }
780 unsafe impl<
781 D: fidl::encoding::ResourceDialect,
782 T0: fidl::encoding::Encode<
783 fidl::encoding::UnboundedVector<
784 fidl_fuchsia_driver_framework_common::CompositeInfo,
785 >,
786 D,
787 >,
788 > fidl::encoding::Encode<CompositeNodeSpecIteratorGetNextResponse, D> for (T0,)
789 {
790 #[inline]
791 unsafe fn encode(
792 self,
793 encoder: &mut fidl::encoding::Encoder<'_, D>,
794 offset: usize,
795 depth: fidl::encoding::Depth,
796 ) -> fidl::Result<()> {
797 encoder.debug_check_bounds::<CompositeNodeSpecIteratorGetNextResponse>(offset);
798 self.0.encode(encoder, offset + 0, depth)?;
802 Ok(())
803 }
804 }
805
806 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
807 for CompositeNodeSpecIteratorGetNextResponse
808 {
809 #[inline(always)]
810 fn new_empty() -> Self {
811 Self {
812 specs: fidl::new_empty!(
813 fidl::encoding::UnboundedVector<
814 fidl_fuchsia_driver_framework_common::CompositeInfo,
815 >,
816 D
817 ),
818 }
819 }
820
821 #[inline]
822 unsafe fn decode(
823 &mut self,
824 decoder: &mut fidl::encoding::Decoder<'_, D>,
825 offset: usize,
826 _depth: fidl::encoding::Depth,
827 ) -> fidl::Result<()> {
828 decoder.debug_check_bounds::<Self>(offset);
829 fidl::decode!(
831 fidl::encoding::UnboundedVector<
832 fidl_fuchsia_driver_framework_common::CompositeInfo,
833 >,
834 D,
835 &mut self.specs,
836 decoder,
837 offset + 0,
838 _depth
839 )?;
840 Ok(())
841 }
842 }
843
844 impl fidl::encoding::ValueTypeMarker for DriverHostInfoIteratorGetNextResponse {
845 type Borrowed<'a> = &'a Self;
846 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
847 value
848 }
849 }
850
851 unsafe impl fidl::encoding::TypeMarker for DriverHostInfoIteratorGetNextResponse {
852 type Owned = Self;
853
854 #[inline(always)]
855 fn inline_align(_context: fidl::encoding::Context) -> usize {
856 8
857 }
858
859 #[inline(always)]
860 fn inline_size(_context: fidl::encoding::Context) -> usize {
861 16
862 }
863 }
864
865 unsafe impl<D: fidl::encoding::ResourceDialect>
866 fidl::encoding::Encode<DriverHostInfoIteratorGetNextResponse, D>
867 for &DriverHostInfoIteratorGetNextResponse
868 {
869 #[inline]
870 unsafe fn encode(
871 self,
872 encoder: &mut fidl::encoding::Encoder<'_, D>,
873 offset: usize,
874 _depth: fidl::encoding::Depth,
875 ) -> fidl::Result<()> {
876 encoder.debug_check_bounds::<DriverHostInfoIteratorGetNextResponse>(offset);
877 fidl::encoding::Encode::<DriverHostInfoIteratorGetNextResponse, D>::encode(
879 (
880 <fidl::encoding::UnboundedVector<DriverHostInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.driver_hosts),
881 ),
882 encoder, offset, _depth
883 )
884 }
885 }
886 unsafe impl<
887 D: fidl::encoding::ResourceDialect,
888 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<DriverHostInfo>, D>,
889 > fidl::encoding::Encode<DriverHostInfoIteratorGetNextResponse, D> for (T0,)
890 {
891 #[inline]
892 unsafe fn encode(
893 self,
894 encoder: &mut fidl::encoding::Encoder<'_, D>,
895 offset: usize,
896 depth: fidl::encoding::Depth,
897 ) -> fidl::Result<()> {
898 encoder.debug_check_bounds::<DriverHostInfoIteratorGetNextResponse>(offset);
899 self.0.encode(encoder, offset + 0, depth)?;
903 Ok(())
904 }
905 }
906
907 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
908 for DriverHostInfoIteratorGetNextResponse
909 {
910 #[inline(always)]
911 fn new_empty() -> Self {
912 Self {
913 driver_hosts: fidl::new_empty!(fidl::encoding::UnboundedVector<DriverHostInfo>, D),
914 }
915 }
916
917 #[inline]
918 unsafe fn decode(
919 &mut self,
920 decoder: &mut fidl::encoding::Decoder<'_, D>,
921 offset: usize,
922 _depth: fidl::encoding::Depth,
923 ) -> fidl::Result<()> {
924 decoder.debug_check_bounds::<Self>(offset);
925 fidl::decode!(
927 fidl::encoding::UnboundedVector<DriverHostInfo>,
928 D,
929 &mut self.driver_hosts,
930 decoder,
931 offset + 0,
932 _depth
933 )?;
934 Ok(())
935 }
936 }
937
938 impl fidl::encoding::ValueTypeMarker for DriverInfoIteratorGetNextResponse {
939 type Borrowed<'a> = &'a Self;
940 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
941 value
942 }
943 }
944
945 unsafe impl fidl::encoding::TypeMarker for DriverInfoIteratorGetNextResponse {
946 type Owned = Self;
947
948 #[inline(always)]
949 fn inline_align(_context: fidl::encoding::Context) -> usize {
950 8
951 }
952
953 #[inline(always)]
954 fn inline_size(_context: fidl::encoding::Context) -> usize {
955 16
956 }
957 }
958
959 unsafe impl<D: fidl::encoding::ResourceDialect>
960 fidl::encoding::Encode<DriverInfoIteratorGetNextResponse, D>
961 for &DriverInfoIteratorGetNextResponse
962 {
963 #[inline]
964 unsafe fn encode(
965 self,
966 encoder: &mut fidl::encoding::Encoder<'_, D>,
967 offset: usize,
968 _depth: fidl::encoding::Depth,
969 ) -> fidl::Result<()> {
970 encoder.debug_check_bounds::<DriverInfoIteratorGetNextResponse>(offset);
971 fidl::encoding::Encode::<DriverInfoIteratorGetNextResponse, D>::encode(
973 (
974 <fidl::encoding::UnboundedVector<
975 fidl_fuchsia_driver_framework_common::DriverInfo,
976 > as fidl::encoding::ValueTypeMarker>::borrow(&self.drivers),
977 ),
978 encoder,
979 offset,
980 _depth,
981 )
982 }
983 }
984 unsafe impl<
985 D: fidl::encoding::ResourceDialect,
986 T0: fidl::encoding::Encode<
987 fidl::encoding::UnboundedVector<fidl_fuchsia_driver_framework_common::DriverInfo>,
988 D,
989 >,
990 > fidl::encoding::Encode<DriverInfoIteratorGetNextResponse, D> for (T0,)
991 {
992 #[inline]
993 unsafe fn encode(
994 self,
995 encoder: &mut fidl::encoding::Encoder<'_, D>,
996 offset: usize,
997 depth: fidl::encoding::Depth,
998 ) -> fidl::Result<()> {
999 encoder.debug_check_bounds::<DriverInfoIteratorGetNextResponse>(offset);
1000 self.0.encode(encoder, offset + 0, depth)?;
1004 Ok(())
1005 }
1006 }
1007
1008 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1009 for DriverInfoIteratorGetNextResponse
1010 {
1011 #[inline(always)]
1012 fn new_empty() -> Self {
1013 Self {
1014 drivers: fidl::new_empty!(
1015 fidl::encoding::UnboundedVector<
1016 fidl_fuchsia_driver_framework_common::DriverInfo,
1017 >,
1018 D
1019 ),
1020 }
1021 }
1022
1023 #[inline]
1024 unsafe fn decode(
1025 &mut self,
1026 decoder: &mut fidl::encoding::Decoder<'_, D>,
1027 offset: usize,
1028 _depth: fidl::encoding::Depth,
1029 ) -> fidl::Result<()> {
1030 decoder.debug_check_bounds::<Self>(offset);
1031 fidl::decode!(
1033 fidl::encoding::UnboundedVector<fidl_fuchsia_driver_framework_common::DriverInfo>,
1034 D,
1035 &mut self.drivers,
1036 decoder,
1037 offset + 0,
1038 _depth
1039 )?;
1040 Ok(())
1041 }
1042 }
1043
1044 impl fidl::encoding::ValueTypeMarker for ManagerAddTestNodeRequest {
1045 type Borrowed<'a> = &'a Self;
1046 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1047 value
1048 }
1049 }
1050
1051 unsafe impl fidl::encoding::TypeMarker for ManagerAddTestNodeRequest {
1052 type Owned = Self;
1053
1054 #[inline(always)]
1055 fn inline_align(_context: fidl::encoding::Context) -> usize {
1056 8
1057 }
1058
1059 #[inline(always)]
1060 fn inline_size(_context: fidl::encoding::Context) -> usize {
1061 16
1062 }
1063 }
1064
1065 unsafe impl<D: fidl::encoding::ResourceDialect>
1066 fidl::encoding::Encode<ManagerAddTestNodeRequest, D> for &ManagerAddTestNodeRequest
1067 {
1068 #[inline]
1069 unsafe fn encode(
1070 self,
1071 encoder: &mut fidl::encoding::Encoder<'_, D>,
1072 offset: usize,
1073 _depth: fidl::encoding::Depth,
1074 ) -> fidl::Result<()> {
1075 encoder.debug_check_bounds::<ManagerAddTestNodeRequest>(offset);
1076 fidl::encoding::Encode::<ManagerAddTestNodeRequest, D>::encode(
1078 (<TestNodeAddArgs as fidl::encoding::ValueTypeMarker>::borrow(&self.args),),
1079 encoder,
1080 offset,
1081 _depth,
1082 )
1083 }
1084 }
1085 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<TestNodeAddArgs, D>>
1086 fidl::encoding::Encode<ManagerAddTestNodeRequest, D> for (T0,)
1087 {
1088 #[inline]
1089 unsafe fn encode(
1090 self,
1091 encoder: &mut fidl::encoding::Encoder<'_, D>,
1092 offset: usize,
1093 depth: fidl::encoding::Depth,
1094 ) -> fidl::Result<()> {
1095 encoder.debug_check_bounds::<ManagerAddTestNodeRequest>(offset);
1096 self.0.encode(encoder, offset + 0, depth)?;
1100 Ok(())
1101 }
1102 }
1103
1104 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1105 for ManagerAddTestNodeRequest
1106 {
1107 #[inline(always)]
1108 fn new_empty() -> Self {
1109 Self { args: fidl::new_empty!(TestNodeAddArgs, D) }
1110 }
1111
1112 #[inline]
1113 unsafe fn decode(
1114 &mut self,
1115 decoder: &mut fidl::encoding::Decoder<'_, D>,
1116 offset: usize,
1117 _depth: fidl::encoding::Depth,
1118 ) -> fidl::Result<()> {
1119 decoder.debug_check_bounds::<Self>(offset);
1120 fidl::decode!(TestNodeAddArgs, D, &mut self.args, decoder, offset + 0, _depth)?;
1122 Ok(())
1123 }
1124 }
1125
1126 impl fidl::encoding::ValueTypeMarker for ManagerDisableDriverRequest {
1127 type Borrowed<'a> = &'a Self;
1128 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1129 value
1130 }
1131 }
1132
1133 unsafe impl fidl::encoding::TypeMarker for ManagerDisableDriverRequest {
1134 type Owned = Self;
1135
1136 #[inline(always)]
1137 fn inline_align(_context: fidl::encoding::Context) -> usize {
1138 8
1139 }
1140
1141 #[inline(always)]
1142 fn inline_size(_context: fidl::encoding::Context) -> usize {
1143 32
1144 }
1145 }
1146
1147 unsafe impl<D: fidl::encoding::ResourceDialect>
1148 fidl::encoding::Encode<ManagerDisableDriverRequest, D> for &ManagerDisableDriverRequest
1149 {
1150 #[inline]
1151 unsafe fn encode(
1152 self,
1153 encoder: &mut fidl::encoding::Encoder<'_, D>,
1154 offset: usize,
1155 _depth: fidl::encoding::Depth,
1156 ) -> fidl::Result<()> {
1157 encoder.debug_check_bounds::<ManagerDisableDriverRequest>(offset);
1158 fidl::encoding::Encode::<ManagerDisableDriverRequest, D>::encode(
1160 (
1161 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.driver_url),
1162 <fidl::encoding::Optional<fidl::encoding::BoundedString<64>> as fidl::encoding::ValueTypeMarker>::borrow(&self.package_hash),
1163 ),
1164 encoder, offset, _depth
1165 )
1166 }
1167 }
1168 unsafe impl<
1169 D: fidl::encoding::ResourceDialect,
1170 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1171 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<64>>, D>,
1172 > fidl::encoding::Encode<ManagerDisableDriverRequest, D> for (T0, T1)
1173 {
1174 #[inline]
1175 unsafe fn encode(
1176 self,
1177 encoder: &mut fidl::encoding::Encoder<'_, D>,
1178 offset: usize,
1179 depth: fidl::encoding::Depth,
1180 ) -> fidl::Result<()> {
1181 encoder.debug_check_bounds::<ManagerDisableDriverRequest>(offset);
1182 self.0.encode(encoder, offset + 0, depth)?;
1186 self.1.encode(encoder, offset + 16, depth)?;
1187 Ok(())
1188 }
1189 }
1190
1191 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1192 for ManagerDisableDriverRequest
1193 {
1194 #[inline(always)]
1195 fn new_empty() -> Self {
1196 Self {
1197 driver_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
1198 package_hash: fidl::new_empty!(
1199 fidl::encoding::Optional<fidl::encoding::BoundedString<64>>,
1200 D
1201 ),
1202 }
1203 }
1204
1205 #[inline]
1206 unsafe fn decode(
1207 &mut self,
1208 decoder: &mut fidl::encoding::Decoder<'_, D>,
1209 offset: usize,
1210 _depth: fidl::encoding::Depth,
1211 ) -> fidl::Result<()> {
1212 decoder.debug_check_bounds::<Self>(offset);
1213 fidl::decode!(
1215 fidl::encoding::BoundedString<4096>,
1216 D,
1217 &mut self.driver_url,
1218 decoder,
1219 offset + 0,
1220 _depth
1221 )?;
1222 fidl::decode!(
1223 fidl::encoding::Optional<fidl::encoding::BoundedString<64>>,
1224 D,
1225 &mut self.package_hash,
1226 decoder,
1227 offset + 16,
1228 _depth
1229 )?;
1230 Ok(())
1231 }
1232 }
1233
1234 impl fidl::encoding::ValueTypeMarker for ManagerEnableDriverRequest {
1235 type Borrowed<'a> = &'a Self;
1236 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1237 value
1238 }
1239 }
1240
1241 unsafe impl fidl::encoding::TypeMarker for ManagerEnableDriverRequest {
1242 type Owned = Self;
1243
1244 #[inline(always)]
1245 fn inline_align(_context: fidl::encoding::Context) -> usize {
1246 8
1247 }
1248
1249 #[inline(always)]
1250 fn inline_size(_context: fidl::encoding::Context) -> usize {
1251 32
1252 }
1253 }
1254
1255 unsafe impl<D: fidl::encoding::ResourceDialect>
1256 fidl::encoding::Encode<ManagerEnableDriverRequest, D> for &ManagerEnableDriverRequest
1257 {
1258 #[inline]
1259 unsafe fn encode(
1260 self,
1261 encoder: &mut fidl::encoding::Encoder<'_, D>,
1262 offset: usize,
1263 _depth: fidl::encoding::Depth,
1264 ) -> fidl::Result<()> {
1265 encoder.debug_check_bounds::<ManagerEnableDriverRequest>(offset);
1266 fidl::encoding::Encode::<ManagerEnableDriverRequest, D>::encode(
1268 (
1269 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.driver_url),
1270 <fidl::encoding::Optional<fidl::encoding::BoundedString<64>> as fidl::encoding::ValueTypeMarker>::borrow(&self.package_hash),
1271 ),
1272 encoder, offset, _depth
1273 )
1274 }
1275 }
1276 unsafe impl<
1277 D: fidl::encoding::ResourceDialect,
1278 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1279 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<64>>, D>,
1280 > fidl::encoding::Encode<ManagerEnableDriverRequest, D> for (T0, T1)
1281 {
1282 #[inline]
1283 unsafe fn encode(
1284 self,
1285 encoder: &mut fidl::encoding::Encoder<'_, D>,
1286 offset: usize,
1287 depth: fidl::encoding::Depth,
1288 ) -> fidl::Result<()> {
1289 encoder.debug_check_bounds::<ManagerEnableDriverRequest>(offset);
1290 self.0.encode(encoder, offset + 0, depth)?;
1294 self.1.encode(encoder, offset + 16, depth)?;
1295 Ok(())
1296 }
1297 }
1298
1299 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1300 for ManagerEnableDriverRequest
1301 {
1302 #[inline(always)]
1303 fn new_empty() -> Self {
1304 Self {
1305 driver_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
1306 package_hash: fidl::new_empty!(
1307 fidl::encoding::Optional<fidl::encoding::BoundedString<64>>,
1308 D
1309 ),
1310 }
1311 }
1312
1313 #[inline]
1314 unsafe fn decode(
1315 &mut self,
1316 decoder: &mut fidl::encoding::Decoder<'_, D>,
1317 offset: usize,
1318 _depth: fidl::encoding::Depth,
1319 ) -> fidl::Result<()> {
1320 decoder.debug_check_bounds::<Self>(offset);
1321 fidl::decode!(
1323 fidl::encoding::BoundedString<4096>,
1324 D,
1325 &mut self.driver_url,
1326 decoder,
1327 offset + 0,
1328 _depth
1329 )?;
1330 fidl::decode!(
1331 fidl::encoding::Optional<fidl::encoding::BoundedString<64>>,
1332 D,
1333 &mut self.package_hash,
1334 decoder,
1335 offset + 16,
1336 _depth
1337 )?;
1338 Ok(())
1339 }
1340 }
1341
1342 impl fidl::encoding::ValueTypeMarker for ManagerRebindCompositesWithDriverRequest {
1343 type Borrowed<'a> = &'a Self;
1344 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1345 value
1346 }
1347 }
1348
1349 unsafe impl fidl::encoding::TypeMarker for ManagerRebindCompositesWithDriverRequest {
1350 type Owned = Self;
1351
1352 #[inline(always)]
1353 fn inline_align(_context: fidl::encoding::Context) -> usize {
1354 8
1355 }
1356
1357 #[inline(always)]
1358 fn inline_size(_context: fidl::encoding::Context) -> usize {
1359 16
1360 }
1361 }
1362
1363 unsafe impl<D: fidl::encoding::ResourceDialect>
1364 fidl::encoding::Encode<ManagerRebindCompositesWithDriverRequest, D>
1365 for &ManagerRebindCompositesWithDriverRequest
1366 {
1367 #[inline]
1368 unsafe fn encode(
1369 self,
1370 encoder: &mut fidl::encoding::Encoder<'_, D>,
1371 offset: usize,
1372 _depth: fidl::encoding::Depth,
1373 ) -> fidl::Result<()> {
1374 encoder.debug_check_bounds::<ManagerRebindCompositesWithDriverRequest>(offset);
1375 fidl::encoding::Encode::<ManagerRebindCompositesWithDriverRequest, D>::encode(
1377 (<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(
1378 &self.driver_url,
1379 ),),
1380 encoder,
1381 offset,
1382 _depth,
1383 )
1384 }
1385 }
1386 unsafe impl<
1387 D: fidl::encoding::ResourceDialect,
1388 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1389 > fidl::encoding::Encode<ManagerRebindCompositesWithDriverRequest, D> for (T0,)
1390 {
1391 #[inline]
1392 unsafe fn encode(
1393 self,
1394 encoder: &mut fidl::encoding::Encoder<'_, D>,
1395 offset: usize,
1396 depth: fidl::encoding::Depth,
1397 ) -> fidl::Result<()> {
1398 encoder.debug_check_bounds::<ManagerRebindCompositesWithDriverRequest>(offset);
1399 self.0.encode(encoder, offset + 0, depth)?;
1403 Ok(())
1404 }
1405 }
1406
1407 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1408 for ManagerRebindCompositesWithDriverRequest
1409 {
1410 #[inline(always)]
1411 fn new_empty() -> Self {
1412 Self { driver_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D) }
1413 }
1414
1415 #[inline]
1416 unsafe fn decode(
1417 &mut self,
1418 decoder: &mut fidl::encoding::Decoder<'_, D>,
1419 offset: usize,
1420 _depth: fidl::encoding::Depth,
1421 ) -> fidl::Result<()> {
1422 decoder.debug_check_bounds::<Self>(offset);
1423 fidl::decode!(
1425 fidl::encoding::BoundedString<4096>,
1426 D,
1427 &mut self.driver_url,
1428 decoder,
1429 offset + 0,
1430 _depth
1431 )?;
1432 Ok(())
1433 }
1434 }
1435
1436 impl fidl::encoding::ValueTypeMarker for ManagerRemoveTestNodeRequest {
1437 type Borrowed<'a> = &'a Self;
1438 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1439 value
1440 }
1441 }
1442
1443 unsafe impl fidl::encoding::TypeMarker for ManagerRemoveTestNodeRequest {
1444 type Owned = Self;
1445
1446 #[inline(always)]
1447 fn inline_align(_context: fidl::encoding::Context) -> usize {
1448 8
1449 }
1450
1451 #[inline(always)]
1452 fn inline_size(_context: fidl::encoding::Context) -> usize {
1453 16
1454 }
1455 }
1456
1457 unsafe impl<D: fidl::encoding::ResourceDialect>
1458 fidl::encoding::Encode<ManagerRemoveTestNodeRequest, D> for &ManagerRemoveTestNodeRequest
1459 {
1460 #[inline]
1461 unsafe fn encode(
1462 self,
1463 encoder: &mut fidl::encoding::Encoder<'_, D>,
1464 offset: usize,
1465 _depth: fidl::encoding::Depth,
1466 ) -> fidl::Result<()> {
1467 encoder.debug_check_bounds::<ManagerRemoveTestNodeRequest>(offset);
1468 fidl::encoding::Encode::<ManagerRemoveTestNodeRequest, D>::encode(
1470 (<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(
1471 &self.name,
1472 ),),
1473 encoder,
1474 offset,
1475 _depth,
1476 )
1477 }
1478 }
1479 unsafe impl<
1480 D: fidl::encoding::ResourceDialect,
1481 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1482 > fidl::encoding::Encode<ManagerRemoveTestNodeRequest, D> for (T0,)
1483 {
1484 #[inline]
1485 unsafe fn encode(
1486 self,
1487 encoder: &mut fidl::encoding::Encoder<'_, D>,
1488 offset: usize,
1489 depth: fidl::encoding::Depth,
1490 ) -> fidl::Result<()> {
1491 encoder.debug_check_bounds::<ManagerRemoveTestNodeRequest>(offset);
1492 self.0.encode(encoder, offset + 0, depth)?;
1496 Ok(())
1497 }
1498 }
1499
1500 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1501 for ManagerRemoveTestNodeRequest
1502 {
1503 #[inline(always)]
1504 fn new_empty() -> Self {
1505 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D) }
1506 }
1507
1508 #[inline]
1509 unsafe fn decode(
1510 &mut self,
1511 decoder: &mut fidl::encoding::Decoder<'_, D>,
1512 offset: usize,
1513 _depth: fidl::encoding::Depth,
1514 ) -> fidl::Result<()> {
1515 decoder.debug_check_bounds::<Self>(offset);
1516 fidl::decode!(
1518 fidl::encoding::BoundedString<1024>,
1519 D,
1520 &mut self.name,
1521 decoder,
1522 offset + 0,
1523 _depth
1524 )?;
1525 Ok(())
1526 }
1527 }
1528
1529 impl fidl::encoding::ValueTypeMarker for ManagerRestartDriverHostsRequest {
1530 type Borrowed<'a> = &'a Self;
1531 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1532 value
1533 }
1534 }
1535
1536 unsafe impl fidl::encoding::TypeMarker for ManagerRestartDriverHostsRequest {
1537 type Owned = Self;
1538
1539 #[inline(always)]
1540 fn inline_align(_context: fidl::encoding::Context) -> usize {
1541 8
1542 }
1543
1544 #[inline(always)]
1545 fn inline_size(_context: fidl::encoding::Context) -> usize {
1546 24
1547 }
1548 }
1549
1550 unsafe impl<D: fidl::encoding::ResourceDialect>
1551 fidl::encoding::Encode<ManagerRestartDriverHostsRequest, D>
1552 for &ManagerRestartDriverHostsRequest
1553 {
1554 #[inline]
1555 unsafe fn encode(
1556 self,
1557 encoder: &mut fidl::encoding::Encoder<'_, D>,
1558 offset: usize,
1559 _depth: fidl::encoding::Depth,
1560 ) -> fidl::Result<()> {
1561 encoder.debug_check_bounds::<ManagerRestartDriverHostsRequest>(offset);
1562 fidl::encoding::Encode::<ManagerRestartDriverHostsRequest, D>::encode(
1564 (
1565 <fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow(&self.driver_url),
1566 <RestartRematchFlags as fidl::encoding::ValueTypeMarker>::borrow(&self.rematch_flags),
1567 ),
1568 encoder, offset, _depth
1569 )
1570 }
1571 }
1572 unsafe impl<
1573 D: fidl::encoding::ResourceDialect,
1574 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<4096>, D>,
1575 T1: fidl::encoding::Encode<RestartRematchFlags, D>,
1576 > fidl::encoding::Encode<ManagerRestartDriverHostsRequest, D> for (T0, T1)
1577 {
1578 #[inline]
1579 unsafe fn encode(
1580 self,
1581 encoder: &mut fidl::encoding::Encoder<'_, D>,
1582 offset: usize,
1583 depth: fidl::encoding::Depth,
1584 ) -> fidl::Result<()> {
1585 encoder.debug_check_bounds::<ManagerRestartDriverHostsRequest>(offset);
1586 unsafe {
1589 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
1590 (ptr as *mut u64).write_unaligned(0);
1591 }
1592 self.0.encode(encoder, offset + 0, depth)?;
1594 self.1.encode(encoder, offset + 16, depth)?;
1595 Ok(())
1596 }
1597 }
1598
1599 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1600 for ManagerRestartDriverHostsRequest
1601 {
1602 #[inline(always)]
1603 fn new_empty() -> Self {
1604 Self {
1605 driver_url: fidl::new_empty!(fidl::encoding::BoundedString<4096>, D),
1606 rematch_flags: fidl::new_empty!(RestartRematchFlags, D),
1607 }
1608 }
1609
1610 #[inline]
1611 unsafe fn decode(
1612 &mut self,
1613 decoder: &mut fidl::encoding::Decoder<'_, D>,
1614 offset: usize,
1615 _depth: fidl::encoding::Depth,
1616 ) -> fidl::Result<()> {
1617 decoder.debug_check_bounds::<Self>(offset);
1618 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
1620 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1621 let mask = 0xffffffff00000000u64;
1622 let maskedval = padval & mask;
1623 if maskedval != 0 {
1624 return Err(fidl::Error::NonZeroPadding {
1625 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
1626 });
1627 }
1628 fidl::decode!(
1629 fidl::encoding::BoundedString<4096>,
1630 D,
1631 &mut self.driver_url,
1632 decoder,
1633 offset + 0,
1634 _depth
1635 )?;
1636 fidl::decode!(
1637 RestartRematchFlags,
1638 D,
1639 &mut self.rematch_flags,
1640 decoder,
1641 offset + 16,
1642 _depth
1643 )?;
1644 Ok(())
1645 }
1646 }
1647
1648 impl fidl::encoding::ValueTypeMarker for ManagerRunHealthCheckRequest {
1649 type Borrowed<'a> = &'a Self;
1650 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1651 value
1652 }
1653 }
1654
1655 unsafe impl fidl::encoding::TypeMarker for ManagerRunHealthCheckRequest {
1656 type Owned = Self;
1657
1658 #[inline(always)]
1659 fn inline_align(_context: fidl::encoding::Context) -> usize {
1660 8
1661 }
1662
1663 #[inline(always)]
1664 fn inline_size(_context: fidl::encoding::Context) -> usize {
1665 24
1666 }
1667 }
1668
1669 unsafe impl<D: fidl::encoding::ResourceDialect>
1670 fidl::encoding::Encode<ManagerRunHealthCheckRequest, D> for &ManagerRunHealthCheckRequest
1671 {
1672 #[inline]
1673 unsafe fn encode(
1674 self,
1675 encoder: &mut fidl::encoding::Encoder<'_, D>,
1676 offset: usize,
1677 _depth: fidl::encoding::Depth,
1678 ) -> fidl::Result<()> {
1679 encoder.debug_check_bounds::<ManagerRunHealthCheckRequest>(offset);
1680 fidl::encoding::Encode::<ManagerRunHealthCheckRequest, D>::encode(
1682 (
1683 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.moniker),
1684 <fidl_fuchsia_driver_framework_common::HealthCheckRequest as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
1685 ),
1686 encoder, offset, _depth
1687 )
1688 }
1689 }
1690 unsafe impl<
1691 D: fidl::encoding::ResourceDialect,
1692 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
1693 T1: fidl::encoding::Encode<fidl_fuchsia_driver_framework_common::HealthCheckRequest, D>,
1694 > fidl::encoding::Encode<ManagerRunHealthCheckRequest, D> for (T0, T1)
1695 {
1696 #[inline]
1697 unsafe fn encode(
1698 self,
1699 encoder: &mut fidl::encoding::Encoder<'_, D>,
1700 offset: usize,
1701 depth: fidl::encoding::Depth,
1702 ) -> fidl::Result<()> {
1703 encoder.debug_check_bounds::<ManagerRunHealthCheckRequest>(offset);
1704 unsafe {
1707 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
1708 (ptr as *mut u64).write_unaligned(0);
1709 }
1710 self.0.encode(encoder, offset + 0, depth)?;
1712 self.1.encode(encoder, offset + 16, depth)?;
1713 Ok(())
1714 }
1715 }
1716
1717 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1718 for ManagerRunHealthCheckRequest
1719 {
1720 #[inline(always)]
1721 fn new_empty() -> Self {
1722 Self {
1723 moniker: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
1724 request: fidl::new_empty!(
1725 fidl_fuchsia_driver_framework_common::HealthCheckRequest,
1726 D
1727 ),
1728 }
1729 }
1730
1731 #[inline]
1732 unsafe fn decode(
1733 &mut self,
1734 decoder: &mut fidl::encoding::Decoder<'_, D>,
1735 offset: usize,
1736 _depth: fidl::encoding::Depth,
1737 ) -> fidl::Result<()> {
1738 decoder.debug_check_bounds::<Self>(offset);
1739 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
1741 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1742 let mask = 0xffffffff00000000u64;
1743 let maskedval = padval & mask;
1744 if maskedval != 0 {
1745 return Err(fidl::Error::NonZeroPadding {
1746 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
1747 });
1748 }
1749 fidl::decode!(
1750 fidl::encoding::BoundedString<1024>,
1751 D,
1752 &mut self.moniker,
1753 decoder,
1754 offset + 0,
1755 _depth
1756 )?;
1757 fidl::decode!(
1758 fidl_fuchsia_driver_framework_common::HealthCheckRequest,
1759 D,
1760 &mut self.request,
1761 decoder,
1762 offset + 16,
1763 _depth
1764 )?;
1765 Ok(())
1766 }
1767 }
1768
1769 impl fidl::encoding::ValueTypeMarker for ManagerBindAllUnboundNodes2Response {
1770 type Borrowed<'a> = &'a Self;
1771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1772 value
1773 }
1774 }
1775
1776 unsafe impl fidl::encoding::TypeMarker for ManagerBindAllUnboundNodes2Response {
1777 type Owned = Self;
1778
1779 #[inline(always)]
1780 fn inline_align(_context: fidl::encoding::Context) -> usize {
1781 8
1782 }
1783
1784 #[inline(always)]
1785 fn inline_size(_context: fidl::encoding::Context) -> usize {
1786 16
1787 }
1788 }
1789
1790 unsafe impl<D: fidl::encoding::ResourceDialect>
1791 fidl::encoding::Encode<ManagerBindAllUnboundNodes2Response, D>
1792 for &ManagerBindAllUnboundNodes2Response
1793 {
1794 #[inline]
1795 unsafe fn encode(
1796 self,
1797 encoder: &mut fidl::encoding::Encoder<'_, D>,
1798 offset: usize,
1799 _depth: fidl::encoding::Depth,
1800 ) -> fidl::Result<()> {
1801 encoder.debug_check_bounds::<ManagerBindAllUnboundNodes2Response>(offset);
1802 fidl::encoding::Encode::<ManagerBindAllUnboundNodes2Response, D>::encode(
1804 (
1805 <fidl::encoding::Vector<NodeBindingInfo, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.binding_result),
1806 ),
1807 encoder, offset, _depth
1808 )
1809 }
1810 }
1811 unsafe impl<
1812 D: fidl::encoding::ResourceDialect,
1813 T0: fidl::encoding::Encode<fidl::encoding::Vector<NodeBindingInfo, 256>, D>,
1814 > fidl::encoding::Encode<ManagerBindAllUnboundNodes2Response, D> for (T0,)
1815 {
1816 #[inline]
1817 unsafe fn encode(
1818 self,
1819 encoder: &mut fidl::encoding::Encoder<'_, D>,
1820 offset: usize,
1821 depth: fidl::encoding::Depth,
1822 ) -> fidl::Result<()> {
1823 encoder.debug_check_bounds::<ManagerBindAllUnboundNodes2Response>(offset);
1824 self.0.encode(encoder, offset + 0, depth)?;
1828 Ok(())
1829 }
1830 }
1831
1832 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1833 for ManagerBindAllUnboundNodes2Response
1834 {
1835 #[inline(always)]
1836 fn new_empty() -> Self {
1837 Self {
1838 binding_result: fidl::new_empty!(fidl::encoding::Vector<NodeBindingInfo, 256>, D),
1839 }
1840 }
1841
1842 #[inline]
1843 unsafe fn decode(
1844 &mut self,
1845 decoder: &mut fidl::encoding::Decoder<'_, D>,
1846 offset: usize,
1847 _depth: fidl::encoding::Depth,
1848 ) -> fidl::Result<()> {
1849 decoder.debug_check_bounds::<Self>(offset);
1850 fidl::decode!(fidl::encoding::Vector<NodeBindingInfo, 256>, D, &mut self.binding_result, decoder, offset + 0, _depth)?;
1852 Ok(())
1853 }
1854 }
1855
1856 impl fidl::encoding::ValueTypeMarker for ManagerBindAllUnboundNodesResponse {
1857 type Borrowed<'a> = &'a Self;
1858 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1859 value
1860 }
1861 }
1862
1863 unsafe impl fidl::encoding::TypeMarker for ManagerBindAllUnboundNodesResponse {
1864 type Owned = Self;
1865
1866 #[inline(always)]
1867 fn inline_align(_context: fidl::encoding::Context) -> usize {
1868 8
1869 }
1870
1871 #[inline(always)]
1872 fn inline_size(_context: fidl::encoding::Context) -> usize {
1873 16
1874 }
1875 }
1876
1877 unsafe impl<D: fidl::encoding::ResourceDialect>
1878 fidl::encoding::Encode<ManagerBindAllUnboundNodesResponse, D>
1879 for &ManagerBindAllUnboundNodesResponse
1880 {
1881 #[inline]
1882 unsafe fn encode(
1883 self,
1884 encoder: &mut fidl::encoding::Encoder<'_, D>,
1885 offset: usize,
1886 _depth: fidl::encoding::Depth,
1887 ) -> fidl::Result<()> {
1888 encoder.debug_check_bounds::<ManagerBindAllUnboundNodesResponse>(offset);
1889 fidl::encoding::Encode::<ManagerBindAllUnboundNodesResponse, D>::encode(
1891 (
1892 <fidl::encoding::Vector<NodeBindingInfo, 10> as fidl::encoding::ValueTypeMarker>::borrow(&self.binding_result),
1893 ),
1894 encoder, offset, _depth
1895 )
1896 }
1897 }
1898 unsafe impl<
1899 D: fidl::encoding::ResourceDialect,
1900 T0: fidl::encoding::Encode<fidl::encoding::Vector<NodeBindingInfo, 10>, D>,
1901 > fidl::encoding::Encode<ManagerBindAllUnboundNodesResponse, D> for (T0,)
1902 {
1903 #[inline]
1904 unsafe fn encode(
1905 self,
1906 encoder: &mut fidl::encoding::Encoder<'_, D>,
1907 offset: usize,
1908 depth: fidl::encoding::Depth,
1909 ) -> fidl::Result<()> {
1910 encoder.debug_check_bounds::<ManagerBindAllUnboundNodesResponse>(offset);
1911 self.0.encode(encoder, offset + 0, depth)?;
1915 Ok(())
1916 }
1917 }
1918
1919 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1920 for ManagerBindAllUnboundNodesResponse
1921 {
1922 #[inline(always)]
1923 fn new_empty() -> Self {
1924 Self {
1925 binding_result: fidl::new_empty!(fidl::encoding::Vector<NodeBindingInfo, 10>, D),
1926 }
1927 }
1928
1929 #[inline]
1930 unsafe fn decode(
1931 &mut self,
1932 decoder: &mut fidl::encoding::Decoder<'_, D>,
1933 offset: usize,
1934 _depth: fidl::encoding::Depth,
1935 ) -> fidl::Result<()> {
1936 decoder.debug_check_bounds::<Self>(offset);
1937 fidl::decode!(fidl::encoding::Vector<NodeBindingInfo, 10>, D, &mut self.binding_result, decoder, offset + 0, _depth)?;
1939 Ok(())
1940 }
1941 }
1942
1943 impl fidl::encoding::ValueTypeMarker for ManagerRebindCompositesWithDriverResponse {
1944 type Borrowed<'a> = &'a Self;
1945 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1946 value
1947 }
1948 }
1949
1950 unsafe impl fidl::encoding::TypeMarker for ManagerRebindCompositesWithDriverResponse {
1951 type Owned = Self;
1952
1953 #[inline(always)]
1954 fn inline_align(_context: fidl::encoding::Context) -> usize {
1955 4
1956 }
1957
1958 #[inline(always)]
1959 fn inline_size(_context: fidl::encoding::Context) -> usize {
1960 4
1961 }
1962 #[inline(always)]
1963 fn encode_is_copy() -> bool {
1964 true
1965 }
1966
1967 #[inline(always)]
1968 fn decode_is_copy() -> bool {
1969 true
1970 }
1971 }
1972
1973 unsafe impl<D: fidl::encoding::ResourceDialect>
1974 fidl::encoding::Encode<ManagerRebindCompositesWithDriverResponse, D>
1975 for &ManagerRebindCompositesWithDriverResponse
1976 {
1977 #[inline]
1978 unsafe fn encode(
1979 self,
1980 encoder: &mut fidl::encoding::Encoder<'_, D>,
1981 offset: usize,
1982 _depth: fidl::encoding::Depth,
1983 ) -> fidl::Result<()> {
1984 encoder.debug_check_bounds::<ManagerRebindCompositesWithDriverResponse>(offset);
1985 unsafe {
1986 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1988 (buf_ptr as *mut ManagerRebindCompositesWithDriverResponse).write_unaligned(
1989 (self as *const ManagerRebindCompositesWithDriverResponse).read(),
1990 );
1991 }
1994 Ok(())
1995 }
1996 }
1997 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1998 fidl::encoding::Encode<ManagerRebindCompositesWithDriverResponse, D> for (T0,)
1999 {
2000 #[inline]
2001 unsafe fn encode(
2002 self,
2003 encoder: &mut fidl::encoding::Encoder<'_, D>,
2004 offset: usize,
2005 depth: fidl::encoding::Depth,
2006 ) -> fidl::Result<()> {
2007 encoder.debug_check_bounds::<ManagerRebindCompositesWithDriverResponse>(offset);
2008 self.0.encode(encoder, offset + 0, depth)?;
2012 Ok(())
2013 }
2014 }
2015
2016 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2017 for ManagerRebindCompositesWithDriverResponse
2018 {
2019 #[inline(always)]
2020 fn new_empty() -> Self {
2021 Self { count: fidl::new_empty!(u32, D) }
2022 }
2023
2024 #[inline]
2025 unsafe fn decode(
2026 &mut self,
2027 decoder: &mut fidl::encoding::Decoder<'_, D>,
2028 offset: usize,
2029 _depth: fidl::encoding::Depth,
2030 ) -> fidl::Result<()> {
2031 decoder.debug_check_bounds::<Self>(offset);
2032 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2033 unsafe {
2036 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2037 }
2038 Ok(())
2039 }
2040 }
2041
2042 impl fidl::encoding::ValueTypeMarker for ManagerRestartDriverHostsResponse {
2043 type Borrowed<'a> = &'a Self;
2044 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2045 value
2046 }
2047 }
2048
2049 unsafe impl fidl::encoding::TypeMarker for ManagerRestartDriverHostsResponse {
2050 type Owned = Self;
2051
2052 #[inline(always)]
2053 fn inline_align(_context: fidl::encoding::Context) -> usize {
2054 4
2055 }
2056
2057 #[inline(always)]
2058 fn inline_size(_context: fidl::encoding::Context) -> usize {
2059 4
2060 }
2061 #[inline(always)]
2062 fn encode_is_copy() -> bool {
2063 true
2064 }
2065
2066 #[inline(always)]
2067 fn decode_is_copy() -> bool {
2068 true
2069 }
2070 }
2071
2072 unsafe impl<D: fidl::encoding::ResourceDialect>
2073 fidl::encoding::Encode<ManagerRestartDriverHostsResponse, D>
2074 for &ManagerRestartDriverHostsResponse
2075 {
2076 #[inline]
2077 unsafe fn encode(
2078 self,
2079 encoder: &mut fidl::encoding::Encoder<'_, D>,
2080 offset: usize,
2081 _depth: fidl::encoding::Depth,
2082 ) -> fidl::Result<()> {
2083 encoder.debug_check_bounds::<ManagerRestartDriverHostsResponse>(offset);
2084 unsafe {
2085 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2087 (buf_ptr as *mut ManagerRestartDriverHostsResponse)
2088 .write_unaligned((self as *const ManagerRestartDriverHostsResponse).read());
2089 }
2092 Ok(())
2093 }
2094 }
2095 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
2096 fidl::encoding::Encode<ManagerRestartDriverHostsResponse, D> for (T0,)
2097 {
2098 #[inline]
2099 unsafe fn encode(
2100 self,
2101 encoder: &mut fidl::encoding::Encoder<'_, D>,
2102 offset: usize,
2103 depth: fidl::encoding::Depth,
2104 ) -> fidl::Result<()> {
2105 encoder.debug_check_bounds::<ManagerRestartDriverHostsResponse>(offset);
2106 self.0.encode(encoder, offset + 0, depth)?;
2110 Ok(())
2111 }
2112 }
2113
2114 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2115 for ManagerRestartDriverHostsResponse
2116 {
2117 #[inline(always)]
2118 fn new_empty() -> Self {
2119 Self { count: fidl::new_empty!(u32, D) }
2120 }
2121
2122 #[inline]
2123 unsafe fn decode(
2124 &mut self,
2125 decoder: &mut fidl::encoding::Decoder<'_, D>,
2126 offset: usize,
2127 _depth: fidl::encoding::Depth,
2128 ) -> fidl::Result<()> {
2129 decoder.debug_check_bounds::<Self>(offset);
2130 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2131 unsafe {
2134 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2135 }
2136 Ok(())
2137 }
2138 }
2139
2140 impl fidl::encoding::ValueTypeMarker for NodeInfoIteratorGetNextResponse {
2141 type Borrowed<'a> = &'a Self;
2142 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2143 value
2144 }
2145 }
2146
2147 unsafe impl fidl::encoding::TypeMarker for NodeInfoIteratorGetNextResponse {
2148 type Owned = Self;
2149
2150 #[inline(always)]
2151 fn inline_align(_context: fidl::encoding::Context) -> usize {
2152 8
2153 }
2154
2155 #[inline(always)]
2156 fn inline_size(_context: fidl::encoding::Context) -> usize {
2157 16
2158 }
2159 }
2160
2161 unsafe impl<D: fidl::encoding::ResourceDialect>
2162 fidl::encoding::Encode<NodeInfoIteratorGetNextResponse, D>
2163 for &NodeInfoIteratorGetNextResponse
2164 {
2165 #[inline]
2166 unsafe fn encode(
2167 self,
2168 encoder: &mut fidl::encoding::Encoder<'_, D>,
2169 offset: usize,
2170 _depth: fidl::encoding::Depth,
2171 ) -> fidl::Result<()> {
2172 encoder.debug_check_bounds::<NodeInfoIteratorGetNextResponse>(offset);
2173 fidl::encoding::Encode::<NodeInfoIteratorGetNextResponse, D>::encode(
2175 (
2176 <fidl::encoding::UnboundedVector<NodeInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.nodes),
2177 ),
2178 encoder, offset, _depth
2179 )
2180 }
2181 }
2182 unsafe impl<
2183 D: fidl::encoding::ResourceDialect,
2184 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<NodeInfo>, D>,
2185 > fidl::encoding::Encode<NodeInfoIteratorGetNextResponse, D> for (T0,)
2186 {
2187 #[inline]
2188 unsafe fn encode(
2189 self,
2190 encoder: &mut fidl::encoding::Encoder<'_, D>,
2191 offset: usize,
2192 depth: fidl::encoding::Depth,
2193 ) -> fidl::Result<()> {
2194 encoder.debug_check_bounds::<NodeInfoIteratorGetNextResponse>(offset);
2195 self.0.encode(encoder, offset + 0, depth)?;
2199 Ok(())
2200 }
2201 }
2202
2203 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2204 for NodeInfoIteratorGetNextResponse
2205 {
2206 #[inline(always)]
2207 fn new_empty() -> Self {
2208 Self { nodes: fidl::new_empty!(fidl::encoding::UnboundedVector<NodeInfo>, D) }
2209 }
2210
2211 #[inline]
2212 unsafe fn decode(
2213 &mut self,
2214 decoder: &mut fidl::encoding::Decoder<'_, D>,
2215 offset: usize,
2216 _depth: fidl::encoding::Depth,
2217 ) -> fidl::Result<()> {
2218 decoder.debug_check_bounds::<Self>(offset);
2219 fidl::decode!(
2221 fidl::encoding::UnboundedVector<NodeInfo>,
2222 D,
2223 &mut self.nodes,
2224 decoder,
2225 offset + 0,
2226 _depth
2227 )?;
2228 Ok(())
2229 }
2230 }
2231
2232 impl CompositeNodeInfo {
2233 #[inline(always)]
2234 fn max_ordinal_present(&self) -> u64 {
2235 if let Some(_) = self.moniker {
2236 return 5;
2237 }
2238 if let Some(_) = self.parent_monikers {
2239 return 4;
2240 }
2241 if let Some(_) = self.composite {
2242 return 3;
2243 }
2244 if let Some(_) = self.topological_path {
2245 return 2;
2246 }
2247 if let Some(_) = self.parent_topological_paths {
2248 return 1;
2249 }
2250 0
2251 }
2252 }
2253
2254 impl fidl::encoding::ValueTypeMarker for CompositeNodeInfo {
2255 type Borrowed<'a> = &'a Self;
2256 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2257 value
2258 }
2259 }
2260
2261 unsafe impl fidl::encoding::TypeMarker for CompositeNodeInfo {
2262 type Owned = Self;
2263
2264 #[inline(always)]
2265 fn inline_align(_context: fidl::encoding::Context) -> usize {
2266 8
2267 }
2268
2269 #[inline(always)]
2270 fn inline_size(_context: fidl::encoding::Context) -> usize {
2271 16
2272 }
2273 }
2274
2275 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CompositeNodeInfo, D>
2276 for &CompositeNodeInfo
2277 {
2278 unsafe fn encode(
2279 self,
2280 encoder: &mut fidl::encoding::Encoder<'_, D>,
2281 offset: usize,
2282 mut depth: fidl::encoding::Depth,
2283 ) -> fidl::Result<()> {
2284 encoder.debug_check_bounds::<CompositeNodeInfo>(offset);
2285 let max_ordinal: u64 = self.max_ordinal_present();
2287 encoder.write_num(max_ordinal, offset);
2288 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2289 if max_ordinal == 0 {
2291 return Ok(());
2292 }
2293 depth.increment()?;
2294 let envelope_size = 8;
2295 let bytes_len = max_ordinal as usize * envelope_size;
2296 #[allow(unused_variables)]
2297 let offset = encoder.out_of_line_offset(bytes_len);
2298 let mut _prev_end_offset: usize = 0;
2299 if 1 > max_ordinal {
2300 return Ok(());
2301 }
2302
2303 let cur_offset: usize = (1 - 1) * envelope_size;
2306
2307 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2309
2310 fidl::encoding::encode_in_envelope_optional::<
2315 fidl::encoding::UnboundedVector<
2316 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2317 >,
2318 D,
2319 >(
2320 self.parent_topological_paths.as_ref().map(
2321 <fidl::encoding::UnboundedVector<
2322 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2323 > as fidl::encoding::ValueTypeMarker>::borrow,
2324 ),
2325 encoder,
2326 offset + cur_offset,
2327 depth,
2328 )?;
2329
2330 _prev_end_offset = cur_offset + envelope_size;
2331 if 2 > max_ordinal {
2332 return Ok(());
2333 }
2334
2335 let cur_offset: usize = (2 - 1) * envelope_size;
2338
2339 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2341
2342 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
2347 self.topological_path.as_ref().map(
2348 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
2349 ),
2350 encoder,
2351 offset + cur_offset,
2352 depth,
2353 )?;
2354
2355 _prev_end_offset = cur_offset + envelope_size;
2356 if 3 > max_ordinal {
2357 return Ok(());
2358 }
2359
2360 let cur_offset: usize = (3 - 1) * envelope_size;
2363
2364 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2366
2367 fidl::encoding::encode_in_envelope_optional::<CompositeInfo, D>(
2372 self.composite
2373 .as_ref()
2374 .map(<CompositeInfo as fidl::encoding::ValueTypeMarker>::borrow),
2375 encoder,
2376 offset + cur_offset,
2377 depth,
2378 )?;
2379
2380 _prev_end_offset = cur_offset + envelope_size;
2381 if 4 > max_ordinal {
2382 return Ok(());
2383 }
2384
2385 let cur_offset: usize = (4 - 1) * envelope_size;
2388
2389 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2391
2392 fidl::encoding::encode_in_envelope_optional::<
2397 fidl::encoding::UnboundedVector<
2398 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2399 >,
2400 D,
2401 >(
2402 self.parent_monikers.as_ref().map(
2403 <fidl::encoding::UnboundedVector<
2404 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2405 > as fidl::encoding::ValueTypeMarker>::borrow,
2406 ),
2407 encoder,
2408 offset + cur_offset,
2409 depth,
2410 )?;
2411
2412 _prev_end_offset = cur_offset + envelope_size;
2413 if 5 > max_ordinal {
2414 return Ok(());
2415 }
2416
2417 let cur_offset: usize = (5 - 1) * envelope_size;
2420
2421 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2423
2424 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
2429 self.moniker.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
2430 encoder, offset + cur_offset, depth
2431 )?;
2432
2433 _prev_end_offset = cur_offset + envelope_size;
2434
2435 Ok(())
2436 }
2437 }
2438
2439 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompositeNodeInfo {
2440 #[inline(always)]
2441 fn new_empty() -> Self {
2442 Self::default()
2443 }
2444
2445 unsafe fn decode(
2446 &mut self,
2447 decoder: &mut fidl::encoding::Decoder<'_, D>,
2448 offset: usize,
2449 mut depth: fidl::encoding::Depth,
2450 ) -> fidl::Result<()> {
2451 decoder.debug_check_bounds::<Self>(offset);
2452 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2453 None => return Err(fidl::Error::NotNullable),
2454 Some(len) => len,
2455 };
2456 if len == 0 {
2458 return Ok(());
2459 };
2460 depth.increment()?;
2461 let envelope_size = 8;
2462 let bytes_len = len * envelope_size;
2463 let offset = decoder.out_of_line_offset(bytes_len)?;
2464 let mut _next_ordinal_to_read = 0;
2466 let mut next_offset = offset;
2467 let end_offset = offset + bytes_len;
2468 _next_ordinal_to_read += 1;
2469 if next_offset >= end_offset {
2470 return Ok(());
2471 }
2472
2473 while _next_ordinal_to_read < 1 {
2475 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2476 _next_ordinal_to_read += 1;
2477 next_offset += envelope_size;
2478 }
2479
2480 let next_out_of_line = decoder.next_out_of_line();
2481 let handles_before = decoder.remaining_handles();
2482 if let Some((inlined, num_bytes, num_handles)) =
2483 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2484 {
2485 let member_inline_size = <fidl::encoding::UnboundedVector<
2486 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2487 > as fidl::encoding::TypeMarker>::inline_size(
2488 decoder.context
2489 );
2490 if inlined != (member_inline_size <= 4) {
2491 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2492 }
2493 let inner_offset;
2494 let mut inner_depth = depth.clone();
2495 if inlined {
2496 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2497 inner_offset = next_offset;
2498 } else {
2499 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2500 inner_depth.increment()?;
2501 }
2502 let val_ref = self.parent_topological_paths.get_or_insert_with(|| {
2503 fidl::new_empty!(
2504 fidl::encoding::UnboundedVector<
2505 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2506 >,
2507 D
2508 )
2509 });
2510 fidl::decode!(
2511 fidl::encoding::UnboundedVector<
2512 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2513 >,
2514 D,
2515 val_ref,
2516 decoder,
2517 inner_offset,
2518 inner_depth
2519 )?;
2520 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2521 {
2522 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2523 }
2524 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2525 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2526 }
2527 }
2528
2529 next_offset += envelope_size;
2530 _next_ordinal_to_read += 1;
2531 if next_offset >= end_offset {
2532 return Ok(());
2533 }
2534
2535 while _next_ordinal_to_read < 2 {
2537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2538 _next_ordinal_to_read += 1;
2539 next_offset += envelope_size;
2540 }
2541
2542 let next_out_of_line = decoder.next_out_of_line();
2543 let handles_before = decoder.remaining_handles();
2544 if let Some((inlined, num_bytes, num_handles)) =
2545 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2546 {
2547 let member_inline_size =
2548 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
2549 decoder.context,
2550 );
2551 if inlined != (member_inline_size <= 4) {
2552 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2553 }
2554 let inner_offset;
2555 let mut inner_depth = depth.clone();
2556 if inlined {
2557 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2558 inner_offset = next_offset;
2559 } else {
2560 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2561 inner_depth.increment()?;
2562 }
2563 let val_ref = self
2564 .topological_path
2565 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
2566 fidl::decode!(
2567 fidl::encoding::UnboundedString,
2568 D,
2569 val_ref,
2570 decoder,
2571 inner_offset,
2572 inner_depth
2573 )?;
2574 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2575 {
2576 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2577 }
2578 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2579 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2580 }
2581 }
2582
2583 next_offset += envelope_size;
2584 _next_ordinal_to_read += 1;
2585 if next_offset >= end_offset {
2586 return Ok(());
2587 }
2588
2589 while _next_ordinal_to_read < 3 {
2591 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2592 _next_ordinal_to_read += 1;
2593 next_offset += envelope_size;
2594 }
2595
2596 let next_out_of_line = decoder.next_out_of_line();
2597 let handles_before = decoder.remaining_handles();
2598 if let Some((inlined, num_bytes, num_handles)) =
2599 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2600 {
2601 let member_inline_size =
2602 <CompositeInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2603 if inlined != (member_inline_size <= 4) {
2604 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2605 }
2606 let inner_offset;
2607 let mut inner_depth = depth.clone();
2608 if inlined {
2609 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2610 inner_offset = next_offset;
2611 } else {
2612 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2613 inner_depth.increment()?;
2614 }
2615 let val_ref =
2616 self.composite.get_or_insert_with(|| fidl::new_empty!(CompositeInfo, D));
2617 fidl::decode!(CompositeInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
2618 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2619 {
2620 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2621 }
2622 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2623 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2624 }
2625 }
2626
2627 next_offset += envelope_size;
2628 _next_ordinal_to_read += 1;
2629 if next_offset >= end_offset {
2630 return Ok(());
2631 }
2632
2633 while _next_ordinal_to_read < 4 {
2635 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2636 _next_ordinal_to_read += 1;
2637 next_offset += envelope_size;
2638 }
2639
2640 let next_out_of_line = decoder.next_out_of_line();
2641 let handles_before = decoder.remaining_handles();
2642 if let Some((inlined, num_bytes, num_handles)) =
2643 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2644 {
2645 let member_inline_size = <fidl::encoding::UnboundedVector<
2646 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2647 > as fidl::encoding::TypeMarker>::inline_size(
2648 decoder.context
2649 );
2650 if inlined != (member_inline_size <= 4) {
2651 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2652 }
2653 let inner_offset;
2654 let mut inner_depth = depth.clone();
2655 if inlined {
2656 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2657 inner_offset = next_offset;
2658 } else {
2659 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2660 inner_depth.increment()?;
2661 }
2662 let val_ref = self.parent_monikers.get_or_insert_with(|| {
2663 fidl::new_empty!(
2664 fidl::encoding::UnboundedVector<
2665 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2666 >,
2667 D
2668 )
2669 });
2670 fidl::decode!(
2671 fidl::encoding::UnboundedVector<
2672 fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2673 >,
2674 D,
2675 val_ref,
2676 decoder,
2677 inner_offset,
2678 inner_depth
2679 )?;
2680 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2681 {
2682 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2683 }
2684 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2685 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2686 }
2687 }
2688
2689 next_offset += envelope_size;
2690 _next_ordinal_to_read += 1;
2691 if next_offset >= end_offset {
2692 return Ok(());
2693 }
2694
2695 while _next_ordinal_to_read < 5 {
2697 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2698 _next_ordinal_to_read += 1;
2699 next_offset += envelope_size;
2700 }
2701
2702 let next_out_of_line = decoder.next_out_of_line();
2703 let handles_before = decoder.remaining_handles();
2704 if let Some((inlined, num_bytes, num_handles)) =
2705 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2706 {
2707 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2708 if inlined != (member_inline_size <= 4) {
2709 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2710 }
2711 let inner_offset;
2712 let mut inner_depth = depth.clone();
2713 if inlined {
2714 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2715 inner_offset = next_offset;
2716 } else {
2717 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2718 inner_depth.increment()?;
2719 }
2720 let val_ref = self.moniker.get_or_insert_with(|| {
2721 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
2722 });
2723 fidl::decode!(
2724 fidl::encoding::BoundedString<1024>,
2725 D,
2726 val_ref,
2727 decoder,
2728 inner_offset,
2729 inner_depth
2730 )?;
2731 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2732 {
2733 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2734 }
2735 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2736 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2737 }
2738 }
2739
2740 next_offset += envelope_size;
2741
2742 while next_offset < end_offset {
2744 _next_ordinal_to_read += 1;
2745 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2746 next_offset += envelope_size;
2747 }
2748
2749 Ok(())
2750 }
2751 }
2752
2753 impl DispatcherDebugStats {
2754 #[inline(always)]
2755 fn max_ordinal_present(&self) -> u64 {
2756 if let Some(_) = self.non_inlined {
2757 return 3;
2758 }
2759 if let Some(_) = self.num_inlined_requests {
2760 return 2;
2761 }
2762 if let Some(_) = self.num_total_requests {
2763 return 1;
2764 }
2765 0
2766 }
2767 }
2768
2769 impl fidl::encoding::ValueTypeMarker for DispatcherDebugStats {
2770 type Borrowed<'a> = &'a Self;
2771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2772 value
2773 }
2774 }
2775
2776 unsafe impl fidl::encoding::TypeMarker for DispatcherDebugStats {
2777 type Owned = Self;
2778
2779 #[inline(always)]
2780 fn inline_align(_context: fidl::encoding::Context) -> usize {
2781 8
2782 }
2783
2784 #[inline(always)]
2785 fn inline_size(_context: fidl::encoding::Context) -> usize {
2786 16
2787 }
2788 }
2789
2790 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DispatcherDebugStats, D>
2791 for &DispatcherDebugStats
2792 {
2793 unsafe fn encode(
2794 self,
2795 encoder: &mut fidl::encoding::Encoder<'_, D>,
2796 offset: usize,
2797 mut depth: fidl::encoding::Depth,
2798 ) -> fidl::Result<()> {
2799 encoder.debug_check_bounds::<DispatcherDebugStats>(offset);
2800 let max_ordinal: u64 = self.max_ordinal_present();
2802 encoder.write_num(max_ordinal, offset);
2803 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2804 if max_ordinal == 0 {
2806 return Ok(());
2807 }
2808 depth.increment()?;
2809 let envelope_size = 8;
2810 let bytes_len = max_ordinal as usize * envelope_size;
2811 #[allow(unused_variables)]
2812 let offset = encoder.out_of_line_offset(bytes_len);
2813 let mut _prev_end_offset: usize = 0;
2814 if 1 > max_ordinal {
2815 return Ok(());
2816 }
2817
2818 let cur_offset: usize = (1 - 1) * envelope_size;
2821
2822 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2824
2825 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2830 self.num_total_requests
2831 .as_ref()
2832 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2833 encoder,
2834 offset + cur_offset,
2835 depth,
2836 )?;
2837
2838 _prev_end_offset = cur_offset + envelope_size;
2839 if 2 > max_ordinal {
2840 return Ok(());
2841 }
2842
2843 let cur_offset: usize = (2 - 1) * envelope_size;
2846
2847 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2849
2850 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2855 self.num_inlined_requests
2856 .as_ref()
2857 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2858 encoder,
2859 offset + cur_offset,
2860 depth,
2861 )?;
2862
2863 _prev_end_offset = cur_offset + envelope_size;
2864 if 3 > max_ordinal {
2865 return Ok(());
2866 }
2867
2868 let cur_offset: usize = (3 - 1) * envelope_size;
2871
2872 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2874
2875 fidl::encoding::encode_in_envelope_optional::<NonInlinedRequestStats, D>(
2880 self.non_inlined
2881 .as_ref()
2882 .map(<NonInlinedRequestStats as fidl::encoding::ValueTypeMarker>::borrow),
2883 encoder,
2884 offset + cur_offset,
2885 depth,
2886 )?;
2887
2888 _prev_end_offset = cur_offset + envelope_size;
2889
2890 Ok(())
2891 }
2892 }
2893
2894 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DispatcherDebugStats {
2895 #[inline(always)]
2896 fn new_empty() -> Self {
2897 Self::default()
2898 }
2899
2900 unsafe fn decode(
2901 &mut self,
2902 decoder: &mut fidl::encoding::Decoder<'_, D>,
2903 offset: usize,
2904 mut depth: fidl::encoding::Depth,
2905 ) -> fidl::Result<()> {
2906 decoder.debug_check_bounds::<Self>(offset);
2907 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2908 None => return Err(fidl::Error::NotNullable),
2909 Some(len) => len,
2910 };
2911 if len == 0 {
2913 return Ok(());
2914 };
2915 depth.increment()?;
2916 let envelope_size = 8;
2917 let bytes_len = len * envelope_size;
2918 let offset = decoder.out_of_line_offset(bytes_len)?;
2919 let mut _next_ordinal_to_read = 0;
2921 let mut next_offset = offset;
2922 let end_offset = offset + bytes_len;
2923 _next_ordinal_to_read += 1;
2924 if next_offset >= end_offset {
2925 return Ok(());
2926 }
2927
2928 while _next_ordinal_to_read < 1 {
2930 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2931 _next_ordinal_to_read += 1;
2932 next_offset += envelope_size;
2933 }
2934
2935 let next_out_of_line = decoder.next_out_of_line();
2936 let handles_before = decoder.remaining_handles();
2937 if let Some((inlined, num_bytes, num_handles)) =
2938 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2939 {
2940 let member_inline_size =
2941 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2942 if inlined != (member_inline_size <= 4) {
2943 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2944 }
2945 let inner_offset;
2946 let mut inner_depth = depth.clone();
2947 if inlined {
2948 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2949 inner_offset = next_offset;
2950 } else {
2951 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2952 inner_depth.increment()?;
2953 }
2954 let val_ref =
2955 self.num_total_requests.get_or_insert_with(|| fidl::new_empty!(u64, D));
2956 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2957 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2958 {
2959 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2960 }
2961 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2962 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2963 }
2964 }
2965
2966 next_offset += envelope_size;
2967 _next_ordinal_to_read += 1;
2968 if next_offset >= end_offset {
2969 return Ok(());
2970 }
2971
2972 while _next_ordinal_to_read < 2 {
2974 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2975 _next_ordinal_to_read += 1;
2976 next_offset += envelope_size;
2977 }
2978
2979 let next_out_of_line = decoder.next_out_of_line();
2980 let handles_before = decoder.remaining_handles();
2981 if let Some((inlined, num_bytes, num_handles)) =
2982 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2983 {
2984 let member_inline_size =
2985 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2986 if inlined != (member_inline_size <= 4) {
2987 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2988 }
2989 let inner_offset;
2990 let mut inner_depth = depth.clone();
2991 if inlined {
2992 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2993 inner_offset = next_offset;
2994 } else {
2995 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2996 inner_depth.increment()?;
2997 }
2998 let val_ref =
2999 self.num_inlined_requests.get_or_insert_with(|| fidl::new_empty!(u64, D));
3000 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3001 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3002 {
3003 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3004 }
3005 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3006 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3007 }
3008 }
3009
3010 next_offset += envelope_size;
3011 _next_ordinal_to_read += 1;
3012 if next_offset >= end_offset {
3013 return Ok(());
3014 }
3015
3016 while _next_ordinal_to_read < 3 {
3018 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3019 _next_ordinal_to_read += 1;
3020 next_offset += envelope_size;
3021 }
3022
3023 let next_out_of_line = decoder.next_out_of_line();
3024 let handles_before = decoder.remaining_handles();
3025 if let Some((inlined, num_bytes, num_handles)) =
3026 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3027 {
3028 let member_inline_size =
3029 <NonInlinedRequestStats as fidl::encoding::TypeMarker>::inline_size(
3030 decoder.context,
3031 );
3032 if inlined != (member_inline_size <= 4) {
3033 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3034 }
3035 let inner_offset;
3036 let mut inner_depth = depth.clone();
3037 if inlined {
3038 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3039 inner_offset = next_offset;
3040 } else {
3041 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3042 inner_depth.increment()?;
3043 }
3044 let val_ref = self
3045 .non_inlined
3046 .get_or_insert_with(|| fidl::new_empty!(NonInlinedRequestStats, D));
3047 fidl::decode!(
3048 NonInlinedRequestStats,
3049 D,
3050 val_ref,
3051 decoder,
3052 inner_offset,
3053 inner_depth
3054 )?;
3055 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3056 {
3057 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3058 }
3059 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3060 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3061 }
3062 }
3063
3064 next_offset += envelope_size;
3065
3066 while next_offset < end_offset {
3068 _next_ordinal_to_read += 1;
3069 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3070 next_offset += envelope_size;
3071 }
3072
3073 Ok(())
3074 }
3075 }
3076
3077 impl DispatcherInfo {
3078 #[inline(always)]
3079 fn max_ordinal_present(&self) -> u64 {
3080 if let Some(_) = self.num_queued_tasks {
3081 return 14;
3082 }
3083 if let Some(_) = self.queued_tasks {
3084 return 13;
3085 }
3086 if let Some(_) = self.debug_stats {
3087 return 12;
3088 }
3089 if let Some(_) = self.destroy_user_initiated {
3090 return 11;
3091 }
3092 if let Some(_) = self.destroy_context {
3093 return 10;
3094 }
3095 if let Some(_) = self.state {
3096 return 9;
3097 }
3098 if let Some(_) = self.allow_sync_calls {
3099 return 8;
3100 }
3101 if let Some(_) = self.synchronized {
3102 return 7;
3103 }
3104 if let Some(_) = self.driver_ptr {
3105 return 6;
3106 }
3107 if let Some(_) = self.dispatcher_ptr {
3108 return 5;
3109 }
3110 if let Some(_) = self.scheduler_role {
3111 return 4;
3112 }
3113 if let Some(_) = self.options {
3114 return 3;
3115 }
3116 if let Some(_) = self.name {
3117 return 2;
3118 }
3119 if let Some(_) = self.driver {
3120 return 1;
3121 }
3122 0
3123 }
3124 }
3125
3126 impl fidl::encoding::ValueTypeMarker for DispatcherInfo {
3127 type Borrowed<'a> = &'a Self;
3128 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3129 value
3130 }
3131 }
3132
3133 unsafe impl fidl::encoding::TypeMarker for DispatcherInfo {
3134 type Owned = Self;
3135
3136 #[inline(always)]
3137 fn inline_align(_context: fidl::encoding::Context) -> usize {
3138 8
3139 }
3140
3141 #[inline(always)]
3142 fn inline_size(_context: fidl::encoding::Context) -> usize {
3143 16
3144 }
3145 }
3146
3147 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DispatcherInfo, D>
3148 for &DispatcherInfo
3149 {
3150 unsafe fn encode(
3151 self,
3152 encoder: &mut fidl::encoding::Encoder<'_, D>,
3153 offset: usize,
3154 mut depth: fidl::encoding::Depth,
3155 ) -> fidl::Result<()> {
3156 encoder.debug_check_bounds::<DispatcherInfo>(offset);
3157 let max_ordinal: u64 = self.max_ordinal_present();
3159 encoder.write_num(max_ordinal, offset);
3160 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3161 if max_ordinal == 0 {
3163 return Ok(());
3164 }
3165 depth.increment()?;
3166 let envelope_size = 8;
3167 let bytes_len = max_ordinal as usize * envelope_size;
3168 #[allow(unused_variables)]
3169 let offset = encoder.out_of_line_offset(bytes_len);
3170 let mut _prev_end_offset: usize = 0;
3171 if 1 > max_ordinal {
3172 return Ok(());
3173 }
3174
3175 let cur_offset: usize = (1 - 1) * envelope_size;
3178
3179 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3181
3182 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
3187 self.driver.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
3188 encoder, offset + cur_offset, depth
3189 )?;
3190
3191 _prev_end_offset = cur_offset + envelope_size;
3192 if 2 > max_ordinal {
3193 return Ok(());
3194 }
3195
3196 let cur_offset: usize = (2 - 1) * envelope_size;
3199
3200 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3202
3203 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3208 self.name.as_ref().map(
3209 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3210 ),
3211 encoder,
3212 offset + cur_offset,
3213 depth,
3214 )?;
3215
3216 _prev_end_offset = cur_offset + envelope_size;
3217 if 3 > max_ordinal {
3218 return Ok(());
3219 }
3220
3221 let cur_offset: usize = (3 - 1) * envelope_size;
3224
3225 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3227
3228 fidl::encoding::encode_in_envelope_optional::<u32, D>(
3233 self.options.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
3234 encoder,
3235 offset + cur_offset,
3236 depth,
3237 )?;
3238
3239 _prev_end_offset = cur_offset + envelope_size;
3240 if 4 > max_ordinal {
3241 return Ok(());
3242 }
3243
3244 let cur_offset: usize = (4 - 1) * envelope_size;
3247
3248 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3250
3251 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3256 self.scheduler_role.as_ref().map(
3257 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3258 ),
3259 encoder,
3260 offset + cur_offset,
3261 depth,
3262 )?;
3263
3264 _prev_end_offset = cur_offset + envelope_size;
3265 if 5 > max_ordinal {
3266 return Ok(());
3267 }
3268
3269 let cur_offset: usize = (5 - 1) * envelope_size;
3272
3273 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3275
3276 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3281 self.dispatcher_ptr.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3282 encoder,
3283 offset + cur_offset,
3284 depth,
3285 )?;
3286
3287 _prev_end_offset = cur_offset + envelope_size;
3288 if 6 > max_ordinal {
3289 return Ok(());
3290 }
3291
3292 let cur_offset: usize = (6 - 1) * envelope_size;
3295
3296 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3298
3299 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3304 self.driver_ptr.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3305 encoder,
3306 offset + cur_offset,
3307 depth,
3308 )?;
3309
3310 _prev_end_offset = cur_offset + envelope_size;
3311 if 7 > max_ordinal {
3312 return Ok(());
3313 }
3314
3315 let cur_offset: usize = (7 - 1) * envelope_size;
3318
3319 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3321
3322 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3327 self.synchronized.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3328 encoder,
3329 offset + cur_offset,
3330 depth,
3331 )?;
3332
3333 _prev_end_offset = cur_offset + envelope_size;
3334 if 8 > max_ordinal {
3335 return Ok(());
3336 }
3337
3338 let cur_offset: usize = (8 - 1) * envelope_size;
3341
3342 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3344
3345 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3350 self.allow_sync_calls
3351 .as_ref()
3352 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3353 encoder,
3354 offset + cur_offset,
3355 depth,
3356 )?;
3357
3358 _prev_end_offset = cur_offset + envelope_size;
3359 if 9 > max_ordinal {
3360 return Ok(());
3361 }
3362
3363 let cur_offset: usize = (9 - 1) * envelope_size;
3366
3367 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3369
3370 fidl::encoding::encode_in_envelope_optional::<DispatcherState, D>(
3375 self.state
3376 .as_ref()
3377 .map(<DispatcherState as fidl::encoding::ValueTypeMarker>::borrow),
3378 encoder,
3379 offset + cur_offset,
3380 depth,
3381 )?;
3382
3383 _prev_end_offset = cur_offset + envelope_size;
3384 if 10 > max_ordinal {
3385 return Ok(());
3386 }
3387
3388 let cur_offset: usize = (10 - 1) * envelope_size;
3391
3392 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3394
3395 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
3400 self.destroy_context.as_ref().map(
3401 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
3402 ),
3403 encoder,
3404 offset + cur_offset,
3405 depth,
3406 )?;
3407
3408 _prev_end_offset = cur_offset + envelope_size;
3409 if 11 > max_ordinal {
3410 return Ok(());
3411 }
3412
3413 let cur_offset: usize = (11 - 1) * envelope_size;
3416
3417 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3419
3420 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3425 self.destroy_user_initiated
3426 .as_ref()
3427 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3428 encoder,
3429 offset + cur_offset,
3430 depth,
3431 )?;
3432
3433 _prev_end_offset = cur_offset + envelope_size;
3434 if 12 > max_ordinal {
3435 return Ok(());
3436 }
3437
3438 let cur_offset: usize = (12 - 1) * envelope_size;
3441
3442 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3444
3445 fidl::encoding::encode_in_envelope_optional::<DispatcherDebugStats, D>(
3450 self.debug_stats
3451 .as_ref()
3452 .map(<DispatcherDebugStats as fidl::encoding::ValueTypeMarker>::borrow),
3453 encoder,
3454 offset + cur_offset,
3455 depth,
3456 )?;
3457
3458 _prev_end_offset = cur_offset + envelope_size;
3459 if 13 > max_ordinal {
3460 return Ok(());
3461 }
3462
3463 let cur_offset: usize = (13 - 1) * envelope_size;
3466
3467 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3469
3470 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<QueuedTaskInfo>, D>(
3475 self.queued_tasks.as_ref().map(<fidl::encoding::UnboundedVector<QueuedTaskInfo> as fidl::encoding::ValueTypeMarker>::borrow),
3476 encoder, offset + cur_offset, depth
3477 )?;
3478
3479 _prev_end_offset = cur_offset + envelope_size;
3480 if 14 > max_ordinal {
3481 return Ok(());
3482 }
3483
3484 let cur_offset: usize = (14 - 1) * envelope_size;
3487
3488 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3490
3491 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3496 self.num_queued_tasks
3497 .as_ref()
3498 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3499 encoder,
3500 offset + cur_offset,
3501 depth,
3502 )?;
3503
3504 _prev_end_offset = cur_offset + envelope_size;
3505
3506 Ok(())
3507 }
3508 }
3509
3510 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DispatcherInfo {
3511 #[inline(always)]
3512 fn new_empty() -> Self {
3513 Self::default()
3514 }
3515
3516 unsafe fn decode(
3517 &mut self,
3518 decoder: &mut fidl::encoding::Decoder<'_, D>,
3519 offset: usize,
3520 mut depth: fidl::encoding::Depth,
3521 ) -> fidl::Result<()> {
3522 decoder.debug_check_bounds::<Self>(offset);
3523 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3524 None => return Err(fidl::Error::NotNullable),
3525 Some(len) => len,
3526 };
3527 if len == 0 {
3529 return Ok(());
3530 };
3531 depth.increment()?;
3532 let envelope_size = 8;
3533 let bytes_len = len * envelope_size;
3534 let offset = decoder.out_of_line_offset(bytes_len)?;
3535 let mut _next_ordinal_to_read = 0;
3537 let mut next_offset = offset;
3538 let end_offset = offset + bytes_len;
3539 _next_ordinal_to_read += 1;
3540 if next_offset >= end_offset {
3541 return Ok(());
3542 }
3543
3544 while _next_ordinal_to_read < 1 {
3546 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3547 _next_ordinal_to_read += 1;
3548 next_offset += envelope_size;
3549 }
3550
3551 let next_out_of_line = decoder.next_out_of_line();
3552 let handles_before = decoder.remaining_handles();
3553 if let Some((inlined, num_bytes, num_handles)) =
3554 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3555 {
3556 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3557 if inlined != (member_inline_size <= 4) {
3558 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3559 }
3560 let inner_offset;
3561 let mut inner_depth = depth.clone();
3562 if inlined {
3563 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3564 inner_offset = next_offset;
3565 } else {
3566 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3567 inner_depth.increment()?;
3568 }
3569 let val_ref = self.driver.get_or_insert_with(|| {
3570 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
3571 });
3572 fidl::decode!(
3573 fidl::encoding::BoundedString<4096>,
3574 D,
3575 val_ref,
3576 decoder,
3577 inner_offset,
3578 inner_depth
3579 )?;
3580 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3581 {
3582 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3583 }
3584 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3585 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3586 }
3587 }
3588
3589 next_offset += envelope_size;
3590 _next_ordinal_to_read += 1;
3591 if next_offset >= end_offset {
3592 return Ok(());
3593 }
3594
3595 while _next_ordinal_to_read < 2 {
3597 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3598 _next_ordinal_to_read += 1;
3599 next_offset += envelope_size;
3600 }
3601
3602 let next_out_of_line = decoder.next_out_of_line();
3603 let handles_before = decoder.remaining_handles();
3604 if let Some((inlined, num_bytes, num_handles)) =
3605 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3606 {
3607 let member_inline_size =
3608 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
3609 decoder.context,
3610 );
3611 if inlined != (member_inline_size <= 4) {
3612 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3613 }
3614 let inner_offset;
3615 let mut inner_depth = depth.clone();
3616 if inlined {
3617 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3618 inner_offset = next_offset;
3619 } else {
3620 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3621 inner_depth.increment()?;
3622 }
3623 let val_ref = self
3624 .name
3625 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
3626 fidl::decode!(
3627 fidl::encoding::UnboundedString,
3628 D,
3629 val_ref,
3630 decoder,
3631 inner_offset,
3632 inner_depth
3633 )?;
3634 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3635 {
3636 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3637 }
3638 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3639 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3640 }
3641 }
3642
3643 next_offset += envelope_size;
3644 _next_ordinal_to_read += 1;
3645 if next_offset >= end_offset {
3646 return Ok(());
3647 }
3648
3649 while _next_ordinal_to_read < 3 {
3651 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3652 _next_ordinal_to_read += 1;
3653 next_offset += envelope_size;
3654 }
3655
3656 let next_out_of_line = decoder.next_out_of_line();
3657 let handles_before = decoder.remaining_handles();
3658 if let Some((inlined, num_bytes, num_handles)) =
3659 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3660 {
3661 let member_inline_size =
3662 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3663 if inlined != (member_inline_size <= 4) {
3664 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3665 }
3666 let inner_offset;
3667 let mut inner_depth = depth.clone();
3668 if inlined {
3669 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3670 inner_offset = next_offset;
3671 } else {
3672 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3673 inner_depth.increment()?;
3674 }
3675 let val_ref = self.options.get_or_insert_with(|| fidl::new_empty!(u32, D));
3676 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3677 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3678 {
3679 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3680 }
3681 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3682 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3683 }
3684 }
3685
3686 next_offset += envelope_size;
3687 _next_ordinal_to_read += 1;
3688 if next_offset >= end_offset {
3689 return Ok(());
3690 }
3691
3692 while _next_ordinal_to_read < 4 {
3694 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3695 _next_ordinal_to_read += 1;
3696 next_offset += envelope_size;
3697 }
3698
3699 let next_out_of_line = decoder.next_out_of_line();
3700 let handles_before = decoder.remaining_handles();
3701 if let Some((inlined, num_bytes, num_handles)) =
3702 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3703 {
3704 let member_inline_size =
3705 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
3706 decoder.context,
3707 );
3708 if inlined != (member_inline_size <= 4) {
3709 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3710 }
3711 let inner_offset;
3712 let mut inner_depth = depth.clone();
3713 if inlined {
3714 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3715 inner_offset = next_offset;
3716 } else {
3717 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3718 inner_depth.increment()?;
3719 }
3720 let val_ref = self
3721 .scheduler_role
3722 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
3723 fidl::decode!(
3724 fidl::encoding::UnboundedString,
3725 D,
3726 val_ref,
3727 decoder,
3728 inner_offset,
3729 inner_depth
3730 )?;
3731 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3732 {
3733 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3734 }
3735 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3736 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3737 }
3738 }
3739
3740 next_offset += envelope_size;
3741 _next_ordinal_to_read += 1;
3742 if next_offset >= end_offset {
3743 return Ok(());
3744 }
3745
3746 while _next_ordinal_to_read < 5 {
3748 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3749 _next_ordinal_to_read += 1;
3750 next_offset += envelope_size;
3751 }
3752
3753 let next_out_of_line = decoder.next_out_of_line();
3754 let handles_before = decoder.remaining_handles();
3755 if let Some((inlined, num_bytes, num_handles)) =
3756 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3757 {
3758 let member_inline_size =
3759 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3760 if inlined != (member_inline_size <= 4) {
3761 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3762 }
3763 let inner_offset;
3764 let mut inner_depth = depth.clone();
3765 if inlined {
3766 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3767 inner_offset = next_offset;
3768 } else {
3769 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3770 inner_depth.increment()?;
3771 }
3772 let val_ref = self.dispatcher_ptr.get_or_insert_with(|| fidl::new_empty!(u64, D));
3773 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3774 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3775 {
3776 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3777 }
3778 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3779 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3780 }
3781 }
3782
3783 next_offset += envelope_size;
3784 _next_ordinal_to_read += 1;
3785 if next_offset >= end_offset {
3786 return Ok(());
3787 }
3788
3789 while _next_ordinal_to_read < 6 {
3791 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3792 _next_ordinal_to_read += 1;
3793 next_offset += envelope_size;
3794 }
3795
3796 let next_out_of_line = decoder.next_out_of_line();
3797 let handles_before = decoder.remaining_handles();
3798 if let Some((inlined, num_bytes, num_handles)) =
3799 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3800 {
3801 let member_inline_size =
3802 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3803 if inlined != (member_inline_size <= 4) {
3804 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3805 }
3806 let inner_offset;
3807 let mut inner_depth = depth.clone();
3808 if inlined {
3809 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3810 inner_offset = next_offset;
3811 } else {
3812 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3813 inner_depth.increment()?;
3814 }
3815 let val_ref = self.driver_ptr.get_or_insert_with(|| fidl::new_empty!(u64, D));
3816 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3818 {
3819 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3820 }
3821 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3822 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3823 }
3824 }
3825
3826 next_offset += envelope_size;
3827 _next_ordinal_to_read += 1;
3828 if next_offset >= end_offset {
3829 return Ok(());
3830 }
3831
3832 while _next_ordinal_to_read < 7 {
3834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3835 _next_ordinal_to_read += 1;
3836 next_offset += envelope_size;
3837 }
3838
3839 let next_out_of_line = decoder.next_out_of_line();
3840 let handles_before = decoder.remaining_handles();
3841 if let Some((inlined, num_bytes, num_handles)) =
3842 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3843 {
3844 let member_inline_size =
3845 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3846 if inlined != (member_inline_size <= 4) {
3847 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3848 }
3849 let inner_offset;
3850 let mut inner_depth = depth.clone();
3851 if inlined {
3852 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3853 inner_offset = next_offset;
3854 } else {
3855 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3856 inner_depth.increment()?;
3857 }
3858 let val_ref = self.synchronized.get_or_insert_with(|| fidl::new_empty!(bool, D));
3859 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3860 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3861 {
3862 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3863 }
3864 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3865 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3866 }
3867 }
3868
3869 next_offset += envelope_size;
3870 _next_ordinal_to_read += 1;
3871 if next_offset >= end_offset {
3872 return Ok(());
3873 }
3874
3875 while _next_ordinal_to_read < 8 {
3877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3878 _next_ordinal_to_read += 1;
3879 next_offset += envelope_size;
3880 }
3881
3882 let next_out_of_line = decoder.next_out_of_line();
3883 let handles_before = decoder.remaining_handles();
3884 if let Some((inlined, num_bytes, num_handles)) =
3885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3886 {
3887 let member_inline_size =
3888 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3889 if inlined != (member_inline_size <= 4) {
3890 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3891 }
3892 let inner_offset;
3893 let mut inner_depth = depth.clone();
3894 if inlined {
3895 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3896 inner_offset = next_offset;
3897 } else {
3898 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3899 inner_depth.increment()?;
3900 }
3901 let val_ref =
3902 self.allow_sync_calls.get_or_insert_with(|| fidl::new_empty!(bool, D));
3903 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3904 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3905 {
3906 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3907 }
3908 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3909 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3910 }
3911 }
3912
3913 next_offset += envelope_size;
3914 _next_ordinal_to_read += 1;
3915 if next_offset >= end_offset {
3916 return Ok(());
3917 }
3918
3919 while _next_ordinal_to_read < 9 {
3921 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3922 _next_ordinal_to_read += 1;
3923 next_offset += envelope_size;
3924 }
3925
3926 let next_out_of_line = decoder.next_out_of_line();
3927 let handles_before = decoder.remaining_handles();
3928 if let Some((inlined, num_bytes, num_handles)) =
3929 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3930 {
3931 let member_inline_size =
3932 <DispatcherState as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3933 if inlined != (member_inline_size <= 4) {
3934 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3935 }
3936 let inner_offset;
3937 let mut inner_depth = depth.clone();
3938 if inlined {
3939 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3940 inner_offset = next_offset;
3941 } else {
3942 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3943 inner_depth.increment()?;
3944 }
3945 let val_ref =
3946 self.state.get_or_insert_with(|| fidl::new_empty!(DispatcherState, D));
3947 fidl::decode!(DispatcherState, D, val_ref, decoder, inner_offset, inner_depth)?;
3948 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3949 {
3950 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3951 }
3952 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3953 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3954 }
3955 }
3956
3957 next_offset += envelope_size;
3958 _next_ordinal_to_read += 1;
3959 if next_offset >= end_offset {
3960 return Ok(());
3961 }
3962
3963 while _next_ordinal_to_read < 10 {
3965 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3966 _next_ordinal_to_read += 1;
3967 next_offset += envelope_size;
3968 }
3969
3970 let next_out_of_line = decoder.next_out_of_line();
3971 let handles_before = decoder.remaining_handles();
3972 if let Some((inlined, num_bytes, num_handles)) =
3973 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3974 {
3975 let member_inline_size =
3976 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
3977 decoder.context,
3978 );
3979 if inlined != (member_inline_size <= 4) {
3980 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3981 }
3982 let inner_offset;
3983 let mut inner_depth = depth.clone();
3984 if inlined {
3985 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3986 inner_offset = next_offset;
3987 } else {
3988 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3989 inner_depth.increment()?;
3990 }
3991 let val_ref = self
3992 .destroy_context
3993 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
3994 fidl::decode!(
3995 fidl::encoding::UnboundedString,
3996 D,
3997 val_ref,
3998 decoder,
3999 inner_offset,
4000 inner_depth
4001 )?;
4002 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4003 {
4004 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4005 }
4006 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4007 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4008 }
4009 }
4010
4011 next_offset += envelope_size;
4012 _next_ordinal_to_read += 1;
4013 if next_offset >= end_offset {
4014 return Ok(());
4015 }
4016
4017 while _next_ordinal_to_read < 11 {
4019 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4020 _next_ordinal_to_read += 1;
4021 next_offset += envelope_size;
4022 }
4023
4024 let next_out_of_line = decoder.next_out_of_line();
4025 let handles_before = decoder.remaining_handles();
4026 if let Some((inlined, num_bytes, num_handles)) =
4027 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4028 {
4029 let member_inline_size =
4030 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4031 if inlined != (member_inline_size <= 4) {
4032 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4033 }
4034 let inner_offset;
4035 let mut inner_depth = depth.clone();
4036 if inlined {
4037 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4038 inner_offset = next_offset;
4039 } else {
4040 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4041 inner_depth.increment()?;
4042 }
4043 let val_ref =
4044 self.destroy_user_initiated.get_or_insert_with(|| fidl::new_empty!(bool, D));
4045 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4046 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4047 {
4048 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4049 }
4050 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4051 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4052 }
4053 }
4054
4055 next_offset += envelope_size;
4056 _next_ordinal_to_read += 1;
4057 if next_offset >= end_offset {
4058 return Ok(());
4059 }
4060
4061 while _next_ordinal_to_read < 12 {
4063 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4064 _next_ordinal_to_read += 1;
4065 next_offset += envelope_size;
4066 }
4067
4068 let next_out_of_line = decoder.next_out_of_line();
4069 let handles_before = decoder.remaining_handles();
4070 if let Some((inlined, num_bytes, num_handles)) =
4071 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4072 {
4073 let member_inline_size =
4074 <DispatcherDebugStats as fidl::encoding::TypeMarker>::inline_size(
4075 decoder.context,
4076 );
4077 if inlined != (member_inline_size <= 4) {
4078 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4079 }
4080 let inner_offset;
4081 let mut inner_depth = depth.clone();
4082 if inlined {
4083 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4084 inner_offset = next_offset;
4085 } else {
4086 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4087 inner_depth.increment()?;
4088 }
4089 let val_ref = self
4090 .debug_stats
4091 .get_or_insert_with(|| fidl::new_empty!(DispatcherDebugStats, D));
4092 fidl::decode!(
4093 DispatcherDebugStats,
4094 D,
4095 val_ref,
4096 decoder,
4097 inner_offset,
4098 inner_depth
4099 )?;
4100 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4101 {
4102 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4103 }
4104 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4105 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4106 }
4107 }
4108
4109 next_offset += envelope_size;
4110 _next_ordinal_to_read += 1;
4111 if next_offset >= end_offset {
4112 return Ok(());
4113 }
4114
4115 while _next_ordinal_to_read < 13 {
4117 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4118 _next_ordinal_to_read += 1;
4119 next_offset += envelope_size;
4120 }
4121
4122 let next_out_of_line = decoder.next_out_of_line();
4123 let handles_before = decoder.remaining_handles();
4124 if let Some((inlined, num_bytes, num_handles)) =
4125 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4126 {
4127 let member_inline_size = <fidl::encoding::UnboundedVector<QueuedTaskInfo> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4128 if inlined != (member_inline_size <= 4) {
4129 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4130 }
4131 let inner_offset;
4132 let mut inner_depth = depth.clone();
4133 if inlined {
4134 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4135 inner_offset = next_offset;
4136 } else {
4137 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4138 inner_depth.increment()?;
4139 }
4140 let val_ref = self.queued_tasks.get_or_insert_with(|| {
4141 fidl::new_empty!(fidl::encoding::UnboundedVector<QueuedTaskInfo>, D)
4142 });
4143 fidl::decode!(
4144 fidl::encoding::UnboundedVector<QueuedTaskInfo>,
4145 D,
4146 val_ref,
4147 decoder,
4148 inner_offset,
4149 inner_depth
4150 )?;
4151 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4152 {
4153 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4154 }
4155 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4156 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4157 }
4158 }
4159
4160 next_offset += envelope_size;
4161 _next_ordinal_to_read += 1;
4162 if next_offset >= end_offset {
4163 return Ok(());
4164 }
4165
4166 while _next_ordinal_to_read < 14 {
4168 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4169 _next_ordinal_to_read += 1;
4170 next_offset += envelope_size;
4171 }
4172
4173 let next_out_of_line = decoder.next_out_of_line();
4174 let handles_before = decoder.remaining_handles();
4175 if let Some((inlined, num_bytes, num_handles)) =
4176 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4177 {
4178 let member_inline_size =
4179 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4180 if inlined != (member_inline_size <= 4) {
4181 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4182 }
4183 let inner_offset;
4184 let mut inner_depth = depth.clone();
4185 if inlined {
4186 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4187 inner_offset = next_offset;
4188 } else {
4189 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4190 inner_depth.increment()?;
4191 }
4192 let val_ref = self.num_queued_tasks.get_or_insert_with(|| fidl::new_empty!(u64, D));
4193 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4194 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4195 {
4196 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4197 }
4198 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4199 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4200 }
4201 }
4202
4203 next_offset += envelope_size;
4204
4205 while next_offset < end_offset {
4207 _next_ordinal_to_read += 1;
4208 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4209 next_offset += envelope_size;
4210 }
4211
4212 Ok(())
4213 }
4214 }
4215
4216 impl DriverHostInfo {
4217 #[inline(always)]
4218 fn max_ordinal_present(&self) -> u64 {
4219 if let Some(_) = self.name {
4220 return 5;
4221 }
4222 if let Some(_) = self.dispatchers {
4223 return 4;
4224 }
4225 if let Some(_) = self.drivers {
4226 return 3;
4227 }
4228 if let Some(_) = self.threads {
4229 return 2;
4230 }
4231 if let Some(_) = self.process_koid {
4232 return 1;
4233 }
4234 0
4235 }
4236 }
4237
4238 impl fidl::encoding::ValueTypeMarker for DriverHostInfo {
4239 type Borrowed<'a> = &'a Self;
4240 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4241 value
4242 }
4243 }
4244
4245 unsafe impl fidl::encoding::TypeMarker for DriverHostInfo {
4246 type Owned = Self;
4247
4248 #[inline(always)]
4249 fn inline_align(_context: fidl::encoding::Context) -> usize {
4250 8
4251 }
4252
4253 #[inline(always)]
4254 fn inline_size(_context: fidl::encoding::Context) -> usize {
4255 16
4256 }
4257 }
4258
4259 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DriverHostInfo, D>
4260 for &DriverHostInfo
4261 {
4262 unsafe fn encode(
4263 self,
4264 encoder: &mut fidl::encoding::Encoder<'_, D>,
4265 offset: usize,
4266 mut depth: fidl::encoding::Depth,
4267 ) -> fidl::Result<()> {
4268 encoder.debug_check_bounds::<DriverHostInfo>(offset);
4269 let max_ordinal: u64 = self.max_ordinal_present();
4271 encoder.write_num(max_ordinal, offset);
4272 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4273 if max_ordinal == 0 {
4275 return Ok(());
4276 }
4277 depth.increment()?;
4278 let envelope_size = 8;
4279 let bytes_len = max_ordinal as usize * envelope_size;
4280 #[allow(unused_variables)]
4281 let offset = encoder.out_of_line_offset(bytes_len);
4282 let mut _prev_end_offset: usize = 0;
4283 if 1 > max_ordinal {
4284 return Ok(());
4285 }
4286
4287 let cur_offset: usize = (1 - 1) * envelope_size;
4290
4291 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4293
4294 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4299 self.process_koid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4300 encoder,
4301 offset + cur_offset,
4302 depth,
4303 )?;
4304
4305 _prev_end_offset = cur_offset + envelope_size;
4306 if 2 > max_ordinal {
4307 return Ok(());
4308 }
4309
4310 let cur_offset: usize = (2 - 1) * envelope_size;
4313
4314 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4316
4317 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ThreadInfo>, D>(
4322 self.threads.as_ref().map(<fidl::encoding::UnboundedVector<ThreadInfo> as fidl::encoding::ValueTypeMarker>::borrow),
4323 encoder, offset + cur_offset, depth
4324 )?;
4325
4326 _prev_end_offset = cur_offset + envelope_size;
4327 if 3 > max_ordinal {
4328 return Ok(());
4329 }
4330
4331 let cur_offset: usize = (3 - 1) * envelope_size;
4334
4335 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4337
4338 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<4096>>, D>(
4343 self.drivers.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<4096>> as fidl::encoding::ValueTypeMarker>::borrow),
4344 encoder, offset + cur_offset, depth
4345 )?;
4346
4347 _prev_end_offset = cur_offset + envelope_size;
4348 if 4 > max_ordinal {
4349 return Ok(());
4350 }
4351
4352 let cur_offset: usize = (4 - 1) * envelope_size;
4355
4356 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4358
4359 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<DispatcherInfo>, D>(
4364 self.dispatchers.as_ref().map(<fidl::encoding::UnboundedVector<DispatcherInfo> as fidl::encoding::ValueTypeMarker>::borrow),
4365 encoder, offset + cur_offset, depth
4366 )?;
4367
4368 _prev_end_offset = cur_offset + envelope_size;
4369 if 5 > max_ordinal {
4370 return Ok(());
4371 }
4372
4373 let cur_offset: usize = (5 - 1) * envelope_size;
4376
4377 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4379
4380 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
4385 self.name.as_ref().map(
4386 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
4387 ),
4388 encoder,
4389 offset + cur_offset,
4390 depth,
4391 )?;
4392
4393 _prev_end_offset = cur_offset + envelope_size;
4394
4395 Ok(())
4396 }
4397 }
4398
4399 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DriverHostInfo {
4400 #[inline(always)]
4401 fn new_empty() -> Self {
4402 Self::default()
4403 }
4404
4405 unsafe fn decode(
4406 &mut self,
4407 decoder: &mut fidl::encoding::Decoder<'_, D>,
4408 offset: usize,
4409 mut depth: fidl::encoding::Depth,
4410 ) -> fidl::Result<()> {
4411 decoder.debug_check_bounds::<Self>(offset);
4412 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4413 None => return Err(fidl::Error::NotNullable),
4414 Some(len) => len,
4415 };
4416 if len == 0 {
4418 return Ok(());
4419 };
4420 depth.increment()?;
4421 let envelope_size = 8;
4422 let bytes_len = len * envelope_size;
4423 let offset = decoder.out_of_line_offset(bytes_len)?;
4424 let mut _next_ordinal_to_read = 0;
4426 let mut next_offset = offset;
4427 let end_offset = offset + bytes_len;
4428 _next_ordinal_to_read += 1;
4429 if next_offset >= end_offset {
4430 return Ok(());
4431 }
4432
4433 while _next_ordinal_to_read < 1 {
4435 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4436 _next_ordinal_to_read += 1;
4437 next_offset += envelope_size;
4438 }
4439
4440 let next_out_of_line = decoder.next_out_of_line();
4441 let handles_before = decoder.remaining_handles();
4442 if let Some((inlined, num_bytes, num_handles)) =
4443 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4444 {
4445 let member_inline_size =
4446 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4447 if inlined != (member_inline_size <= 4) {
4448 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4449 }
4450 let inner_offset;
4451 let mut inner_depth = depth.clone();
4452 if inlined {
4453 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4454 inner_offset = next_offset;
4455 } else {
4456 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4457 inner_depth.increment()?;
4458 }
4459 let val_ref = self.process_koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
4460 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4461 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4462 {
4463 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4464 }
4465 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4466 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4467 }
4468 }
4469
4470 next_offset += envelope_size;
4471 _next_ordinal_to_read += 1;
4472 if next_offset >= end_offset {
4473 return Ok(());
4474 }
4475
4476 while _next_ordinal_to_read < 2 {
4478 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4479 _next_ordinal_to_read += 1;
4480 next_offset += envelope_size;
4481 }
4482
4483 let next_out_of_line = decoder.next_out_of_line();
4484 let handles_before = decoder.remaining_handles();
4485 if let Some((inlined, num_bytes, num_handles)) =
4486 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4487 {
4488 let member_inline_size = <fidl::encoding::UnboundedVector<ThreadInfo> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4489 if inlined != (member_inline_size <= 4) {
4490 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4491 }
4492 let inner_offset;
4493 let mut inner_depth = depth.clone();
4494 if inlined {
4495 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4496 inner_offset = next_offset;
4497 } else {
4498 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4499 inner_depth.increment()?;
4500 }
4501 let val_ref = self.threads.get_or_insert_with(|| {
4502 fidl::new_empty!(fidl::encoding::UnboundedVector<ThreadInfo>, D)
4503 });
4504 fidl::decode!(
4505 fidl::encoding::UnboundedVector<ThreadInfo>,
4506 D,
4507 val_ref,
4508 decoder,
4509 inner_offset,
4510 inner_depth
4511 )?;
4512 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4513 {
4514 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4515 }
4516 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4517 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4518 }
4519 }
4520
4521 next_offset += envelope_size;
4522 _next_ordinal_to_read += 1;
4523 if next_offset >= end_offset {
4524 return Ok(());
4525 }
4526
4527 while _next_ordinal_to_read < 3 {
4529 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4530 _next_ordinal_to_read += 1;
4531 next_offset += envelope_size;
4532 }
4533
4534 let next_out_of_line = decoder.next_out_of_line();
4535 let handles_before = decoder.remaining_handles();
4536 if let Some((inlined, num_bytes, num_handles)) =
4537 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4538 {
4539 let member_inline_size = <fidl::encoding::UnboundedVector<
4540 fidl::encoding::BoundedString<4096>,
4541 > as fidl::encoding::TypeMarker>::inline_size(
4542 decoder.context
4543 );
4544 if inlined != (member_inline_size <= 4) {
4545 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4546 }
4547 let inner_offset;
4548 let mut inner_depth = depth.clone();
4549 if inlined {
4550 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4551 inner_offset = next_offset;
4552 } else {
4553 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4554 inner_depth.increment()?;
4555 }
4556 let val_ref = self.drivers.get_or_insert_with(|| {
4557 fidl::new_empty!(
4558 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<4096>>,
4559 D
4560 )
4561 });
4562 fidl::decode!(
4563 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<4096>>,
4564 D,
4565 val_ref,
4566 decoder,
4567 inner_offset,
4568 inner_depth
4569 )?;
4570 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4571 {
4572 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4573 }
4574 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4575 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4576 }
4577 }
4578
4579 next_offset += envelope_size;
4580 _next_ordinal_to_read += 1;
4581 if next_offset >= end_offset {
4582 return Ok(());
4583 }
4584
4585 while _next_ordinal_to_read < 4 {
4587 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4588 _next_ordinal_to_read += 1;
4589 next_offset += envelope_size;
4590 }
4591
4592 let next_out_of_line = decoder.next_out_of_line();
4593 let handles_before = decoder.remaining_handles();
4594 if let Some((inlined, num_bytes, num_handles)) =
4595 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4596 {
4597 let member_inline_size = <fidl::encoding::UnboundedVector<DispatcherInfo> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4598 if inlined != (member_inline_size <= 4) {
4599 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4600 }
4601 let inner_offset;
4602 let mut inner_depth = depth.clone();
4603 if inlined {
4604 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4605 inner_offset = next_offset;
4606 } else {
4607 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4608 inner_depth.increment()?;
4609 }
4610 let val_ref = self.dispatchers.get_or_insert_with(|| {
4611 fidl::new_empty!(fidl::encoding::UnboundedVector<DispatcherInfo>, D)
4612 });
4613 fidl::decode!(
4614 fidl::encoding::UnboundedVector<DispatcherInfo>,
4615 D,
4616 val_ref,
4617 decoder,
4618 inner_offset,
4619 inner_depth
4620 )?;
4621 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4622 {
4623 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4624 }
4625 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4626 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4627 }
4628 }
4629
4630 next_offset += envelope_size;
4631 _next_ordinal_to_read += 1;
4632 if next_offset >= end_offset {
4633 return Ok(());
4634 }
4635
4636 while _next_ordinal_to_read < 5 {
4638 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4639 _next_ordinal_to_read += 1;
4640 next_offset += envelope_size;
4641 }
4642
4643 let next_out_of_line = decoder.next_out_of_line();
4644 let handles_before = decoder.remaining_handles();
4645 if let Some((inlined, num_bytes, num_handles)) =
4646 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4647 {
4648 let member_inline_size =
4649 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
4650 decoder.context,
4651 );
4652 if inlined != (member_inline_size <= 4) {
4653 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4654 }
4655 let inner_offset;
4656 let mut inner_depth = depth.clone();
4657 if inlined {
4658 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4659 inner_offset = next_offset;
4660 } else {
4661 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4662 inner_depth.increment()?;
4663 }
4664 let val_ref = self
4665 .name
4666 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
4667 fidl::decode!(
4668 fidl::encoding::UnboundedString,
4669 D,
4670 val_ref,
4671 decoder,
4672 inner_offset,
4673 inner_depth
4674 )?;
4675 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4676 {
4677 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4678 }
4679 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4680 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4681 }
4682 }
4683
4684 next_offset += envelope_size;
4685
4686 while next_offset < end_offset {
4688 _next_ordinal_to_read += 1;
4689 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4690 next_offset += envelope_size;
4691 }
4692
4693 Ok(())
4694 }
4695 }
4696
4697 impl NodeBindingInfo {
4698 #[inline(always)]
4699 fn max_ordinal_present(&self) -> u64 {
4700 if let Some(_) = self.composite_parents {
4701 return 3;
4702 }
4703 if let Some(_) = self.driver_url {
4704 return 2;
4705 }
4706 if let Some(_) = self.node_name {
4707 return 1;
4708 }
4709 0
4710 }
4711 }
4712
4713 impl fidl::encoding::ValueTypeMarker for NodeBindingInfo {
4714 type Borrowed<'a> = &'a Self;
4715 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4716 value
4717 }
4718 }
4719
4720 unsafe impl fidl::encoding::TypeMarker for NodeBindingInfo {
4721 type Owned = Self;
4722
4723 #[inline(always)]
4724 fn inline_align(_context: fidl::encoding::Context) -> usize {
4725 8
4726 }
4727
4728 #[inline(always)]
4729 fn inline_size(_context: fidl::encoding::Context) -> usize {
4730 16
4731 }
4732 }
4733
4734 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NodeBindingInfo, D>
4735 for &NodeBindingInfo
4736 {
4737 unsafe fn encode(
4738 self,
4739 encoder: &mut fidl::encoding::Encoder<'_, D>,
4740 offset: usize,
4741 mut depth: fidl::encoding::Depth,
4742 ) -> fidl::Result<()> {
4743 encoder.debug_check_bounds::<NodeBindingInfo>(offset);
4744 let max_ordinal: u64 = self.max_ordinal_present();
4746 encoder.write_num(max_ordinal, offset);
4747 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4748 if max_ordinal == 0 {
4750 return Ok(());
4751 }
4752 depth.increment()?;
4753 let envelope_size = 8;
4754 let bytes_len = max_ordinal as usize * envelope_size;
4755 #[allow(unused_variables)]
4756 let offset = encoder.out_of_line_offset(bytes_len);
4757 let mut _prev_end_offset: usize = 0;
4758 if 1 > max_ordinal {
4759 return Ok(());
4760 }
4761
4762 let cur_offset: usize = (1 - 1) * envelope_size;
4765
4766 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4768
4769 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
4774 self.node_name.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
4775 encoder, offset + cur_offset, depth
4776 )?;
4777
4778 _prev_end_offset = cur_offset + envelope_size;
4779 if 2 > max_ordinal {
4780 return Ok(());
4781 }
4782
4783 let cur_offset: usize = (2 - 1) * envelope_size;
4786
4787 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4789
4790 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
4795 self.driver_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
4796 encoder, offset + cur_offset, depth
4797 )?;
4798
4799 _prev_end_offset = cur_offset + envelope_size;
4800 if 3 > max_ordinal {
4801 return Ok(());
4802 }
4803
4804 let cur_offset: usize = (3 - 1) * envelope_size;
4807
4808 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4810
4811 fidl::encoding::encode_in_envelope_optional::<
4816 fidl::encoding::UnboundedVector<
4817 fidl_fuchsia_driver_framework_common::CompositeParent,
4818 >,
4819 D,
4820 >(
4821 self.composite_parents.as_ref().map(
4822 <fidl::encoding::UnboundedVector<
4823 fidl_fuchsia_driver_framework_common::CompositeParent,
4824 > as fidl::encoding::ValueTypeMarker>::borrow,
4825 ),
4826 encoder,
4827 offset + cur_offset,
4828 depth,
4829 )?;
4830
4831 _prev_end_offset = cur_offset + envelope_size;
4832
4833 Ok(())
4834 }
4835 }
4836
4837 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NodeBindingInfo {
4838 #[inline(always)]
4839 fn new_empty() -> Self {
4840 Self::default()
4841 }
4842
4843 unsafe fn decode(
4844 &mut self,
4845 decoder: &mut fidl::encoding::Decoder<'_, D>,
4846 offset: usize,
4847 mut depth: fidl::encoding::Depth,
4848 ) -> fidl::Result<()> {
4849 decoder.debug_check_bounds::<Self>(offset);
4850 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4851 None => return Err(fidl::Error::NotNullable),
4852 Some(len) => len,
4853 };
4854 if len == 0 {
4856 return Ok(());
4857 };
4858 depth.increment()?;
4859 let envelope_size = 8;
4860 let bytes_len = len * envelope_size;
4861 let offset = decoder.out_of_line_offset(bytes_len)?;
4862 let mut _next_ordinal_to_read = 0;
4864 let mut next_offset = offset;
4865 let end_offset = offset + bytes_len;
4866 _next_ordinal_to_read += 1;
4867 if next_offset >= end_offset {
4868 return Ok(());
4869 }
4870
4871 while _next_ordinal_to_read < 1 {
4873 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4874 _next_ordinal_to_read += 1;
4875 next_offset += envelope_size;
4876 }
4877
4878 let next_out_of_line = decoder.next_out_of_line();
4879 let handles_before = decoder.remaining_handles();
4880 if let Some((inlined, num_bytes, num_handles)) =
4881 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4882 {
4883 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4884 if inlined != (member_inline_size <= 4) {
4885 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4886 }
4887 let inner_offset;
4888 let mut inner_depth = depth.clone();
4889 if inlined {
4890 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4891 inner_offset = next_offset;
4892 } else {
4893 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4894 inner_depth.increment()?;
4895 }
4896 let val_ref = self.node_name.get_or_insert_with(|| {
4897 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
4898 });
4899 fidl::decode!(
4900 fidl::encoding::BoundedString<1024>,
4901 D,
4902 val_ref,
4903 decoder,
4904 inner_offset,
4905 inner_depth
4906 )?;
4907 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4908 {
4909 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4910 }
4911 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4912 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4913 }
4914 }
4915
4916 next_offset += envelope_size;
4917 _next_ordinal_to_read += 1;
4918 if next_offset >= end_offset {
4919 return Ok(());
4920 }
4921
4922 while _next_ordinal_to_read < 2 {
4924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4925 _next_ordinal_to_read += 1;
4926 next_offset += envelope_size;
4927 }
4928
4929 let next_out_of_line = decoder.next_out_of_line();
4930 let handles_before = decoder.remaining_handles();
4931 if let Some((inlined, num_bytes, num_handles)) =
4932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4933 {
4934 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4935 if inlined != (member_inline_size <= 4) {
4936 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4937 }
4938 let inner_offset;
4939 let mut inner_depth = depth.clone();
4940 if inlined {
4941 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4942 inner_offset = next_offset;
4943 } else {
4944 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4945 inner_depth.increment()?;
4946 }
4947 let val_ref = self.driver_url.get_or_insert_with(|| {
4948 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
4949 });
4950 fidl::decode!(
4951 fidl::encoding::BoundedString<4096>,
4952 D,
4953 val_ref,
4954 decoder,
4955 inner_offset,
4956 inner_depth
4957 )?;
4958 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4959 {
4960 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4961 }
4962 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4963 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4964 }
4965 }
4966
4967 next_offset += envelope_size;
4968 _next_ordinal_to_read += 1;
4969 if next_offset >= end_offset {
4970 return Ok(());
4971 }
4972
4973 while _next_ordinal_to_read < 3 {
4975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4976 _next_ordinal_to_read += 1;
4977 next_offset += envelope_size;
4978 }
4979
4980 let next_out_of_line = decoder.next_out_of_line();
4981 let handles_before = decoder.remaining_handles();
4982 if let Some((inlined, num_bytes, num_handles)) =
4983 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4984 {
4985 let member_inline_size = <fidl::encoding::UnboundedVector<
4986 fidl_fuchsia_driver_framework_common::CompositeParent,
4987 > as fidl::encoding::TypeMarker>::inline_size(
4988 decoder.context
4989 );
4990 if inlined != (member_inline_size <= 4) {
4991 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4992 }
4993 let inner_offset;
4994 let mut inner_depth = depth.clone();
4995 if inlined {
4996 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4997 inner_offset = next_offset;
4998 } else {
4999 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5000 inner_depth.increment()?;
5001 }
5002 let val_ref = self.composite_parents.get_or_insert_with(|| {
5003 fidl::new_empty!(
5004 fidl::encoding::UnboundedVector<
5005 fidl_fuchsia_driver_framework_common::CompositeParent,
5006 >,
5007 D
5008 )
5009 });
5010 fidl::decode!(
5011 fidl::encoding::UnboundedVector<
5012 fidl_fuchsia_driver_framework_common::CompositeParent,
5013 >,
5014 D,
5015 val_ref,
5016 decoder,
5017 inner_offset,
5018 inner_depth
5019 )?;
5020 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5021 {
5022 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5023 }
5024 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5025 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5026 }
5027 }
5028
5029 next_offset += envelope_size;
5030
5031 while next_offset < end_offset {
5033 _next_ordinal_to_read += 1;
5034 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5035 next_offset += envelope_size;
5036 }
5037
5038 Ok(())
5039 }
5040 }
5041
5042 impl NodeInfo {
5043 #[inline(always)]
5044 fn max_ordinal_present(&self) -> u64 {
5045 if let Some(_) = self.is_running {
5046 return 13;
5047 }
5048 if let Some(_) = self.topological_path {
5049 return 12;
5050 }
5051 if let Some(_) = self.bus_topology {
5052 return 11;
5053 }
5054 if let Some(_) = self.quarantined {
5055 return 10;
5056 }
5057 if let Some(_) = self.offer_list {
5058 return 9;
5059 }
5060 if let Some(_) = self.node_property_list {
5061 return 8;
5062 }
5063 if let Some(_) = self.moniker {
5064 return 7;
5065 }
5066 if let Some(_) = self.bound_driver_url {
5067 return 5;
5068 }
5069 if let Some(_) = self.driver_host_koid {
5070 return 4;
5071 }
5072 if let Some(_) = self.child_ids {
5073 return 3;
5074 }
5075 if let Some(_) = self.parent_ids {
5076 return 2;
5077 }
5078 if let Some(_) = self.id {
5079 return 1;
5080 }
5081 0
5082 }
5083 }
5084
5085 impl fidl::encoding::ValueTypeMarker for NodeInfo {
5086 type Borrowed<'a> = &'a Self;
5087 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5088 value
5089 }
5090 }
5091
5092 unsafe impl fidl::encoding::TypeMarker for NodeInfo {
5093 type Owned = Self;
5094
5095 #[inline(always)]
5096 fn inline_align(_context: fidl::encoding::Context) -> usize {
5097 8
5098 }
5099
5100 #[inline(always)]
5101 fn inline_size(_context: fidl::encoding::Context) -> usize {
5102 16
5103 }
5104 }
5105
5106 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NodeInfo, D> for &NodeInfo {
5107 unsafe fn encode(
5108 self,
5109 encoder: &mut fidl::encoding::Encoder<'_, D>,
5110 offset: usize,
5111 mut depth: fidl::encoding::Depth,
5112 ) -> fidl::Result<()> {
5113 encoder.debug_check_bounds::<NodeInfo>(offset);
5114 let max_ordinal: u64 = self.max_ordinal_present();
5116 encoder.write_num(max_ordinal, offset);
5117 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5118 if max_ordinal == 0 {
5120 return Ok(());
5121 }
5122 depth.increment()?;
5123 let envelope_size = 8;
5124 let bytes_len = max_ordinal as usize * envelope_size;
5125 #[allow(unused_variables)]
5126 let offset = encoder.out_of_line_offset(bytes_len);
5127 let mut _prev_end_offset: usize = 0;
5128 if 1 > max_ordinal {
5129 return Ok(());
5130 }
5131
5132 let cur_offset: usize = (1 - 1) * envelope_size;
5135
5136 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5138
5139 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5144 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5145 encoder,
5146 offset + cur_offset,
5147 depth,
5148 )?;
5149
5150 _prev_end_offset = cur_offset + envelope_size;
5151 if 2 > max_ordinal {
5152 return Ok(());
5153 }
5154
5155 let cur_offset: usize = (2 - 1) * envelope_size;
5158
5159 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5161
5162 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
5167 self.parent_ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
5168 encoder, offset + cur_offset, depth
5169 )?;
5170
5171 _prev_end_offset = cur_offset + envelope_size;
5172 if 3 > max_ordinal {
5173 return Ok(());
5174 }
5175
5176 let cur_offset: usize = (3 - 1) * envelope_size;
5179
5180 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5182
5183 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
5188 self.child_ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
5189 encoder, offset + cur_offset, depth
5190 )?;
5191
5192 _prev_end_offset = cur_offset + envelope_size;
5193 if 4 > max_ordinal {
5194 return Ok(());
5195 }
5196
5197 let cur_offset: usize = (4 - 1) * envelope_size;
5200
5201 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5203
5204 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5209 self.driver_host_koid
5210 .as_ref()
5211 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5212 encoder,
5213 offset + cur_offset,
5214 depth,
5215 )?;
5216
5217 _prev_end_offset = cur_offset + envelope_size;
5218 if 5 > max_ordinal {
5219 return Ok(());
5220 }
5221
5222 let cur_offset: usize = (5 - 1) * envelope_size;
5225
5226 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5228
5229 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
5234 self.bound_driver_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
5235 encoder, offset + cur_offset, depth
5236 )?;
5237
5238 _prev_end_offset = cur_offset + envelope_size;
5239 if 7 > max_ordinal {
5240 return Ok(());
5241 }
5242
5243 let cur_offset: usize = (7 - 1) * envelope_size;
5246
5247 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5249
5250 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
5255 self.moniker.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
5256 encoder, offset + cur_offset, depth
5257 )?;
5258
5259 _prev_end_offset = cur_offset + envelope_size;
5260 if 8 > max_ordinal {
5261 return Ok(());
5262 }
5263
5264 let cur_offset: usize = (8 - 1) * envelope_size;
5267
5268 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5270
5271 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty2, 64>, D>(
5276 self.node_property_list.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty2, 64> as fidl::encoding::ValueTypeMarker>::borrow),
5277 encoder, offset + cur_offset, depth
5278 )?;
5279
5280 _prev_end_offset = cur_offset + envelope_size;
5281 if 9 > max_ordinal {
5282 return Ok(());
5283 }
5284
5285 let cur_offset: usize = (9 - 1) * envelope_size;
5288
5289 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5291
5292 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Offer>, D>(
5297 self.offer_list.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Offer> as fidl::encoding::ValueTypeMarker>::borrow),
5298 encoder, offset + cur_offset, depth
5299 )?;
5300
5301 _prev_end_offset = cur_offset + envelope_size;
5302 if 10 > max_ordinal {
5303 return Ok(());
5304 }
5305
5306 let cur_offset: usize = (10 - 1) * envelope_size;
5309
5310 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5312
5313 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5318 self.quarantined.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5319 encoder,
5320 offset + cur_offset,
5321 depth,
5322 )?;
5323
5324 _prev_end_offset = cur_offset + envelope_size;
5325 if 11 > max_ordinal {
5326 return Ok(());
5327 }
5328
5329 let cur_offset: usize = (11 - 1) * envelope_size;
5332
5333 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5335
5336 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::BusInfo, 20>, D>(
5341 self.bus_topology.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::BusInfo, 20> as fidl::encoding::ValueTypeMarker>::borrow),
5342 encoder, offset + cur_offset, depth
5343 )?;
5344
5345 _prev_end_offset = cur_offset + envelope_size;
5346 if 12 > max_ordinal {
5347 return Ok(());
5348 }
5349
5350 let cur_offset: usize = (12 - 1) * envelope_size;
5353
5354 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5356
5357 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
5362 self.topological_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
5363 encoder, offset + cur_offset, depth
5364 )?;
5365
5366 _prev_end_offset = cur_offset + envelope_size;
5367 if 13 > max_ordinal {
5368 return Ok(());
5369 }
5370
5371 let cur_offset: usize = (13 - 1) * envelope_size;
5374
5375 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5377
5378 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5383 self.is_running.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5384 encoder,
5385 offset + cur_offset,
5386 depth,
5387 )?;
5388
5389 _prev_end_offset = cur_offset + envelope_size;
5390
5391 Ok(())
5392 }
5393 }
5394
5395 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NodeInfo {
5396 #[inline(always)]
5397 fn new_empty() -> Self {
5398 Self::default()
5399 }
5400
5401 unsafe fn decode(
5402 &mut self,
5403 decoder: &mut fidl::encoding::Decoder<'_, D>,
5404 offset: usize,
5405 mut depth: fidl::encoding::Depth,
5406 ) -> fidl::Result<()> {
5407 decoder.debug_check_bounds::<Self>(offset);
5408 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5409 None => return Err(fidl::Error::NotNullable),
5410 Some(len) => len,
5411 };
5412 if len == 0 {
5414 return Ok(());
5415 };
5416 depth.increment()?;
5417 let envelope_size = 8;
5418 let bytes_len = len * envelope_size;
5419 let offset = decoder.out_of_line_offset(bytes_len)?;
5420 let mut _next_ordinal_to_read = 0;
5422 let mut next_offset = offset;
5423 let end_offset = offset + bytes_len;
5424 _next_ordinal_to_read += 1;
5425 if next_offset >= end_offset {
5426 return Ok(());
5427 }
5428
5429 while _next_ordinal_to_read < 1 {
5431 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5432 _next_ordinal_to_read += 1;
5433 next_offset += envelope_size;
5434 }
5435
5436 let next_out_of_line = decoder.next_out_of_line();
5437 let handles_before = decoder.remaining_handles();
5438 if let Some((inlined, num_bytes, num_handles)) =
5439 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5440 {
5441 let member_inline_size =
5442 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5443 if inlined != (member_inline_size <= 4) {
5444 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5445 }
5446 let inner_offset;
5447 let mut inner_depth = depth.clone();
5448 if inlined {
5449 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5450 inner_offset = next_offset;
5451 } else {
5452 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5453 inner_depth.increment()?;
5454 }
5455 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
5456 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5457 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5458 {
5459 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5460 }
5461 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5462 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5463 }
5464 }
5465
5466 next_offset += envelope_size;
5467 _next_ordinal_to_read += 1;
5468 if next_offset >= end_offset {
5469 return Ok(());
5470 }
5471
5472 while _next_ordinal_to_read < 2 {
5474 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5475 _next_ordinal_to_read += 1;
5476 next_offset += envelope_size;
5477 }
5478
5479 let next_out_of_line = decoder.next_out_of_line();
5480 let handles_before = decoder.remaining_handles();
5481 if let Some((inlined, num_bytes, num_handles)) =
5482 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5483 {
5484 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5485 if inlined != (member_inline_size <= 4) {
5486 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5487 }
5488 let inner_offset;
5489 let mut inner_depth = depth.clone();
5490 if inlined {
5491 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5492 inner_offset = next_offset;
5493 } else {
5494 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5495 inner_depth.increment()?;
5496 }
5497 let val_ref = self.parent_ids.get_or_insert_with(|| {
5498 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
5499 });
5500 fidl::decode!(
5501 fidl::encoding::UnboundedVector<u64>,
5502 D,
5503 val_ref,
5504 decoder,
5505 inner_offset,
5506 inner_depth
5507 )?;
5508 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5509 {
5510 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5511 }
5512 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5513 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5514 }
5515 }
5516
5517 next_offset += envelope_size;
5518 _next_ordinal_to_read += 1;
5519 if next_offset >= end_offset {
5520 return Ok(());
5521 }
5522
5523 while _next_ordinal_to_read < 3 {
5525 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5526 _next_ordinal_to_read += 1;
5527 next_offset += envelope_size;
5528 }
5529
5530 let next_out_of_line = decoder.next_out_of_line();
5531 let handles_before = decoder.remaining_handles();
5532 if let Some((inlined, num_bytes, num_handles)) =
5533 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5534 {
5535 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5536 if inlined != (member_inline_size <= 4) {
5537 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5538 }
5539 let inner_offset;
5540 let mut inner_depth = depth.clone();
5541 if inlined {
5542 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5543 inner_offset = next_offset;
5544 } else {
5545 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5546 inner_depth.increment()?;
5547 }
5548 let val_ref = self.child_ids.get_or_insert_with(|| {
5549 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
5550 });
5551 fidl::decode!(
5552 fidl::encoding::UnboundedVector<u64>,
5553 D,
5554 val_ref,
5555 decoder,
5556 inner_offset,
5557 inner_depth
5558 )?;
5559 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5560 {
5561 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5562 }
5563 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5564 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5565 }
5566 }
5567
5568 next_offset += envelope_size;
5569 _next_ordinal_to_read += 1;
5570 if next_offset >= end_offset {
5571 return Ok(());
5572 }
5573
5574 while _next_ordinal_to_read < 4 {
5576 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5577 _next_ordinal_to_read += 1;
5578 next_offset += envelope_size;
5579 }
5580
5581 let next_out_of_line = decoder.next_out_of_line();
5582 let handles_before = decoder.remaining_handles();
5583 if let Some((inlined, num_bytes, num_handles)) =
5584 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5585 {
5586 let member_inline_size =
5587 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5588 if inlined != (member_inline_size <= 4) {
5589 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5590 }
5591 let inner_offset;
5592 let mut inner_depth = depth.clone();
5593 if inlined {
5594 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5595 inner_offset = next_offset;
5596 } else {
5597 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5598 inner_depth.increment()?;
5599 }
5600 let val_ref = self.driver_host_koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
5601 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5602 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5603 {
5604 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5605 }
5606 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5607 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5608 }
5609 }
5610
5611 next_offset += envelope_size;
5612 _next_ordinal_to_read += 1;
5613 if next_offset >= end_offset {
5614 return Ok(());
5615 }
5616
5617 while _next_ordinal_to_read < 5 {
5619 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5620 _next_ordinal_to_read += 1;
5621 next_offset += envelope_size;
5622 }
5623
5624 let next_out_of_line = decoder.next_out_of_line();
5625 let handles_before = decoder.remaining_handles();
5626 if let Some((inlined, num_bytes, num_handles)) =
5627 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5628 {
5629 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5630 if inlined != (member_inline_size <= 4) {
5631 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5632 }
5633 let inner_offset;
5634 let mut inner_depth = depth.clone();
5635 if inlined {
5636 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5637 inner_offset = next_offset;
5638 } else {
5639 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5640 inner_depth.increment()?;
5641 }
5642 let val_ref = self.bound_driver_url.get_or_insert_with(|| {
5643 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
5644 });
5645 fidl::decode!(
5646 fidl::encoding::BoundedString<4096>,
5647 D,
5648 val_ref,
5649 decoder,
5650 inner_offset,
5651 inner_depth
5652 )?;
5653 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5654 {
5655 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5656 }
5657 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5658 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5659 }
5660 }
5661
5662 next_offset += envelope_size;
5663 _next_ordinal_to_read += 1;
5664 if next_offset >= end_offset {
5665 return Ok(());
5666 }
5667
5668 while _next_ordinal_to_read < 7 {
5670 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5671 _next_ordinal_to_read += 1;
5672 next_offset += envelope_size;
5673 }
5674
5675 let next_out_of_line = decoder.next_out_of_line();
5676 let handles_before = decoder.remaining_handles();
5677 if let Some((inlined, num_bytes, num_handles)) =
5678 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5679 {
5680 let member_inline_size = <fidl::encoding::BoundedString<1024> 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.moniker.get_or_insert_with(|| {
5694 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
5695 });
5696 fidl::decode!(
5697 fidl::encoding::BoundedString<1024>,
5698 D,
5699 val_ref,
5700 decoder,
5701 inner_offset,
5702 inner_depth
5703 )?;
5704 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5705 {
5706 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5707 }
5708 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5709 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5710 }
5711 }
5712
5713 next_offset += envelope_size;
5714 _next_ordinal_to_read += 1;
5715 if next_offset >= end_offset {
5716 return Ok(());
5717 }
5718
5719 while _next_ordinal_to_read < 8 {
5721 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5722 _next_ordinal_to_read += 1;
5723 next_offset += envelope_size;
5724 }
5725
5726 let next_out_of_line = decoder.next_out_of_line();
5727 let handles_before = decoder.remaining_handles();
5728 if let Some((inlined, num_bytes, num_handles)) =
5729 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5730 {
5731 let member_inline_size = <fidl::encoding::Vector<
5732 fidl_fuchsia_driver_framework_common::NodeProperty2,
5733 64,
5734 > as fidl::encoding::TypeMarker>::inline_size(
5735 decoder.context
5736 );
5737 if inlined != (member_inline_size <= 4) {
5738 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5739 }
5740 let inner_offset;
5741 let mut inner_depth = depth.clone();
5742 if inlined {
5743 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5744 inner_offset = next_offset;
5745 } else {
5746 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5747 inner_depth.increment()?;
5748 }
5749 let val_ref =
5750 self.node_property_list.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty2, 64>, D));
5751 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty2, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
5752 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5753 {
5754 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5755 }
5756 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5757 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5758 }
5759 }
5760
5761 next_offset += envelope_size;
5762 _next_ordinal_to_read += 1;
5763 if next_offset >= end_offset {
5764 return Ok(());
5765 }
5766
5767 while _next_ordinal_to_read < 9 {
5769 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5770 _next_ordinal_to_read += 1;
5771 next_offset += envelope_size;
5772 }
5773
5774 let next_out_of_line = decoder.next_out_of_line();
5775 let handles_before = decoder.remaining_handles();
5776 if let Some((inlined, num_bytes, num_handles)) =
5777 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5778 {
5779 let member_inline_size = <fidl::encoding::UnboundedVector<
5780 fidl_fuchsia_component_decl_common::Offer,
5781 > as fidl::encoding::TypeMarker>::inline_size(
5782 decoder.context
5783 );
5784 if inlined != (member_inline_size <= 4) {
5785 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5786 }
5787 let inner_offset;
5788 let mut inner_depth = depth.clone();
5789 if inlined {
5790 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5791 inner_offset = next_offset;
5792 } else {
5793 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5794 inner_depth.increment()?;
5795 }
5796 let val_ref = self.offer_list.get_or_insert_with(|| {
5797 fidl::new_empty!(
5798 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Offer>,
5799 D
5800 )
5801 });
5802 fidl::decode!(
5803 fidl::encoding::UnboundedVector<fidl_fuchsia_component_decl_common::Offer>,
5804 D,
5805 val_ref,
5806 decoder,
5807 inner_offset,
5808 inner_depth
5809 )?;
5810 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5811 {
5812 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5813 }
5814 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5815 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5816 }
5817 }
5818
5819 next_offset += envelope_size;
5820 _next_ordinal_to_read += 1;
5821 if next_offset >= end_offset {
5822 return Ok(());
5823 }
5824
5825 while _next_ordinal_to_read < 10 {
5827 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5828 _next_ordinal_to_read += 1;
5829 next_offset += envelope_size;
5830 }
5831
5832 let next_out_of_line = decoder.next_out_of_line();
5833 let handles_before = decoder.remaining_handles();
5834 if let Some((inlined, num_bytes, num_handles)) =
5835 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5836 {
5837 let member_inline_size =
5838 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5839 if inlined != (member_inline_size <= 4) {
5840 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5841 }
5842 let inner_offset;
5843 let mut inner_depth = depth.clone();
5844 if inlined {
5845 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5846 inner_offset = next_offset;
5847 } else {
5848 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5849 inner_depth.increment()?;
5850 }
5851 let val_ref = self.quarantined.get_or_insert_with(|| fidl::new_empty!(bool, D));
5852 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5853 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5854 {
5855 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5856 }
5857 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5858 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5859 }
5860 }
5861
5862 next_offset += envelope_size;
5863 _next_ordinal_to_read += 1;
5864 if next_offset >= end_offset {
5865 return Ok(());
5866 }
5867
5868 while _next_ordinal_to_read < 11 {
5870 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5871 _next_ordinal_to_read += 1;
5872 next_offset += envelope_size;
5873 }
5874
5875 let next_out_of_line = decoder.next_out_of_line();
5876 let handles_before = decoder.remaining_handles();
5877 if let Some((inlined, num_bytes, num_handles)) =
5878 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5879 {
5880 let member_inline_size = <fidl::encoding::Vector<
5881 fidl_fuchsia_driver_framework_common::BusInfo,
5882 20,
5883 > as fidl::encoding::TypeMarker>::inline_size(
5884 decoder.context
5885 );
5886 if inlined != (member_inline_size <= 4) {
5887 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5888 }
5889 let inner_offset;
5890 let mut inner_depth = depth.clone();
5891 if inlined {
5892 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5893 inner_offset = next_offset;
5894 } else {
5895 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5896 inner_depth.increment()?;
5897 }
5898 let val_ref =
5899 self.bus_topology.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::BusInfo, 20>, D));
5900 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::BusInfo, 20>, D, val_ref, decoder, inner_offset, inner_depth)?;
5901 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5902 {
5903 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5904 }
5905 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5906 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5907 }
5908 }
5909
5910 next_offset += envelope_size;
5911 _next_ordinal_to_read += 1;
5912 if next_offset >= end_offset {
5913 return Ok(());
5914 }
5915
5916 while _next_ordinal_to_read < 12 {
5918 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5919 _next_ordinal_to_read += 1;
5920 next_offset += envelope_size;
5921 }
5922
5923 let next_out_of_line = decoder.next_out_of_line();
5924 let handles_before = decoder.remaining_handles();
5925 if let Some((inlined, num_bytes, num_handles)) =
5926 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5927 {
5928 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5929 if inlined != (member_inline_size <= 4) {
5930 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5931 }
5932 let inner_offset;
5933 let mut inner_depth = depth.clone();
5934 if inlined {
5935 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5936 inner_offset = next_offset;
5937 } else {
5938 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5939 inner_depth.increment()?;
5940 }
5941 let val_ref = self.topological_path.get_or_insert_with(|| {
5942 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
5943 });
5944 fidl::decode!(
5945 fidl::encoding::BoundedString<1024>,
5946 D,
5947 val_ref,
5948 decoder,
5949 inner_offset,
5950 inner_depth
5951 )?;
5952 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5953 {
5954 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5955 }
5956 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5957 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5958 }
5959 }
5960
5961 next_offset += envelope_size;
5962 _next_ordinal_to_read += 1;
5963 if next_offset >= end_offset {
5964 return Ok(());
5965 }
5966
5967 while _next_ordinal_to_read < 13 {
5969 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5970 _next_ordinal_to_read += 1;
5971 next_offset += envelope_size;
5972 }
5973
5974 let next_out_of_line = decoder.next_out_of_line();
5975 let handles_before = decoder.remaining_handles();
5976 if let Some((inlined, num_bytes, num_handles)) =
5977 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5978 {
5979 let member_inline_size =
5980 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5981 if inlined != (member_inline_size <= 4) {
5982 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5983 }
5984 let inner_offset;
5985 let mut inner_depth = depth.clone();
5986 if inlined {
5987 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5988 inner_offset = next_offset;
5989 } else {
5990 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5991 inner_depth.increment()?;
5992 }
5993 let val_ref = self.is_running.get_or_insert_with(|| fidl::new_empty!(bool, D));
5994 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5995 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5996 {
5997 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5998 }
5999 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6000 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6001 }
6002 }
6003
6004 next_offset += envelope_size;
6005
6006 while next_offset < end_offset {
6008 _next_ordinal_to_read += 1;
6009 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6010 next_offset += envelope_size;
6011 }
6012
6013 Ok(())
6014 }
6015 }
6016
6017 impl NonInlinedRequestStats {
6018 #[inline(always)]
6019 fn max_ordinal_present(&self) -> u64 {
6020 if let Some(_) = self.no_thread_migration {
6021 return 7;
6022 }
6023 if let Some(_) = self.channel_wait_not_yet_registered {
6024 return 6;
6025 }
6026 if let Some(_) = self.reentrant {
6027 return 5;
6028 }
6029 if let Some(_) = self.unknown_thread {
6030 return 4;
6031 }
6032 if let Some(_) = self.task {
6033 return 3;
6034 }
6035 if let Some(_) = self.parallel_dispatch {
6036 return 2;
6037 }
6038 if let Some(_) = self.allow_sync_calls {
6039 return 1;
6040 }
6041 0
6042 }
6043 }
6044
6045 impl fidl::encoding::ValueTypeMarker for NonInlinedRequestStats {
6046 type Borrowed<'a> = &'a Self;
6047 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6048 value
6049 }
6050 }
6051
6052 unsafe impl fidl::encoding::TypeMarker for NonInlinedRequestStats {
6053 type Owned = Self;
6054
6055 #[inline(always)]
6056 fn inline_align(_context: fidl::encoding::Context) -> usize {
6057 8
6058 }
6059
6060 #[inline(always)]
6061 fn inline_size(_context: fidl::encoding::Context) -> usize {
6062 16
6063 }
6064 }
6065
6066 unsafe impl<D: fidl::encoding::ResourceDialect>
6067 fidl::encoding::Encode<NonInlinedRequestStats, D> for &NonInlinedRequestStats
6068 {
6069 unsafe fn encode(
6070 self,
6071 encoder: &mut fidl::encoding::Encoder<'_, D>,
6072 offset: usize,
6073 mut depth: fidl::encoding::Depth,
6074 ) -> fidl::Result<()> {
6075 encoder.debug_check_bounds::<NonInlinedRequestStats>(offset);
6076 let max_ordinal: u64 = self.max_ordinal_present();
6078 encoder.write_num(max_ordinal, offset);
6079 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6080 if max_ordinal == 0 {
6082 return Ok(());
6083 }
6084 depth.increment()?;
6085 let envelope_size = 8;
6086 let bytes_len = max_ordinal as usize * envelope_size;
6087 #[allow(unused_variables)]
6088 let offset = encoder.out_of_line_offset(bytes_len);
6089 let mut _prev_end_offset: usize = 0;
6090 if 1 > max_ordinal {
6091 return Ok(());
6092 }
6093
6094 let cur_offset: usize = (1 - 1) * envelope_size;
6097
6098 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6100
6101 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6106 self.allow_sync_calls
6107 .as_ref()
6108 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6109 encoder,
6110 offset + cur_offset,
6111 depth,
6112 )?;
6113
6114 _prev_end_offset = cur_offset + envelope_size;
6115 if 2 > max_ordinal {
6116 return Ok(());
6117 }
6118
6119 let cur_offset: usize = (2 - 1) * envelope_size;
6122
6123 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6125
6126 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6131 self.parallel_dispatch
6132 .as_ref()
6133 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6134 encoder,
6135 offset + cur_offset,
6136 depth,
6137 )?;
6138
6139 _prev_end_offset = cur_offset + envelope_size;
6140 if 3 > max_ordinal {
6141 return Ok(());
6142 }
6143
6144 let cur_offset: usize = (3 - 1) * envelope_size;
6147
6148 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6150
6151 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6156 self.task.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6157 encoder,
6158 offset + cur_offset,
6159 depth,
6160 )?;
6161
6162 _prev_end_offset = cur_offset + envelope_size;
6163 if 4 > max_ordinal {
6164 return Ok(());
6165 }
6166
6167 let cur_offset: usize = (4 - 1) * envelope_size;
6170
6171 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6173
6174 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6179 self.unknown_thread.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6180 encoder,
6181 offset + cur_offset,
6182 depth,
6183 )?;
6184
6185 _prev_end_offset = cur_offset + envelope_size;
6186 if 5 > max_ordinal {
6187 return Ok(());
6188 }
6189
6190 let cur_offset: usize = (5 - 1) * envelope_size;
6193
6194 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6196
6197 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6202 self.reentrant.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6203 encoder,
6204 offset + cur_offset,
6205 depth,
6206 )?;
6207
6208 _prev_end_offset = cur_offset + envelope_size;
6209 if 6 > max_ordinal {
6210 return Ok(());
6211 }
6212
6213 let cur_offset: usize = (6 - 1) * envelope_size;
6216
6217 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6219
6220 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6225 self.channel_wait_not_yet_registered
6226 .as_ref()
6227 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6228 encoder,
6229 offset + cur_offset,
6230 depth,
6231 )?;
6232
6233 _prev_end_offset = cur_offset + envelope_size;
6234 if 7 > max_ordinal {
6235 return Ok(());
6236 }
6237
6238 let cur_offset: usize = (7 - 1) * envelope_size;
6241
6242 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6244
6245 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6250 self.no_thread_migration
6251 .as_ref()
6252 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6253 encoder,
6254 offset + cur_offset,
6255 depth,
6256 )?;
6257
6258 _prev_end_offset = cur_offset + envelope_size;
6259
6260 Ok(())
6261 }
6262 }
6263
6264 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6265 for NonInlinedRequestStats
6266 {
6267 #[inline(always)]
6268 fn new_empty() -> Self {
6269 Self::default()
6270 }
6271
6272 unsafe fn decode(
6273 &mut self,
6274 decoder: &mut fidl::encoding::Decoder<'_, D>,
6275 offset: usize,
6276 mut depth: fidl::encoding::Depth,
6277 ) -> fidl::Result<()> {
6278 decoder.debug_check_bounds::<Self>(offset);
6279 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6280 None => return Err(fidl::Error::NotNullable),
6281 Some(len) => len,
6282 };
6283 if len == 0 {
6285 return Ok(());
6286 };
6287 depth.increment()?;
6288 let envelope_size = 8;
6289 let bytes_len = len * envelope_size;
6290 let offset = decoder.out_of_line_offset(bytes_len)?;
6291 let mut _next_ordinal_to_read = 0;
6293 let mut next_offset = offset;
6294 let end_offset = offset + bytes_len;
6295 _next_ordinal_to_read += 1;
6296 if next_offset >= end_offset {
6297 return Ok(());
6298 }
6299
6300 while _next_ordinal_to_read < 1 {
6302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6303 _next_ordinal_to_read += 1;
6304 next_offset += envelope_size;
6305 }
6306
6307 let next_out_of_line = decoder.next_out_of_line();
6308 let handles_before = decoder.remaining_handles();
6309 if let Some((inlined, num_bytes, num_handles)) =
6310 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6311 {
6312 let member_inline_size =
6313 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6314 if inlined != (member_inline_size <= 4) {
6315 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6316 }
6317 let inner_offset;
6318 let mut inner_depth = depth.clone();
6319 if inlined {
6320 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6321 inner_offset = next_offset;
6322 } else {
6323 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6324 inner_depth.increment()?;
6325 }
6326 let val_ref = self.allow_sync_calls.get_or_insert_with(|| fidl::new_empty!(u64, D));
6327 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6328 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6329 {
6330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6331 }
6332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6334 }
6335 }
6336
6337 next_offset += envelope_size;
6338 _next_ordinal_to_read += 1;
6339 if next_offset >= end_offset {
6340 return Ok(());
6341 }
6342
6343 while _next_ordinal_to_read < 2 {
6345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6346 _next_ordinal_to_read += 1;
6347 next_offset += envelope_size;
6348 }
6349
6350 let next_out_of_line = decoder.next_out_of_line();
6351 let handles_before = decoder.remaining_handles();
6352 if let Some((inlined, num_bytes, num_handles)) =
6353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6354 {
6355 let member_inline_size =
6356 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6357 if inlined != (member_inline_size <= 4) {
6358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6359 }
6360 let inner_offset;
6361 let mut inner_depth = depth.clone();
6362 if inlined {
6363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6364 inner_offset = next_offset;
6365 } else {
6366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6367 inner_depth.increment()?;
6368 }
6369 let val_ref =
6370 self.parallel_dispatch.get_or_insert_with(|| fidl::new_empty!(u64, D));
6371 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6373 {
6374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6375 }
6376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6378 }
6379 }
6380
6381 next_offset += envelope_size;
6382 _next_ordinal_to_read += 1;
6383 if next_offset >= end_offset {
6384 return Ok(());
6385 }
6386
6387 while _next_ordinal_to_read < 3 {
6389 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6390 _next_ordinal_to_read += 1;
6391 next_offset += envelope_size;
6392 }
6393
6394 let next_out_of_line = decoder.next_out_of_line();
6395 let handles_before = decoder.remaining_handles();
6396 if let Some((inlined, num_bytes, num_handles)) =
6397 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6398 {
6399 let member_inline_size =
6400 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6401 if inlined != (member_inline_size <= 4) {
6402 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6403 }
6404 let inner_offset;
6405 let mut inner_depth = depth.clone();
6406 if inlined {
6407 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6408 inner_offset = next_offset;
6409 } else {
6410 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6411 inner_depth.increment()?;
6412 }
6413 let val_ref = self.task.get_or_insert_with(|| fidl::new_empty!(u64, D));
6414 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6415 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6416 {
6417 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6418 }
6419 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6420 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6421 }
6422 }
6423
6424 next_offset += envelope_size;
6425 _next_ordinal_to_read += 1;
6426 if next_offset >= end_offset {
6427 return Ok(());
6428 }
6429
6430 while _next_ordinal_to_read < 4 {
6432 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6433 _next_ordinal_to_read += 1;
6434 next_offset += envelope_size;
6435 }
6436
6437 let next_out_of_line = decoder.next_out_of_line();
6438 let handles_before = decoder.remaining_handles();
6439 if let Some((inlined, num_bytes, num_handles)) =
6440 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6441 {
6442 let member_inline_size =
6443 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6444 if inlined != (member_inline_size <= 4) {
6445 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6446 }
6447 let inner_offset;
6448 let mut inner_depth = depth.clone();
6449 if inlined {
6450 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6451 inner_offset = next_offset;
6452 } else {
6453 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6454 inner_depth.increment()?;
6455 }
6456 let val_ref = self.unknown_thread.get_or_insert_with(|| fidl::new_empty!(u64, D));
6457 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6458 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6459 {
6460 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6461 }
6462 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6463 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6464 }
6465 }
6466
6467 next_offset += envelope_size;
6468 _next_ordinal_to_read += 1;
6469 if next_offset >= end_offset {
6470 return Ok(());
6471 }
6472
6473 while _next_ordinal_to_read < 5 {
6475 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6476 _next_ordinal_to_read += 1;
6477 next_offset += envelope_size;
6478 }
6479
6480 let next_out_of_line = decoder.next_out_of_line();
6481 let handles_before = decoder.remaining_handles();
6482 if let Some((inlined, num_bytes, num_handles)) =
6483 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6484 {
6485 let member_inline_size =
6486 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6487 if inlined != (member_inline_size <= 4) {
6488 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6489 }
6490 let inner_offset;
6491 let mut inner_depth = depth.clone();
6492 if inlined {
6493 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6494 inner_offset = next_offset;
6495 } else {
6496 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6497 inner_depth.increment()?;
6498 }
6499 let val_ref = self.reentrant.get_or_insert_with(|| fidl::new_empty!(u64, D));
6500 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6501 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6502 {
6503 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6504 }
6505 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6506 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6507 }
6508 }
6509
6510 next_offset += envelope_size;
6511 _next_ordinal_to_read += 1;
6512 if next_offset >= end_offset {
6513 return Ok(());
6514 }
6515
6516 while _next_ordinal_to_read < 6 {
6518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6519 _next_ordinal_to_read += 1;
6520 next_offset += envelope_size;
6521 }
6522
6523 let next_out_of_line = decoder.next_out_of_line();
6524 let handles_before = decoder.remaining_handles();
6525 if let Some((inlined, num_bytes, num_handles)) =
6526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6527 {
6528 let member_inline_size =
6529 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6530 if inlined != (member_inline_size <= 4) {
6531 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6532 }
6533 let inner_offset;
6534 let mut inner_depth = depth.clone();
6535 if inlined {
6536 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6537 inner_offset = next_offset;
6538 } else {
6539 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6540 inner_depth.increment()?;
6541 }
6542 let val_ref = self
6543 .channel_wait_not_yet_registered
6544 .get_or_insert_with(|| fidl::new_empty!(u64, D));
6545 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6547 {
6548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6549 }
6550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6552 }
6553 }
6554
6555 next_offset += envelope_size;
6556 _next_ordinal_to_read += 1;
6557 if next_offset >= end_offset {
6558 return Ok(());
6559 }
6560
6561 while _next_ordinal_to_read < 7 {
6563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6564 _next_ordinal_to_read += 1;
6565 next_offset += envelope_size;
6566 }
6567
6568 let next_out_of_line = decoder.next_out_of_line();
6569 let handles_before = decoder.remaining_handles();
6570 if let Some((inlined, num_bytes, num_handles)) =
6571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6572 {
6573 let member_inline_size =
6574 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6575 if inlined != (member_inline_size <= 4) {
6576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6577 }
6578 let inner_offset;
6579 let mut inner_depth = depth.clone();
6580 if inlined {
6581 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6582 inner_offset = next_offset;
6583 } else {
6584 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6585 inner_depth.increment()?;
6586 }
6587 let val_ref =
6588 self.no_thread_migration.get_or_insert_with(|| fidl::new_empty!(u64, D));
6589 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6590 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6591 {
6592 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6593 }
6594 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6595 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6596 }
6597 }
6598
6599 next_offset += envelope_size;
6600
6601 while next_offset < end_offset {
6603 _next_ordinal_to_read += 1;
6604 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6605 next_offset += envelope_size;
6606 }
6607
6608 Ok(())
6609 }
6610 }
6611
6612 impl QueuedTaskInfo {
6613 #[inline(always)]
6614 fn max_ordinal_present(&self) -> u64 {
6615 if let Some(_) = self.initiating_driver_url {
6616 return 6;
6617 }
6618 if let Some(_) = self.initiating_driver {
6619 return 5;
6620 }
6621 if let Some(_) = self.initiating_dispatcher_name {
6622 return 4;
6623 }
6624 if let Some(_) = self.initiating_dispatcher {
6625 return 3;
6626 }
6627 if let Some(_) = self.handler {
6628 return 2;
6629 }
6630 if let Some(_) = self.ptr {
6631 return 1;
6632 }
6633 0
6634 }
6635 }
6636
6637 impl fidl::encoding::ValueTypeMarker for QueuedTaskInfo {
6638 type Borrowed<'a> = &'a Self;
6639 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6640 value
6641 }
6642 }
6643
6644 unsafe impl fidl::encoding::TypeMarker for QueuedTaskInfo {
6645 type Owned = Self;
6646
6647 #[inline(always)]
6648 fn inline_align(_context: fidl::encoding::Context) -> usize {
6649 8
6650 }
6651
6652 #[inline(always)]
6653 fn inline_size(_context: fidl::encoding::Context) -> usize {
6654 16
6655 }
6656 }
6657
6658 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<QueuedTaskInfo, D>
6659 for &QueuedTaskInfo
6660 {
6661 unsafe fn encode(
6662 self,
6663 encoder: &mut fidl::encoding::Encoder<'_, D>,
6664 offset: usize,
6665 mut depth: fidl::encoding::Depth,
6666 ) -> fidl::Result<()> {
6667 encoder.debug_check_bounds::<QueuedTaskInfo>(offset);
6668 let max_ordinal: u64 = self.max_ordinal_present();
6670 encoder.write_num(max_ordinal, offset);
6671 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6672 if max_ordinal == 0 {
6674 return Ok(());
6675 }
6676 depth.increment()?;
6677 let envelope_size = 8;
6678 let bytes_len = max_ordinal as usize * envelope_size;
6679 #[allow(unused_variables)]
6680 let offset = encoder.out_of_line_offset(bytes_len);
6681 let mut _prev_end_offset: usize = 0;
6682 if 1 > max_ordinal {
6683 return Ok(());
6684 }
6685
6686 let cur_offset: usize = (1 - 1) * envelope_size;
6689
6690 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6692
6693 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6698 self.ptr.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6699 encoder,
6700 offset + cur_offset,
6701 depth,
6702 )?;
6703
6704 _prev_end_offset = cur_offset + envelope_size;
6705 if 2 > max_ordinal {
6706 return Ok(());
6707 }
6708
6709 let cur_offset: usize = (2 - 1) * envelope_size;
6712
6713 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6715
6716 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6721 self.handler.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6722 encoder,
6723 offset + cur_offset,
6724 depth,
6725 )?;
6726
6727 _prev_end_offset = cur_offset + envelope_size;
6728 if 3 > max_ordinal {
6729 return Ok(());
6730 }
6731
6732 let cur_offset: usize = (3 - 1) * envelope_size;
6735
6736 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6738
6739 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6744 self.initiating_dispatcher
6745 .as_ref()
6746 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6747 encoder,
6748 offset + cur_offset,
6749 depth,
6750 )?;
6751
6752 _prev_end_offset = cur_offset + envelope_size;
6753 if 4 > max_ordinal {
6754 return Ok(());
6755 }
6756
6757 let cur_offset: usize = (4 - 1) * envelope_size;
6760
6761 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6763
6764 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
6769 self.initiating_dispatcher_name.as_ref().map(
6770 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
6771 ),
6772 encoder,
6773 offset + cur_offset,
6774 depth,
6775 )?;
6776
6777 _prev_end_offset = cur_offset + envelope_size;
6778 if 5 > max_ordinal {
6779 return Ok(());
6780 }
6781
6782 let cur_offset: usize = (5 - 1) * envelope_size;
6785
6786 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6788
6789 fidl::encoding::encode_in_envelope_optional::<u64, D>(
6794 self.initiating_driver
6795 .as_ref()
6796 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
6797 encoder,
6798 offset + cur_offset,
6799 depth,
6800 )?;
6801
6802 _prev_end_offset = cur_offset + envelope_size;
6803 if 6 > max_ordinal {
6804 return Ok(());
6805 }
6806
6807 let cur_offset: usize = (6 - 1) * envelope_size;
6810
6811 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6813
6814 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
6819 self.initiating_driver_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
6820 encoder, offset + cur_offset, depth
6821 )?;
6822
6823 _prev_end_offset = cur_offset + envelope_size;
6824
6825 Ok(())
6826 }
6827 }
6828
6829 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for QueuedTaskInfo {
6830 #[inline(always)]
6831 fn new_empty() -> Self {
6832 Self::default()
6833 }
6834
6835 unsafe fn decode(
6836 &mut self,
6837 decoder: &mut fidl::encoding::Decoder<'_, D>,
6838 offset: usize,
6839 mut depth: fidl::encoding::Depth,
6840 ) -> fidl::Result<()> {
6841 decoder.debug_check_bounds::<Self>(offset);
6842 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6843 None => return Err(fidl::Error::NotNullable),
6844 Some(len) => len,
6845 };
6846 if len == 0 {
6848 return Ok(());
6849 };
6850 depth.increment()?;
6851 let envelope_size = 8;
6852 let bytes_len = len * envelope_size;
6853 let offset = decoder.out_of_line_offset(bytes_len)?;
6854 let mut _next_ordinal_to_read = 0;
6856 let mut next_offset = offset;
6857 let end_offset = offset + bytes_len;
6858 _next_ordinal_to_read += 1;
6859 if next_offset >= end_offset {
6860 return Ok(());
6861 }
6862
6863 while _next_ordinal_to_read < 1 {
6865 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6866 _next_ordinal_to_read += 1;
6867 next_offset += envelope_size;
6868 }
6869
6870 let next_out_of_line = decoder.next_out_of_line();
6871 let handles_before = decoder.remaining_handles();
6872 if let Some((inlined, num_bytes, num_handles)) =
6873 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6874 {
6875 let member_inline_size =
6876 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6877 if inlined != (member_inline_size <= 4) {
6878 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6879 }
6880 let inner_offset;
6881 let mut inner_depth = depth.clone();
6882 if inlined {
6883 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6884 inner_offset = next_offset;
6885 } else {
6886 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6887 inner_depth.increment()?;
6888 }
6889 let val_ref = self.ptr.get_or_insert_with(|| fidl::new_empty!(u64, D));
6890 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6891 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6892 {
6893 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6894 }
6895 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6896 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6897 }
6898 }
6899
6900 next_offset += envelope_size;
6901 _next_ordinal_to_read += 1;
6902 if next_offset >= end_offset {
6903 return Ok(());
6904 }
6905
6906 while _next_ordinal_to_read < 2 {
6908 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6909 _next_ordinal_to_read += 1;
6910 next_offset += envelope_size;
6911 }
6912
6913 let next_out_of_line = decoder.next_out_of_line();
6914 let handles_before = decoder.remaining_handles();
6915 if let Some((inlined, num_bytes, num_handles)) =
6916 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6917 {
6918 let member_inline_size =
6919 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6920 if inlined != (member_inline_size <= 4) {
6921 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6922 }
6923 let inner_offset;
6924 let mut inner_depth = depth.clone();
6925 if inlined {
6926 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6927 inner_offset = next_offset;
6928 } else {
6929 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6930 inner_depth.increment()?;
6931 }
6932 let val_ref = self.handler.get_or_insert_with(|| fidl::new_empty!(u64, D));
6933 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6934 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6935 {
6936 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6937 }
6938 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6939 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6940 }
6941 }
6942
6943 next_offset += envelope_size;
6944 _next_ordinal_to_read += 1;
6945 if next_offset >= end_offset {
6946 return Ok(());
6947 }
6948
6949 while _next_ordinal_to_read < 3 {
6951 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6952 _next_ordinal_to_read += 1;
6953 next_offset += envelope_size;
6954 }
6955
6956 let next_out_of_line = decoder.next_out_of_line();
6957 let handles_before = decoder.remaining_handles();
6958 if let Some((inlined, num_bytes, num_handles)) =
6959 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6960 {
6961 let member_inline_size =
6962 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6963 if inlined != (member_inline_size <= 4) {
6964 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6965 }
6966 let inner_offset;
6967 let mut inner_depth = depth.clone();
6968 if inlined {
6969 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6970 inner_offset = next_offset;
6971 } else {
6972 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6973 inner_depth.increment()?;
6974 }
6975 let val_ref =
6976 self.initiating_dispatcher.get_or_insert_with(|| fidl::new_empty!(u64, D));
6977 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6978 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6979 {
6980 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6981 }
6982 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6983 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6984 }
6985 }
6986
6987 next_offset += envelope_size;
6988 _next_ordinal_to_read += 1;
6989 if next_offset >= end_offset {
6990 return Ok(());
6991 }
6992
6993 while _next_ordinal_to_read < 4 {
6995 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6996 _next_ordinal_to_read += 1;
6997 next_offset += envelope_size;
6998 }
6999
7000 let next_out_of_line = decoder.next_out_of_line();
7001 let handles_before = decoder.remaining_handles();
7002 if let Some((inlined, num_bytes, num_handles)) =
7003 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7004 {
7005 let member_inline_size =
7006 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
7007 decoder.context,
7008 );
7009 if inlined != (member_inline_size <= 4) {
7010 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7011 }
7012 let inner_offset;
7013 let mut inner_depth = depth.clone();
7014 if inlined {
7015 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7016 inner_offset = next_offset;
7017 } else {
7018 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7019 inner_depth.increment()?;
7020 }
7021 let val_ref = self
7022 .initiating_dispatcher_name
7023 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
7024 fidl::decode!(
7025 fidl::encoding::UnboundedString,
7026 D,
7027 val_ref,
7028 decoder,
7029 inner_offset,
7030 inner_depth
7031 )?;
7032 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7033 {
7034 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7035 }
7036 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7037 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7038 }
7039 }
7040
7041 next_offset += envelope_size;
7042 _next_ordinal_to_read += 1;
7043 if next_offset >= end_offset {
7044 return Ok(());
7045 }
7046
7047 while _next_ordinal_to_read < 5 {
7049 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7050 _next_ordinal_to_read += 1;
7051 next_offset += envelope_size;
7052 }
7053
7054 let next_out_of_line = decoder.next_out_of_line();
7055 let handles_before = decoder.remaining_handles();
7056 if let Some((inlined, num_bytes, num_handles)) =
7057 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7058 {
7059 let member_inline_size =
7060 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7061 if inlined != (member_inline_size <= 4) {
7062 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7063 }
7064 let inner_offset;
7065 let mut inner_depth = depth.clone();
7066 if inlined {
7067 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7068 inner_offset = next_offset;
7069 } else {
7070 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7071 inner_depth.increment()?;
7072 }
7073 let val_ref =
7074 self.initiating_driver.get_or_insert_with(|| fidl::new_empty!(u64, D));
7075 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
7076 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7077 {
7078 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7079 }
7080 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7081 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7082 }
7083 }
7084
7085 next_offset += envelope_size;
7086 _next_ordinal_to_read += 1;
7087 if next_offset >= end_offset {
7088 return Ok(());
7089 }
7090
7091 while _next_ordinal_to_read < 6 {
7093 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7094 _next_ordinal_to_read += 1;
7095 next_offset += envelope_size;
7096 }
7097
7098 let next_out_of_line = decoder.next_out_of_line();
7099 let handles_before = decoder.remaining_handles();
7100 if let Some((inlined, num_bytes, num_handles)) =
7101 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7102 {
7103 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7104 if inlined != (member_inline_size <= 4) {
7105 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7106 }
7107 let inner_offset;
7108 let mut inner_depth = depth.clone();
7109 if inlined {
7110 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7111 inner_offset = next_offset;
7112 } else {
7113 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7114 inner_depth.increment()?;
7115 }
7116 let val_ref = self.initiating_driver_url.get_or_insert_with(|| {
7117 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
7118 });
7119 fidl::decode!(
7120 fidl::encoding::BoundedString<4096>,
7121 D,
7122 val_ref,
7123 decoder,
7124 inner_offset,
7125 inner_depth
7126 )?;
7127 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7128 {
7129 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7130 }
7131 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7132 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7133 }
7134 }
7135
7136 next_offset += envelope_size;
7137
7138 while next_offset < end_offset {
7140 _next_ordinal_to_read += 1;
7141 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7142 next_offset += envelope_size;
7143 }
7144
7145 Ok(())
7146 }
7147 }
7148
7149 impl TestNodeAddArgs {
7150 #[inline(always)]
7151 fn max_ordinal_present(&self) -> u64 {
7152 if let Some(_) = self.properties {
7153 return 2;
7154 }
7155 if let Some(_) = self.name {
7156 return 1;
7157 }
7158 0
7159 }
7160 }
7161
7162 impl fidl::encoding::ValueTypeMarker for TestNodeAddArgs {
7163 type Borrowed<'a> = &'a Self;
7164 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7165 value
7166 }
7167 }
7168
7169 unsafe impl fidl::encoding::TypeMarker for TestNodeAddArgs {
7170 type Owned = Self;
7171
7172 #[inline(always)]
7173 fn inline_align(_context: fidl::encoding::Context) -> usize {
7174 8
7175 }
7176
7177 #[inline(always)]
7178 fn inline_size(_context: fidl::encoding::Context) -> usize {
7179 16
7180 }
7181 }
7182
7183 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TestNodeAddArgs, D>
7184 for &TestNodeAddArgs
7185 {
7186 unsafe fn encode(
7187 self,
7188 encoder: &mut fidl::encoding::Encoder<'_, D>,
7189 offset: usize,
7190 mut depth: fidl::encoding::Depth,
7191 ) -> fidl::Result<()> {
7192 encoder.debug_check_bounds::<TestNodeAddArgs>(offset);
7193 let max_ordinal: u64 = self.max_ordinal_present();
7195 encoder.write_num(max_ordinal, offset);
7196 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7197 if max_ordinal == 0 {
7199 return Ok(());
7200 }
7201 depth.increment()?;
7202 let envelope_size = 8;
7203 let bytes_len = max_ordinal as usize * envelope_size;
7204 #[allow(unused_variables)]
7205 let offset = encoder.out_of_line_offset(bytes_len);
7206 let mut _prev_end_offset: usize = 0;
7207 if 1 > max_ordinal {
7208 return Ok(());
7209 }
7210
7211 let cur_offset: usize = (1 - 1) * envelope_size;
7214
7215 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7217
7218 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
7223 self.name.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
7224 encoder, offset + cur_offset, depth
7225 )?;
7226
7227 _prev_end_offset = cur_offset + envelope_size;
7228 if 2 > max_ordinal {
7229 return Ok(());
7230 }
7231
7232 let cur_offset: usize = (2 - 1) * envelope_size;
7235
7236 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7238
7239 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty2, 64>, D>(
7244 self.properties.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty2, 64> as fidl::encoding::ValueTypeMarker>::borrow),
7245 encoder, offset + cur_offset, depth
7246 )?;
7247
7248 _prev_end_offset = cur_offset + envelope_size;
7249
7250 Ok(())
7251 }
7252 }
7253
7254 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TestNodeAddArgs {
7255 #[inline(always)]
7256 fn new_empty() -> Self {
7257 Self::default()
7258 }
7259
7260 unsafe fn decode(
7261 &mut self,
7262 decoder: &mut fidl::encoding::Decoder<'_, D>,
7263 offset: usize,
7264 mut depth: fidl::encoding::Depth,
7265 ) -> fidl::Result<()> {
7266 decoder.debug_check_bounds::<Self>(offset);
7267 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7268 None => return Err(fidl::Error::NotNullable),
7269 Some(len) => len,
7270 };
7271 if len == 0 {
7273 return Ok(());
7274 };
7275 depth.increment()?;
7276 let envelope_size = 8;
7277 let bytes_len = len * envelope_size;
7278 let offset = decoder.out_of_line_offset(bytes_len)?;
7279 let mut _next_ordinal_to_read = 0;
7281 let mut next_offset = offset;
7282 let end_offset = offset + bytes_len;
7283 _next_ordinal_to_read += 1;
7284 if next_offset >= end_offset {
7285 return Ok(());
7286 }
7287
7288 while _next_ordinal_to_read < 1 {
7290 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7291 _next_ordinal_to_read += 1;
7292 next_offset += envelope_size;
7293 }
7294
7295 let next_out_of_line = decoder.next_out_of_line();
7296 let handles_before = decoder.remaining_handles();
7297 if let Some((inlined, num_bytes, num_handles)) =
7298 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7299 {
7300 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7301 if inlined != (member_inline_size <= 4) {
7302 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7303 }
7304 let inner_offset;
7305 let mut inner_depth = depth.clone();
7306 if inlined {
7307 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7308 inner_offset = next_offset;
7309 } else {
7310 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7311 inner_depth.increment()?;
7312 }
7313 let val_ref = self.name.get_or_insert_with(|| {
7314 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
7315 });
7316 fidl::decode!(
7317 fidl::encoding::BoundedString<1024>,
7318 D,
7319 val_ref,
7320 decoder,
7321 inner_offset,
7322 inner_depth
7323 )?;
7324 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7325 {
7326 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7327 }
7328 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7329 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7330 }
7331 }
7332
7333 next_offset += envelope_size;
7334 _next_ordinal_to_read += 1;
7335 if next_offset >= end_offset {
7336 return Ok(());
7337 }
7338
7339 while _next_ordinal_to_read < 2 {
7341 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7342 _next_ordinal_to_read += 1;
7343 next_offset += envelope_size;
7344 }
7345
7346 let next_out_of_line = decoder.next_out_of_line();
7347 let handles_before = decoder.remaining_handles();
7348 if let Some((inlined, num_bytes, num_handles)) =
7349 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7350 {
7351 let member_inline_size = <fidl::encoding::Vector<
7352 fidl_fuchsia_driver_framework_common::NodeProperty2,
7353 64,
7354 > as fidl::encoding::TypeMarker>::inline_size(
7355 decoder.context
7356 );
7357 if inlined != (member_inline_size <= 4) {
7358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7359 }
7360 let inner_offset;
7361 let mut inner_depth = depth.clone();
7362 if inlined {
7363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7364 inner_offset = next_offset;
7365 } else {
7366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7367 inner_depth.increment()?;
7368 }
7369 let val_ref =
7370 self.properties.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty2, 64>, D));
7371 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_driver_framework_common::NodeProperty2, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
7372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7373 {
7374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7375 }
7376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7378 }
7379 }
7380
7381 next_offset += envelope_size;
7382
7383 while next_offset < end_offset {
7385 _next_ordinal_to_read += 1;
7386 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7387 next_offset += envelope_size;
7388 }
7389
7390 Ok(())
7391 }
7392 }
7393
7394 impl ThreadInfo {
7395 #[inline(always)]
7396 fn max_ordinal_present(&self) -> u64 {
7397 if let Some(_) = self.scheduler_role {
7398 return 3;
7399 }
7400 if let Some(_) = self.name {
7401 return 2;
7402 }
7403 if let Some(_) = self.koid {
7404 return 1;
7405 }
7406 0
7407 }
7408 }
7409
7410 impl fidl::encoding::ValueTypeMarker for ThreadInfo {
7411 type Borrowed<'a> = &'a Self;
7412 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7413 value
7414 }
7415 }
7416
7417 unsafe impl fidl::encoding::TypeMarker for ThreadInfo {
7418 type Owned = Self;
7419
7420 #[inline(always)]
7421 fn inline_align(_context: fidl::encoding::Context) -> usize {
7422 8
7423 }
7424
7425 #[inline(always)]
7426 fn inline_size(_context: fidl::encoding::Context) -> usize {
7427 16
7428 }
7429 }
7430
7431 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ThreadInfo, D>
7432 for &ThreadInfo
7433 {
7434 unsafe fn encode(
7435 self,
7436 encoder: &mut fidl::encoding::Encoder<'_, D>,
7437 offset: usize,
7438 mut depth: fidl::encoding::Depth,
7439 ) -> fidl::Result<()> {
7440 encoder.debug_check_bounds::<ThreadInfo>(offset);
7441 let max_ordinal: u64 = self.max_ordinal_present();
7443 encoder.write_num(max_ordinal, offset);
7444 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7445 if max_ordinal == 0 {
7447 return Ok(());
7448 }
7449 depth.increment()?;
7450 let envelope_size = 8;
7451 let bytes_len = max_ordinal as usize * envelope_size;
7452 #[allow(unused_variables)]
7453 let offset = encoder.out_of_line_offset(bytes_len);
7454 let mut _prev_end_offset: usize = 0;
7455 if 1 > max_ordinal {
7456 return Ok(());
7457 }
7458
7459 let cur_offset: usize = (1 - 1) * envelope_size;
7462
7463 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7465
7466 fidl::encoding::encode_in_envelope_optional::<u64, D>(
7471 self.koid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
7472 encoder,
7473 offset + cur_offset,
7474 depth,
7475 )?;
7476
7477 _prev_end_offset = cur_offset + envelope_size;
7478 if 2 > max_ordinal {
7479 return Ok(());
7480 }
7481
7482 let cur_offset: usize = (2 - 1) * envelope_size;
7485
7486 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7488
7489 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
7494 self.name.as_ref().map(
7495 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
7496 ),
7497 encoder,
7498 offset + cur_offset,
7499 depth,
7500 )?;
7501
7502 _prev_end_offset = cur_offset + envelope_size;
7503 if 3 > max_ordinal {
7504 return Ok(());
7505 }
7506
7507 let cur_offset: usize = (3 - 1) * envelope_size;
7510
7511 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7513
7514 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
7519 self.scheduler_role.as_ref().map(
7520 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
7521 ),
7522 encoder,
7523 offset + cur_offset,
7524 depth,
7525 )?;
7526
7527 _prev_end_offset = cur_offset + envelope_size;
7528
7529 Ok(())
7530 }
7531 }
7532
7533 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ThreadInfo {
7534 #[inline(always)]
7535 fn new_empty() -> Self {
7536 Self::default()
7537 }
7538
7539 unsafe fn decode(
7540 &mut self,
7541 decoder: &mut fidl::encoding::Decoder<'_, D>,
7542 offset: usize,
7543 mut depth: fidl::encoding::Depth,
7544 ) -> fidl::Result<()> {
7545 decoder.debug_check_bounds::<Self>(offset);
7546 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7547 None => return Err(fidl::Error::NotNullable),
7548 Some(len) => len,
7549 };
7550 if len == 0 {
7552 return Ok(());
7553 };
7554 depth.increment()?;
7555 let envelope_size = 8;
7556 let bytes_len = len * envelope_size;
7557 let offset = decoder.out_of_line_offset(bytes_len)?;
7558 let mut _next_ordinal_to_read = 0;
7560 let mut next_offset = offset;
7561 let end_offset = offset + bytes_len;
7562 _next_ordinal_to_read += 1;
7563 if next_offset >= end_offset {
7564 return Ok(());
7565 }
7566
7567 while _next_ordinal_to_read < 1 {
7569 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7570 _next_ordinal_to_read += 1;
7571 next_offset += envelope_size;
7572 }
7573
7574 let next_out_of_line = decoder.next_out_of_line();
7575 let handles_before = decoder.remaining_handles();
7576 if let Some((inlined, num_bytes, num_handles)) =
7577 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7578 {
7579 let member_inline_size =
7580 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7581 if inlined != (member_inline_size <= 4) {
7582 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7583 }
7584 let inner_offset;
7585 let mut inner_depth = depth.clone();
7586 if inlined {
7587 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7588 inner_offset = next_offset;
7589 } else {
7590 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7591 inner_depth.increment()?;
7592 }
7593 let val_ref = self.koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
7594 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
7595 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7596 {
7597 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7598 }
7599 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7600 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7601 }
7602 }
7603
7604 next_offset += envelope_size;
7605 _next_ordinal_to_read += 1;
7606 if next_offset >= end_offset {
7607 return Ok(());
7608 }
7609
7610 while _next_ordinal_to_read < 2 {
7612 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7613 _next_ordinal_to_read += 1;
7614 next_offset += envelope_size;
7615 }
7616
7617 let next_out_of_line = decoder.next_out_of_line();
7618 let handles_before = decoder.remaining_handles();
7619 if let Some((inlined, num_bytes, num_handles)) =
7620 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7621 {
7622 let member_inline_size =
7623 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
7624 decoder.context,
7625 );
7626 if inlined != (member_inline_size <= 4) {
7627 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7628 }
7629 let inner_offset;
7630 let mut inner_depth = depth.clone();
7631 if inlined {
7632 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7633 inner_offset = next_offset;
7634 } else {
7635 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7636 inner_depth.increment()?;
7637 }
7638 let val_ref = self
7639 .name
7640 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
7641 fidl::decode!(
7642 fidl::encoding::UnboundedString,
7643 D,
7644 val_ref,
7645 decoder,
7646 inner_offset,
7647 inner_depth
7648 )?;
7649 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7650 {
7651 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7652 }
7653 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7654 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7655 }
7656 }
7657
7658 next_offset += envelope_size;
7659 _next_ordinal_to_read += 1;
7660 if next_offset >= end_offset {
7661 return Ok(());
7662 }
7663
7664 while _next_ordinal_to_read < 3 {
7666 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7667 _next_ordinal_to_read += 1;
7668 next_offset += envelope_size;
7669 }
7670
7671 let next_out_of_line = decoder.next_out_of_line();
7672 let handles_before = decoder.remaining_handles();
7673 if let Some((inlined, num_bytes, num_handles)) =
7674 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7675 {
7676 let member_inline_size =
7677 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
7678 decoder.context,
7679 );
7680 if inlined != (member_inline_size <= 4) {
7681 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7682 }
7683 let inner_offset;
7684 let mut inner_depth = depth.clone();
7685 if inlined {
7686 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7687 inner_offset = next_offset;
7688 } else {
7689 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7690 inner_depth.increment()?;
7691 }
7692 let val_ref = self
7693 .scheduler_role
7694 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
7695 fidl::decode!(
7696 fidl::encoding::UnboundedString,
7697 D,
7698 val_ref,
7699 decoder,
7700 inner_offset,
7701 inner_depth
7702 )?;
7703 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7704 {
7705 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7706 }
7707 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7708 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7709 }
7710 }
7711
7712 next_offset += envelope_size;
7713
7714 while next_offset < end_offset {
7716 _next_ordinal_to_read += 1;
7717 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7718 next_offset += envelope_size;
7719 }
7720
7721 Ok(())
7722 }
7723 }
7724
7725 impl fidl::encoding::ValueTypeMarker for CompositeInfo {
7726 type Borrowed<'a> = &'a Self;
7727 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7728 value
7729 }
7730 }
7731
7732 unsafe impl fidl::encoding::TypeMarker for CompositeInfo {
7733 type Owned = Self;
7734
7735 #[inline(always)]
7736 fn inline_align(_context: fidl::encoding::Context) -> usize {
7737 8
7738 }
7739
7740 #[inline(always)]
7741 fn inline_size(_context: fidl::encoding::Context) -> usize {
7742 16
7743 }
7744 }
7745
7746 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CompositeInfo, D>
7747 for &CompositeInfo
7748 {
7749 #[inline]
7750 unsafe fn encode(
7751 self,
7752 encoder: &mut fidl::encoding::Encoder<'_, D>,
7753 offset: usize,
7754 _depth: fidl::encoding::Depth,
7755 ) -> fidl::Result<()> {
7756 encoder.debug_check_bounds::<CompositeInfo>(offset);
7757 encoder.write_num::<u64>(self.ordinal(), offset);
7758 match self {
7759 CompositeInfo::Composite(ref val) => {
7760 fidl::encoding::encode_in_envelope::<fidl_fuchsia_driver_framework_common::CompositeInfo, D>(
7761 <fidl_fuchsia_driver_framework_common::CompositeInfo as fidl::encoding::ValueTypeMarker>::borrow(val),
7762 encoder, offset + 8, _depth
7763 )
7764 }
7765 }
7766 }
7767 }
7768
7769 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompositeInfo {
7770 #[inline(always)]
7771 fn new_empty() -> Self {
7772 Self::Composite(fidl::new_empty!(
7773 fidl_fuchsia_driver_framework_common::CompositeInfo,
7774 D
7775 ))
7776 }
7777
7778 #[inline]
7779 unsafe fn decode(
7780 &mut self,
7781 decoder: &mut fidl::encoding::Decoder<'_, D>,
7782 offset: usize,
7783 mut depth: fidl::encoding::Depth,
7784 ) -> fidl::Result<()> {
7785 decoder.debug_check_bounds::<Self>(offset);
7786 #[allow(unused_variables)]
7787 let next_out_of_line = decoder.next_out_of_line();
7788 let handles_before = decoder.remaining_handles();
7789 let (ordinal, inlined, num_bytes, num_handles) =
7790 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
7791
7792 let member_inline_size = match ordinal {
7793 2 => <fidl_fuchsia_driver_framework_common::CompositeInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context),
7794 _ => return Err(fidl::Error::UnknownUnionTag),
7795 };
7796
7797 if inlined != (member_inline_size <= 4) {
7798 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7799 }
7800 let _inner_offset;
7801 if inlined {
7802 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
7803 _inner_offset = offset + 8;
7804 } else {
7805 depth.increment()?;
7806 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7807 }
7808 match ordinal {
7809 2 => {
7810 #[allow(irrefutable_let_patterns)]
7811 if let CompositeInfo::Composite(_) = self {
7812 } else {
7814 *self = CompositeInfo::Composite(fidl::new_empty!(
7816 fidl_fuchsia_driver_framework_common::CompositeInfo,
7817 D
7818 ));
7819 }
7820 #[allow(irrefutable_let_patterns)]
7821 if let CompositeInfo::Composite(ref mut val) = self {
7822 fidl::decode!(
7823 fidl_fuchsia_driver_framework_common::CompositeInfo,
7824 D,
7825 val,
7826 decoder,
7827 _inner_offset,
7828 depth
7829 )?;
7830 } else {
7831 unreachable!()
7832 }
7833 }
7834 ordinal => panic!("unexpected ordinal {:?}", ordinal),
7835 }
7836 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
7837 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7838 }
7839 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7840 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7841 }
7842 Ok(())
7843 }
7844 }
7845}