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>>,
361 pub boot_id: Option<u64>,
362 pub f_release: Option<u32>,
363 #[doc(hidden)]
364 pub __source_breaking: fidl::marker::SourceBreaking,
365}
366
367impl fidl::Persistable for IdentifyHostResponse {}
368
369pub mod remote_control_ordinals {
370 pub const ECHO_STRING: u64 = 0x2bbec7ca8a72e82b;
371 pub const LOG_MESSAGE: u64 = 0x3da84acd5bbf3926;
372 pub const IDENTIFY_HOST: u64 = 0x6035e1ab368deee1;
373 pub const CONNECT_CAPABILITY: u64 = 0x3ae7a7c874dceceb;
374 pub const GET_TIME: u64 = 0x3588f31e9067748d;
375 pub const GET_BOOT_TIME: u64 = 0x55706f013cd79ebd;
376}
377
378mod internal {
379 use super::*;
380 unsafe impl fidl::encoding::TypeMarker for CompatibilityState {
381 type Owned = Self;
382
383 #[inline(always)]
384 fn inline_align(_context: fidl::encoding::Context) -> usize {
385 std::mem::align_of::<u32>()
386 }
387
388 #[inline(always)]
389 fn inline_size(_context: fidl::encoding::Context) -> usize {
390 std::mem::size_of::<u32>()
391 }
392
393 #[inline(always)]
394 fn encode_is_copy() -> bool {
395 false
396 }
397
398 #[inline(always)]
399 fn decode_is_copy() -> bool {
400 false
401 }
402 }
403
404 impl fidl::encoding::ValueTypeMarker for CompatibilityState {
405 type Borrowed<'a> = Self;
406 #[inline(always)]
407 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
408 *value
409 }
410 }
411
412 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
413 for CompatibilityState
414 {
415 #[inline]
416 unsafe fn encode(
417 self,
418 encoder: &mut fidl::encoding::Encoder<'_, D>,
419 offset: usize,
420 _depth: fidl::encoding::Depth,
421 ) -> fidl::Result<()> {
422 encoder.debug_check_bounds::<Self>(offset);
423 encoder.write_num(self.into_primitive(), offset);
424 Ok(())
425 }
426 }
427
428 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompatibilityState {
429 #[inline(always)]
430 fn new_empty() -> Self {
431 Self::unknown()
432 }
433
434 #[inline]
435 unsafe fn decode(
436 &mut self,
437 decoder: &mut fidl::encoding::Decoder<'_, D>,
438 offset: usize,
439 _depth: fidl::encoding::Depth,
440 ) -> fidl::Result<()> {
441 decoder.debug_check_bounds::<Self>(offset);
442 let prim = decoder.read_num::<u32>(offset);
443
444 *self = Self::from_primitive_allow_unknown(prim);
445 Ok(())
446 }
447 }
448 unsafe impl fidl::encoding::TypeMarker for ConnectCapabilityError {
449 type Owned = Self;
450
451 #[inline(always)]
452 fn inline_align(_context: fidl::encoding::Context) -> usize {
453 std::mem::align_of::<u32>()
454 }
455
456 #[inline(always)]
457 fn inline_size(_context: fidl::encoding::Context) -> usize {
458 std::mem::size_of::<u32>()
459 }
460
461 #[inline(always)]
462 fn encode_is_copy() -> bool {
463 false
464 }
465
466 #[inline(always)]
467 fn decode_is_copy() -> bool {
468 false
469 }
470 }
471
472 impl fidl::encoding::ValueTypeMarker for ConnectCapabilityError {
473 type Borrowed<'a> = Self;
474 #[inline(always)]
475 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
476 *value
477 }
478 }
479
480 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
481 for ConnectCapabilityError
482 {
483 #[inline]
484 unsafe fn encode(
485 self,
486 encoder: &mut fidl::encoding::Encoder<'_, D>,
487 offset: usize,
488 _depth: fidl::encoding::Depth,
489 ) -> fidl::Result<()> {
490 encoder.debug_check_bounds::<Self>(offset);
491 encoder.write_num(self.into_primitive(), offset);
492 Ok(())
493 }
494 }
495
496 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
497 for ConnectCapabilityError
498 {
499 #[inline(always)]
500 fn new_empty() -> Self {
501 Self::unknown()
502 }
503
504 #[inline]
505 unsafe fn decode(
506 &mut self,
507 decoder: &mut fidl::encoding::Decoder<'_, D>,
508 offset: usize,
509 _depth: fidl::encoding::Depth,
510 ) -> fidl::Result<()> {
511 decoder.debug_check_bounds::<Self>(offset);
512 let prim = decoder.read_num::<u32>(offset);
513
514 *self = Self::from_primitive_allow_unknown(prim);
515 Ok(())
516 }
517 }
518 unsafe impl fidl::encoding::TypeMarker for IdentifyHostError {
519 type Owned = Self;
520
521 #[inline(always)]
522 fn inline_align(_context: fidl::encoding::Context) -> usize {
523 std::mem::align_of::<u32>()
524 }
525
526 #[inline(always)]
527 fn inline_size(_context: fidl::encoding::Context) -> usize {
528 std::mem::size_of::<u32>()
529 }
530
531 #[inline(always)]
532 fn encode_is_copy() -> bool {
533 false
534 }
535
536 #[inline(always)]
537 fn decode_is_copy() -> bool {
538 false
539 }
540 }
541
542 impl fidl::encoding::ValueTypeMarker for IdentifyHostError {
543 type Borrowed<'a> = Self;
544 #[inline(always)]
545 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
546 *value
547 }
548 }
549
550 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
551 for IdentifyHostError
552 {
553 #[inline]
554 unsafe fn encode(
555 self,
556 encoder: &mut fidl::encoding::Encoder<'_, D>,
557 offset: usize,
558 _depth: fidl::encoding::Depth,
559 ) -> fidl::Result<()> {
560 encoder.debug_check_bounds::<Self>(offset);
561 encoder.write_num(self.into_primitive(), offset);
562 Ok(())
563 }
564 }
565
566 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IdentifyHostError {
567 #[inline(always)]
568 fn new_empty() -> Self {
569 Self::unknown()
570 }
571
572 #[inline]
573 unsafe fn decode(
574 &mut self,
575 decoder: &mut fidl::encoding::Decoder<'_, D>,
576 offset: usize,
577 _depth: fidl::encoding::Depth,
578 ) -> fidl::Result<()> {
579 decoder.debug_check_bounds::<Self>(offset);
580 let prim = decoder.read_num::<u32>(offset);
581
582 *self = Self::from_primitive_allow_unknown(prim);
583 Ok(())
584 }
585 }
586 unsafe impl fidl::encoding::TypeMarker for TunnelError {
587 type Owned = Self;
588
589 #[inline(always)]
590 fn inline_align(_context: fidl::encoding::Context) -> usize {
591 std::mem::align_of::<u32>()
592 }
593
594 #[inline(always)]
595 fn inline_size(_context: fidl::encoding::Context) -> usize {
596 std::mem::size_of::<u32>()
597 }
598
599 #[inline(always)]
600 fn encode_is_copy() -> bool {
601 false
602 }
603
604 #[inline(always)]
605 fn decode_is_copy() -> bool {
606 false
607 }
608 }
609
610 impl fidl::encoding::ValueTypeMarker for TunnelError {
611 type Borrowed<'a> = Self;
612 #[inline(always)]
613 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
614 *value
615 }
616 }
617
618 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for TunnelError {
619 #[inline]
620 unsafe fn encode(
621 self,
622 encoder: &mut fidl::encoding::Encoder<'_, D>,
623 offset: usize,
624 _depth: fidl::encoding::Depth,
625 ) -> fidl::Result<()> {
626 encoder.debug_check_bounds::<Self>(offset);
627 encoder.write_num(self.into_primitive(), offset);
628 Ok(())
629 }
630 }
631
632 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TunnelError {
633 #[inline(always)]
634 fn new_empty() -> Self {
635 Self::unknown()
636 }
637
638 #[inline]
639 unsafe fn decode(
640 &mut self,
641 decoder: &mut fidl::encoding::Decoder<'_, D>,
642 offset: usize,
643 _depth: fidl::encoding::Depth,
644 ) -> fidl::Result<()> {
645 decoder.debug_check_bounds::<Self>(offset);
646 let prim = decoder.read_num::<u32>(offset);
647
648 *self = Self::from_primitive_allow_unknown(prim);
649 Ok(())
650 }
651 }
652
653 impl fidl::encoding::ValueTypeMarker for CompatibilityInfo {
654 type Borrowed<'a> = &'a Self;
655 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
656 value
657 }
658 }
659
660 unsafe impl fidl::encoding::TypeMarker for CompatibilityInfo {
661 type Owned = Self;
662
663 #[inline(always)]
664 fn inline_align(_context: fidl::encoding::Context) -> usize {
665 8
666 }
667
668 #[inline(always)]
669 fn inline_size(_context: fidl::encoding::Context) -> usize {
670 32
671 }
672 }
673
674 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CompatibilityInfo, D>
675 for &CompatibilityInfo
676 {
677 #[inline]
678 unsafe fn encode(
679 self,
680 encoder: &mut fidl::encoding::Encoder<'_, D>,
681 offset: usize,
682 _depth: fidl::encoding::Depth,
683 ) -> fidl::Result<()> {
684 encoder.debug_check_bounds::<CompatibilityInfo>(offset);
685 fidl::encoding::Encode::<CompatibilityInfo, D>::encode(
687 (
688 <CompatibilityState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
689 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.platform_abi),
690 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
691 &self.message,
692 ),
693 ),
694 encoder,
695 offset,
696 _depth,
697 )
698 }
699 }
700 unsafe impl<
701 D: fidl::encoding::ResourceDialect,
702 T0: fidl::encoding::Encode<CompatibilityState, D>,
703 T1: fidl::encoding::Encode<u64, D>,
704 T2: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
705 > fidl::encoding::Encode<CompatibilityInfo, D> for (T0, T1, T2)
706 {
707 #[inline]
708 unsafe fn encode(
709 self,
710 encoder: &mut fidl::encoding::Encoder<'_, D>,
711 offset: usize,
712 depth: fidl::encoding::Depth,
713 ) -> fidl::Result<()> {
714 encoder.debug_check_bounds::<CompatibilityInfo>(offset);
715 unsafe {
718 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
719 (ptr as *mut u64).write_unaligned(0);
720 }
721 self.0.encode(encoder, offset + 0, depth)?;
723 self.1.encode(encoder, offset + 8, depth)?;
724 self.2.encode(encoder, offset + 16, depth)?;
725 Ok(())
726 }
727 }
728
729 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CompatibilityInfo {
730 #[inline(always)]
731 fn new_empty() -> Self {
732 Self {
733 state: fidl::new_empty!(CompatibilityState, D),
734 platform_abi: fidl::new_empty!(u64, D),
735 message: fidl::new_empty!(fidl::encoding::UnboundedString, D),
736 }
737 }
738
739 #[inline]
740 unsafe fn decode(
741 &mut self,
742 decoder: &mut fidl::encoding::Decoder<'_, D>,
743 offset: usize,
744 _depth: fidl::encoding::Depth,
745 ) -> fidl::Result<()> {
746 decoder.debug_check_bounds::<Self>(offset);
747 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
749 let padval = unsafe { (ptr as *const u64).read_unaligned() };
750 let mask = 0xffffffff00000000u64;
751 let maskedval = padval & mask;
752 if maskedval != 0 {
753 return Err(fidl::Error::NonZeroPadding {
754 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
755 });
756 }
757 fidl::decode!(CompatibilityState, D, &mut self.state, decoder, offset + 0, _depth)?;
758 fidl::decode!(u64, D, &mut self.platform_abi, decoder, offset + 8, _depth)?;
759 fidl::decode!(
760 fidl::encoding::UnboundedString,
761 D,
762 &mut self.message,
763 decoder,
764 offset + 16,
765 _depth
766 )?;
767 Ok(())
768 }
769 }
770
771 impl fidl::encoding::ValueTypeMarker for RemoteControlEchoStringRequest {
772 type Borrowed<'a> = &'a Self;
773 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
774 value
775 }
776 }
777
778 unsafe impl fidl::encoding::TypeMarker for RemoteControlEchoStringRequest {
779 type Owned = Self;
780
781 #[inline(always)]
782 fn inline_align(_context: fidl::encoding::Context) -> usize {
783 8
784 }
785
786 #[inline(always)]
787 fn inline_size(_context: fidl::encoding::Context) -> usize {
788 16
789 }
790 }
791
792 unsafe impl<D: fidl::encoding::ResourceDialect>
793 fidl::encoding::Encode<RemoteControlEchoStringRequest, D>
794 for &RemoteControlEchoStringRequest
795 {
796 #[inline]
797 unsafe fn encode(
798 self,
799 encoder: &mut fidl::encoding::Encoder<'_, D>,
800 offset: usize,
801 _depth: fidl::encoding::Depth,
802 ) -> fidl::Result<()> {
803 encoder.debug_check_bounds::<RemoteControlEchoStringRequest>(offset);
804 fidl::encoding::Encode::<RemoteControlEchoStringRequest, D>::encode(
806 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
807 &self.value,
808 ),),
809 encoder,
810 offset,
811 _depth,
812 )
813 }
814 }
815 unsafe impl<
816 D: fidl::encoding::ResourceDialect,
817 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
818 > fidl::encoding::Encode<RemoteControlEchoStringRequest, D> for (T0,)
819 {
820 #[inline]
821 unsafe fn encode(
822 self,
823 encoder: &mut fidl::encoding::Encoder<'_, D>,
824 offset: usize,
825 depth: fidl::encoding::Depth,
826 ) -> fidl::Result<()> {
827 encoder.debug_check_bounds::<RemoteControlEchoStringRequest>(offset);
828 self.0.encode(encoder, offset + 0, depth)?;
832 Ok(())
833 }
834 }
835
836 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
837 for RemoteControlEchoStringRequest
838 {
839 #[inline(always)]
840 fn new_empty() -> Self {
841 Self { value: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
842 }
843
844 #[inline]
845 unsafe fn decode(
846 &mut self,
847 decoder: &mut fidl::encoding::Decoder<'_, D>,
848 offset: usize,
849 _depth: fidl::encoding::Depth,
850 ) -> fidl::Result<()> {
851 decoder.debug_check_bounds::<Self>(offset);
852 fidl::decode!(
854 fidl::encoding::BoundedString<255>,
855 D,
856 &mut self.value,
857 decoder,
858 offset + 0,
859 _depth
860 )?;
861 Ok(())
862 }
863 }
864
865 impl fidl::encoding::ValueTypeMarker for RemoteControlEchoStringResponse {
866 type Borrowed<'a> = &'a Self;
867 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
868 value
869 }
870 }
871
872 unsafe impl fidl::encoding::TypeMarker for RemoteControlEchoStringResponse {
873 type Owned = Self;
874
875 #[inline(always)]
876 fn inline_align(_context: fidl::encoding::Context) -> usize {
877 8
878 }
879
880 #[inline(always)]
881 fn inline_size(_context: fidl::encoding::Context) -> usize {
882 16
883 }
884 }
885
886 unsafe impl<D: fidl::encoding::ResourceDialect>
887 fidl::encoding::Encode<RemoteControlEchoStringResponse, D>
888 for &RemoteControlEchoStringResponse
889 {
890 #[inline]
891 unsafe fn encode(
892 self,
893 encoder: &mut fidl::encoding::Encoder<'_, D>,
894 offset: usize,
895 _depth: fidl::encoding::Depth,
896 ) -> fidl::Result<()> {
897 encoder.debug_check_bounds::<RemoteControlEchoStringResponse>(offset);
898 fidl::encoding::Encode::<RemoteControlEchoStringResponse, D>::encode(
900 (<fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
901 &self.response,
902 ),),
903 encoder,
904 offset,
905 _depth,
906 )
907 }
908 }
909 unsafe impl<
910 D: fidl::encoding::ResourceDialect,
911 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
912 > fidl::encoding::Encode<RemoteControlEchoStringResponse, D> for (T0,)
913 {
914 #[inline]
915 unsafe fn encode(
916 self,
917 encoder: &mut fidl::encoding::Encoder<'_, D>,
918 offset: usize,
919 depth: fidl::encoding::Depth,
920 ) -> fidl::Result<()> {
921 encoder.debug_check_bounds::<RemoteControlEchoStringResponse>(offset);
922 self.0.encode(encoder, offset + 0, depth)?;
926 Ok(())
927 }
928 }
929
930 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
931 for RemoteControlEchoStringResponse
932 {
933 #[inline(always)]
934 fn new_empty() -> Self {
935 Self { response: fidl::new_empty!(fidl::encoding::BoundedString<255>, D) }
936 }
937
938 #[inline]
939 unsafe fn decode(
940 &mut self,
941 decoder: &mut fidl::encoding::Decoder<'_, D>,
942 offset: usize,
943 _depth: fidl::encoding::Depth,
944 ) -> fidl::Result<()> {
945 decoder.debug_check_bounds::<Self>(offset);
946 fidl::decode!(
948 fidl::encoding::BoundedString<255>,
949 D,
950 &mut self.response,
951 decoder,
952 offset + 0,
953 _depth
954 )?;
955 Ok(())
956 }
957 }
958
959 impl fidl::encoding::ValueTypeMarker for RemoteControlGetBootTimeResponse {
960 type Borrowed<'a> = &'a Self;
961 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
962 value
963 }
964 }
965
966 unsafe impl fidl::encoding::TypeMarker for RemoteControlGetBootTimeResponse {
967 type Owned = Self;
968
969 #[inline(always)]
970 fn inline_align(_context: fidl::encoding::Context) -> usize {
971 8
972 }
973
974 #[inline(always)]
975 fn inline_size(_context: fidl::encoding::Context) -> usize {
976 8
977 }
978 #[inline(always)]
979 fn encode_is_copy() -> bool {
980 true
981 }
982
983 #[inline(always)]
984 fn decode_is_copy() -> bool {
985 true
986 }
987 }
988
989 unsafe impl<D: fidl::encoding::ResourceDialect>
990 fidl::encoding::Encode<RemoteControlGetBootTimeResponse, D>
991 for &RemoteControlGetBootTimeResponse
992 {
993 #[inline]
994 unsafe fn encode(
995 self,
996 encoder: &mut fidl::encoding::Encoder<'_, D>,
997 offset: usize,
998 _depth: fidl::encoding::Depth,
999 ) -> fidl::Result<()> {
1000 encoder.debug_check_bounds::<RemoteControlGetBootTimeResponse>(offset);
1001 unsafe {
1002 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1004 (buf_ptr as *mut RemoteControlGetBootTimeResponse)
1005 .write_unaligned((self as *const RemoteControlGetBootTimeResponse).read());
1006 }
1009 Ok(())
1010 }
1011 }
1012 unsafe impl<
1013 D: fidl::encoding::ResourceDialect,
1014 T0: fidl::encoding::Encode<fidl::BootInstant, D>,
1015 > fidl::encoding::Encode<RemoteControlGetBootTimeResponse, D> for (T0,)
1016 {
1017 #[inline]
1018 unsafe fn encode(
1019 self,
1020 encoder: &mut fidl::encoding::Encoder<'_, D>,
1021 offset: usize,
1022 depth: fidl::encoding::Depth,
1023 ) -> fidl::Result<()> {
1024 encoder.debug_check_bounds::<RemoteControlGetBootTimeResponse>(offset);
1025 self.0.encode(encoder, offset + 0, depth)?;
1029 Ok(())
1030 }
1031 }
1032
1033 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1034 for RemoteControlGetBootTimeResponse
1035 {
1036 #[inline(always)]
1037 fn new_empty() -> Self {
1038 Self { time: fidl::new_empty!(fidl::BootInstant, D) }
1039 }
1040
1041 #[inline]
1042 unsafe fn decode(
1043 &mut self,
1044 decoder: &mut fidl::encoding::Decoder<'_, D>,
1045 offset: usize,
1046 _depth: fidl::encoding::Depth,
1047 ) -> fidl::Result<()> {
1048 decoder.debug_check_bounds::<Self>(offset);
1049 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1050 unsafe {
1053 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1054 }
1055 Ok(())
1056 }
1057 }
1058
1059 impl fidl::encoding::ValueTypeMarker for RemoteControlGetTimeResponse {
1060 type Borrowed<'a> = &'a Self;
1061 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1062 value
1063 }
1064 }
1065
1066 unsafe impl fidl::encoding::TypeMarker for RemoteControlGetTimeResponse {
1067 type Owned = Self;
1068
1069 #[inline(always)]
1070 fn inline_align(_context: fidl::encoding::Context) -> usize {
1071 8
1072 }
1073
1074 #[inline(always)]
1075 fn inline_size(_context: fidl::encoding::Context) -> usize {
1076 8
1077 }
1078 #[inline(always)]
1079 fn encode_is_copy() -> bool {
1080 true
1081 }
1082
1083 #[inline(always)]
1084 fn decode_is_copy() -> bool {
1085 true
1086 }
1087 }
1088
1089 unsafe impl<D: fidl::encoding::ResourceDialect>
1090 fidl::encoding::Encode<RemoteControlGetTimeResponse, D> for &RemoteControlGetTimeResponse
1091 {
1092 #[inline]
1093 unsafe fn encode(
1094 self,
1095 encoder: &mut fidl::encoding::Encoder<'_, D>,
1096 offset: usize,
1097 _depth: fidl::encoding::Depth,
1098 ) -> fidl::Result<()> {
1099 encoder.debug_check_bounds::<RemoteControlGetTimeResponse>(offset);
1100 unsafe {
1101 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1103 (buf_ptr as *mut RemoteControlGetTimeResponse)
1104 .write_unaligned((self as *const RemoteControlGetTimeResponse).read());
1105 }
1108 Ok(())
1109 }
1110 }
1111 unsafe impl<
1112 D: fidl::encoding::ResourceDialect,
1113 T0: fidl::encoding::Encode<fidl::MonotonicInstant, D>,
1114 > fidl::encoding::Encode<RemoteControlGetTimeResponse, D> for (T0,)
1115 {
1116 #[inline]
1117 unsafe fn encode(
1118 self,
1119 encoder: &mut fidl::encoding::Encoder<'_, D>,
1120 offset: usize,
1121 depth: fidl::encoding::Depth,
1122 ) -> fidl::Result<()> {
1123 encoder.debug_check_bounds::<RemoteControlGetTimeResponse>(offset);
1124 self.0.encode(encoder, offset + 0, depth)?;
1128 Ok(())
1129 }
1130 }
1131
1132 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1133 for RemoteControlGetTimeResponse
1134 {
1135 #[inline(always)]
1136 fn new_empty() -> Self {
1137 Self { time: fidl::new_empty!(fidl::MonotonicInstant, D) }
1138 }
1139
1140 #[inline]
1141 unsafe fn decode(
1142 &mut self,
1143 decoder: &mut fidl::encoding::Decoder<'_, D>,
1144 offset: usize,
1145 _depth: fidl::encoding::Depth,
1146 ) -> fidl::Result<()> {
1147 decoder.debug_check_bounds::<Self>(offset);
1148 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1149 unsafe {
1152 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
1153 }
1154 Ok(())
1155 }
1156 }
1157
1158 impl fidl::encoding::ValueTypeMarker for RemoteControlLogMessageRequest {
1159 type Borrowed<'a> = &'a Self;
1160 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1161 value
1162 }
1163 }
1164
1165 unsafe impl fidl::encoding::TypeMarker for RemoteControlLogMessageRequest {
1166 type Owned = Self;
1167
1168 #[inline(always)]
1169 fn inline_align(_context: fidl::encoding::Context) -> usize {
1170 8
1171 }
1172
1173 #[inline(always)]
1174 fn inline_size(_context: fidl::encoding::Context) -> usize {
1175 40
1176 }
1177 }
1178
1179 unsafe impl<D: fidl::encoding::ResourceDialect>
1180 fidl::encoding::Encode<RemoteControlLogMessageRequest, D>
1181 for &RemoteControlLogMessageRequest
1182 {
1183 #[inline]
1184 unsafe fn encode(
1185 self,
1186 encoder: &mut fidl::encoding::Encoder<'_, D>,
1187 offset: usize,
1188 _depth: fidl::encoding::Depth,
1189 ) -> fidl::Result<()> {
1190 encoder.debug_check_bounds::<RemoteControlLogMessageRequest>(offset);
1191 fidl::encoding::Encode::<RemoteControlLogMessageRequest, D>::encode(
1193 (
1194 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.tag),
1195 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(&self.message),
1196 <fidl_fuchsia_diagnostics_types_common::Severity as fidl::encoding::ValueTypeMarker>::borrow(&self.severity),
1197 ),
1198 encoder, offset, _depth
1199 )
1200 }
1201 }
1202 unsafe impl<
1203 D: fidl::encoding::ResourceDialect,
1204 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
1205 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
1206 T2: fidl::encoding::Encode<fidl_fuchsia_diagnostics_types_common::Severity, D>,
1207 > fidl::encoding::Encode<RemoteControlLogMessageRequest, D> for (T0, T1, T2)
1208 {
1209 #[inline]
1210 unsafe fn encode(
1211 self,
1212 encoder: &mut fidl::encoding::Encoder<'_, D>,
1213 offset: usize,
1214 depth: fidl::encoding::Depth,
1215 ) -> fidl::Result<()> {
1216 encoder.debug_check_bounds::<RemoteControlLogMessageRequest>(offset);
1217 unsafe {
1220 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
1221 (ptr as *mut u64).write_unaligned(0);
1222 }
1223 self.0.encode(encoder, offset + 0, depth)?;
1225 self.1.encode(encoder, offset + 16, depth)?;
1226 self.2.encode(encoder, offset + 32, depth)?;
1227 Ok(())
1228 }
1229 }
1230
1231 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1232 for RemoteControlLogMessageRequest
1233 {
1234 #[inline(always)]
1235 fn new_empty() -> Self {
1236 Self {
1237 tag: fidl::new_empty!(fidl::encoding::UnboundedString, D),
1238 message: fidl::new_empty!(fidl::encoding::UnboundedString, D),
1239 severity: fidl::new_empty!(fidl_fuchsia_diagnostics_types_common::Severity, D),
1240 }
1241 }
1242
1243 #[inline]
1244 unsafe fn decode(
1245 &mut self,
1246 decoder: &mut fidl::encoding::Decoder<'_, D>,
1247 offset: usize,
1248 _depth: fidl::encoding::Depth,
1249 ) -> fidl::Result<()> {
1250 decoder.debug_check_bounds::<Self>(offset);
1251 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
1253 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1254 let mask = 0xffffffffffffff00u64;
1255 let maskedval = padval & mask;
1256 if maskedval != 0 {
1257 return Err(fidl::Error::NonZeroPadding {
1258 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
1259 });
1260 }
1261 fidl::decode!(
1262 fidl::encoding::UnboundedString,
1263 D,
1264 &mut self.tag,
1265 decoder,
1266 offset + 0,
1267 _depth
1268 )?;
1269 fidl::decode!(
1270 fidl::encoding::UnboundedString,
1271 D,
1272 &mut self.message,
1273 decoder,
1274 offset + 16,
1275 _depth
1276 )?;
1277 fidl::decode!(
1278 fidl_fuchsia_diagnostics_types_common::Severity,
1279 D,
1280 &mut self.severity,
1281 decoder,
1282 offset + 32,
1283 _depth
1284 )?;
1285 Ok(())
1286 }
1287 }
1288
1289 impl fidl::encoding::ValueTypeMarker for RemoteControlIdentifyHostResponse {
1290 type Borrowed<'a> = &'a Self;
1291 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1292 value
1293 }
1294 }
1295
1296 unsafe impl fidl::encoding::TypeMarker for RemoteControlIdentifyHostResponse {
1297 type Owned = Self;
1298
1299 #[inline(always)]
1300 fn inline_align(_context: fidl::encoding::Context) -> usize {
1301 8
1302 }
1303
1304 #[inline(always)]
1305 fn inline_size(_context: fidl::encoding::Context) -> usize {
1306 16
1307 }
1308 }
1309
1310 unsafe impl<D: fidl::encoding::ResourceDialect>
1311 fidl::encoding::Encode<RemoteControlIdentifyHostResponse, D>
1312 for &RemoteControlIdentifyHostResponse
1313 {
1314 #[inline]
1315 unsafe fn encode(
1316 self,
1317 encoder: &mut fidl::encoding::Encoder<'_, D>,
1318 offset: usize,
1319 _depth: fidl::encoding::Depth,
1320 ) -> fidl::Result<()> {
1321 encoder.debug_check_bounds::<RemoteControlIdentifyHostResponse>(offset);
1322 fidl::encoding::Encode::<RemoteControlIdentifyHostResponse, D>::encode(
1324 (<IdentifyHostResponse as fidl::encoding::ValueTypeMarker>::borrow(&self.response),),
1325 encoder,
1326 offset,
1327 _depth,
1328 )
1329 }
1330 }
1331 unsafe impl<
1332 D: fidl::encoding::ResourceDialect,
1333 T0: fidl::encoding::Encode<IdentifyHostResponse, D>,
1334 > fidl::encoding::Encode<RemoteControlIdentifyHostResponse, D> for (T0,)
1335 {
1336 #[inline]
1337 unsafe fn encode(
1338 self,
1339 encoder: &mut fidl::encoding::Encoder<'_, D>,
1340 offset: usize,
1341 depth: fidl::encoding::Depth,
1342 ) -> fidl::Result<()> {
1343 encoder.debug_check_bounds::<RemoteControlIdentifyHostResponse>(offset);
1344 self.0.encode(encoder, offset + 0, depth)?;
1348 Ok(())
1349 }
1350 }
1351
1352 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1353 for RemoteControlIdentifyHostResponse
1354 {
1355 #[inline(always)]
1356 fn new_empty() -> Self {
1357 Self { response: fidl::new_empty!(IdentifyHostResponse, D) }
1358 }
1359
1360 #[inline]
1361 unsafe fn decode(
1362 &mut self,
1363 decoder: &mut fidl::encoding::Decoder<'_, D>,
1364 offset: usize,
1365 _depth: fidl::encoding::Depth,
1366 ) -> fidl::Result<()> {
1367 decoder.debug_check_bounds::<Self>(offset);
1368 fidl::decode!(
1370 IdentifyHostResponse,
1371 D,
1372 &mut self.response,
1373 decoder,
1374 offset + 0,
1375 _depth
1376 )?;
1377 Ok(())
1378 }
1379 }
1380
1381 impl IdentifyHostResponse {
1382 #[inline(always)]
1383 fn max_ordinal_present(&self) -> u64 {
1384 if let Some(_) = self.f_release {
1385 return 10;
1386 }
1387 if let Some(_) = self.boot_id {
1388 return 9;
1389 }
1390 if let Some(_) = self.addresses {
1391 return 8;
1392 }
1393 if let Some(_) = self.board_config {
1394 return 7;
1395 }
1396 if let Some(_) = self.product_config {
1397 return 6;
1398 }
1399 if let Some(_) = self.ids {
1400 return 5;
1401 }
1402 if let Some(_) = self.serial_number {
1403 return 4;
1404 }
1405 if let Some(_) = self.boot_timestamp_nanos {
1406 return 3;
1407 }
1408 if let Some(_) = self.nodename {
1409 return 2;
1410 }
1411 0
1412 }
1413 }
1414
1415 impl fidl::encoding::ValueTypeMarker for IdentifyHostResponse {
1416 type Borrowed<'a> = &'a Self;
1417 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1418 value
1419 }
1420 }
1421
1422 unsafe impl fidl::encoding::TypeMarker for IdentifyHostResponse {
1423 type Owned = Self;
1424
1425 #[inline(always)]
1426 fn inline_align(_context: fidl::encoding::Context) -> usize {
1427 8
1428 }
1429
1430 #[inline(always)]
1431 fn inline_size(_context: fidl::encoding::Context) -> usize {
1432 16
1433 }
1434 }
1435
1436 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<IdentifyHostResponse, D>
1437 for &IdentifyHostResponse
1438 {
1439 unsafe fn encode(
1440 self,
1441 encoder: &mut fidl::encoding::Encoder<'_, D>,
1442 offset: usize,
1443 mut depth: fidl::encoding::Depth,
1444 ) -> fidl::Result<()> {
1445 encoder.debug_check_bounds::<IdentifyHostResponse>(offset);
1446 let max_ordinal: u64 = self.max_ordinal_present();
1448 encoder.write_num(max_ordinal, offset);
1449 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1450 if max_ordinal == 0 {
1452 return Ok(());
1453 }
1454 depth.increment()?;
1455 let envelope_size = 8;
1456 let bytes_len = max_ordinal as usize * envelope_size;
1457 #[allow(unused_variables)]
1458 let offset = encoder.out_of_line_offset(bytes_len);
1459 let mut _prev_end_offset: usize = 0;
1460 if 2 > max_ordinal {
1461 return Ok(());
1462 }
1463
1464 let cur_offset: usize = (2 - 1) * envelope_size;
1467
1468 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1470
1471 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
1476 self.nodename.as_ref().map(
1477 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
1478 ),
1479 encoder,
1480 offset + cur_offset,
1481 depth,
1482 )?;
1483
1484 _prev_end_offset = cur_offset + envelope_size;
1485 if 3 > max_ordinal {
1486 return Ok(());
1487 }
1488
1489 let cur_offset: usize = (3 - 1) * envelope_size;
1492
1493 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1495
1496 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1501 self.boot_timestamp_nanos
1502 .as_ref()
1503 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1504 encoder,
1505 offset + cur_offset,
1506 depth,
1507 )?;
1508
1509 _prev_end_offset = cur_offset + envelope_size;
1510 if 4 > max_ordinal {
1511 return Ok(());
1512 }
1513
1514 let cur_offset: usize = (4 - 1) * envelope_size;
1517
1518 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1520
1521 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
1526 self.serial_number.as_ref().map(
1527 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
1528 ),
1529 encoder,
1530 offset + cur_offset,
1531 depth,
1532 )?;
1533
1534 _prev_end_offset = cur_offset + envelope_size;
1535 if 5 > max_ordinal {
1536 return Ok(());
1537 }
1538
1539 let cur_offset: usize = (5 - 1) * envelope_size;
1542
1543 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1545
1546 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
1551 self.ids.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
1552 encoder, offset + cur_offset, depth
1553 )?;
1554
1555 _prev_end_offset = cur_offset + envelope_size;
1556 if 6 > max_ordinal {
1557 return Ok(());
1558 }
1559
1560 let cur_offset: usize = (6 - 1) * envelope_size;
1563
1564 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1566
1567 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
1572 self.product_config.as_ref().map(
1573 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
1574 ),
1575 encoder,
1576 offset + cur_offset,
1577 depth,
1578 )?;
1579
1580 _prev_end_offset = cur_offset + envelope_size;
1581 if 7 > max_ordinal {
1582 return Ok(());
1583 }
1584
1585 let cur_offset: usize = (7 - 1) * envelope_size;
1588
1589 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1591
1592 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
1597 self.board_config.as_ref().map(
1598 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
1599 ),
1600 encoder,
1601 offset + cur_offset,
1602 depth,
1603 )?;
1604
1605 _prev_end_offset = cur_offset + envelope_size;
1606 if 8 > max_ordinal {
1607 return Ok(());
1608 }
1609
1610 let cur_offset: usize = (8 - 1) * envelope_size;
1613
1614 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1616
1617 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl_fuchsia_net_common::Subnet>, D>(
1622 self.addresses.as_ref().map(<fidl::encoding::UnboundedVector<fidl_fuchsia_net_common::Subnet> as fidl::encoding::ValueTypeMarker>::borrow),
1623 encoder, offset + cur_offset, depth
1624 )?;
1625
1626 _prev_end_offset = cur_offset + envelope_size;
1627 if 9 > max_ordinal {
1628 return Ok(());
1629 }
1630
1631 let cur_offset: usize = (9 - 1) * envelope_size;
1634
1635 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1637
1638 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1643 self.boot_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1644 encoder,
1645 offset + cur_offset,
1646 depth,
1647 )?;
1648
1649 _prev_end_offset = cur_offset + envelope_size;
1650 if 10 > max_ordinal {
1651 return Ok(());
1652 }
1653
1654 let cur_offset: usize = (10 - 1) * envelope_size;
1657
1658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1660
1661 fidl::encoding::encode_in_envelope_optional::<u32, D>(
1666 self.f_release.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
1667 encoder,
1668 offset + cur_offset,
1669 depth,
1670 )?;
1671
1672 _prev_end_offset = cur_offset + envelope_size;
1673
1674 Ok(())
1675 }
1676 }
1677
1678 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IdentifyHostResponse {
1679 #[inline(always)]
1680 fn new_empty() -> Self {
1681 Self::default()
1682 }
1683
1684 unsafe fn decode(
1685 &mut self,
1686 decoder: &mut fidl::encoding::Decoder<'_, D>,
1687 offset: usize,
1688 mut depth: fidl::encoding::Depth,
1689 ) -> fidl::Result<()> {
1690 decoder.debug_check_bounds::<Self>(offset);
1691 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1692 None => return Err(fidl::Error::NotNullable),
1693 Some(len) => len,
1694 };
1695 if len == 0 {
1697 return Ok(());
1698 };
1699 depth.increment()?;
1700 let envelope_size = 8;
1701 let bytes_len = len * envelope_size;
1702 let offset = decoder.out_of_line_offset(bytes_len)?;
1703 let mut _next_ordinal_to_read = 0;
1705 let mut next_offset = offset;
1706 let end_offset = offset + bytes_len;
1707 _next_ordinal_to_read += 1;
1708 if next_offset >= end_offset {
1709 return Ok(());
1710 }
1711
1712 while _next_ordinal_to_read < 2 {
1714 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1715 _next_ordinal_to_read += 1;
1716 next_offset += envelope_size;
1717 }
1718
1719 let next_out_of_line = decoder.next_out_of_line();
1720 let handles_before = decoder.remaining_handles();
1721 if let Some((inlined, num_bytes, num_handles)) =
1722 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1723 {
1724 let member_inline_size =
1725 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
1726 decoder.context,
1727 );
1728 if inlined != (member_inline_size <= 4) {
1729 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1730 }
1731 let inner_offset;
1732 let mut inner_depth = depth.clone();
1733 if inlined {
1734 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1735 inner_offset = next_offset;
1736 } else {
1737 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1738 inner_depth.increment()?;
1739 }
1740 let val_ref = self
1741 .nodename
1742 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
1743 fidl::decode!(
1744 fidl::encoding::BoundedString<255>,
1745 D,
1746 val_ref,
1747 decoder,
1748 inner_offset,
1749 inner_depth
1750 )?;
1751 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1752 {
1753 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1754 }
1755 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1756 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1757 }
1758 }
1759
1760 next_offset += envelope_size;
1761 _next_ordinal_to_read += 1;
1762 if next_offset >= end_offset {
1763 return Ok(());
1764 }
1765
1766 while _next_ordinal_to_read < 3 {
1768 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1769 _next_ordinal_to_read += 1;
1770 next_offset += envelope_size;
1771 }
1772
1773 let next_out_of_line = decoder.next_out_of_line();
1774 let handles_before = decoder.remaining_handles();
1775 if let Some((inlined, num_bytes, num_handles)) =
1776 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1777 {
1778 let member_inline_size =
1779 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1780 if inlined != (member_inline_size <= 4) {
1781 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1782 }
1783 let inner_offset;
1784 let mut inner_depth = depth.clone();
1785 if inlined {
1786 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1787 inner_offset = next_offset;
1788 } else {
1789 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1790 inner_depth.increment()?;
1791 }
1792 let val_ref =
1793 self.boot_timestamp_nanos.get_or_insert_with(|| fidl::new_empty!(u64, D));
1794 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1795 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1796 {
1797 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1798 }
1799 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1800 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1801 }
1802 }
1803
1804 next_offset += envelope_size;
1805 _next_ordinal_to_read += 1;
1806 if next_offset >= end_offset {
1807 return Ok(());
1808 }
1809
1810 while _next_ordinal_to_read < 4 {
1812 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1813 _next_ordinal_to_read += 1;
1814 next_offset += envelope_size;
1815 }
1816
1817 let next_out_of_line = decoder.next_out_of_line();
1818 let handles_before = decoder.remaining_handles();
1819 if let Some((inlined, num_bytes, num_handles)) =
1820 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1821 {
1822 let member_inline_size =
1823 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
1824 decoder.context,
1825 );
1826 if inlined != (member_inline_size <= 4) {
1827 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1828 }
1829 let inner_offset;
1830 let mut inner_depth = depth.clone();
1831 if inlined {
1832 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1833 inner_offset = next_offset;
1834 } else {
1835 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1836 inner_depth.increment()?;
1837 }
1838 let val_ref = self
1839 .serial_number
1840 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
1841 fidl::decode!(
1842 fidl::encoding::BoundedString<255>,
1843 D,
1844 val_ref,
1845 decoder,
1846 inner_offset,
1847 inner_depth
1848 )?;
1849 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1850 {
1851 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1852 }
1853 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1854 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1855 }
1856 }
1857
1858 next_offset += envelope_size;
1859 _next_ordinal_to_read += 1;
1860 if next_offset >= end_offset {
1861 return Ok(());
1862 }
1863
1864 while _next_ordinal_to_read < 5 {
1866 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1867 _next_ordinal_to_read += 1;
1868 next_offset += envelope_size;
1869 }
1870
1871 let next_out_of_line = decoder.next_out_of_line();
1872 let handles_before = decoder.remaining_handles();
1873 if let Some((inlined, num_bytes, num_handles)) =
1874 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1875 {
1876 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1877 if inlined != (member_inline_size <= 4) {
1878 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1879 }
1880 let inner_offset;
1881 let mut inner_depth = depth.clone();
1882 if inlined {
1883 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1884 inner_offset = next_offset;
1885 } else {
1886 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1887 inner_depth.increment()?;
1888 }
1889 let val_ref = self.ids.get_or_insert_with(|| {
1890 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
1891 });
1892 fidl::decode!(
1893 fidl::encoding::UnboundedVector<u64>,
1894 D,
1895 val_ref,
1896 decoder,
1897 inner_offset,
1898 inner_depth
1899 )?;
1900 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1901 {
1902 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1903 }
1904 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1905 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1906 }
1907 }
1908
1909 next_offset += envelope_size;
1910 _next_ordinal_to_read += 1;
1911 if next_offset >= end_offset {
1912 return Ok(());
1913 }
1914
1915 while _next_ordinal_to_read < 6 {
1917 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1918 _next_ordinal_to_read += 1;
1919 next_offset += envelope_size;
1920 }
1921
1922 let next_out_of_line = decoder.next_out_of_line();
1923 let handles_before = decoder.remaining_handles();
1924 if let Some((inlined, num_bytes, num_handles)) =
1925 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1926 {
1927 let member_inline_size =
1928 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
1929 decoder.context,
1930 );
1931 if inlined != (member_inline_size <= 4) {
1932 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1933 }
1934 let inner_offset;
1935 let mut inner_depth = depth.clone();
1936 if inlined {
1937 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1938 inner_offset = next_offset;
1939 } else {
1940 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1941 inner_depth.increment()?;
1942 }
1943 let val_ref = self
1944 .product_config
1945 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
1946 fidl::decode!(
1947 fidl::encoding::BoundedString<100>,
1948 D,
1949 val_ref,
1950 decoder,
1951 inner_offset,
1952 inner_depth
1953 )?;
1954 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1955 {
1956 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1957 }
1958 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1959 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1960 }
1961 }
1962
1963 next_offset += envelope_size;
1964 _next_ordinal_to_read += 1;
1965 if next_offset >= end_offset {
1966 return Ok(());
1967 }
1968
1969 while _next_ordinal_to_read < 7 {
1971 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1972 _next_ordinal_to_read += 1;
1973 next_offset += envelope_size;
1974 }
1975
1976 let next_out_of_line = decoder.next_out_of_line();
1977 let handles_before = decoder.remaining_handles();
1978 if let Some((inlined, num_bytes, num_handles)) =
1979 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1980 {
1981 let member_inline_size =
1982 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
1983 decoder.context,
1984 );
1985 if inlined != (member_inline_size <= 4) {
1986 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1987 }
1988 let inner_offset;
1989 let mut inner_depth = depth.clone();
1990 if inlined {
1991 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1992 inner_offset = next_offset;
1993 } else {
1994 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1995 inner_depth.increment()?;
1996 }
1997 let val_ref = self
1998 .board_config
1999 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
2000 fidl::decode!(
2001 fidl::encoding::BoundedString<100>,
2002 D,
2003 val_ref,
2004 decoder,
2005 inner_offset,
2006 inner_depth
2007 )?;
2008 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2009 {
2010 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2011 }
2012 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2013 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2014 }
2015 }
2016
2017 next_offset += envelope_size;
2018 _next_ordinal_to_read += 1;
2019 if next_offset >= end_offset {
2020 return Ok(());
2021 }
2022
2023 while _next_ordinal_to_read < 8 {
2025 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2026 _next_ordinal_to_read += 1;
2027 next_offset += envelope_size;
2028 }
2029
2030 let next_out_of_line = decoder.next_out_of_line();
2031 let handles_before = decoder.remaining_handles();
2032 if let Some((inlined, num_bytes, num_handles)) =
2033 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2034 {
2035 let member_inline_size = <fidl::encoding::UnboundedVector<
2036 fidl_fuchsia_net_common::Subnet,
2037 > as fidl::encoding::TypeMarker>::inline_size(
2038 decoder.context
2039 );
2040 if inlined != (member_inline_size <= 4) {
2041 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2042 }
2043 let inner_offset;
2044 let mut inner_depth = depth.clone();
2045 if inlined {
2046 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2047 inner_offset = next_offset;
2048 } else {
2049 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2050 inner_depth.increment()?;
2051 }
2052 let val_ref = self.addresses.get_or_insert_with(|| {
2053 fidl::new_empty!(
2054 fidl::encoding::UnboundedVector<fidl_fuchsia_net_common::Subnet>,
2055 D
2056 )
2057 });
2058 fidl::decode!(
2059 fidl::encoding::UnboundedVector<fidl_fuchsia_net_common::Subnet>,
2060 D,
2061 val_ref,
2062 decoder,
2063 inner_offset,
2064 inner_depth
2065 )?;
2066 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2067 {
2068 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2069 }
2070 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2071 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2072 }
2073 }
2074
2075 next_offset += envelope_size;
2076 _next_ordinal_to_read += 1;
2077 if next_offset >= end_offset {
2078 return Ok(());
2079 }
2080
2081 while _next_ordinal_to_read < 9 {
2083 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2084 _next_ordinal_to_read += 1;
2085 next_offset += envelope_size;
2086 }
2087
2088 let next_out_of_line = decoder.next_out_of_line();
2089 let handles_before = decoder.remaining_handles();
2090 if let Some((inlined, num_bytes, num_handles)) =
2091 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2092 {
2093 let member_inline_size =
2094 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2095 if inlined != (member_inline_size <= 4) {
2096 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2097 }
2098 let inner_offset;
2099 let mut inner_depth = depth.clone();
2100 if inlined {
2101 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2102 inner_offset = next_offset;
2103 } else {
2104 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2105 inner_depth.increment()?;
2106 }
2107 let val_ref = self.boot_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
2108 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2109 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2110 {
2111 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2112 }
2113 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2114 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2115 }
2116 }
2117
2118 next_offset += envelope_size;
2119 _next_ordinal_to_read += 1;
2120 if next_offset >= end_offset {
2121 return Ok(());
2122 }
2123
2124 while _next_ordinal_to_read < 10 {
2126 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2127 _next_ordinal_to_read += 1;
2128 next_offset += envelope_size;
2129 }
2130
2131 let next_out_of_line = decoder.next_out_of_line();
2132 let handles_before = decoder.remaining_handles();
2133 if let Some((inlined, num_bytes, num_handles)) =
2134 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2135 {
2136 let member_inline_size =
2137 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2138 if inlined != (member_inline_size <= 4) {
2139 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2140 }
2141 let inner_offset;
2142 let mut inner_depth = depth.clone();
2143 if inlined {
2144 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2145 inner_offset = next_offset;
2146 } else {
2147 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2148 inner_depth.increment()?;
2149 }
2150 let val_ref = self.f_release.get_or_insert_with(|| fidl::new_empty!(u32, D));
2151 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
2152 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2153 {
2154 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2155 }
2156 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2157 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2158 }
2159 }
2160
2161 next_offset += envelope_size;
2162
2163 while next_offset < end_offset {
2165 _next_ordinal_to_read += 1;
2166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2167 next_offset += envelope_size;
2168 }
2169
2170 Ok(())
2171 }
2172 }
2173}