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 MAX_CONNECT_MATCHES: u16 = 5;
12
13pub const MAX_NUM_MATCHES: u16 = 250;
14
15pub const NODE_NAME_MAX: u32 = 255;
16
17#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
19pub enum CompatibilityState {
20 Error,
22 Absent,
24 Supported,
26 Unknown,
28 Unsupported,
30 #[doc(hidden)]
31 __SourceBreaking { unknown_ordinal: u32 },
32}
33
34#[macro_export]
36macro_rules! CompatibilityStateUnknown {
37 () => {
38 _
39 };
40}
41
42impl CompatibilityState {
43 #[inline]
44 pub fn from_primitive(prim: u32) -> Option<Self> {
45 match prim {
46 0 => Some(Self::Error),
47 1 => Some(Self::Absent),
48 2 => Some(Self::Supported),
49 3 => Some(Self::Unknown),
50 4 => Some(Self::Unsupported),
51 _ => None,
52 }
53 }
54
55 #[inline]
56 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
57 match prim {
58 0 => Self::Error,
59 1 => Self::Absent,
60 2 => Self::Supported,
61 3 => Self::Unknown,
62 4 => Self::Unsupported,
63 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
64 }
65 }
66
67 #[inline]
68 pub fn unknown() -> Self {
69 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
70 }
71
72 #[inline]
73 pub const fn into_primitive(self) -> u32 {
74 match self {
75 Self::Error => 0,
76 Self::Absent => 1,
77 Self::Supported => 2,
78 Self::Unknown => 3,
79 Self::Unsupported => 4,
80 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
81 }
82 }
83
84 #[inline]
85 pub fn is_unknown(&self) -> bool {
86 match self {
87 Self::__SourceBreaking { unknown_ordinal: _ } => true,
88 _ => false,
89 }
90 }
91}
92
93#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
94pub enum ConnectCapabilityError {
95 InvalidMoniker,
96 NoMatchingCapabilities,
97 NoMatchingComponent,
98 CapabilityConnectFailed,
99 #[doc(hidden)]
100 __SourceBreaking {
101 unknown_ordinal: u32,
102 },
103}
104
105#[macro_export]
107macro_rules! ConnectCapabilityErrorUnknown {
108 () => {
109 _
110 };
111}
112
113impl ConnectCapabilityError {
114 #[inline]
115 pub fn from_primitive(prim: u32) -> Option<Self> {
116 match prim {
117 1 => Some(Self::InvalidMoniker),
118 2 => Some(Self::NoMatchingCapabilities),
119 3 => Some(Self::NoMatchingComponent),
120 4 => Some(Self::CapabilityConnectFailed),
121 _ => None,
122 }
123 }
124
125 #[inline]
126 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
127 match prim {
128 1 => Self::InvalidMoniker,
129 2 => Self::NoMatchingCapabilities,
130 3 => Self::NoMatchingComponent,
131 4 => Self::CapabilityConnectFailed,
132 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
133 }
134 }
135
136 #[inline]
137 pub fn unknown() -> Self {
138 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
139 }
140
141 #[inline]
142 pub const fn into_primitive(self) -> u32 {
143 match self {
144 Self::InvalidMoniker => 1,
145 Self::NoMatchingCapabilities => 2,
146 Self::NoMatchingComponent => 3,
147 Self::CapabilityConnectFailed => 4,
148 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
149 }
150 }
151
152 #[inline]
153 pub fn is_unknown(&self) -> bool {
154 match self {
155 Self::__SourceBreaking { unknown_ordinal: _ } => true,
156 _ => false,
157 }
158 }
159}
160
161#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
162pub enum IdentifyHostError {
163 ListInterfacesFailed,
164 GetDeviceNameFailed,
165 ProxyConnectionFailed,
166 #[doc(hidden)]
167 __SourceBreaking {
168 unknown_ordinal: u32,
169 },
170}
171
172#[macro_export]
174macro_rules! IdentifyHostErrorUnknown {
175 () => {
176 _
177 };
178}
179
180impl IdentifyHostError {
181 #[inline]
182 pub fn from_primitive(prim: u32) -> Option<Self> {
183 match prim {
184 1 => Some(Self::ListInterfacesFailed),
185 2 => Some(Self::GetDeviceNameFailed),
186 3 => Some(Self::ProxyConnectionFailed),
187 _ => None,
188 }
189 }
190
191 #[inline]
192 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
193 match prim {
194 1 => Self::ListInterfacesFailed,
195 2 => Self::GetDeviceNameFailed,
196 3 => Self::ProxyConnectionFailed,
197 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
198 }
199 }
200
201 #[inline]
202 pub fn unknown() -> Self {
203 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
204 }
205
206 #[inline]
207 pub const fn into_primitive(self) -> u32 {
208 match self {
209 Self::ListInterfacesFailed => 1,
210 Self::GetDeviceNameFailed => 2,
211 Self::ProxyConnectionFailed => 3,
212 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
213 }
214 }
215
216 #[inline]
217 pub fn is_unknown(&self) -> bool {
218 match self {
219 Self::__SourceBreaking { unknown_ordinal: _ } => true,
220 _ => false,
221 }
222 }
223}
224
225#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
226pub enum TunnelError {
227 ConnectFailed,
228 SocketFailed,
229 CallbackError,
230 #[doc(hidden)]
231 __SourceBreaking {
232 unknown_ordinal: u32,
233 },
234}
235
236#[macro_export]
238macro_rules! TunnelErrorUnknown {
239 () => {
240 _
241 };
242}
243
244impl TunnelError {
245 #[inline]
246 pub fn from_primitive(prim: u32) -> Option<Self> {
247 match prim {
248 1 => Some(Self::ConnectFailed),
249 2 => Some(Self::SocketFailed),
250 3 => Some(Self::CallbackError),
251 _ => None,
252 }
253 }
254
255 #[inline]
256 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
257 match prim {
258 1 => Self::ConnectFailed,
259 2 => Self::SocketFailed,
260 3 => Self::CallbackError,
261 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
262 }
263 }
264
265 #[inline]
266 pub fn unknown() -> Self {
267 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
268 }
269
270 #[inline]
271 pub const fn into_primitive(self) -> u32 {
272 match self {
273 Self::ConnectFailed => 1,
274 Self::SocketFailed => 2,
275 Self::CallbackError => 3,
276 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
277 }
278 }
279
280 #[inline]
281 pub fn is_unknown(&self) -> bool {
282 match self {
283 Self::__SourceBreaking { unknown_ordinal: _ } => true,
284 _ => false,
285 }
286 }
287}
288
289#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
291pub struct CompatibilityInfo {
292 pub state: CompatibilityState,
294 pub platform_abi: u64,
296 pub message: String,
298}
299
300impl fidl::Persistable for CompatibilityInfo {}
301
302#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
303pub struct RemoteControlEchoStringRequest {
304 pub value: String,
305}
306
307impl fidl::Persistable for RemoteControlEchoStringRequest {}
308
309#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
310pub struct RemoteControlEchoStringResponse {
311 pub response: String,
312}
313
314impl fidl::Persistable for RemoteControlEchoStringResponse {}
315
316#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
317#[repr(C)]
318pub struct RemoteControlGetBootTimeResponse {
319 pub time: fidl::BootInstant,
320}
321
322impl fidl::Persistable for RemoteControlGetBootTimeResponse {}
323
324#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
325#[repr(C)]
326pub struct RemoteControlGetTimeResponse {
327 pub time: fidl::MonotonicInstant,
328}
329
330impl fidl::Persistable for RemoteControlGetTimeResponse {}
331
332#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
333pub struct RemoteControlLogMessageRequest {
334 pub tag: String,
335 pub message: String,
336 pub severity: fidl_fuchsia_diagnostics_types__common::Severity,
337}
338
339impl fidl::Persistable for RemoteControlLogMessageRequest {}
340
341#[derive(Clone, Debug, PartialEq)]
342pub struct RemoteControlIdentifyHostResponse {
343 pub response: IdentifyHostResponse,
344}
345
346impl fidl::Persistable for RemoteControlIdentifyHostResponse {}
347
348#[derive(Clone, Debug, Default, PartialEq)]
349pub struct IdentifyHostResponse {
350 pub nodename: Option<String>,
351 pub boot_timestamp_nanos: Option<u64>,
352 pub serial_number: Option<String>,
353 pub ids: Option<Vec<u64>>,
354 pub product_config: Option<String>,
355 pub board_config: Option<String>,
356 pub addresses: Option<Vec<fidl_fuchsia_net__common::Subnet>>,
357 pub boot_id: Option<u64>,
358 #[doc(hidden)]
359 pub __source_breaking: fidl::marker::SourceBreaking,
360}
361
362impl fidl::Persistable for IdentifyHostResponse {}
363
364pub mod remote_control_ordinals {
365 pub const ECHO_STRING: u64 = 0x2bbec7ca8a72e82b;
366 pub const LOG_MESSAGE: u64 = 0x3da84acd5bbf3926;
367 pub const IDENTIFY_HOST: u64 = 0x6035e1ab368deee1;
368 pub const CONNECT_CAPABILITY: u64 = 0x3ae7a7c874dceceb;
369 pub const GET_TIME: u64 = 0x3588f31e9067748d;
370 pub const GET_BOOT_TIME: u64 = 0x55706f013cd79ebd;
371}
372
373mod internal {
374 use super::*;
375 unsafe impl fidl::encoding::TypeMarker for CompatibilityState {
376 type Owned = Self;
377
378 #[inline(always)]
379 fn inline_align(_context: fidl::encoding::Context) -> usize {
380 std::mem::align_of::<u32>()
381 }
382
383 #[inline(always)]
384 fn inline_size(_context: fidl::encoding::Context) -> usize {
385 std::mem::size_of::<u32>()
386 }
387
388 #[inline(always)]
389 fn encode_is_copy() -> bool {
390 false
391 }
392
393 #[inline(always)]
394 fn decode_is_copy() -> bool {
395 false
396 }
397 }
398
399 impl fidl::encoding::ValueTypeMarker for CompatibilityState {
400 type Borrowed<'a> = Self;
401 #[inline(always)]
402 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
403 *value
404 }
405 }
406
407 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
408 for CompatibilityState
409 {
410 #[inline]
411 unsafe fn encode(
412 self,
413 encoder: &mut fidl::encoding::Encoder<'_, D>,
414 offset: usize,
415 _depth: fidl::encoding::Depth,
416 ) -> fidl::Result<()> {
417 encoder.debug_check_bounds::<Self>(offset);
418 encoder.write_num(self.into_primitive(), offset);
419 Ok(())
420 }
421 }
422
423 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompatibilityState {
424 #[inline(always)]
425 fn new_empty() -> Self {
426 Self::unknown()
427 }
428
429 #[inline]
430 unsafe fn decode(
431 &mut self,
432 decoder: &mut fidl::encoding::Decoder<'_, D>,
433 offset: usize,
434 _depth: fidl::encoding::Depth,
435 ) -> fidl::Result<()> {
436 decoder.debug_check_bounds::<Self>(offset);
437 let prim = decoder.read_num::<u32>(offset);
438
439 *self = Self::from_primitive_allow_unknown(prim);
440 Ok(())
441 }
442 }
443 unsafe impl fidl::encoding::TypeMarker for ConnectCapabilityError {
444 type Owned = Self;
445
446 #[inline(always)]
447 fn inline_align(_context: fidl::encoding::Context) -> usize {
448 std::mem::align_of::<u32>()
449 }
450
451 #[inline(always)]
452 fn inline_size(_context: fidl::encoding::Context) -> usize {
453 std::mem::size_of::<u32>()
454 }
455
456 #[inline(always)]
457 fn encode_is_copy() -> bool {
458 false
459 }
460
461 #[inline(always)]
462 fn decode_is_copy() -> bool {
463 false
464 }
465 }
466
467 impl fidl::encoding::ValueTypeMarker for ConnectCapabilityError {
468 type Borrowed<'a> = Self;
469 #[inline(always)]
470 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
471 *value
472 }
473 }
474
475 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
476 for ConnectCapabilityError
477 {
478 #[inline]
479 unsafe fn encode(
480 self,
481 encoder: &mut fidl::encoding::Encoder<'_, D>,
482 offset: usize,
483 _depth: fidl::encoding::Depth,
484 ) -> fidl::Result<()> {
485 encoder.debug_check_bounds::<Self>(offset);
486 encoder.write_num(self.into_primitive(), offset);
487 Ok(())
488 }
489 }
490
491 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
492 for ConnectCapabilityError
493 {
494 #[inline(always)]
495 fn new_empty() -> Self {
496 Self::unknown()
497 }
498
499 #[inline]
500 unsafe fn decode(
501 &mut self,
502 decoder: &mut fidl::encoding::Decoder<'_, D>,
503 offset: usize,
504 _depth: fidl::encoding::Depth,
505 ) -> fidl::Result<()> {
506 decoder.debug_check_bounds::<Self>(offset);
507 let prim = decoder.read_num::<u32>(offset);
508
509 *self = Self::from_primitive_allow_unknown(prim);
510 Ok(())
511 }
512 }
513 unsafe impl fidl::encoding::TypeMarker for IdentifyHostError {
514 type Owned = Self;
515
516 #[inline(always)]
517 fn inline_align(_context: fidl::encoding::Context) -> usize {
518 std::mem::align_of::<u32>()
519 }
520
521 #[inline(always)]
522 fn inline_size(_context: fidl::encoding::Context) -> usize {
523 std::mem::size_of::<u32>()
524 }
525
526 #[inline(always)]
527 fn encode_is_copy() -> bool {
528 false
529 }
530
531 #[inline(always)]
532 fn decode_is_copy() -> bool {
533 false
534 }
535 }
536
537 impl fidl::encoding::ValueTypeMarker for IdentifyHostError {
538 type Borrowed<'a> = Self;
539 #[inline(always)]
540 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
541 *value
542 }
543 }
544
545 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
546 for IdentifyHostError
547 {
548 #[inline]
549 unsafe fn encode(
550 self,
551 encoder: &mut fidl::encoding::Encoder<'_, D>,
552 offset: usize,
553 _depth: fidl::encoding::Depth,
554 ) -> fidl::Result<()> {
555 encoder.debug_check_bounds::<Self>(offset);
556 encoder.write_num(self.into_primitive(), offset);
557 Ok(())
558 }
559 }
560
561 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IdentifyHostError {
562 #[inline(always)]
563 fn new_empty() -> Self {
564 Self::unknown()
565 }
566
567 #[inline]
568 unsafe fn decode(
569 &mut self,
570 decoder: &mut fidl::encoding::Decoder<'_, D>,
571 offset: usize,
572 _depth: fidl::encoding::Depth,
573 ) -> fidl::Result<()> {
574 decoder.debug_check_bounds::<Self>(offset);
575 let prim = decoder.read_num::<u32>(offset);
576
577 *self = Self::from_primitive_allow_unknown(prim);
578 Ok(())
579 }
580 }
581 unsafe impl fidl::encoding::TypeMarker for TunnelError {
582 type Owned = Self;
583
584 #[inline(always)]
585 fn inline_align(_context: fidl::encoding::Context) -> usize {
586 std::mem::align_of::<u32>()
587 }
588
589 #[inline(always)]
590 fn inline_size(_context: fidl::encoding::Context) -> usize {
591 std::mem::size_of::<u32>()
592 }
593
594 #[inline(always)]
595 fn encode_is_copy() -> bool {
596 false
597 }
598
599 #[inline(always)]
600 fn decode_is_copy() -> bool {
601 false
602 }
603 }
604
605 impl fidl::encoding::ValueTypeMarker for TunnelError {
606 type Borrowed<'a> = Self;
607 #[inline(always)]
608 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
609 *value
610 }
611 }
612
613 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for TunnelError {
614 #[inline]
615 unsafe fn encode(
616 self,
617 encoder: &mut fidl::encoding::Encoder<'_, D>,
618 offset: usize,
619 _depth: fidl::encoding::Depth,
620 ) -> fidl::Result<()> {
621 encoder.debug_check_bounds::<Self>(offset);
622 encoder.write_num(self.into_primitive(), offset);
623 Ok(())
624 }
625 }
626
627 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TunnelError {
628 #[inline(always)]
629 fn new_empty() -> Self {
630 Self::unknown()
631 }
632
633 #[inline]
634 unsafe fn decode(
635 &mut self,
636 decoder: &mut fidl::encoding::Decoder<'_, D>,
637 offset: usize,
638 _depth: fidl::encoding::Depth,
639 ) -> fidl::Result<()> {
640 decoder.debug_check_bounds::<Self>(offset);
641 let prim = decoder.read_num::<u32>(offset);
642
643 *self = Self::from_primitive_allow_unknown(prim);
644 Ok(())
645 }
646 }
647
648 impl fidl::encoding::ValueTypeMarker for CompatibilityInfo {
649 type Borrowed<'a> = &'a Self;
650 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
651 value
652 }
653 }
654
655 unsafe impl fidl::encoding::TypeMarker for CompatibilityInfo {
656 type Owned = Self;
657
658 #[inline(always)]
659 fn inline_align(_context: fidl::encoding::Context) -> usize {
660 8
661 }
662
663 #[inline(always)]
664 fn inline_size(_context: fidl::encoding::Context) -> usize {
665 32
666 }
667 }
668
669 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CompatibilityInfo, D>
670 for &CompatibilityInfo
671 {
672 #[inline]
673 unsafe fn encode(
674 self,
675 encoder: &mut fidl::encoding::Encoder<'_, D>,
676 offset: usize,
677 _depth: fidl::encoding::Depth,
678 ) -> fidl::Result<()> {
679 encoder.debug_check_bounds::<CompatibilityInfo>(offset);
680 fidl::encoding::Encode::<CompatibilityInfo, D>::encode(
682 (
683 <CompatibilityState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
684 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.platform_abi),
685 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
686 &self.message,
687 ),
688 ),
689 encoder,
690 offset,
691 _depth,
692 )
693 }
694 }
695 unsafe impl<
696 D: fidl::encoding::ResourceDialect,
697 T0: fidl::encoding::Encode<CompatibilityState, D>,
698 T1: fidl::encoding::Encode<u64, D>,
699 T2: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
700 > fidl::encoding::Encode<CompatibilityInfo, D> for (T0, T1, T2)
701 {
702 #[inline]
703 unsafe fn encode(
704 self,
705 encoder: &mut fidl::encoding::Encoder<'_, D>,
706 offset: usize,
707 depth: fidl::encoding::Depth,
708 ) -> fidl::Result<()> {
709 encoder.debug_check_bounds::<CompatibilityInfo>(offset);
710 unsafe {
713 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
714 (ptr as *mut u64).write_unaligned(0);
715 }
716 self.0.encode(encoder, offset + 0, depth)?;
718 self.1.encode(encoder, offset + 8, depth)?;
719 self.2.encode(encoder, offset + 16, depth)?;
720 Ok(())
721 }
722 }
723
724 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompatibilityInfo {
725 #[inline(always)]
726 fn new_empty() -> Self {
727 Self {
728 state: fidl::new_empty!(CompatibilityState, D),
729 platform_abi: fidl::new_empty!(u64, D),
730 message: fidl::new_empty!(fidl::encoding::UnboundedString, D),
731 }
732 }
733
734 #[inline]
735 unsafe fn decode(
736 &mut self,
737 decoder: &mut fidl::encoding::Decoder<'_, D>,
738 offset: usize,
739 _depth: fidl::encoding::Depth,
740 ) -> fidl::Result<()> {
741 decoder.debug_check_bounds::<Self>(offset);
742 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
744 let padval = unsafe { (ptr as *const u64).read_unaligned() };
745 let mask = 0xffffffff00000000u64;
746 let maskedval = padval & mask;
747 if maskedval != 0 {
748 return Err(fidl::Error::NonZeroPadding {
749 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
750 });
751 }
752 fidl::decode!(CompatibilityState, D, &mut self.state, decoder, offset + 0, _depth)?;
753 fidl::decode!(u64, D, &mut self.platform_abi, decoder, offset + 8, _depth)?;
754 fidl::decode!(
755 fidl::encoding::UnboundedString,
756 D,
757 &mut self.message,
758 decoder,
759 offset + 16,
760 _depth
761 )?;
762 Ok(())
763 }
764 }
765
766 impl fidl::encoding::ValueTypeMarker for RemoteControlEchoStringRequest {
767 type Borrowed<'a> = &'a Self;
768 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
769 value
770 }
771 }
772
773 unsafe impl fidl::encoding::TypeMarker for RemoteControlEchoStringRequest {
774 type Owned = Self;
775
776 #[inline(always)]
777 fn inline_align(_context: fidl::encoding::Context) -> usize {
778 8
779 }
780
781 #[inline(always)]
782 fn inline_size(_context: fidl::encoding::Context) -> usize {
783 16
784 }
785 }
786
787 unsafe impl<D: fidl::encoding::ResourceDialect>
788 fidl::encoding::Encode<RemoteControlEchoStringRequest, D>
789 for &RemoteControlEchoStringRequest
790 {
791 #[inline]
792 unsafe fn encode(
793 self,
794 encoder: &mut fidl::encoding::Encoder<'_, D>,
795 offset: usize,
796 _depth: fidl::encoding::Depth,
797 ) -> fidl::Result<()> {
798 encoder.debug_check_bounds::<RemoteControlEchoStringRequest>(offset);
799 fidl::encoding::Encode::<RemoteControlEchoStringRequest, D>::encode(
801 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
802 &self.value,
803 ),),
804 encoder,
805 offset,
806 _depth,
807 )
808 }
809 }
810 unsafe impl<
811 D: fidl::encoding::ResourceDialect,
812 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
813 > fidl::encoding::Encode<RemoteControlEchoStringRequest, D> for (T0,)
814 {
815 #[inline]
816 unsafe fn encode(
817 self,
818 encoder: &mut fidl::encoding::Encoder<'_, D>,
819 offset: usize,
820 depth: fidl::encoding::Depth,
821 ) -> fidl::Result<()> {
822 encoder.debug_check_bounds::<RemoteControlEchoStringRequest>(offset);
823 self.0.encode(encoder, offset + 0, depth)?;
827 Ok(())
828 }
829 }
830
831 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
832 for RemoteControlEchoStringRequest
833 {
834 #[inline(always)]
835 fn new_empty() -> Self {
836 Self { value: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
837 }
838
839 #[inline]
840 unsafe fn decode(
841 &mut self,
842 decoder: &mut fidl::encoding::Decoder<'_, D>,
843 offset: usize,
844 _depth: fidl::encoding::Depth,
845 ) -> fidl::Result<()> {
846 decoder.debug_check_bounds::<Self>(offset);
847 fidl::decode!(
849 fidl::encoding::BoundedString<255>,
850 D,
851 &mut self.value,
852 decoder,
853 offset + 0,
854 _depth
855 )?;
856 Ok(())
857 }
858 }
859
860 impl fidl::encoding::ValueTypeMarker for RemoteControlEchoStringResponse {
861 type Borrowed<'a> = &'a Self;
862 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
863 value
864 }
865 }
866
867 unsafe impl fidl::encoding::TypeMarker for RemoteControlEchoStringResponse {
868 type Owned = Self;
869
870 #[inline(always)]
871 fn inline_align(_context: fidl::encoding::Context) -> usize {
872 8
873 }
874
875 #[inline(always)]
876 fn inline_size(_context: fidl::encoding::Context) -> usize {
877 16
878 }
879 }
880
881 unsafe impl<D: fidl::encoding::ResourceDialect>
882 fidl::encoding::Encode<RemoteControlEchoStringResponse, D>
883 for &RemoteControlEchoStringResponse
884 {
885 #[inline]
886 unsafe fn encode(
887 self,
888 encoder: &mut fidl::encoding::Encoder<'_, D>,
889 offset: usize,
890 _depth: fidl::encoding::Depth,
891 ) -> fidl::Result<()> {
892 encoder.debug_check_bounds::<RemoteControlEchoStringResponse>(offset);
893 fidl::encoding::Encode::<RemoteControlEchoStringResponse, D>::encode(
895 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
896 &self.response,
897 ),),
898 encoder,
899 offset,
900 _depth,
901 )
902 }
903 }
904 unsafe impl<
905 D: fidl::encoding::ResourceDialect,
906 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
907 > fidl::encoding::Encode<RemoteControlEchoStringResponse, D> for (T0,)
908 {
909 #[inline]
910 unsafe fn encode(
911 self,
912 encoder: &mut fidl::encoding::Encoder<'_, D>,
913 offset: usize,
914 depth: fidl::encoding::Depth,
915 ) -> fidl::Result<()> {
916 encoder.debug_check_bounds::<RemoteControlEchoStringResponse>(offset);
917 self.0.encode(encoder, offset + 0, depth)?;
921 Ok(())
922 }
923 }
924
925 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
926 for RemoteControlEchoStringResponse
927 {
928 #[inline(always)]
929 fn new_empty() -> Self {
930 Self { response: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
931 }
932
933 #[inline]
934 unsafe fn decode(
935 &mut self,
936 decoder: &mut fidl::encoding::Decoder<'_, D>,
937 offset: usize,
938 _depth: fidl::encoding::Depth,
939 ) -> fidl::Result<()> {
940 decoder.debug_check_bounds::<Self>(offset);
941 fidl::decode!(
943 fidl::encoding::BoundedString<255>,
944 D,
945 &mut self.response,
946 decoder,
947 offset + 0,
948 _depth
949 )?;
950 Ok(())
951 }
952 }
953
954 impl fidl::encoding::ValueTypeMarker for RemoteControlGetBootTimeResponse {
955 type Borrowed<'a> = &'a Self;
956 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
957 value
958 }
959 }
960
961 unsafe impl fidl::encoding::TypeMarker for RemoteControlGetBootTimeResponse {
962 type Owned = Self;
963
964 #[inline(always)]
965 fn inline_align(_context: fidl::encoding::Context) -> usize {
966 8
967 }
968
969 #[inline(always)]
970 fn inline_size(_context: fidl::encoding::Context) -> usize {
971 8
972 }
973 #[inline(always)]
974 fn encode_is_copy() -> bool {
975 true
976 }
977
978 #[inline(always)]
979 fn decode_is_copy() -> bool {
980 true
981 }
982 }
983
984 unsafe impl<D: fidl::encoding::ResourceDialect>
985 fidl::encoding::Encode<RemoteControlGetBootTimeResponse, D>
986 for &RemoteControlGetBootTimeResponse
987 {
988 #[inline]
989 unsafe fn encode(
990 self,
991 encoder: &mut fidl::encoding::Encoder<'_, D>,
992 offset: usize,
993 _depth: fidl::encoding::Depth,
994 ) -> fidl::Result<()> {
995 encoder.debug_check_bounds::<RemoteControlGetBootTimeResponse>(offset);
996 unsafe {
997 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
999 (buf_ptr as *mut RemoteControlGetBootTimeResponse)
1000 .write_unaligned((self as *const RemoteControlGetBootTimeResponse).read());
1001 }
1004 Ok(())
1005 }
1006 }
1007 unsafe impl<
1008 D: fidl::encoding::ResourceDialect,
1009 T0: fidl::encoding::Encode<fidl::BootInstant, D>,
1010 > fidl::encoding::Encode<RemoteControlGetBootTimeResponse, D> for (T0,)
1011 {
1012 #[inline]
1013 unsafe fn encode(
1014 self,
1015 encoder: &mut fidl::encoding::Encoder<'_, D>,
1016 offset: usize,
1017 depth: fidl::encoding::Depth,
1018 ) -> fidl::Result<()> {
1019 encoder.debug_check_bounds::<RemoteControlGetBootTimeResponse>(offset);
1020 self.0.encode(encoder, offset + 0, depth)?;
1024 Ok(())
1025 }
1026 }
1027
1028 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1029 for RemoteControlGetBootTimeResponse
1030 {
1031 #[inline(always)]
1032 fn new_empty() -> Self {
1033 Self { time: fidl::new_empty!(fidl::BootInstant, D) }
1034 }
1035
1036 #[inline]
1037 unsafe fn decode(
1038 &mut self,
1039 decoder: &mut fidl::encoding::Decoder<'_, D>,
1040 offset: usize,
1041 _depth: fidl::encoding::Depth,
1042 ) -> fidl::Result<()> {
1043 decoder.debug_check_bounds::<Self>(offset);
1044 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1045 unsafe {
1048 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1049 }
1050 Ok(())
1051 }
1052 }
1053
1054 impl fidl::encoding::ValueTypeMarker for RemoteControlGetTimeResponse {
1055 type Borrowed<'a> = &'a Self;
1056 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1057 value
1058 }
1059 }
1060
1061 unsafe impl fidl::encoding::TypeMarker for RemoteControlGetTimeResponse {
1062 type Owned = Self;
1063
1064 #[inline(always)]
1065 fn inline_align(_context: fidl::encoding::Context) -> usize {
1066 8
1067 }
1068
1069 #[inline(always)]
1070 fn inline_size(_context: fidl::encoding::Context) -> usize {
1071 8
1072 }
1073 #[inline(always)]
1074 fn encode_is_copy() -> bool {
1075 true
1076 }
1077
1078 #[inline(always)]
1079 fn decode_is_copy() -> bool {
1080 true
1081 }
1082 }
1083
1084 unsafe impl<D: fidl::encoding::ResourceDialect>
1085 fidl::encoding::Encode<RemoteControlGetTimeResponse, D> for &RemoteControlGetTimeResponse
1086 {
1087 #[inline]
1088 unsafe fn encode(
1089 self,
1090 encoder: &mut fidl::encoding::Encoder<'_, D>,
1091 offset: usize,
1092 _depth: fidl::encoding::Depth,
1093 ) -> fidl::Result<()> {
1094 encoder.debug_check_bounds::<RemoteControlGetTimeResponse>(offset);
1095 unsafe {
1096 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1098 (buf_ptr as *mut RemoteControlGetTimeResponse)
1099 .write_unaligned((self as *const RemoteControlGetTimeResponse).read());
1100 }
1103 Ok(())
1104 }
1105 }
1106 unsafe impl<
1107 D: fidl::encoding::ResourceDialect,
1108 T0: fidl::encoding::Encode<fidl::MonotonicInstant, D>,
1109 > fidl::encoding::Encode<RemoteControlGetTimeResponse, D> for (T0,)
1110 {
1111 #[inline]
1112 unsafe fn encode(
1113 self,
1114 encoder: &mut fidl::encoding::Encoder<'_, D>,
1115 offset: usize,
1116 depth: fidl::encoding::Depth,
1117 ) -> fidl::Result<()> {
1118 encoder.debug_check_bounds::<RemoteControlGetTimeResponse>(offset);
1119 self.0.encode(encoder, offset + 0, depth)?;
1123 Ok(())
1124 }
1125 }
1126
1127 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1128 for RemoteControlGetTimeResponse
1129 {
1130 #[inline(always)]
1131 fn new_empty() -> Self {
1132 Self { time: fidl::new_empty!(fidl::MonotonicInstant, D) }
1133 }
1134
1135 #[inline]
1136 unsafe fn decode(
1137 &mut self,
1138 decoder: &mut fidl::encoding::Decoder<'_, D>,
1139 offset: usize,
1140 _depth: fidl::encoding::Depth,
1141 ) -> fidl::Result<()> {
1142 decoder.debug_check_bounds::<Self>(offset);
1143 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1144 unsafe {
1147 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1148 }
1149 Ok(())
1150 }
1151 }
1152
1153 impl fidl::encoding::ValueTypeMarker for RemoteControlLogMessageRequest {
1154 type Borrowed<'a> = &'a Self;
1155 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1156 value
1157 }
1158 }
1159
1160 unsafe impl fidl::encoding::TypeMarker for RemoteControlLogMessageRequest {
1161 type Owned = Self;
1162
1163 #[inline(always)]
1164 fn inline_align(_context: fidl::encoding::Context) -> usize {
1165 8
1166 }
1167
1168 #[inline(always)]
1169 fn inline_size(_context: fidl::encoding::Context) -> usize {
1170 40
1171 }
1172 }
1173
1174 unsafe impl<D: fidl::encoding::ResourceDialect>
1175 fidl::encoding::Encode<RemoteControlLogMessageRequest, D>
1176 for &RemoteControlLogMessageRequest
1177 {
1178 #[inline]
1179 unsafe fn encode(
1180 self,
1181 encoder: &mut fidl::encoding::Encoder<'_, D>,
1182 offset: usize,
1183 _depth: fidl::encoding::Depth,
1184 ) -> fidl::Result<()> {
1185 encoder.debug_check_bounds::<RemoteControlLogMessageRequest>(offset);
1186 fidl::encoding::Encode::<RemoteControlLogMessageRequest, D>::encode(
1188 (
1189 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.tag),
1190 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.message),
1191 <fidl_fuchsia_diagnostics_types__common::Severity as fidl::encoding::ValueTypeMarker>::borrow(&self.severity),
1192 ),
1193 encoder, offset, _depth
1194 )
1195 }
1196 }
1197 unsafe impl<
1198 D: fidl::encoding::ResourceDialect,
1199 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
1200 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
1201 T2: fidl::encoding::Encode<fidl_fuchsia_diagnostics_types__common::Severity, D>,
1202 > fidl::encoding::Encode<RemoteControlLogMessageRequest, D> for (T0, T1, T2)
1203 {
1204 #[inline]
1205 unsafe fn encode(
1206 self,
1207 encoder: &mut fidl::encoding::Encoder<'_, D>,
1208 offset: usize,
1209 depth: fidl::encoding::Depth,
1210 ) -> fidl::Result<()> {
1211 encoder.debug_check_bounds::<RemoteControlLogMessageRequest>(offset);
1212 unsafe {
1215 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
1216 (ptr as *mut u64).write_unaligned(0);
1217 }
1218 self.0.encode(encoder, offset + 0, depth)?;
1220 self.1.encode(encoder, offset + 16, depth)?;
1221 self.2.encode(encoder, offset + 32, depth)?;
1222 Ok(())
1223 }
1224 }
1225
1226 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1227 for RemoteControlLogMessageRequest
1228 {
1229 #[inline(always)]
1230 fn new_empty() -> Self {
1231 Self {
1232 tag: fidl::new_empty!(fidl::encoding::UnboundedString, D),
1233 message: fidl::new_empty!(fidl::encoding::UnboundedString, D),
1234 severity: fidl::new_empty!(fidl_fuchsia_diagnostics_types__common::Severity, D),
1235 }
1236 }
1237
1238 #[inline]
1239 unsafe fn decode(
1240 &mut self,
1241 decoder: &mut fidl::encoding::Decoder<'_, D>,
1242 offset: usize,
1243 _depth: fidl::encoding::Depth,
1244 ) -> fidl::Result<()> {
1245 decoder.debug_check_bounds::<Self>(offset);
1246 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
1248 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1249 let mask = 0xffffffffffffff00u64;
1250 let maskedval = padval & mask;
1251 if maskedval != 0 {
1252 return Err(fidl::Error::NonZeroPadding {
1253 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
1254 });
1255 }
1256 fidl::decode!(
1257 fidl::encoding::UnboundedString,
1258 D,
1259 &mut self.tag,
1260 decoder,
1261 offset + 0,
1262 _depth
1263 )?;
1264 fidl::decode!(
1265 fidl::encoding::UnboundedString,
1266 D,
1267 &mut self.message,
1268 decoder,
1269 offset + 16,
1270 _depth
1271 )?;
1272 fidl::decode!(
1273 fidl_fuchsia_diagnostics_types__common::Severity,
1274 D,
1275 &mut self.severity,
1276 decoder,
1277 offset + 32,
1278 _depth
1279 )?;
1280 Ok(())
1281 }
1282 }
1283
1284 impl fidl::encoding::ValueTypeMarker for RemoteControlIdentifyHostResponse {
1285 type Borrowed<'a> = &'a Self;
1286 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1287 value
1288 }
1289 }
1290
1291 unsafe impl fidl::encoding::TypeMarker for RemoteControlIdentifyHostResponse {
1292 type Owned = Self;
1293
1294 #[inline(always)]
1295 fn inline_align(_context: fidl::encoding::Context) -> usize {
1296 8
1297 }
1298
1299 #[inline(always)]
1300 fn inline_size(_context: fidl::encoding::Context) -> usize {
1301 16
1302 }
1303 }
1304
1305 unsafe impl<D: fidl::encoding::ResourceDialect>
1306 fidl::encoding::Encode<RemoteControlIdentifyHostResponse, D>
1307 for &RemoteControlIdentifyHostResponse
1308 {
1309 #[inline]
1310 unsafe fn encode(
1311 self,
1312 encoder: &mut fidl::encoding::Encoder<'_, D>,
1313 offset: usize,
1314 _depth: fidl::encoding::Depth,
1315 ) -> fidl::Result<()> {
1316 encoder.debug_check_bounds::<RemoteControlIdentifyHostResponse>(offset);
1317 fidl::encoding::Encode::<RemoteControlIdentifyHostResponse, D>::encode(
1319 (<IdentifyHostResponse as fidl::encoding::ValueTypeMarker>::borrow(&self.response),),
1320 encoder,
1321 offset,
1322 _depth,
1323 )
1324 }
1325 }
1326 unsafe impl<
1327 D: fidl::encoding::ResourceDialect,
1328 T0: fidl::encoding::Encode<IdentifyHostResponse, D>,
1329 > fidl::encoding::Encode<RemoteControlIdentifyHostResponse, D> for (T0,)
1330 {
1331 #[inline]
1332 unsafe fn encode(
1333 self,
1334 encoder: &mut fidl::encoding::Encoder<'_, D>,
1335 offset: usize,
1336 depth: fidl::encoding::Depth,
1337 ) -> fidl::Result<()> {
1338 encoder.debug_check_bounds::<RemoteControlIdentifyHostResponse>(offset);
1339 self.0.encode(encoder, offset + 0, depth)?;
1343 Ok(())
1344 }
1345 }
1346
1347 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1348 for RemoteControlIdentifyHostResponse
1349 {
1350 #[inline(always)]
1351 fn new_empty() -> Self {
1352 Self { response: fidl::new_empty!(IdentifyHostResponse, D) }
1353 }
1354
1355 #[inline]
1356 unsafe fn decode(
1357 &mut self,
1358 decoder: &mut fidl::encoding::Decoder<'_, D>,
1359 offset: usize,
1360 _depth: fidl::encoding::Depth,
1361 ) -> fidl::Result<()> {
1362 decoder.debug_check_bounds::<Self>(offset);
1363 fidl::decode!(
1365 IdentifyHostResponse,
1366 D,
1367 &mut self.response,
1368 decoder,
1369 offset + 0,
1370 _depth
1371 )?;
1372 Ok(())
1373 }
1374 }
1375
1376 impl IdentifyHostResponse {
1377 #[inline(always)]
1378 fn max_ordinal_present(&self) -> u64 {
1379 if let Some(_) = self.boot_id {
1380 return 9;
1381 }
1382 if let Some(_) = self.addresses {
1383 return 8;
1384 }
1385 if let Some(_) = self.board_config {
1386 return 7;
1387 }
1388 if let Some(_) = self.product_config {
1389 return 6;
1390 }
1391 if let Some(_) = self.ids {
1392 return 5;
1393 }
1394 if let Some(_) = self.serial_number {
1395 return 4;
1396 }
1397 if let Some(_) = self.boot_timestamp_nanos {
1398 return 3;
1399 }
1400 if let Some(_) = self.nodename {
1401 return 2;
1402 }
1403 0
1404 }
1405 }
1406
1407 impl fidl::encoding::ValueTypeMarker for IdentifyHostResponse {
1408 type Borrowed<'a> = &'a Self;
1409 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1410 value
1411 }
1412 }
1413
1414 unsafe impl fidl::encoding::TypeMarker for IdentifyHostResponse {
1415 type Owned = Self;
1416
1417 #[inline(always)]
1418 fn inline_align(_context: fidl::encoding::Context) -> usize {
1419 8
1420 }
1421
1422 #[inline(always)]
1423 fn inline_size(_context: fidl::encoding::Context) -> usize {
1424 16
1425 }
1426 }
1427
1428 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<IdentifyHostResponse, D>
1429 for &IdentifyHostResponse
1430 {
1431 unsafe fn encode(
1432 self,
1433 encoder: &mut fidl::encoding::Encoder<'_, D>,
1434 offset: usize,
1435 mut depth: fidl::encoding::Depth,
1436 ) -> fidl::Result<()> {
1437 encoder.debug_check_bounds::<IdentifyHostResponse>(offset);
1438 let max_ordinal: u64 = self.max_ordinal_present();
1440 encoder.write_num(max_ordinal, offset);
1441 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1442 if max_ordinal == 0 {
1444 return Ok(());
1445 }
1446 depth.increment()?;
1447 let envelope_size = 8;
1448 let bytes_len = max_ordinal as usize * envelope_size;
1449 #[allow(unused_variables)]
1450 let offset = encoder.out_of_line_offset(bytes_len);
1451 let mut _prev_end_offset: usize = 0;
1452 if 2 > max_ordinal {
1453 return Ok(());
1454 }
1455
1456 let cur_offset: usize = (2 - 1) * envelope_size;
1459
1460 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1462
1463 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
1468 self.nodename.as_ref().map(
1469 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
1470 ),
1471 encoder,
1472 offset + cur_offset,
1473 depth,
1474 )?;
1475
1476 _prev_end_offset = cur_offset + envelope_size;
1477 if 3 > max_ordinal {
1478 return Ok(());
1479 }
1480
1481 let cur_offset: usize = (3 - 1) * envelope_size;
1484
1485 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1487
1488 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1493 self.boot_timestamp_nanos
1494 .as_ref()
1495 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1496 encoder,
1497 offset + cur_offset,
1498 depth,
1499 )?;
1500
1501 _prev_end_offset = cur_offset + envelope_size;
1502 if 4 > max_ordinal {
1503 return Ok(());
1504 }
1505
1506 let cur_offset: usize = (4 - 1) * envelope_size;
1509
1510 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1512
1513 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
1518 self.serial_number.as_ref().map(
1519 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
1520 ),
1521 encoder,
1522 offset + cur_offset,
1523 depth,
1524 )?;
1525
1526 _prev_end_offset = cur_offset + envelope_size;
1527 if 5 > max_ordinal {
1528 return Ok(());
1529 }
1530
1531 let cur_offset: usize = (5 - 1) * envelope_size;
1534
1535 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1537
1538 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
1543 self.ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
1544 encoder, offset + cur_offset, depth
1545 )?;
1546
1547 _prev_end_offset = cur_offset + envelope_size;
1548 if 6 > max_ordinal {
1549 return Ok(());
1550 }
1551
1552 let cur_offset: usize = (6 - 1) * envelope_size;
1555
1556 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1558
1559 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
1564 self.product_config.as_ref().map(
1565 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
1566 ),
1567 encoder,
1568 offset + cur_offset,
1569 depth,
1570 )?;
1571
1572 _prev_end_offset = cur_offset + envelope_size;
1573 if 7 > max_ordinal {
1574 return Ok(());
1575 }
1576
1577 let cur_offset: usize = (7 - 1) * envelope_size;
1580
1581 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1583
1584 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
1589 self.board_config.as_ref().map(
1590 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
1591 ),
1592 encoder,
1593 offset + cur_offset,
1594 depth,
1595 )?;
1596
1597 _prev_end_offset = cur_offset + envelope_size;
1598 if 8 > max_ordinal {
1599 return Ok(());
1600 }
1601
1602 let cur_offset: usize = (8 - 1) * envelope_size;
1605
1606 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1608
1609 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_net__common::Subnet>, D>(
1614 self.addresses.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_net__common::Subnet> as fidl::encoding::ValueTypeMarker>::borrow),
1615 encoder, offset + cur_offset, depth
1616 )?;
1617
1618 _prev_end_offset = cur_offset + envelope_size;
1619 if 9 > max_ordinal {
1620 return Ok(());
1621 }
1622
1623 let cur_offset: usize = (9 - 1) * envelope_size;
1626
1627 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1629
1630 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1635 self.boot_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1636 encoder,
1637 offset + cur_offset,
1638 depth,
1639 )?;
1640
1641 _prev_end_offset = cur_offset + envelope_size;
1642
1643 Ok(())
1644 }
1645 }
1646
1647 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IdentifyHostResponse {
1648 #[inline(always)]
1649 fn new_empty() -> Self {
1650 Self::default()
1651 }
1652
1653 unsafe fn decode(
1654 &mut self,
1655 decoder: &mut fidl::encoding::Decoder<'_, D>,
1656 offset: usize,
1657 mut depth: fidl::encoding::Depth,
1658 ) -> fidl::Result<()> {
1659 decoder.debug_check_bounds::<Self>(offset);
1660 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1661 None => return Err(fidl::Error::NotNullable),
1662 Some(len) => len,
1663 };
1664 if len == 0 {
1666 return Ok(());
1667 };
1668 depth.increment()?;
1669 let envelope_size = 8;
1670 let bytes_len = len * envelope_size;
1671 let offset = decoder.out_of_line_offset(bytes_len)?;
1672 let mut _next_ordinal_to_read = 0;
1674 let mut next_offset = offset;
1675 let end_offset = offset + bytes_len;
1676 _next_ordinal_to_read += 1;
1677 if next_offset >= end_offset {
1678 return Ok(());
1679 }
1680
1681 while _next_ordinal_to_read < 2 {
1683 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1684 _next_ordinal_to_read += 1;
1685 next_offset += envelope_size;
1686 }
1687
1688 let next_out_of_line = decoder.next_out_of_line();
1689 let handles_before = decoder.remaining_handles();
1690 if let Some((inlined, num_bytes, num_handles)) =
1691 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1692 {
1693 let member_inline_size =
1694 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
1695 decoder.context,
1696 );
1697 if inlined != (member_inline_size <= 4) {
1698 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1699 }
1700 let inner_offset;
1701 let mut inner_depth = depth.clone();
1702 if inlined {
1703 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1704 inner_offset = next_offset;
1705 } else {
1706 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1707 inner_depth.increment()?;
1708 }
1709 let val_ref = self
1710 .nodename
1711 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
1712 fidl::decode!(
1713 fidl::encoding::BoundedString<255>,
1714 D,
1715 val_ref,
1716 decoder,
1717 inner_offset,
1718 inner_depth
1719 )?;
1720 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1721 {
1722 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1723 }
1724 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1725 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1726 }
1727 }
1728
1729 next_offset += envelope_size;
1730 _next_ordinal_to_read += 1;
1731 if next_offset >= end_offset {
1732 return Ok(());
1733 }
1734
1735 while _next_ordinal_to_read < 3 {
1737 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1738 _next_ordinal_to_read += 1;
1739 next_offset += envelope_size;
1740 }
1741
1742 let next_out_of_line = decoder.next_out_of_line();
1743 let handles_before = decoder.remaining_handles();
1744 if let Some((inlined, num_bytes, num_handles)) =
1745 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1746 {
1747 let member_inline_size =
1748 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1749 if inlined != (member_inline_size <= 4) {
1750 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1751 }
1752 let inner_offset;
1753 let mut inner_depth = depth.clone();
1754 if inlined {
1755 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1756 inner_offset = next_offset;
1757 } else {
1758 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1759 inner_depth.increment()?;
1760 }
1761 let val_ref =
1762 self.boot_timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(u64, D));
1763 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1764 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1765 {
1766 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1767 }
1768 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1769 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1770 }
1771 }
1772
1773 next_offset += envelope_size;
1774 _next_ordinal_to_read += 1;
1775 if next_offset >= end_offset {
1776 return Ok(());
1777 }
1778
1779 while _next_ordinal_to_read < 4 {
1781 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1782 _next_ordinal_to_read += 1;
1783 next_offset += envelope_size;
1784 }
1785
1786 let next_out_of_line = decoder.next_out_of_line();
1787 let handles_before = decoder.remaining_handles();
1788 if let Some((inlined, num_bytes, num_handles)) =
1789 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1790 {
1791 let member_inline_size =
1792 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
1793 decoder.context,
1794 );
1795 if inlined != (member_inline_size <= 4) {
1796 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1797 }
1798 let inner_offset;
1799 let mut inner_depth = depth.clone();
1800 if inlined {
1801 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1802 inner_offset = next_offset;
1803 } else {
1804 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1805 inner_depth.increment()?;
1806 }
1807 let val_ref = self
1808 .serial_number
1809 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
1810 fidl::decode!(
1811 fidl::encoding::BoundedString<255>,
1812 D,
1813 val_ref,
1814 decoder,
1815 inner_offset,
1816 inner_depth
1817 )?;
1818 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1819 {
1820 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1821 }
1822 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1823 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1824 }
1825 }
1826
1827 next_offset += envelope_size;
1828 _next_ordinal_to_read += 1;
1829 if next_offset >= end_offset {
1830 return Ok(());
1831 }
1832
1833 while _next_ordinal_to_read < 5 {
1835 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1836 _next_ordinal_to_read += 1;
1837 next_offset += envelope_size;
1838 }
1839
1840 let next_out_of_line = decoder.next_out_of_line();
1841 let handles_before = decoder.remaining_handles();
1842 if let Some((inlined, num_bytes, num_handles)) =
1843 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1844 {
1845 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1846 if inlined != (member_inline_size <= 4) {
1847 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1848 }
1849 let inner_offset;
1850 let mut inner_depth = depth.clone();
1851 if inlined {
1852 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1853 inner_offset = next_offset;
1854 } else {
1855 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1856 inner_depth.increment()?;
1857 }
1858 let val_ref = self.ids.get_or_insert_with(|| {
1859 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
1860 });
1861 fidl::decode!(
1862 fidl::encoding::UnboundedVector<u64>,
1863 D,
1864 val_ref,
1865 decoder,
1866 inner_offset,
1867 inner_depth
1868 )?;
1869 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1870 {
1871 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1872 }
1873 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1874 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1875 }
1876 }
1877
1878 next_offset += envelope_size;
1879 _next_ordinal_to_read += 1;
1880 if next_offset >= end_offset {
1881 return Ok(());
1882 }
1883
1884 while _next_ordinal_to_read < 6 {
1886 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1887 _next_ordinal_to_read += 1;
1888 next_offset += envelope_size;
1889 }
1890
1891 let next_out_of_line = decoder.next_out_of_line();
1892 let handles_before = decoder.remaining_handles();
1893 if let Some((inlined, num_bytes, num_handles)) =
1894 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1895 {
1896 let member_inline_size =
1897 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
1898 decoder.context,
1899 );
1900 if inlined != (member_inline_size <= 4) {
1901 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1902 }
1903 let inner_offset;
1904 let mut inner_depth = depth.clone();
1905 if inlined {
1906 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1907 inner_offset = next_offset;
1908 } else {
1909 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1910 inner_depth.increment()?;
1911 }
1912 let val_ref = self
1913 .product_config
1914 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
1915 fidl::decode!(
1916 fidl::encoding::BoundedString<100>,
1917 D,
1918 val_ref,
1919 decoder,
1920 inner_offset,
1921 inner_depth
1922 )?;
1923 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1924 {
1925 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1926 }
1927 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1928 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1929 }
1930 }
1931
1932 next_offset += envelope_size;
1933 _next_ordinal_to_read += 1;
1934 if next_offset >= end_offset {
1935 return Ok(());
1936 }
1937
1938 while _next_ordinal_to_read < 7 {
1940 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1941 _next_ordinal_to_read += 1;
1942 next_offset += envelope_size;
1943 }
1944
1945 let next_out_of_line = decoder.next_out_of_line();
1946 let handles_before = decoder.remaining_handles();
1947 if let Some((inlined, num_bytes, num_handles)) =
1948 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1949 {
1950 let member_inline_size =
1951 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
1952 decoder.context,
1953 );
1954 if inlined != (member_inline_size <= 4) {
1955 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1956 }
1957 let inner_offset;
1958 let mut inner_depth = depth.clone();
1959 if inlined {
1960 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1961 inner_offset = next_offset;
1962 } else {
1963 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1964 inner_depth.increment()?;
1965 }
1966 let val_ref = self
1967 .board_config
1968 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
1969 fidl::decode!(
1970 fidl::encoding::BoundedString<100>,
1971 D,
1972 val_ref,
1973 decoder,
1974 inner_offset,
1975 inner_depth
1976 )?;
1977 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1978 {
1979 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1980 }
1981 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1982 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1983 }
1984 }
1985
1986 next_offset += envelope_size;
1987 _next_ordinal_to_read += 1;
1988 if next_offset >= end_offset {
1989 return Ok(());
1990 }
1991
1992 while _next_ordinal_to_read < 8 {
1994 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1995 _next_ordinal_to_read += 1;
1996 next_offset += envelope_size;
1997 }
1998
1999 let next_out_of_line = decoder.next_out_of_line();
2000 let handles_before = decoder.remaining_handles();
2001 if let Some((inlined, num_bytes, num_handles)) =
2002 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2003 {
2004 let member_inline_size = <fidl::encoding::UnboundedVector<
2005 fidl_fuchsia_net__common::Subnet,
2006 > as fidl::encoding::TypeMarker>::inline_size(
2007 decoder.context
2008 );
2009 if inlined != (member_inline_size <= 4) {
2010 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2011 }
2012 let inner_offset;
2013 let mut inner_depth = depth.clone();
2014 if inlined {
2015 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2016 inner_offset = next_offset;
2017 } else {
2018 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2019 inner_depth.increment()?;
2020 }
2021 let val_ref = self.addresses.get_or_insert_with(|| {
2022 fidl::new_empty!(
2023 fidl::encoding::UnboundedVector<fidl_fuchsia_net__common::Subnet>,
2024 D
2025 )
2026 });
2027 fidl::decode!(
2028 fidl::encoding::UnboundedVector<fidl_fuchsia_net__common::Subnet>,
2029 D,
2030 val_ref,
2031 decoder,
2032 inner_offset,
2033 inner_depth
2034 )?;
2035 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2036 {
2037 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2038 }
2039 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2040 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2041 }
2042 }
2043
2044 next_offset += envelope_size;
2045 _next_ordinal_to_read += 1;
2046 if next_offset >= end_offset {
2047 return Ok(());
2048 }
2049
2050 while _next_ordinal_to_read < 9 {
2052 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2053 _next_ordinal_to_read += 1;
2054 next_offset += envelope_size;
2055 }
2056
2057 let next_out_of_line = decoder.next_out_of_line();
2058 let handles_before = decoder.remaining_handles();
2059 if let Some((inlined, num_bytes, num_handles)) =
2060 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2061 {
2062 let member_inline_size =
2063 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2064 if inlined != (member_inline_size <= 4) {
2065 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2066 }
2067 let inner_offset;
2068 let mut inner_depth = depth.clone();
2069 if inlined {
2070 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2071 inner_offset = next_offset;
2072 } else {
2073 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2074 inner_depth.increment()?;
2075 }
2076 let val_ref = self.boot_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
2077 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2078 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2079 {
2080 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2081 }
2082 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2083 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2084 }
2085 }
2086
2087 next_offset += envelope_size;
2088
2089 while next_offset < end_offset {
2091 _next_ordinal_to_read += 1;
2092 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2093 next_offset += envelope_size;
2094 }
2095
2096 Ok(())
2097 }
2098 }
2099}