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