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
11#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
13#[repr(u32)]
14pub enum AddressRemovalReason {
15 Invalid = 1,
17 AlreadyAssigned = 2,
19 DadFailed = 3,
23 InterfaceRemoved = 4,
25 UserRemoved = 5,
27 InvalidProperties = 6,
30 Forfeited = 7,
36}
37
38impl AddressRemovalReason {
39 #[inline]
40 pub fn from_primitive(prim: u32) -> Option<Self> {
41 match prim {
42 1 => Some(Self::Invalid),
43 2 => Some(Self::AlreadyAssigned),
44 3 => Some(Self::DadFailed),
45 4 => Some(Self::InterfaceRemoved),
46 5 => Some(Self::UserRemoved),
47 6 => Some(Self::InvalidProperties),
48 7 => Some(Self::Forfeited),
49 _ => None,
50 }
51 }
52
53 #[inline]
54 pub const fn into_primitive(self) -> u32 {
55 self as u32
56 }
57}
58
59#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
60pub enum ControlDisableError {
61 #[doc(hidden)]
62 __SourceBreaking { unknown_ordinal: u32 },
63}
64
65#[macro_export]
67macro_rules! ControlDisableErrorUnknown {
68 () => {
69 _
70 };
71}
72
73impl ControlDisableError {
74 #[inline]
75 pub fn from_primitive(prim: u32) -> Option<Self> {
76 match prim {
77 _ => None,
78 }
79 }
80
81 #[inline]
82 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
83 match prim {
84 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
85 }
86 }
87
88 #[inline]
89 pub fn unknown() -> Self {
90 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
91 }
92
93 #[inline]
94 pub const fn into_primitive(self) -> u32 {
95 match self {
96 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
97 }
98 }
99
100 #[inline]
101 pub fn is_unknown(&self) -> bool {
102 match self {
103 Self::__SourceBreaking { unknown_ordinal: _ } => true,
104 }
105 }
106}
107
108#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
109pub enum ControlEnableError {
110 #[doc(hidden)]
111 __SourceBreaking { unknown_ordinal: u32 },
112}
113
114#[macro_export]
116macro_rules! ControlEnableErrorUnknown {
117 () => {
118 _
119 };
120}
121
122impl ControlEnableError {
123 #[inline]
124 pub fn from_primitive(prim: u32) -> Option<Self> {
125 match prim {
126 _ => None,
127 }
128 }
129
130 #[inline]
131 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
132 match prim {
133 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
134 }
135 }
136
137 #[inline]
138 pub fn unknown() -> Self {
139 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
140 }
141
142 #[inline]
143 pub const fn into_primitive(self) -> u32 {
144 match self {
145 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
146 }
147 }
148
149 #[inline]
150 pub fn is_unknown(&self) -> bool {
151 match self {
152 Self::__SourceBreaking { unknown_ordinal: _ } => true,
153 }
154 }
155}
156
157#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
158pub enum ControlGetConfigurationError {
159 #[doc(hidden)]
160 __SourceBreaking { unknown_ordinal: u32 },
161}
162
163#[macro_export]
165macro_rules! ControlGetConfigurationErrorUnknown {
166 () => {
167 _
168 };
169}
170
171impl ControlGetConfigurationError {
172 #[inline]
173 pub fn from_primitive(prim: u32) -> Option<Self> {
174 match prim {
175 _ => None,
176 }
177 }
178
179 #[inline]
180 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
181 match prim {
182 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
183 }
184 }
185
186 #[inline]
187 pub fn unknown() -> Self {
188 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
189 }
190
191 #[inline]
192 pub const fn into_primitive(self) -> u32 {
193 match self {
194 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
195 }
196 }
197
198 #[inline]
199 pub fn is_unknown(&self) -> bool {
200 match self {
201 Self::__SourceBreaking { unknown_ordinal: _ } => true,
202 }
203 }
204}
205
206#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
207pub enum ControlRemoveAddressError {
208 #[doc(hidden)]
209 __SourceBreaking { unknown_ordinal: u32 },
210}
211
212#[macro_export]
214macro_rules! ControlRemoveAddressErrorUnknown {
215 () => {
216 _
217 };
218}
219
220impl ControlRemoveAddressError {
221 #[inline]
222 pub fn from_primitive(prim: u32) -> Option<Self> {
223 match prim {
224 _ => None,
225 }
226 }
227
228 #[inline]
229 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
230 match prim {
231 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
232 }
233 }
234
235 #[inline]
236 pub fn unknown() -> Self {
237 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
238 }
239
240 #[inline]
241 pub const fn into_primitive(self) -> u32 {
242 match self {
243 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
244 }
245 }
246
247 #[inline]
248 pub fn is_unknown(&self) -> bool {
249 match self {
250 Self::__SourceBreaking { unknown_ordinal: _ } => true,
251 }
252 }
253}
254
255#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
256pub enum ControlRemoveError {
257 NotAllowed,
259 #[doc(hidden)]
260 __SourceBreaking { unknown_ordinal: u32 },
261}
262
263#[macro_export]
265macro_rules! ControlRemoveErrorUnknown {
266 () => {
267 _
268 };
269}
270
271impl ControlRemoveError {
272 #[inline]
273 pub fn from_primitive(prim: u32) -> Option<Self> {
274 match prim {
275 1 => Some(Self::NotAllowed),
276 _ => None,
277 }
278 }
279
280 #[inline]
281 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
282 match prim {
283 1 => Self::NotAllowed,
284 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
285 }
286 }
287
288 #[inline]
289 pub fn unknown() -> Self {
290 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
291 }
292
293 #[inline]
294 pub const fn into_primitive(self) -> u32 {
295 match self {
296 Self::NotAllowed => 1,
297 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
298 }
299 }
300
301 #[inline]
302 pub fn is_unknown(&self) -> bool {
303 match self {
304 Self::__SourceBreaking { unknown_ordinal: _ } => true,
305 _ => false,
306 }
307 }
308}
309
310#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
311pub enum ControlSetConfigurationError {
312 Ipv4ForwardingUnsupported,
315 Ipv4MulticastForwardingUnsupported,
318 Ipv4IgmpVersionUnsupported,
321 Ipv6ForwardingUnsupported,
324 Ipv6MulticastForwardingUnsupported,
327 Ipv6MldVersionUnsupported,
330 IllegalZeroValue,
333 ArpNotSupported,
337 NdpNotSupported,
341 IllegalNegativeValue,
344 #[doc(hidden)]
345 __SourceBreaking { unknown_ordinal: u32 },
346}
347
348#[macro_export]
350macro_rules! ControlSetConfigurationErrorUnknown {
351 () => {
352 _
353 };
354}
355
356impl ControlSetConfigurationError {
357 #[inline]
358 pub fn from_primitive(prim: u32) -> Option<Self> {
359 match prim {
360 1 => Some(Self::Ipv4ForwardingUnsupported),
361 2 => Some(Self::Ipv4MulticastForwardingUnsupported),
362 3 => Some(Self::Ipv4IgmpVersionUnsupported),
363 4 => Some(Self::Ipv6ForwardingUnsupported),
364 5 => Some(Self::Ipv6MulticastForwardingUnsupported),
365 6 => Some(Self::Ipv6MldVersionUnsupported),
366 7 => Some(Self::IllegalZeroValue),
367 8 => Some(Self::ArpNotSupported),
368 9 => Some(Self::NdpNotSupported),
369 10 => Some(Self::IllegalNegativeValue),
370 _ => None,
371 }
372 }
373
374 #[inline]
375 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
376 match prim {
377 1 => Self::Ipv4ForwardingUnsupported,
378 2 => Self::Ipv4MulticastForwardingUnsupported,
379 3 => Self::Ipv4IgmpVersionUnsupported,
380 4 => Self::Ipv6ForwardingUnsupported,
381 5 => Self::Ipv6MulticastForwardingUnsupported,
382 6 => Self::Ipv6MldVersionUnsupported,
383 7 => Self::IllegalZeroValue,
384 8 => Self::ArpNotSupported,
385 9 => Self::NdpNotSupported,
386 10 => Self::IllegalNegativeValue,
387 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
388 }
389 }
390
391 #[inline]
392 pub fn unknown() -> Self {
393 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
394 }
395
396 #[inline]
397 pub const fn into_primitive(self) -> u32 {
398 match self {
399 Self::Ipv4ForwardingUnsupported => 1,
400 Self::Ipv4MulticastForwardingUnsupported => 2,
401 Self::Ipv4IgmpVersionUnsupported => 3,
402 Self::Ipv6ForwardingUnsupported => 4,
403 Self::Ipv6MulticastForwardingUnsupported => 5,
404 Self::Ipv6MldVersionUnsupported => 6,
405 Self::IllegalZeroValue => 7,
406 Self::ArpNotSupported => 8,
407 Self::NdpNotSupported => 9,
408 Self::IllegalNegativeValue => 10,
409 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
410 }
411 }
412
413 #[inline]
414 pub fn is_unknown(&self) -> bool {
415 match self {
416 Self::__SourceBreaking { unknown_ordinal: _ } => true,
417 _ => false,
418 }
419 }
420}
421
422#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
423pub enum IgmpVersion {
424 V1,
426 V2,
428 V3,
430 #[doc(hidden)]
431 __SourceBreaking { unknown_ordinal: u8 },
432}
433
434#[macro_export]
436macro_rules! IgmpVersionUnknown {
437 () => {
438 _
439 };
440}
441
442impl IgmpVersion {
443 #[inline]
444 pub fn from_primitive(prim: u8) -> Option<Self> {
445 match prim {
446 1 => Some(Self::V1),
447 2 => Some(Self::V2),
448 3 => Some(Self::V3),
449 _ => None,
450 }
451 }
452
453 #[inline]
454 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
455 match prim {
456 1 => Self::V1,
457 2 => Self::V2,
458 3 => Self::V3,
459 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
460 }
461 }
462
463 #[inline]
464 pub fn unknown() -> Self {
465 Self::__SourceBreaking { unknown_ordinal: 0xff }
466 }
467
468 #[inline]
469 pub const fn into_primitive(self) -> u8 {
470 match self {
471 Self::V1 => 1,
472 Self::V2 => 2,
473 Self::V3 => 3,
474 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
475 }
476 }
477
478 #[inline]
479 pub fn is_unknown(&self) -> bool {
480 match self {
481 Self::__SourceBreaking { unknown_ordinal: _ } => true,
482 _ => false,
483 }
484 }
485}
486
487#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
488pub enum InterfaceRemovedReason {
489 DuplicateName,
492 PortAlreadyBound,
494 BadPort,
497 PortClosed,
499 User,
501 #[doc(hidden)]
502 __SourceBreaking { unknown_ordinal: u32 },
503}
504
505#[macro_export]
507macro_rules! InterfaceRemovedReasonUnknown {
508 () => {
509 _
510 };
511}
512
513impl InterfaceRemovedReason {
514 #[inline]
515 pub fn from_primitive(prim: u32) -> Option<Self> {
516 match prim {
517 1 => Some(Self::DuplicateName),
518 2 => Some(Self::PortAlreadyBound),
519 3 => Some(Self::BadPort),
520 4 => Some(Self::PortClosed),
521 5 => Some(Self::User),
522 _ => None,
523 }
524 }
525
526 #[inline]
527 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
528 match prim {
529 1 => Self::DuplicateName,
530 2 => Self::PortAlreadyBound,
531 3 => Self::BadPort,
532 4 => Self::PortClosed,
533 5 => Self::User,
534 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
535 }
536 }
537
538 #[inline]
539 pub fn unknown() -> Self {
540 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
541 }
542
543 #[inline]
544 pub const fn into_primitive(self) -> u32 {
545 match self {
546 Self::DuplicateName => 1,
547 Self::PortAlreadyBound => 2,
548 Self::BadPort => 3,
549 Self::PortClosed => 4,
550 Self::User => 5,
551 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
552 }
553 }
554
555 #[inline]
556 pub fn is_unknown(&self) -> bool {
557 match self {
558 Self::__SourceBreaking { unknown_ordinal: _ } => true,
559 _ => false,
560 }
561 }
562}
563
564#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
565pub enum MldVersion {
566 V1,
568 V2,
570 #[doc(hidden)]
571 __SourceBreaking { unknown_ordinal: u8 },
572}
573
574#[macro_export]
576macro_rules! MldVersionUnknown {
577 () => {
578 _
579 };
580}
581
582impl MldVersion {
583 #[inline]
584 pub fn from_primitive(prim: u8) -> Option<Self> {
585 match prim {
586 1 => Some(Self::V1),
587 2 => Some(Self::V2),
588 _ => None,
589 }
590 }
591
592 #[inline]
593 pub fn from_primitive_allow_unknown(prim: u8) -> Self {
594 match prim {
595 1 => Self::V1,
596 2 => Self::V2,
597 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
598 }
599 }
600
601 #[inline]
602 pub fn unknown() -> Self {
603 Self::__SourceBreaking { unknown_ordinal: 0xff }
604 }
605
606 #[inline]
607 pub const fn into_primitive(self) -> u8 {
608 match self {
609 Self::V1 => 1,
610 Self::V2 => 2,
611 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
612 }
613 }
614
615 #[inline]
616 pub fn is_unknown(&self) -> bool {
617 match self {
618 Self::__SourceBreaking { unknown_ordinal: _ } => true,
619 _ => false,
620 }
621 }
622}
623
624#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
625pub struct AddressStateProviderOnAddressRemovedRequest {
626 pub error: AddressRemovalReason,
627}
628
629impl fidl::Persistable for AddressStateProviderOnAddressRemovedRequest {}
630
631#[derive(Clone, Debug, PartialEq)]
632pub struct AddressStateProviderUpdateAddressPropertiesRequest {
633 pub address_properties: AddressProperties,
634}
635
636impl fidl::Persistable for AddressStateProviderUpdateAddressPropertiesRequest {}
637
638#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
639pub struct AddressStateProviderWatchAddressAssignmentStateResponse {
640 pub assignment_state: fidl_fuchsia_net_interfaces__common::AddressAssignmentState,
641}
642
643impl fidl::Persistable for AddressStateProviderWatchAddressAssignmentStateResponse {}
644
645#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
646#[repr(C)]
647pub struct ControlGetIdResponse {
648 pub id: u64,
649}
650
651impl fidl::Persistable for ControlGetIdResponse {}
652
653#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
654pub struct ControlOnInterfaceRemovedRequest {
655 pub reason: InterfaceRemovedReason,
656}
657
658impl fidl::Persistable for ControlOnInterfaceRemovedRequest {}
659
660#[derive(Clone, Debug, PartialEq)]
661pub struct ControlRemoveAddressRequest {
662 pub address: fidl_fuchsia_net__common::Subnet,
663}
664
665impl fidl::Persistable for ControlRemoveAddressRequest {}
666
667#[derive(Clone, Debug, PartialEq)]
668pub struct ControlSetConfigurationRequest {
669 pub config: Configuration,
670}
671
672impl fidl::Persistable for ControlSetConfigurationRequest {}
673
674#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
675pub struct ControlDisableResponse {
676 pub did_disable: bool,
677}
678
679impl fidl::Persistable for ControlDisableResponse {}
680
681#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
682pub struct ControlEnableResponse {
683 pub did_enable: bool,
684}
685
686impl fidl::Persistable for ControlEnableResponse {}
687
688#[derive(Clone, Debug, PartialEq)]
689pub struct ControlGetConfigurationResponse {
690 pub config: Configuration,
691}
692
693impl fidl::Persistable for ControlGetConfigurationResponse {}
694
695#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
696pub struct ControlRemoveAddressResponse {
697 pub did_remove: bool,
698}
699
700impl fidl::Persistable for ControlRemoveAddressResponse {}
701
702#[derive(Clone, Debug, PartialEq)]
703pub struct ControlSetConfigurationResponse {
704 pub previous_config: Configuration,
705}
706
707impl fidl::Persistable for ControlSetConfigurationResponse {}
708
709#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
710pub struct Empty;
711
712impl fidl::Persistable for Empty {}
713
714#[derive(Clone, Debug, Default, PartialEq)]
716pub struct AddressParameters {
717 pub initial_properties: Option<AddressProperties>,
721 pub temporary: Option<bool>,
738 pub add_subnet_route: Option<bool>,
747 pub perform_dad: Option<bool>,
763 #[doc(hidden)]
764 pub __source_breaking: fidl::marker::SourceBreaking,
765}
766
767impl fidl::Persistable for AddressParameters {}
768
769#[derive(Clone, Debug, Default, PartialEq)]
771pub struct AddressProperties {
772 pub preferred_lifetime_info: Option<fidl_fuchsia_net_interfaces__common::PreferredLifetimeInfo>,
777 pub valid_lifetime_end: Option<i64>,
791 #[doc(hidden)]
792 pub __source_breaking: fidl::marker::SourceBreaking,
793}
794
795impl fidl::Persistable for AddressProperties {}
796
797#[derive(Clone, Debug, Default, PartialEq)]
798pub struct ArpConfiguration {
799 pub nud: Option<NudConfiguration>,
801 pub dad: Option<DadConfiguration>,
806 #[doc(hidden)]
807 pub __source_breaking: fidl::marker::SourceBreaking,
808}
809
810impl fidl::Persistable for ArpConfiguration {}
811
812#[derive(Clone, Debug, Default, PartialEq)]
814pub struct Configuration {
815 pub ipv4: Option<Ipv4Configuration>,
817 pub ipv6: Option<Ipv6Configuration>,
819 #[doc(hidden)]
820 pub __source_breaking: fidl::marker::SourceBreaking,
821}
822
823impl fidl::Persistable for Configuration {}
824
825#[derive(Clone, Debug, Default, PartialEq)]
827pub struct DadConfiguration {
828 pub transmits: Option<u16>,
833 #[doc(hidden)]
834 pub __source_breaking: fidl::marker::SourceBreaking,
835}
836
837impl fidl::Persistable for DadConfiguration {}
838
839#[derive(Clone, Debug, Default, PartialEq)]
840pub struct IgmpConfiguration {
841 pub version: Option<IgmpVersion>,
847 #[doc(hidden)]
848 pub __source_breaking: fidl::marker::SourceBreaking,
849}
850
851impl fidl::Persistable for IgmpConfiguration {}
852
853#[derive(Clone, Debug, Default, PartialEq)]
854pub struct Ipv4Configuration {
855 pub unicast_forwarding: Option<bool>,
858 pub multicast_forwarding: Option<bool>,
860 pub igmp: Option<IgmpConfiguration>,
862 pub arp: Option<ArpConfiguration>,
864 #[doc(hidden)]
865 pub __source_breaking: fidl::marker::SourceBreaking,
866}
867
868impl fidl::Persistable for Ipv4Configuration {}
869
870#[derive(Clone, Debug, Default, PartialEq)]
871pub struct Ipv6Configuration {
872 pub unicast_forwarding: Option<bool>,
875 pub multicast_forwarding: Option<bool>,
877 pub mld: Option<MldConfiguration>,
879 pub ndp: Option<NdpConfiguration>,
881 #[doc(hidden)]
882 pub __source_breaking: fidl::marker::SourceBreaking,
883}
884
885impl fidl::Persistable for Ipv6Configuration {}
886
887#[derive(Clone, Debug, Default, PartialEq)]
888pub struct MldConfiguration {
889 pub version: Option<MldVersion>,
895 #[doc(hidden)]
896 pub __source_breaking: fidl::marker::SourceBreaking,
897}
898
899impl fidl::Persistable for MldConfiguration {}
900
901#[derive(Clone, Debug, Default, PartialEq)]
902pub struct NdpConfiguration {
903 pub nud: Option<NudConfiguration>,
905 pub dad: Option<DadConfiguration>,
907 pub slaac: Option<SlaacConfiguration>,
909 #[doc(hidden)]
910 pub __source_breaking: fidl::marker::SourceBreaking,
911}
912
913impl fidl::Persistable for NdpConfiguration {}
914
915#[derive(Clone, Debug, Default, PartialEq)]
919pub struct NudConfiguration {
920 pub max_multicast_solicitations: Option<u16>,
926 pub max_unicast_solicitations: Option<u16>,
931 pub base_reachable_time: Option<i64>,
941 #[doc(hidden)]
942 pub __source_breaking: fidl::marker::SourceBreaking,
943}
944
945impl fidl::Persistable for NudConfiguration {}
946
947#[derive(Clone, Debug, Default, PartialEq)]
948pub struct SlaacConfiguration {
949 pub temporary_address: Option<bool>,
958 #[doc(hidden)]
959 pub __source_breaking: fidl::marker::SourceBreaking,
960}
961
962impl fidl::Persistable for SlaacConfiguration {}
963
964pub mod address_state_provider_ordinals {
965 pub const UPDATE_ADDRESS_PROPERTIES: u64 = 0x52bdf5ed96ef573c;
966 pub const WATCH_ADDRESS_ASSIGNMENT_STATE: u64 = 0x740bb58c1b2d3188;
967 pub const DETACH: u64 = 0xc752381d739622f;
968 pub const REMOVE: u64 = 0x554407fe183e78ad;
969 pub const ON_ADDRESS_ADDED: u64 = 0x624f6ea62cce189e;
970 pub const ON_ADDRESS_REMOVED: u64 = 0x2480eb672ffd5962;
971}
972
973pub mod control_ordinals {
974 pub const ADD_ADDRESS: u64 = 0x1349d36da453ce;
975 pub const REMOVE_ADDRESS: u64 = 0x213ba73da997a620;
976 pub const GET_ID: u64 = 0x2a2459768d9ecc6f;
977 pub const SET_CONFIGURATION: u64 = 0x573923b7b4bde27f;
978 pub const GET_CONFIGURATION: u64 = 0x5f5d239820bdcc65;
979 pub const ENABLE: u64 = 0x15c983d3a8ac0b98;
980 pub const DISABLE: u64 = 0x98d3a585d905473;
981 pub const DETACH: u64 = 0x78ee27518b2dbfa;
982 pub const GET_AUTHORIZATION_FOR_INTERFACE: u64 = 0xc1de2ab60b5cb9e;
983 pub const REMOVE: u64 = 0x13aab8bbecc7ff0b;
984 pub const ON_INTERFACE_REMOVED: u64 = 0x800d39e76c1cddd;
985}
986
987pub mod device_control_ordinals {
988 pub const CREATE_INTERFACE: u64 = 0x4ff8be7351d12f86;
989 pub const DETACH: u64 = 0x57489f1554d489d2;
990}
991
992pub mod installer_ordinals {
993 pub const INSTALL_DEVICE: u64 = 0x3e84524dcecab23a;
994 pub const INSTALL_BLACKHOLE_INTERFACE: u64 = 0x2ce57e87cdbcb809;
995}
996
997mod internal {
998 use super::*;
999 unsafe impl fidl::encoding::TypeMarker for AddressRemovalReason {
1000 type Owned = Self;
1001
1002 #[inline(always)]
1003 fn inline_align(_context: fidl::encoding::Context) -> usize {
1004 std::mem::align_of::<u32>()
1005 }
1006
1007 #[inline(always)]
1008 fn inline_size(_context: fidl::encoding::Context) -> usize {
1009 std::mem::size_of::<u32>()
1010 }
1011
1012 #[inline(always)]
1013 fn encode_is_copy() -> bool {
1014 true
1015 }
1016
1017 #[inline(always)]
1018 fn decode_is_copy() -> bool {
1019 false
1020 }
1021 }
1022
1023 impl fidl::encoding::ValueTypeMarker for AddressRemovalReason {
1024 type Borrowed<'a> = Self;
1025 #[inline(always)]
1026 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1027 *value
1028 }
1029 }
1030
1031 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1032 for AddressRemovalReason
1033 {
1034 #[inline]
1035 unsafe fn encode(
1036 self,
1037 encoder: &mut fidl::encoding::Encoder<'_, D>,
1038 offset: usize,
1039 _depth: fidl::encoding::Depth,
1040 ) -> fidl::Result<()> {
1041 encoder.debug_check_bounds::<Self>(offset);
1042 encoder.write_num(self.into_primitive(), offset);
1043 Ok(())
1044 }
1045 }
1046
1047 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AddressRemovalReason {
1048 #[inline(always)]
1049 fn new_empty() -> Self {
1050 Self::Invalid
1051 }
1052
1053 #[inline]
1054 unsafe fn decode(
1055 &mut self,
1056 decoder: &mut fidl::encoding::Decoder<'_, D>,
1057 offset: usize,
1058 _depth: fidl::encoding::Depth,
1059 ) -> fidl::Result<()> {
1060 decoder.debug_check_bounds::<Self>(offset);
1061 let prim = decoder.read_num::<u32>(offset);
1062
1063 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1064 Ok(())
1065 }
1066 }
1067 unsafe impl fidl::encoding::TypeMarker for ControlDisableError {
1068 type Owned = Self;
1069
1070 #[inline(always)]
1071 fn inline_align(_context: fidl::encoding::Context) -> usize {
1072 std::mem::align_of::<u32>()
1073 }
1074
1075 #[inline(always)]
1076 fn inline_size(_context: fidl::encoding::Context) -> usize {
1077 std::mem::size_of::<u32>()
1078 }
1079
1080 #[inline(always)]
1081 fn encode_is_copy() -> bool {
1082 false
1083 }
1084
1085 #[inline(always)]
1086 fn decode_is_copy() -> bool {
1087 false
1088 }
1089 }
1090
1091 impl fidl::encoding::ValueTypeMarker for ControlDisableError {
1092 type Borrowed<'a> = Self;
1093 #[inline(always)]
1094 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1095 *value
1096 }
1097 }
1098
1099 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1100 for ControlDisableError
1101 {
1102 #[inline]
1103 unsafe fn encode(
1104 self,
1105 encoder: &mut fidl::encoding::Encoder<'_, D>,
1106 offset: usize,
1107 _depth: fidl::encoding::Depth,
1108 ) -> fidl::Result<()> {
1109 encoder.debug_check_bounds::<Self>(offset);
1110 encoder.write_num(self.into_primitive(), offset);
1111 Ok(())
1112 }
1113 }
1114
1115 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControlDisableError {
1116 #[inline(always)]
1117 fn new_empty() -> Self {
1118 Self::unknown()
1119 }
1120
1121 #[inline]
1122 unsafe fn decode(
1123 &mut self,
1124 decoder: &mut fidl::encoding::Decoder<'_, D>,
1125 offset: usize,
1126 _depth: fidl::encoding::Depth,
1127 ) -> fidl::Result<()> {
1128 decoder.debug_check_bounds::<Self>(offset);
1129 let prim = decoder.read_num::<u32>(offset);
1130
1131 *self = Self::from_primitive_allow_unknown(prim);
1132 Ok(())
1133 }
1134 }
1135 unsafe impl fidl::encoding::TypeMarker for ControlEnableError {
1136 type Owned = Self;
1137
1138 #[inline(always)]
1139 fn inline_align(_context: fidl::encoding::Context) -> usize {
1140 std::mem::align_of::<u32>()
1141 }
1142
1143 #[inline(always)]
1144 fn inline_size(_context: fidl::encoding::Context) -> usize {
1145 std::mem::size_of::<u32>()
1146 }
1147
1148 #[inline(always)]
1149 fn encode_is_copy() -> bool {
1150 false
1151 }
1152
1153 #[inline(always)]
1154 fn decode_is_copy() -> bool {
1155 false
1156 }
1157 }
1158
1159 impl fidl::encoding::ValueTypeMarker for ControlEnableError {
1160 type Borrowed<'a> = Self;
1161 #[inline(always)]
1162 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1163 *value
1164 }
1165 }
1166
1167 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1168 for ControlEnableError
1169 {
1170 #[inline]
1171 unsafe fn encode(
1172 self,
1173 encoder: &mut fidl::encoding::Encoder<'_, D>,
1174 offset: usize,
1175 _depth: fidl::encoding::Depth,
1176 ) -> fidl::Result<()> {
1177 encoder.debug_check_bounds::<Self>(offset);
1178 encoder.write_num(self.into_primitive(), offset);
1179 Ok(())
1180 }
1181 }
1182
1183 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControlEnableError {
1184 #[inline(always)]
1185 fn new_empty() -> Self {
1186 Self::unknown()
1187 }
1188
1189 #[inline]
1190 unsafe fn decode(
1191 &mut self,
1192 decoder: &mut fidl::encoding::Decoder<'_, D>,
1193 offset: usize,
1194 _depth: fidl::encoding::Depth,
1195 ) -> fidl::Result<()> {
1196 decoder.debug_check_bounds::<Self>(offset);
1197 let prim = decoder.read_num::<u32>(offset);
1198
1199 *self = Self::from_primitive_allow_unknown(prim);
1200 Ok(())
1201 }
1202 }
1203 unsafe impl fidl::encoding::TypeMarker for ControlGetConfigurationError {
1204 type Owned = Self;
1205
1206 #[inline(always)]
1207 fn inline_align(_context: fidl::encoding::Context) -> usize {
1208 std::mem::align_of::<u32>()
1209 }
1210
1211 #[inline(always)]
1212 fn inline_size(_context: fidl::encoding::Context) -> usize {
1213 std::mem::size_of::<u32>()
1214 }
1215
1216 #[inline(always)]
1217 fn encode_is_copy() -> bool {
1218 false
1219 }
1220
1221 #[inline(always)]
1222 fn decode_is_copy() -> bool {
1223 false
1224 }
1225 }
1226
1227 impl fidl::encoding::ValueTypeMarker for ControlGetConfigurationError {
1228 type Borrowed<'a> = Self;
1229 #[inline(always)]
1230 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1231 *value
1232 }
1233 }
1234
1235 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1236 for ControlGetConfigurationError
1237 {
1238 #[inline]
1239 unsafe fn encode(
1240 self,
1241 encoder: &mut fidl::encoding::Encoder<'_, D>,
1242 offset: usize,
1243 _depth: fidl::encoding::Depth,
1244 ) -> fidl::Result<()> {
1245 encoder.debug_check_bounds::<Self>(offset);
1246 encoder.write_num(self.into_primitive(), offset);
1247 Ok(())
1248 }
1249 }
1250
1251 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1252 for ControlGetConfigurationError
1253 {
1254 #[inline(always)]
1255 fn new_empty() -> Self {
1256 Self::unknown()
1257 }
1258
1259 #[inline]
1260 unsafe fn decode(
1261 &mut self,
1262 decoder: &mut fidl::encoding::Decoder<'_, D>,
1263 offset: usize,
1264 _depth: fidl::encoding::Depth,
1265 ) -> fidl::Result<()> {
1266 decoder.debug_check_bounds::<Self>(offset);
1267 let prim = decoder.read_num::<u32>(offset);
1268
1269 *self = Self::from_primitive_allow_unknown(prim);
1270 Ok(())
1271 }
1272 }
1273 unsafe impl fidl::encoding::TypeMarker for ControlRemoveAddressError {
1274 type Owned = Self;
1275
1276 #[inline(always)]
1277 fn inline_align(_context: fidl::encoding::Context) -> usize {
1278 std::mem::align_of::<u32>()
1279 }
1280
1281 #[inline(always)]
1282 fn inline_size(_context: fidl::encoding::Context) -> usize {
1283 std::mem::size_of::<u32>()
1284 }
1285
1286 #[inline(always)]
1287 fn encode_is_copy() -> bool {
1288 false
1289 }
1290
1291 #[inline(always)]
1292 fn decode_is_copy() -> bool {
1293 false
1294 }
1295 }
1296
1297 impl fidl::encoding::ValueTypeMarker for ControlRemoveAddressError {
1298 type Borrowed<'a> = Self;
1299 #[inline(always)]
1300 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1301 *value
1302 }
1303 }
1304
1305 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1306 for ControlRemoveAddressError
1307 {
1308 #[inline]
1309 unsafe fn encode(
1310 self,
1311 encoder: &mut fidl::encoding::Encoder<'_, D>,
1312 offset: usize,
1313 _depth: fidl::encoding::Depth,
1314 ) -> fidl::Result<()> {
1315 encoder.debug_check_bounds::<Self>(offset);
1316 encoder.write_num(self.into_primitive(), offset);
1317 Ok(())
1318 }
1319 }
1320
1321 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1322 for ControlRemoveAddressError
1323 {
1324 #[inline(always)]
1325 fn new_empty() -> Self {
1326 Self::unknown()
1327 }
1328
1329 #[inline]
1330 unsafe fn decode(
1331 &mut self,
1332 decoder: &mut fidl::encoding::Decoder<'_, D>,
1333 offset: usize,
1334 _depth: fidl::encoding::Depth,
1335 ) -> fidl::Result<()> {
1336 decoder.debug_check_bounds::<Self>(offset);
1337 let prim = decoder.read_num::<u32>(offset);
1338
1339 *self = Self::from_primitive_allow_unknown(prim);
1340 Ok(())
1341 }
1342 }
1343 unsafe impl fidl::encoding::TypeMarker for ControlRemoveError {
1344 type Owned = Self;
1345
1346 #[inline(always)]
1347 fn inline_align(_context: fidl::encoding::Context) -> usize {
1348 std::mem::align_of::<u32>()
1349 }
1350
1351 #[inline(always)]
1352 fn inline_size(_context: fidl::encoding::Context) -> usize {
1353 std::mem::size_of::<u32>()
1354 }
1355
1356 #[inline(always)]
1357 fn encode_is_copy() -> bool {
1358 false
1359 }
1360
1361 #[inline(always)]
1362 fn decode_is_copy() -> bool {
1363 false
1364 }
1365 }
1366
1367 impl fidl::encoding::ValueTypeMarker for ControlRemoveError {
1368 type Borrowed<'a> = Self;
1369 #[inline(always)]
1370 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1371 *value
1372 }
1373 }
1374
1375 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1376 for ControlRemoveError
1377 {
1378 #[inline]
1379 unsafe fn encode(
1380 self,
1381 encoder: &mut fidl::encoding::Encoder<'_, D>,
1382 offset: usize,
1383 _depth: fidl::encoding::Depth,
1384 ) -> fidl::Result<()> {
1385 encoder.debug_check_bounds::<Self>(offset);
1386 encoder.write_num(self.into_primitive(), offset);
1387 Ok(())
1388 }
1389 }
1390
1391 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControlRemoveError {
1392 #[inline(always)]
1393 fn new_empty() -> Self {
1394 Self::unknown()
1395 }
1396
1397 #[inline]
1398 unsafe fn decode(
1399 &mut self,
1400 decoder: &mut fidl::encoding::Decoder<'_, D>,
1401 offset: usize,
1402 _depth: fidl::encoding::Depth,
1403 ) -> fidl::Result<()> {
1404 decoder.debug_check_bounds::<Self>(offset);
1405 let prim = decoder.read_num::<u32>(offset);
1406
1407 *self = Self::from_primitive_allow_unknown(prim);
1408 Ok(())
1409 }
1410 }
1411 unsafe impl fidl::encoding::TypeMarker for ControlSetConfigurationError {
1412 type Owned = Self;
1413
1414 #[inline(always)]
1415 fn inline_align(_context: fidl::encoding::Context) -> usize {
1416 std::mem::align_of::<u32>()
1417 }
1418
1419 #[inline(always)]
1420 fn inline_size(_context: fidl::encoding::Context) -> usize {
1421 std::mem::size_of::<u32>()
1422 }
1423
1424 #[inline(always)]
1425 fn encode_is_copy() -> bool {
1426 false
1427 }
1428
1429 #[inline(always)]
1430 fn decode_is_copy() -> bool {
1431 false
1432 }
1433 }
1434
1435 impl fidl::encoding::ValueTypeMarker for ControlSetConfigurationError {
1436 type Borrowed<'a> = Self;
1437 #[inline(always)]
1438 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1439 *value
1440 }
1441 }
1442
1443 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1444 for ControlSetConfigurationError
1445 {
1446 #[inline]
1447 unsafe fn encode(
1448 self,
1449 encoder: &mut fidl::encoding::Encoder<'_, D>,
1450 offset: usize,
1451 _depth: fidl::encoding::Depth,
1452 ) -> fidl::Result<()> {
1453 encoder.debug_check_bounds::<Self>(offset);
1454 encoder.write_num(self.into_primitive(), offset);
1455 Ok(())
1456 }
1457 }
1458
1459 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1460 for ControlSetConfigurationError
1461 {
1462 #[inline(always)]
1463 fn new_empty() -> Self {
1464 Self::unknown()
1465 }
1466
1467 #[inline]
1468 unsafe fn decode(
1469 &mut self,
1470 decoder: &mut fidl::encoding::Decoder<'_, D>,
1471 offset: usize,
1472 _depth: fidl::encoding::Depth,
1473 ) -> fidl::Result<()> {
1474 decoder.debug_check_bounds::<Self>(offset);
1475 let prim = decoder.read_num::<u32>(offset);
1476
1477 *self = Self::from_primitive_allow_unknown(prim);
1478 Ok(())
1479 }
1480 }
1481 unsafe impl fidl::encoding::TypeMarker for IgmpVersion {
1482 type Owned = Self;
1483
1484 #[inline(always)]
1485 fn inline_align(_context: fidl::encoding::Context) -> usize {
1486 std::mem::align_of::<u8>()
1487 }
1488
1489 #[inline(always)]
1490 fn inline_size(_context: fidl::encoding::Context) -> usize {
1491 std::mem::size_of::<u8>()
1492 }
1493
1494 #[inline(always)]
1495 fn encode_is_copy() -> bool {
1496 false
1497 }
1498
1499 #[inline(always)]
1500 fn decode_is_copy() -> bool {
1501 false
1502 }
1503 }
1504
1505 impl fidl::encoding::ValueTypeMarker for IgmpVersion {
1506 type Borrowed<'a> = Self;
1507 #[inline(always)]
1508 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1509 *value
1510 }
1511 }
1512
1513 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for IgmpVersion {
1514 #[inline]
1515 unsafe fn encode(
1516 self,
1517 encoder: &mut fidl::encoding::Encoder<'_, D>,
1518 offset: usize,
1519 _depth: fidl::encoding::Depth,
1520 ) -> fidl::Result<()> {
1521 encoder.debug_check_bounds::<Self>(offset);
1522 encoder.write_num(self.into_primitive(), offset);
1523 Ok(())
1524 }
1525 }
1526
1527 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IgmpVersion {
1528 #[inline(always)]
1529 fn new_empty() -> Self {
1530 Self::unknown()
1531 }
1532
1533 #[inline]
1534 unsafe fn decode(
1535 &mut self,
1536 decoder: &mut fidl::encoding::Decoder<'_, D>,
1537 offset: usize,
1538 _depth: fidl::encoding::Depth,
1539 ) -> fidl::Result<()> {
1540 decoder.debug_check_bounds::<Self>(offset);
1541 let prim = decoder.read_num::<u8>(offset);
1542
1543 *self = Self::from_primitive_allow_unknown(prim);
1544 Ok(())
1545 }
1546 }
1547 unsafe impl fidl::encoding::TypeMarker for InterfaceRemovedReason {
1548 type Owned = Self;
1549
1550 #[inline(always)]
1551 fn inline_align(_context: fidl::encoding::Context) -> usize {
1552 std::mem::align_of::<u32>()
1553 }
1554
1555 #[inline(always)]
1556 fn inline_size(_context: fidl::encoding::Context) -> usize {
1557 std::mem::size_of::<u32>()
1558 }
1559
1560 #[inline(always)]
1561 fn encode_is_copy() -> bool {
1562 false
1563 }
1564
1565 #[inline(always)]
1566 fn decode_is_copy() -> bool {
1567 false
1568 }
1569 }
1570
1571 impl fidl::encoding::ValueTypeMarker for InterfaceRemovedReason {
1572 type Borrowed<'a> = Self;
1573 #[inline(always)]
1574 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1575 *value
1576 }
1577 }
1578
1579 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1580 for InterfaceRemovedReason
1581 {
1582 #[inline]
1583 unsafe fn encode(
1584 self,
1585 encoder: &mut fidl::encoding::Encoder<'_, D>,
1586 offset: usize,
1587 _depth: fidl::encoding::Depth,
1588 ) -> fidl::Result<()> {
1589 encoder.debug_check_bounds::<Self>(offset);
1590 encoder.write_num(self.into_primitive(), offset);
1591 Ok(())
1592 }
1593 }
1594
1595 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1596 for InterfaceRemovedReason
1597 {
1598 #[inline(always)]
1599 fn new_empty() -> Self {
1600 Self::unknown()
1601 }
1602
1603 #[inline]
1604 unsafe fn decode(
1605 &mut self,
1606 decoder: &mut fidl::encoding::Decoder<'_, D>,
1607 offset: usize,
1608 _depth: fidl::encoding::Depth,
1609 ) -> fidl::Result<()> {
1610 decoder.debug_check_bounds::<Self>(offset);
1611 let prim = decoder.read_num::<u32>(offset);
1612
1613 *self = Self::from_primitive_allow_unknown(prim);
1614 Ok(())
1615 }
1616 }
1617 unsafe impl fidl::encoding::TypeMarker for MldVersion {
1618 type Owned = Self;
1619
1620 #[inline(always)]
1621 fn inline_align(_context: fidl::encoding::Context) -> usize {
1622 std::mem::align_of::<u8>()
1623 }
1624
1625 #[inline(always)]
1626 fn inline_size(_context: fidl::encoding::Context) -> usize {
1627 std::mem::size_of::<u8>()
1628 }
1629
1630 #[inline(always)]
1631 fn encode_is_copy() -> bool {
1632 false
1633 }
1634
1635 #[inline(always)]
1636 fn decode_is_copy() -> bool {
1637 false
1638 }
1639 }
1640
1641 impl fidl::encoding::ValueTypeMarker for MldVersion {
1642 type Borrowed<'a> = Self;
1643 #[inline(always)]
1644 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1645 *value
1646 }
1647 }
1648
1649 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for MldVersion {
1650 #[inline]
1651 unsafe fn encode(
1652 self,
1653 encoder: &mut fidl::encoding::Encoder<'_, D>,
1654 offset: usize,
1655 _depth: fidl::encoding::Depth,
1656 ) -> fidl::Result<()> {
1657 encoder.debug_check_bounds::<Self>(offset);
1658 encoder.write_num(self.into_primitive(), offset);
1659 Ok(())
1660 }
1661 }
1662
1663 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MldVersion {
1664 #[inline(always)]
1665 fn new_empty() -> Self {
1666 Self::unknown()
1667 }
1668
1669 #[inline]
1670 unsafe fn decode(
1671 &mut self,
1672 decoder: &mut fidl::encoding::Decoder<'_, D>,
1673 offset: usize,
1674 _depth: fidl::encoding::Depth,
1675 ) -> fidl::Result<()> {
1676 decoder.debug_check_bounds::<Self>(offset);
1677 let prim = decoder.read_num::<u8>(offset);
1678
1679 *self = Self::from_primitive_allow_unknown(prim);
1680 Ok(())
1681 }
1682 }
1683
1684 impl fidl::encoding::ValueTypeMarker for AddressStateProviderOnAddressRemovedRequest {
1685 type Borrowed<'a> = &'a Self;
1686 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1687 value
1688 }
1689 }
1690
1691 unsafe impl fidl::encoding::TypeMarker for AddressStateProviderOnAddressRemovedRequest {
1692 type Owned = Self;
1693
1694 #[inline(always)]
1695 fn inline_align(_context: fidl::encoding::Context) -> usize {
1696 4
1697 }
1698
1699 #[inline(always)]
1700 fn inline_size(_context: fidl::encoding::Context) -> usize {
1701 4
1702 }
1703 }
1704
1705 unsafe impl<D: fidl::encoding::ResourceDialect>
1706 fidl::encoding::Encode<AddressStateProviderOnAddressRemovedRequest, D>
1707 for &AddressStateProviderOnAddressRemovedRequest
1708 {
1709 #[inline]
1710 unsafe fn encode(
1711 self,
1712 encoder: &mut fidl::encoding::Encoder<'_, D>,
1713 offset: usize,
1714 _depth: fidl::encoding::Depth,
1715 ) -> fidl::Result<()> {
1716 encoder.debug_check_bounds::<AddressStateProviderOnAddressRemovedRequest>(offset);
1717 fidl::encoding::Encode::<AddressStateProviderOnAddressRemovedRequest, D>::encode(
1719 (<AddressRemovalReason as fidl::encoding::ValueTypeMarker>::borrow(&self.error),),
1720 encoder,
1721 offset,
1722 _depth,
1723 )
1724 }
1725 }
1726 unsafe impl<
1727 D: fidl::encoding::ResourceDialect,
1728 T0: fidl::encoding::Encode<AddressRemovalReason, D>,
1729 > fidl::encoding::Encode<AddressStateProviderOnAddressRemovedRequest, D> for (T0,)
1730 {
1731 #[inline]
1732 unsafe fn encode(
1733 self,
1734 encoder: &mut fidl::encoding::Encoder<'_, D>,
1735 offset: usize,
1736 depth: fidl::encoding::Depth,
1737 ) -> fidl::Result<()> {
1738 encoder.debug_check_bounds::<AddressStateProviderOnAddressRemovedRequest>(offset);
1739 self.0.encode(encoder, offset + 0, depth)?;
1743 Ok(())
1744 }
1745 }
1746
1747 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1748 for AddressStateProviderOnAddressRemovedRequest
1749 {
1750 #[inline(always)]
1751 fn new_empty() -> Self {
1752 Self { error: fidl::new_empty!(AddressRemovalReason, D) }
1753 }
1754
1755 #[inline]
1756 unsafe fn decode(
1757 &mut self,
1758 decoder: &mut fidl::encoding::Decoder<'_, D>,
1759 offset: usize,
1760 _depth: fidl::encoding::Depth,
1761 ) -> fidl::Result<()> {
1762 decoder.debug_check_bounds::<Self>(offset);
1763 fidl::decode!(AddressRemovalReason, D, &mut self.error, decoder, offset + 0, _depth)?;
1765 Ok(())
1766 }
1767 }
1768
1769 impl fidl::encoding::ValueTypeMarker for AddressStateProviderUpdateAddressPropertiesRequest {
1770 type Borrowed<'a> = &'a Self;
1771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1772 value
1773 }
1774 }
1775
1776 unsafe impl fidl::encoding::TypeMarker for AddressStateProviderUpdateAddressPropertiesRequest {
1777 type Owned = Self;
1778
1779 #[inline(always)]
1780 fn inline_align(_context: fidl::encoding::Context) -> usize {
1781 8
1782 }
1783
1784 #[inline(always)]
1785 fn inline_size(_context: fidl::encoding::Context) -> usize {
1786 16
1787 }
1788 }
1789
1790 unsafe impl<D: fidl::encoding::ResourceDialect>
1791 fidl::encoding::Encode<AddressStateProviderUpdateAddressPropertiesRequest, D>
1792 for &AddressStateProviderUpdateAddressPropertiesRequest
1793 {
1794 #[inline]
1795 unsafe fn encode(
1796 self,
1797 encoder: &mut fidl::encoding::Encoder<'_, D>,
1798 offset: usize,
1799 _depth: fidl::encoding::Depth,
1800 ) -> fidl::Result<()> {
1801 encoder
1802 .debug_check_bounds::<AddressStateProviderUpdateAddressPropertiesRequest>(offset);
1803 fidl::encoding::Encode::<AddressStateProviderUpdateAddressPropertiesRequest, D>::encode(
1805 (<AddressProperties as fidl::encoding::ValueTypeMarker>::borrow(
1806 &self.address_properties,
1807 ),),
1808 encoder,
1809 offset,
1810 _depth,
1811 )
1812 }
1813 }
1814 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AddressProperties, D>>
1815 fidl::encoding::Encode<AddressStateProviderUpdateAddressPropertiesRequest, D> for (T0,)
1816 {
1817 #[inline]
1818 unsafe fn encode(
1819 self,
1820 encoder: &mut fidl::encoding::Encoder<'_, D>,
1821 offset: usize,
1822 depth: fidl::encoding::Depth,
1823 ) -> fidl::Result<()> {
1824 encoder
1825 .debug_check_bounds::<AddressStateProviderUpdateAddressPropertiesRequest>(offset);
1826 self.0.encode(encoder, offset + 0, depth)?;
1830 Ok(())
1831 }
1832 }
1833
1834 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1835 for AddressStateProviderUpdateAddressPropertiesRequest
1836 {
1837 #[inline(always)]
1838 fn new_empty() -> Self {
1839 Self { address_properties: fidl::new_empty!(AddressProperties, D) }
1840 }
1841
1842 #[inline]
1843 unsafe fn decode(
1844 &mut self,
1845 decoder: &mut fidl::encoding::Decoder<'_, D>,
1846 offset: usize,
1847 _depth: fidl::encoding::Depth,
1848 ) -> fidl::Result<()> {
1849 decoder.debug_check_bounds::<Self>(offset);
1850 fidl::decode!(
1852 AddressProperties,
1853 D,
1854 &mut self.address_properties,
1855 decoder,
1856 offset + 0,
1857 _depth
1858 )?;
1859 Ok(())
1860 }
1861 }
1862
1863 impl fidl::encoding::ValueTypeMarker for AddressStateProviderWatchAddressAssignmentStateResponse {
1864 type Borrowed<'a> = &'a Self;
1865 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1866 value
1867 }
1868 }
1869
1870 unsafe impl fidl::encoding::TypeMarker for AddressStateProviderWatchAddressAssignmentStateResponse {
1871 type Owned = Self;
1872
1873 #[inline(always)]
1874 fn inline_align(_context: fidl::encoding::Context) -> usize {
1875 4
1876 }
1877
1878 #[inline(always)]
1879 fn inline_size(_context: fidl::encoding::Context) -> usize {
1880 4
1881 }
1882 }
1883
1884 unsafe impl<D: fidl::encoding::ResourceDialect>
1885 fidl::encoding::Encode<AddressStateProviderWatchAddressAssignmentStateResponse, D>
1886 for &AddressStateProviderWatchAddressAssignmentStateResponse
1887 {
1888 #[inline]
1889 unsafe fn encode(
1890 self,
1891 encoder: &mut fidl::encoding::Encoder<'_, D>,
1892 offset: usize,
1893 _depth: fidl::encoding::Depth,
1894 ) -> fidl::Result<()> {
1895 encoder.debug_check_bounds::<AddressStateProviderWatchAddressAssignmentStateResponse>(
1896 offset,
1897 );
1898 fidl::encoding::Encode::<AddressStateProviderWatchAddressAssignmentStateResponse, D>::encode(
1900 (
1901 <fidl_fuchsia_net_interfaces__common::AddressAssignmentState as fidl::encoding::ValueTypeMarker>::borrow(&self.assignment_state),
1902 ),
1903 encoder, offset, _depth
1904 )
1905 }
1906 }
1907 unsafe impl<
1908 D: fidl::encoding::ResourceDialect,
1909 T0: fidl::encoding::Encode<fidl_fuchsia_net_interfaces__common::AddressAssignmentState, D>,
1910 > fidl::encoding::Encode<AddressStateProviderWatchAddressAssignmentStateResponse, D>
1911 for (T0,)
1912 {
1913 #[inline]
1914 unsafe fn encode(
1915 self,
1916 encoder: &mut fidl::encoding::Encoder<'_, D>,
1917 offset: usize,
1918 depth: fidl::encoding::Depth,
1919 ) -> fidl::Result<()> {
1920 encoder.debug_check_bounds::<AddressStateProviderWatchAddressAssignmentStateResponse>(
1921 offset,
1922 );
1923 self.0.encode(encoder, offset + 0, depth)?;
1927 Ok(())
1928 }
1929 }
1930
1931 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1932 for AddressStateProviderWatchAddressAssignmentStateResponse
1933 {
1934 #[inline(always)]
1935 fn new_empty() -> Self {
1936 Self {
1937 assignment_state: fidl::new_empty!(
1938 fidl_fuchsia_net_interfaces__common::AddressAssignmentState,
1939 D
1940 ),
1941 }
1942 }
1943
1944 #[inline]
1945 unsafe fn decode(
1946 &mut self,
1947 decoder: &mut fidl::encoding::Decoder<'_, D>,
1948 offset: usize,
1949 _depth: fidl::encoding::Depth,
1950 ) -> fidl::Result<()> {
1951 decoder.debug_check_bounds::<Self>(offset);
1952 fidl::decode!(
1954 fidl_fuchsia_net_interfaces__common::AddressAssignmentState,
1955 D,
1956 &mut self.assignment_state,
1957 decoder,
1958 offset + 0,
1959 _depth
1960 )?;
1961 Ok(())
1962 }
1963 }
1964
1965 impl fidl::encoding::ValueTypeMarker for ControlGetIdResponse {
1966 type Borrowed<'a> = &'a Self;
1967 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1968 value
1969 }
1970 }
1971
1972 unsafe impl fidl::encoding::TypeMarker for ControlGetIdResponse {
1973 type Owned = Self;
1974
1975 #[inline(always)]
1976 fn inline_align(_context: fidl::encoding::Context) -> usize {
1977 8
1978 }
1979
1980 #[inline(always)]
1981 fn inline_size(_context: fidl::encoding::Context) -> usize {
1982 8
1983 }
1984 #[inline(always)]
1985 fn encode_is_copy() -> bool {
1986 true
1987 }
1988
1989 #[inline(always)]
1990 fn decode_is_copy() -> bool {
1991 true
1992 }
1993 }
1994
1995 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ControlGetIdResponse, D>
1996 for &ControlGetIdResponse
1997 {
1998 #[inline]
1999 unsafe fn encode(
2000 self,
2001 encoder: &mut fidl::encoding::Encoder<'_, D>,
2002 offset: usize,
2003 _depth: fidl::encoding::Depth,
2004 ) -> fidl::Result<()> {
2005 encoder.debug_check_bounds::<ControlGetIdResponse>(offset);
2006 unsafe {
2007 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2009 (buf_ptr as *mut ControlGetIdResponse)
2010 .write_unaligned((self as *const ControlGetIdResponse).read());
2011 }
2014 Ok(())
2015 }
2016 }
2017 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2018 fidl::encoding::Encode<ControlGetIdResponse, D> for (T0,)
2019 {
2020 #[inline]
2021 unsafe fn encode(
2022 self,
2023 encoder: &mut fidl::encoding::Encoder<'_, D>,
2024 offset: usize,
2025 depth: fidl::encoding::Depth,
2026 ) -> fidl::Result<()> {
2027 encoder.debug_check_bounds::<ControlGetIdResponse>(offset);
2028 self.0.encode(encoder, offset + 0, depth)?;
2032 Ok(())
2033 }
2034 }
2035
2036 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControlGetIdResponse {
2037 #[inline(always)]
2038 fn new_empty() -> Self {
2039 Self { id: fidl::new_empty!(u64, D) }
2040 }
2041
2042 #[inline]
2043 unsafe fn decode(
2044 &mut self,
2045 decoder: &mut fidl::encoding::Decoder<'_, D>,
2046 offset: usize,
2047 _depth: fidl::encoding::Depth,
2048 ) -> fidl::Result<()> {
2049 decoder.debug_check_bounds::<Self>(offset);
2050 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2051 unsafe {
2054 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2055 }
2056 Ok(())
2057 }
2058 }
2059
2060 impl fidl::encoding::ValueTypeMarker for ControlOnInterfaceRemovedRequest {
2061 type Borrowed<'a> = &'a Self;
2062 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2063 value
2064 }
2065 }
2066
2067 unsafe impl fidl::encoding::TypeMarker for ControlOnInterfaceRemovedRequest {
2068 type Owned = Self;
2069
2070 #[inline(always)]
2071 fn inline_align(_context: fidl::encoding::Context) -> usize {
2072 4
2073 }
2074
2075 #[inline(always)]
2076 fn inline_size(_context: fidl::encoding::Context) -> usize {
2077 4
2078 }
2079 }
2080
2081 unsafe impl<D: fidl::encoding::ResourceDialect>
2082 fidl::encoding::Encode<ControlOnInterfaceRemovedRequest, D>
2083 for &ControlOnInterfaceRemovedRequest
2084 {
2085 #[inline]
2086 unsafe fn encode(
2087 self,
2088 encoder: &mut fidl::encoding::Encoder<'_, D>,
2089 offset: usize,
2090 _depth: fidl::encoding::Depth,
2091 ) -> fidl::Result<()> {
2092 encoder.debug_check_bounds::<ControlOnInterfaceRemovedRequest>(offset);
2093 fidl::encoding::Encode::<ControlOnInterfaceRemovedRequest, D>::encode(
2095 (<InterfaceRemovedReason as fidl::encoding::ValueTypeMarker>::borrow(&self.reason),),
2096 encoder,
2097 offset,
2098 _depth,
2099 )
2100 }
2101 }
2102 unsafe impl<
2103 D: fidl::encoding::ResourceDialect,
2104 T0: fidl::encoding::Encode<InterfaceRemovedReason, D>,
2105 > fidl::encoding::Encode<ControlOnInterfaceRemovedRequest, D> for (T0,)
2106 {
2107 #[inline]
2108 unsafe fn encode(
2109 self,
2110 encoder: &mut fidl::encoding::Encoder<'_, D>,
2111 offset: usize,
2112 depth: fidl::encoding::Depth,
2113 ) -> fidl::Result<()> {
2114 encoder.debug_check_bounds::<ControlOnInterfaceRemovedRequest>(offset);
2115 self.0.encode(encoder, offset + 0, depth)?;
2119 Ok(())
2120 }
2121 }
2122
2123 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2124 for ControlOnInterfaceRemovedRequest
2125 {
2126 #[inline(always)]
2127 fn new_empty() -> Self {
2128 Self { reason: fidl::new_empty!(InterfaceRemovedReason, D) }
2129 }
2130
2131 #[inline]
2132 unsafe fn decode(
2133 &mut self,
2134 decoder: &mut fidl::encoding::Decoder<'_, D>,
2135 offset: usize,
2136 _depth: fidl::encoding::Depth,
2137 ) -> fidl::Result<()> {
2138 decoder.debug_check_bounds::<Self>(offset);
2139 fidl::decode!(
2141 InterfaceRemovedReason,
2142 D,
2143 &mut self.reason,
2144 decoder,
2145 offset + 0,
2146 _depth
2147 )?;
2148 Ok(())
2149 }
2150 }
2151
2152 impl fidl::encoding::ValueTypeMarker for ControlRemoveAddressRequest {
2153 type Borrowed<'a> = &'a Self;
2154 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2155 value
2156 }
2157 }
2158
2159 unsafe impl fidl::encoding::TypeMarker for ControlRemoveAddressRequest {
2160 type Owned = Self;
2161
2162 #[inline(always)]
2163 fn inline_align(_context: fidl::encoding::Context) -> usize {
2164 8
2165 }
2166
2167 #[inline(always)]
2168 fn inline_size(_context: fidl::encoding::Context) -> usize {
2169 24
2170 }
2171 }
2172
2173 unsafe impl<D: fidl::encoding::ResourceDialect>
2174 fidl::encoding::Encode<ControlRemoveAddressRequest, D> for &ControlRemoveAddressRequest
2175 {
2176 #[inline]
2177 unsafe fn encode(
2178 self,
2179 encoder: &mut fidl::encoding::Encoder<'_, D>,
2180 offset: usize,
2181 _depth: fidl::encoding::Depth,
2182 ) -> fidl::Result<()> {
2183 encoder.debug_check_bounds::<ControlRemoveAddressRequest>(offset);
2184 fidl::encoding::Encode::<ControlRemoveAddressRequest, D>::encode(
2186 (<fidl_fuchsia_net__common::Subnet as fidl::encoding::ValueTypeMarker>::borrow(
2187 &self.address,
2188 ),),
2189 encoder,
2190 offset,
2191 _depth,
2192 )
2193 }
2194 }
2195 unsafe impl<
2196 D: fidl::encoding::ResourceDialect,
2197 T0: fidl::encoding::Encode<fidl_fuchsia_net__common::Subnet, D>,
2198 > fidl::encoding::Encode<ControlRemoveAddressRequest, D> for (T0,)
2199 {
2200 #[inline]
2201 unsafe fn encode(
2202 self,
2203 encoder: &mut fidl::encoding::Encoder<'_, D>,
2204 offset: usize,
2205 depth: fidl::encoding::Depth,
2206 ) -> fidl::Result<()> {
2207 encoder.debug_check_bounds::<ControlRemoveAddressRequest>(offset);
2208 self.0.encode(encoder, offset + 0, depth)?;
2212 Ok(())
2213 }
2214 }
2215
2216 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2217 for ControlRemoveAddressRequest
2218 {
2219 #[inline(always)]
2220 fn new_empty() -> Self {
2221 Self { address: fidl::new_empty!(fidl_fuchsia_net__common::Subnet, D) }
2222 }
2223
2224 #[inline]
2225 unsafe fn decode(
2226 &mut self,
2227 decoder: &mut fidl::encoding::Decoder<'_, D>,
2228 offset: usize,
2229 _depth: fidl::encoding::Depth,
2230 ) -> fidl::Result<()> {
2231 decoder.debug_check_bounds::<Self>(offset);
2232 fidl::decode!(
2234 fidl_fuchsia_net__common::Subnet,
2235 D,
2236 &mut self.address,
2237 decoder,
2238 offset + 0,
2239 _depth
2240 )?;
2241 Ok(())
2242 }
2243 }
2244
2245 impl fidl::encoding::ValueTypeMarker for ControlSetConfigurationRequest {
2246 type Borrowed<'a> = &'a Self;
2247 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2248 value
2249 }
2250 }
2251
2252 unsafe impl fidl::encoding::TypeMarker for ControlSetConfigurationRequest {
2253 type Owned = Self;
2254
2255 #[inline(always)]
2256 fn inline_align(_context: fidl::encoding::Context) -> usize {
2257 8
2258 }
2259
2260 #[inline(always)]
2261 fn inline_size(_context: fidl::encoding::Context) -> usize {
2262 16
2263 }
2264 }
2265
2266 unsafe impl<D: fidl::encoding::ResourceDialect>
2267 fidl::encoding::Encode<ControlSetConfigurationRequest, D>
2268 for &ControlSetConfigurationRequest
2269 {
2270 #[inline]
2271 unsafe fn encode(
2272 self,
2273 encoder: &mut fidl::encoding::Encoder<'_, D>,
2274 offset: usize,
2275 _depth: fidl::encoding::Depth,
2276 ) -> fidl::Result<()> {
2277 encoder.debug_check_bounds::<ControlSetConfigurationRequest>(offset);
2278 fidl::encoding::Encode::<ControlSetConfigurationRequest, D>::encode(
2280 (<Configuration as fidl::encoding::ValueTypeMarker>::borrow(&self.config),),
2281 encoder,
2282 offset,
2283 _depth,
2284 )
2285 }
2286 }
2287 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Configuration, D>>
2288 fidl::encoding::Encode<ControlSetConfigurationRequest, D> for (T0,)
2289 {
2290 #[inline]
2291 unsafe fn encode(
2292 self,
2293 encoder: &mut fidl::encoding::Encoder<'_, D>,
2294 offset: usize,
2295 depth: fidl::encoding::Depth,
2296 ) -> fidl::Result<()> {
2297 encoder.debug_check_bounds::<ControlSetConfigurationRequest>(offset);
2298 self.0.encode(encoder, offset + 0, depth)?;
2302 Ok(())
2303 }
2304 }
2305
2306 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2307 for ControlSetConfigurationRequest
2308 {
2309 #[inline(always)]
2310 fn new_empty() -> Self {
2311 Self { config: fidl::new_empty!(Configuration, D) }
2312 }
2313
2314 #[inline]
2315 unsafe fn decode(
2316 &mut self,
2317 decoder: &mut fidl::encoding::Decoder<'_, D>,
2318 offset: usize,
2319 _depth: fidl::encoding::Depth,
2320 ) -> fidl::Result<()> {
2321 decoder.debug_check_bounds::<Self>(offset);
2322 fidl::decode!(Configuration, D, &mut self.config, decoder, offset + 0, _depth)?;
2324 Ok(())
2325 }
2326 }
2327
2328 impl fidl::encoding::ValueTypeMarker for ControlDisableResponse {
2329 type Borrowed<'a> = &'a Self;
2330 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2331 value
2332 }
2333 }
2334
2335 unsafe impl fidl::encoding::TypeMarker for ControlDisableResponse {
2336 type Owned = Self;
2337
2338 #[inline(always)]
2339 fn inline_align(_context: fidl::encoding::Context) -> usize {
2340 1
2341 }
2342
2343 #[inline(always)]
2344 fn inline_size(_context: fidl::encoding::Context) -> usize {
2345 1
2346 }
2347 }
2348
2349 unsafe impl<D: fidl::encoding::ResourceDialect>
2350 fidl::encoding::Encode<ControlDisableResponse, D> for &ControlDisableResponse
2351 {
2352 #[inline]
2353 unsafe fn encode(
2354 self,
2355 encoder: &mut fidl::encoding::Encoder<'_, D>,
2356 offset: usize,
2357 _depth: fidl::encoding::Depth,
2358 ) -> fidl::Result<()> {
2359 encoder.debug_check_bounds::<ControlDisableResponse>(offset);
2360 fidl::encoding::Encode::<ControlDisableResponse, D>::encode(
2362 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.did_disable),),
2363 encoder,
2364 offset,
2365 _depth,
2366 )
2367 }
2368 }
2369 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
2370 fidl::encoding::Encode<ControlDisableResponse, D> for (T0,)
2371 {
2372 #[inline]
2373 unsafe fn encode(
2374 self,
2375 encoder: &mut fidl::encoding::Encoder<'_, D>,
2376 offset: usize,
2377 depth: fidl::encoding::Depth,
2378 ) -> fidl::Result<()> {
2379 encoder.debug_check_bounds::<ControlDisableResponse>(offset);
2380 self.0.encode(encoder, offset + 0, depth)?;
2384 Ok(())
2385 }
2386 }
2387
2388 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2389 for ControlDisableResponse
2390 {
2391 #[inline(always)]
2392 fn new_empty() -> Self {
2393 Self { did_disable: fidl::new_empty!(bool, D) }
2394 }
2395
2396 #[inline]
2397 unsafe fn decode(
2398 &mut self,
2399 decoder: &mut fidl::encoding::Decoder<'_, D>,
2400 offset: usize,
2401 _depth: fidl::encoding::Depth,
2402 ) -> fidl::Result<()> {
2403 decoder.debug_check_bounds::<Self>(offset);
2404 fidl::decode!(bool, D, &mut self.did_disable, decoder, offset + 0, _depth)?;
2406 Ok(())
2407 }
2408 }
2409
2410 impl fidl::encoding::ValueTypeMarker for ControlEnableResponse {
2411 type Borrowed<'a> = &'a Self;
2412 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2413 value
2414 }
2415 }
2416
2417 unsafe impl fidl::encoding::TypeMarker for ControlEnableResponse {
2418 type Owned = Self;
2419
2420 #[inline(always)]
2421 fn inline_align(_context: fidl::encoding::Context) -> usize {
2422 1
2423 }
2424
2425 #[inline(always)]
2426 fn inline_size(_context: fidl::encoding::Context) -> usize {
2427 1
2428 }
2429 }
2430
2431 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ControlEnableResponse, D>
2432 for &ControlEnableResponse
2433 {
2434 #[inline]
2435 unsafe fn encode(
2436 self,
2437 encoder: &mut fidl::encoding::Encoder<'_, D>,
2438 offset: usize,
2439 _depth: fidl::encoding::Depth,
2440 ) -> fidl::Result<()> {
2441 encoder.debug_check_bounds::<ControlEnableResponse>(offset);
2442 fidl::encoding::Encode::<ControlEnableResponse, D>::encode(
2444 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.did_enable),),
2445 encoder,
2446 offset,
2447 _depth,
2448 )
2449 }
2450 }
2451 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
2452 fidl::encoding::Encode<ControlEnableResponse, D> for (T0,)
2453 {
2454 #[inline]
2455 unsafe fn encode(
2456 self,
2457 encoder: &mut fidl::encoding::Encoder<'_, D>,
2458 offset: usize,
2459 depth: fidl::encoding::Depth,
2460 ) -> fidl::Result<()> {
2461 encoder.debug_check_bounds::<ControlEnableResponse>(offset);
2462 self.0.encode(encoder, offset + 0, depth)?;
2466 Ok(())
2467 }
2468 }
2469
2470 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ControlEnableResponse {
2471 #[inline(always)]
2472 fn new_empty() -> Self {
2473 Self { did_enable: fidl::new_empty!(bool, D) }
2474 }
2475
2476 #[inline]
2477 unsafe fn decode(
2478 &mut self,
2479 decoder: &mut fidl::encoding::Decoder<'_, D>,
2480 offset: usize,
2481 _depth: fidl::encoding::Depth,
2482 ) -> fidl::Result<()> {
2483 decoder.debug_check_bounds::<Self>(offset);
2484 fidl::decode!(bool, D, &mut self.did_enable, decoder, offset + 0, _depth)?;
2486 Ok(())
2487 }
2488 }
2489
2490 impl fidl::encoding::ValueTypeMarker for ControlGetConfigurationResponse {
2491 type Borrowed<'a> = &'a Self;
2492 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2493 value
2494 }
2495 }
2496
2497 unsafe impl fidl::encoding::TypeMarker for ControlGetConfigurationResponse {
2498 type Owned = Self;
2499
2500 #[inline(always)]
2501 fn inline_align(_context: fidl::encoding::Context) -> usize {
2502 8
2503 }
2504
2505 #[inline(always)]
2506 fn inline_size(_context: fidl::encoding::Context) -> usize {
2507 16
2508 }
2509 }
2510
2511 unsafe impl<D: fidl::encoding::ResourceDialect>
2512 fidl::encoding::Encode<ControlGetConfigurationResponse, D>
2513 for &ControlGetConfigurationResponse
2514 {
2515 #[inline]
2516 unsafe fn encode(
2517 self,
2518 encoder: &mut fidl::encoding::Encoder<'_, D>,
2519 offset: usize,
2520 _depth: fidl::encoding::Depth,
2521 ) -> fidl::Result<()> {
2522 encoder.debug_check_bounds::<ControlGetConfigurationResponse>(offset);
2523 fidl::encoding::Encode::<ControlGetConfigurationResponse, D>::encode(
2525 (<Configuration as fidl::encoding::ValueTypeMarker>::borrow(&self.config),),
2526 encoder,
2527 offset,
2528 _depth,
2529 )
2530 }
2531 }
2532 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Configuration, D>>
2533 fidl::encoding::Encode<ControlGetConfigurationResponse, D> for (T0,)
2534 {
2535 #[inline]
2536 unsafe fn encode(
2537 self,
2538 encoder: &mut fidl::encoding::Encoder<'_, D>,
2539 offset: usize,
2540 depth: fidl::encoding::Depth,
2541 ) -> fidl::Result<()> {
2542 encoder.debug_check_bounds::<ControlGetConfigurationResponse>(offset);
2543 self.0.encode(encoder, offset + 0, depth)?;
2547 Ok(())
2548 }
2549 }
2550
2551 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2552 for ControlGetConfigurationResponse
2553 {
2554 #[inline(always)]
2555 fn new_empty() -> Self {
2556 Self { config: fidl::new_empty!(Configuration, D) }
2557 }
2558
2559 #[inline]
2560 unsafe fn decode(
2561 &mut self,
2562 decoder: &mut fidl::encoding::Decoder<'_, D>,
2563 offset: usize,
2564 _depth: fidl::encoding::Depth,
2565 ) -> fidl::Result<()> {
2566 decoder.debug_check_bounds::<Self>(offset);
2567 fidl::decode!(Configuration, D, &mut self.config, decoder, offset + 0, _depth)?;
2569 Ok(())
2570 }
2571 }
2572
2573 impl fidl::encoding::ValueTypeMarker for ControlRemoveAddressResponse {
2574 type Borrowed<'a> = &'a Self;
2575 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2576 value
2577 }
2578 }
2579
2580 unsafe impl fidl::encoding::TypeMarker for ControlRemoveAddressResponse {
2581 type Owned = Self;
2582
2583 #[inline(always)]
2584 fn inline_align(_context: fidl::encoding::Context) -> usize {
2585 1
2586 }
2587
2588 #[inline(always)]
2589 fn inline_size(_context: fidl::encoding::Context) -> usize {
2590 1
2591 }
2592 }
2593
2594 unsafe impl<D: fidl::encoding::ResourceDialect>
2595 fidl::encoding::Encode<ControlRemoveAddressResponse, D> for &ControlRemoveAddressResponse
2596 {
2597 #[inline]
2598 unsafe fn encode(
2599 self,
2600 encoder: &mut fidl::encoding::Encoder<'_, D>,
2601 offset: usize,
2602 _depth: fidl::encoding::Depth,
2603 ) -> fidl::Result<()> {
2604 encoder.debug_check_bounds::<ControlRemoveAddressResponse>(offset);
2605 fidl::encoding::Encode::<ControlRemoveAddressResponse, D>::encode(
2607 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.did_remove),),
2608 encoder,
2609 offset,
2610 _depth,
2611 )
2612 }
2613 }
2614 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
2615 fidl::encoding::Encode<ControlRemoveAddressResponse, D> for (T0,)
2616 {
2617 #[inline]
2618 unsafe fn encode(
2619 self,
2620 encoder: &mut fidl::encoding::Encoder<'_, D>,
2621 offset: usize,
2622 depth: fidl::encoding::Depth,
2623 ) -> fidl::Result<()> {
2624 encoder.debug_check_bounds::<ControlRemoveAddressResponse>(offset);
2625 self.0.encode(encoder, offset + 0, depth)?;
2629 Ok(())
2630 }
2631 }
2632
2633 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2634 for ControlRemoveAddressResponse
2635 {
2636 #[inline(always)]
2637 fn new_empty() -> Self {
2638 Self { did_remove: fidl::new_empty!(bool, D) }
2639 }
2640
2641 #[inline]
2642 unsafe fn decode(
2643 &mut self,
2644 decoder: &mut fidl::encoding::Decoder<'_, D>,
2645 offset: usize,
2646 _depth: fidl::encoding::Depth,
2647 ) -> fidl::Result<()> {
2648 decoder.debug_check_bounds::<Self>(offset);
2649 fidl::decode!(bool, D, &mut self.did_remove, decoder, offset + 0, _depth)?;
2651 Ok(())
2652 }
2653 }
2654
2655 impl fidl::encoding::ValueTypeMarker for ControlSetConfigurationResponse {
2656 type Borrowed<'a> = &'a Self;
2657 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2658 value
2659 }
2660 }
2661
2662 unsafe impl fidl::encoding::TypeMarker for ControlSetConfigurationResponse {
2663 type Owned = Self;
2664
2665 #[inline(always)]
2666 fn inline_align(_context: fidl::encoding::Context) -> usize {
2667 8
2668 }
2669
2670 #[inline(always)]
2671 fn inline_size(_context: fidl::encoding::Context) -> usize {
2672 16
2673 }
2674 }
2675
2676 unsafe impl<D: fidl::encoding::ResourceDialect>
2677 fidl::encoding::Encode<ControlSetConfigurationResponse, D>
2678 for &ControlSetConfigurationResponse
2679 {
2680 #[inline]
2681 unsafe fn encode(
2682 self,
2683 encoder: &mut fidl::encoding::Encoder<'_, D>,
2684 offset: usize,
2685 _depth: fidl::encoding::Depth,
2686 ) -> fidl::Result<()> {
2687 encoder.debug_check_bounds::<ControlSetConfigurationResponse>(offset);
2688 fidl::encoding::Encode::<ControlSetConfigurationResponse, D>::encode(
2690 (<Configuration as fidl::encoding::ValueTypeMarker>::borrow(&self.previous_config),),
2691 encoder,
2692 offset,
2693 _depth,
2694 )
2695 }
2696 }
2697 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Configuration, D>>
2698 fidl::encoding::Encode<ControlSetConfigurationResponse, D> for (T0,)
2699 {
2700 #[inline]
2701 unsafe fn encode(
2702 self,
2703 encoder: &mut fidl::encoding::Encoder<'_, D>,
2704 offset: usize,
2705 depth: fidl::encoding::Depth,
2706 ) -> fidl::Result<()> {
2707 encoder.debug_check_bounds::<ControlSetConfigurationResponse>(offset);
2708 self.0.encode(encoder, offset + 0, depth)?;
2712 Ok(())
2713 }
2714 }
2715
2716 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2717 for ControlSetConfigurationResponse
2718 {
2719 #[inline(always)]
2720 fn new_empty() -> Self {
2721 Self { previous_config: fidl::new_empty!(Configuration, D) }
2722 }
2723
2724 #[inline]
2725 unsafe fn decode(
2726 &mut self,
2727 decoder: &mut fidl::encoding::Decoder<'_, D>,
2728 offset: usize,
2729 _depth: fidl::encoding::Depth,
2730 ) -> fidl::Result<()> {
2731 decoder.debug_check_bounds::<Self>(offset);
2732 fidl::decode!(
2734 Configuration,
2735 D,
2736 &mut self.previous_config,
2737 decoder,
2738 offset + 0,
2739 _depth
2740 )?;
2741 Ok(())
2742 }
2743 }
2744
2745 impl fidl::encoding::ValueTypeMarker for Empty {
2746 type Borrowed<'a> = &'a Self;
2747 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2748 value
2749 }
2750 }
2751
2752 unsafe impl fidl::encoding::TypeMarker for Empty {
2753 type Owned = Self;
2754
2755 #[inline(always)]
2756 fn inline_align(_context: fidl::encoding::Context) -> usize {
2757 1
2758 }
2759
2760 #[inline(always)]
2761 fn inline_size(_context: fidl::encoding::Context) -> usize {
2762 1
2763 }
2764 }
2765
2766 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Empty, D> for &Empty {
2767 #[inline]
2768 unsafe fn encode(
2769 self,
2770 encoder: &mut fidl::encoding::Encoder<'_, D>,
2771 offset: usize,
2772 _depth: fidl::encoding::Depth,
2773 ) -> fidl::Result<()> {
2774 encoder.debug_check_bounds::<Empty>(offset);
2775 encoder.write_num(0u8, offset);
2776 Ok(())
2777 }
2778 }
2779
2780 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Empty {
2781 #[inline(always)]
2782 fn new_empty() -> Self {
2783 Self
2784 }
2785
2786 #[inline]
2787 unsafe fn decode(
2788 &mut self,
2789 decoder: &mut fidl::encoding::Decoder<'_, D>,
2790 offset: usize,
2791 _depth: fidl::encoding::Depth,
2792 ) -> fidl::Result<()> {
2793 decoder.debug_check_bounds::<Self>(offset);
2794 match decoder.read_num::<u8>(offset) {
2795 0 => Ok(()),
2796 _ => Err(fidl::Error::Invalid),
2797 }
2798 }
2799 }
2800
2801 impl AddressParameters {
2802 #[inline(always)]
2803 fn max_ordinal_present(&self) -> u64 {
2804 if let Some(_) = self.perform_dad {
2805 return 4;
2806 }
2807 if let Some(_) = self.add_subnet_route {
2808 return 3;
2809 }
2810 if let Some(_) = self.temporary {
2811 return 2;
2812 }
2813 if let Some(_) = self.initial_properties {
2814 return 1;
2815 }
2816 0
2817 }
2818 }
2819
2820 impl fidl::encoding::ValueTypeMarker for AddressParameters {
2821 type Borrowed<'a> = &'a Self;
2822 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2823 value
2824 }
2825 }
2826
2827 unsafe impl fidl::encoding::TypeMarker for AddressParameters {
2828 type Owned = Self;
2829
2830 #[inline(always)]
2831 fn inline_align(_context: fidl::encoding::Context) -> usize {
2832 8
2833 }
2834
2835 #[inline(always)]
2836 fn inline_size(_context: fidl::encoding::Context) -> usize {
2837 16
2838 }
2839 }
2840
2841 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AddressParameters, D>
2842 for &AddressParameters
2843 {
2844 unsafe fn encode(
2845 self,
2846 encoder: &mut fidl::encoding::Encoder<'_, D>,
2847 offset: usize,
2848 mut depth: fidl::encoding::Depth,
2849 ) -> fidl::Result<()> {
2850 encoder.debug_check_bounds::<AddressParameters>(offset);
2851 let max_ordinal: u64 = self.max_ordinal_present();
2853 encoder.write_num(max_ordinal, offset);
2854 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2855 if max_ordinal == 0 {
2857 return Ok(());
2858 }
2859 depth.increment()?;
2860 let envelope_size = 8;
2861 let bytes_len = max_ordinal as usize * envelope_size;
2862 #[allow(unused_variables)]
2863 let offset = encoder.out_of_line_offset(bytes_len);
2864 let mut _prev_end_offset: usize = 0;
2865 if 1 > max_ordinal {
2866 return Ok(());
2867 }
2868
2869 let cur_offset: usize = (1 - 1) * envelope_size;
2872
2873 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2875
2876 fidl::encoding::encode_in_envelope_optional::<AddressProperties, D>(
2881 self.initial_properties
2882 .as_ref()
2883 .map(<AddressProperties as fidl::encoding::ValueTypeMarker>::borrow),
2884 encoder,
2885 offset + cur_offset,
2886 depth,
2887 )?;
2888
2889 _prev_end_offset = cur_offset + envelope_size;
2890 if 2 > max_ordinal {
2891 return Ok(());
2892 }
2893
2894 let cur_offset: usize = (2 - 1) * envelope_size;
2897
2898 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2900
2901 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2906 self.temporary.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2907 encoder,
2908 offset + cur_offset,
2909 depth,
2910 )?;
2911
2912 _prev_end_offset = cur_offset + envelope_size;
2913 if 3 > max_ordinal {
2914 return Ok(());
2915 }
2916
2917 let cur_offset: usize = (3 - 1) * envelope_size;
2920
2921 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2923
2924 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2929 self.add_subnet_route
2930 .as_ref()
2931 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2932 encoder,
2933 offset + cur_offset,
2934 depth,
2935 )?;
2936
2937 _prev_end_offset = cur_offset + envelope_size;
2938 if 4 > max_ordinal {
2939 return Ok(());
2940 }
2941
2942 let cur_offset: usize = (4 - 1) * envelope_size;
2945
2946 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2948
2949 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2954 self.perform_dad.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2955 encoder,
2956 offset + cur_offset,
2957 depth,
2958 )?;
2959
2960 _prev_end_offset = cur_offset + envelope_size;
2961
2962 Ok(())
2963 }
2964 }
2965
2966 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AddressParameters {
2967 #[inline(always)]
2968 fn new_empty() -> Self {
2969 Self::default()
2970 }
2971
2972 unsafe fn decode(
2973 &mut self,
2974 decoder: &mut fidl::encoding::Decoder<'_, D>,
2975 offset: usize,
2976 mut depth: fidl::encoding::Depth,
2977 ) -> fidl::Result<()> {
2978 decoder.debug_check_bounds::<Self>(offset);
2979 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2980 None => return Err(fidl::Error::NotNullable),
2981 Some(len) => len,
2982 };
2983 if len == 0 {
2985 return Ok(());
2986 };
2987 depth.increment()?;
2988 let envelope_size = 8;
2989 let bytes_len = len * envelope_size;
2990 let offset = decoder.out_of_line_offset(bytes_len)?;
2991 let mut _next_ordinal_to_read = 0;
2993 let mut next_offset = offset;
2994 let end_offset = offset + bytes_len;
2995 _next_ordinal_to_read += 1;
2996 if next_offset >= end_offset {
2997 return Ok(());
2998 }
2999
3000 while _next_ordinal_to_read < 1 {
3002 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3003 _next_ordinal_to_read += 1;
3004 next_offset += envelope_size;
3005 }
3006
3007 let next_out_of_line = decoder.next_out_of_line();
3008 let handles_before = decoder.remaining_handles();
3009 if let Some((inlined, num_bytes, num_handles)) =
3010 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3011 {
3012 let member_inline_size =
3013 <AddressProperties as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3014 if inlined != (member_inline_size <= 4) {
3015 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3016 }
3017 let inner_offset;
3018 let mut inner_depth = depth.clone();
3019 if inlined {
3020 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3021 inner_offset = next_offset;
3022 } else {
3023 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3024 inner_depth.increment()?;
3025 }
3026 let val_ref = self
3027 .initial_properties
3028 .get_or_insert_with(|| fidl::new_empty!(AddressProperties, D));
3029 fidl::decode!(AddressProperties, D, val_ref, decoder, inner_offset, inner_depth)?;
3030 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3031 {
3032 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3033 }
3034 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3035 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3036 }
3037 }
3038
3039 next_offset += envelope_size;
3040 _next_ordinal_to_read += 1;
3041 if next_offset >= end_offset {
3042 return Ok(());
3043 }
3044
3045 while _next_ordinal_to_read < 2 {
3047 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3048 _next_ordinal_to_read += 1;
3049 next_offset += envelope_size;
3050 }
3051
3052 let next_out_of_line = decoder.next_out_of_line();
3053 let handles_before = decoder.remaining_handles();
3054 if let Some((inlined, num_bytes, num_handles)) =
3055 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3056 {
3057 let member_inline_size =
3058 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3059 if inlined != (member_inline_size <= 4) {
3060 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3061 }
3062 let inner_offset;
3063 let mut inner_depth = depth.clone();
3064 if inlined {
3065 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3066 inner_offset = next_offset;
3067 } else {
3068 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3069 inner_depth.increment()?;
3070 }
3071 let val_ref = self.temporary.get_or_insert_with(|| fidl::new_empty!(bool, D));
3072 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3073 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3074 {
3075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3076 }
3077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3079 }
3080 }
3081
3082 next_offset += envelope_size;
3083 _next_ordinal_to_read += 1;
3084 if next_offset >= end_offset {
3085 return Ok(());
3086 }
3087
3088 while _next_ordinal_to_read < 3 {
3090 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3091 _next_ordinal_to_read += 1;
3092 next_offset += envelope_size;
3093 }
3094
3095 let next_out_of_line = decoder.next_out_of_line();
3096 let handles_before = decoder.remaining_handles();
3097 if let Some((inlined, num_bytes, num_handles)) =
3098 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3099 {
3100 let member_inline_size =
3101 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3102 if inlined != (member_inline_size <= 4) {
3103 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3104 }
3105 let inner_offset;
3106 let mut inner_depth = depth.clone();
3107 if inlined {
3108 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3109 inner_offset = next_offset;
3110 } else {
3111 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3112 inner_depth.increment()?;
3113 }
3114 let val_ref =
3115 self.add_subnet_route.get_or_insert_with(|| fidl::new_empty!(bool, D));
3116 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3117 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3118 {
3119 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3120 }
3121 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3122 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3123 }
3124 }
3125
3126 next_offset += envelope_size;
3127 _next_ordinal_to_read += 1;
3128 if next_offset >= end_offset {
3129 return Ok(());
3130 }
3131
3132 while _next_ordinal_to_read < 4 {
3134 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3135 _next_ordinal_to_read += 1;
3136 next_offset += envelope_size;
3137 }
3138
3139 let next_out_of_line = decoder.next_out_of_line();
3140 let handles_before = decoder.remaining_handles();
3141 if let Some((inlined, num_bytes, num_handles)) =
3142 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3143 {
3144 let member_inline_size =
3145 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3146 if inlined != (member_inline_size <= 4) {
3147 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3148 }
3149 let inner_offset;
3150 let mut inner_depth = depth.clone();
3151 if inlined {
3152 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3153 inner_offset = next_offset;
3154 } else {
3155 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3156 inner_depth.increment()?;
3157 }
3158 let val_ref = self.perform_dad.get_or_insert_with(|| fidl::new_empty!(bool, D));
3159 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3160 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3161 {
3162 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3163 }
3164 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3165 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3166 }
3167 }
3168
3169 next_offset += envelope_size;
3170
3171 while next_offset < end_offset {
3173 _next_ordinal_to_read += 1;
3174 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3175 next_offset += envelope_size;
3176 }
3177
3178 Ok(())
3179 }
3180 }
3181
3182 impl AddressProperties {
3183 #[inline(always)]
3184 fn max_ordinal_present(&self) -> u64 {
3185 if let Some(_) = self.valid_lifetime_end {
3186 return 2;
3187 }
3188 if let Some(_) = self.preferred_lifetime_info {
3189 return 1;
3190 }
3191 0
3192 }
3193 }
3194
3195 impl fidl::encoding::ValueTypeMarker for AddressProperties {
3196 type Borrowed<'a> = &'a Self;
3197 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3198 value
3199 }
3200 }
3201
3202 unsafe impl fidl::encoding::TypeMarker for AddressProperties {
3203 type Owned = Self;
3204
3205 #[inline(always)]
3206 fn inline_align(_context: fidl::encoding::Context) -> usize {
3207 8
3208 }
3209
3210 #[inline(always)]
3211 fn inline_size(_context: fidl::encoding::Context) -> usize {
3212 16
3213 }
3214 }
3215
3216 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AddressProperties, D>
3217 for &AddressProperties
3218 {
3219 unsafe fn encode(
3220 self,
3221 encoder: &mut fidl::encoding::Encoder<'_, D>,
3222 offset: usize,
3223 mut depth: fidl::encoding::Depth,
3224 ) -> fidl::Result<()> {
3225 encoder.debug_check_bounds::<AddressProperties>(offset);
3226 let max_ordinal: u64 = self.max_ordinal_present();
3228 encoder.write_num(max_ordinal, offset);
3229 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3230 if max_ordinal == 0 {
3232 return Ok(());
3233 }
3234 depth.increment()?;
3235 let envelope_size = 8;
3236 let bytes_len = max_ordinal as usize * envelope_size;
3237 #[allow(unused_variables)]
3238 let offset = encoder.out_of_line_offset(bytes_len);
3239 let mut _prev_end_offset: usize = 0;
3240 if 1 > max_ordinal {
3241 return Ok(());
3242 }
3243
3244 let cur_offset: usize = (1 - 1) * envelope_size;
3247
3248 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3250
3251 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_interfaces__common::PreferredLifetimeInfo, D>(
3256 self.preferred_lifetime_info.as_ref().map(<fidl_fuchsia_net_interfaces__common::PreferredLifetimeInfo as fidl::encoding::ValueTypeMarker>::borrow),
3257 encoder, offset + cur_offset, depth
3258 )?;
3259
3260 _prev_end_offset = cur_offset + envelope_size;
3261 if 2 > max_ordinal {
3262 return Ok(());
3263 }
3264
3265 let cur_offset: usize = (2 - 1) * envelope_size;
3268
3269 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3271
3272 fidl::encoding::encode_in_envelope_optional::<i64, D>(
3277 self.valid_lifetime_end
3278 .as_ref()
3279 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
3280 encoder,
3281 offset + cur_offset,
3282 depth,
3283 )?;
3284
3285 _prev_end_offset = cur_offset + envelope_size;
3286
3287 Ok(())
3288 }
3289 }
3290
3291 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AddressProperties {
3292 #[inline(always)]
3293 fn new_empty() -> Self {
3294 Self::default()
3295 }
3296
3297 unsafe fn decode(
3298 &mut self,
3299 decoder: &mut fidl::encoding::Decoder<'_, D>,
3300 offset: usize,
3301 mut depth: fidl::encoding::Depth,
3302 ) -> fidl::Result<()> {
3303 decoder.debug_check_bounds::<Self>(offset);
3304 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3305 None => return Err(fidl::Error::NotNullable),
3306 Some(len) => len,
3307 };
3308 if len == 0 {
3310 return Ok(());
3311 };
3312 depth.increment()?;
3313 let envelope_size = 8;
3314 let bytes_len = len * envelope_size;
3315 let offset = decoder.out_of_line_offset(bytes_len)?;
3316 let mut _next_ordinal_to_read = 0;
3318 let mut next_offset = offset;
3319 let end_offset = offset + bytes_len;
3320 _next_ordinal_to_read += 1;
3321 if next_offset >= end_offset {
3322 return Ok(());
3323 }
3324
3325 while _next_ordinal_to_read < 1 {
3327 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3328 _next_ordinal_to_read += 1;
3329 next_offset += envelope_size;
3330 }
3331
3332 let next_out_of_line = decoder.next_out_of_line();
3333 let handles_before = decoder.remaining_handles();
3334 if let Some((inlined, num_bytes, num_handles)) =
3335 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3336 {
3337 let member_inline_size = <fidl_fuchsia_net_interfaces__common::PreferredLifetimeInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3338 if inlined != (member_inline_size <= 4) {
3339 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3340 }
3341 let inner_offset;
3342 let mut inner_depth = depth.clone();
3343 if inlined {
3344 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3345 inner_offset = next_offset;
3346 } else {
3347 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3348 inner_depth.increment()?;
3349 }
3350 let val_ref = self.preferred_lifetime_info.get_or_insert_with(|| {
3351 fidl::new_empty!(fidl_fuchsia_net_interfaces__common::PreferredLifetimeInfo, D)
3352 });
3353 fidl::decode!(
3354 fidl_fuchsia_net_interfaces__common::PreferredLifetimeInfo,
3355 D,
3356 val_ref,
3357 decoder,
3358 inner_offset,
3359 inner_depth
3360 )?;
3361 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3362 {
3363 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3364 }
3365 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3366 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3367 }
3368 }
3369
3370 next_offset += envelope_size;
3371 _next_ordinal_to_read += 1;
3372 if next_offset >= end_offset {
3373 return Ok(());
3374 }
3375
3376 while _next_ordinal_to_read < 2 {
3378 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3379 _next_ordinal_to_read += 1;
3380 next_offset += envelope_size;
3381 }
3382
3383 let next_out_of_line = decoder.next_out_of_line();
3384 let handles_before = decoder.remaining_handles();
3385 if let Some((inlined, num_bytes, num_handles)) =
3386 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3387 {
3388 let member_inline_size =
3389 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3390 if inlined != (member_inline_size <= 4) {
3391 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3392 }
3393 let inner_offset;
3394 let mut inner_depth = depth.clone();
3395 if inlined {
3396 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3397 inner_offset = next_offset;
3398 } else {
3399 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3400 inner_depth.increment()?;
3401 }
3402 let val_ref =
3403 self.valid_lifetime_end.get_or_insert_with(|| fidl::new_empty!(i64, D));
3404 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3405 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3406 {
3407 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3408 }
3409 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3410 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3411 }
3412 }
3413
3414 next_offset += envelope_size;
3415
3416 while next_offset < end_offset {
3418 _next_ordinal_to_read += 1;
3419 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3420 next_offset += envelope_size;
3421 }
3422
3423 Ok(())
3424 }
3425 }
3426
3427 impl ArpConfiguration {
3428 #[inline(always)]
3429 fn max_ordinal_present(&self) -> u64 {
3430 if let Some(_) = self.dad {
3431 return 2;
3432 }
3433 if let Some(_) = self.nud {
3434 return 1;
3435 }
3436 0
3437 }
3438 }
3439
3440 impl fidl::encoding::ValueTypeMarker for ArpConfiguration {
3441 type Borrowed<'a> = &'a Self;
3442 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3443 value
3444 }
3445 }
3446
3447 unsafe impl fidl::encoding::TypeMarker for ArpConfiguration {
3448 type Owned = Self;
3449
3450 #[inline(always)]
3451 fn inline_align(_context: fidl::encoding::Context) -> usize {
3452 8
3453 }
3454
3455 #[inline(always)]
3456 fn inline_size(_context: fidl::encoding::Context) -> usize {
3457 16
3458 }
3459 }
3460
3461 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ArpConfiguration, D>
3462 for &ArpConfiguration
3463 {
3464 unsafe fn encode(
3465 self,
3466 encoder: &mut fidl::encoding::Encoder<'_, D>,
3467 offset: usize,
3468 mut depth: fidl::encoding::Depth,
3469 ) -> fidl::Result<()> {
3470 encoder.debug_check_bounds::<ArpConfiguration>(offset);
3471 let max_ordinal: u64 = self.max_ordinal_present();
3473 encoder.write_num(max_ordinal, offset);
3474 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3475 if max_ordinal == 0 {
3477 return Ok(());
3478 }
3479 depth.increment()?;
3480 let envelope_size = 8;
3481 let bytes_len = max_ordinal as usize * envelope_size;
3482 #[allow(unused_variables)]
3483 let offset = encoder.out_of_line_offset(bytes_len);
3484 let mut _prev_end_offset: usize = 0;
3485 if 1 > max_ordinal {
3486 return Ok(());
3487 }
3488
3489 let cur_offset: usize = (1 - 1) * envelope_size;
3492
3493 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3495
3496 fidl::encoding::encode_in_envelope_optional::<NudConfiguration, D>(
3501 self.nud
3502 .as_ref()
3503 .map(<NudConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3504 encoder,
3505 offset + cur_offset,
3506 depth,
3507 )?;
3508
3509 _prev_end_offset = cur_offset + envelope_size;
3510 if 2 > max_ordinal {
3511 return Ok(());
3512 }
3513
3514 let cur_offset: usize = (2 - 1) * envelope_size;
3517
3518 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3520
3521 fidl::encoding::encode_in_envelope_optional::<DadConfiguration, D>(
3526 self.dad
3527 .as_ref()
3528 .map(<DadConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
3529 encoder,
3530 offset + cur_offset,
3531 depth,
3532 )?;
3533
3534 _prev_end_offset = cur_offset + envelope_size;
3535
3536 Ok(())
3537 }
3538 }
3539
3540 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ArpConfiguration {
3541 #[inline(always)]
3542 fn new_empty() -> Self {
3543 Self::default()
3544 }
3545
3546 unsafe fn decode(
3547 &mut self,
3548 decoder: &mut fidl::encoding::Decoder<'_, D>,
3549 offset: usize,
3550 mut depth: fidl::encoding::Depth,
3551 ) -> fidl::Result<()> {
3552 decoder.debug_check_bounds::<Self>(offset);
3553 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3554 None => return Err(fidl::Error::NotNullable),
3555 Some(len) => len,
3556 };
3557 if len == 0 {
3559 return Ok(());
3560 };
3561 depth.increment()?;
3562 let envelope_size = 8;
3563 let bytes_len = len * envelope_size;
3564 let offset = decoder.out_of_line_offset(bytes_len)?;
3565 let mut _next_ordinal_to_read = 0;
3567 let mut next_offset = offset;
3568 let end_offset = offset + bytes_len;
3569 _next_ordinal_to_read += 1;
3570 if next_offset >= end_offset {
3571 return Ok(());
3572 }
3573
3574 while _next_ordinal_to_read < 1 {
3576 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3577 _next_ordinal_to_read += 1;
3578 next_offset += envelope_size;
3579 }
3580
3581 let next_out_of_line = decoder.next_out_of_line();
3582 let handles_before = decoder.remaining_handles();
3583 if let Some((inlined, num_bytes, num_handles)) =
3584 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3585 {
3586 let member_inline_size =
3587 <NudConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3588 if inlined != (member_inline_size <= 4) {
3589 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3590 }
3591 let inner_offset;
3592 let mut inner_depth = depth.clone();
3593 if inlined {
3594 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3595 inner_offset = next_offset;
3596 } else {
3597 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3598 inner_depth.increment()?;
3599 }
3600 let val_ref = self.nud.get_or_insert_with(|| fidl::new_empty!(NudConfiguration, D));
3601 fidl::decode!(NudConfiguration, D, val_ref, decoder, inner_offset, inner_depth)?;
3602 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3603 {
3604 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3605 }
3606 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3607 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3608 }
3609 }
3610
3611 next_offset += envelope_size;
3612 _next_ordinal_to_read += 1;
3613 if next_offset >= end_offset {
3614 return Ok(());
3615 }
3616
3617 while _next_ordinal_to_read < 2 {
3619 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3620 _next_ordinal_to_read += 1;
3621 next_offset += envelope_size;
3622 }
3623
3624 let next_out_of_line = decoder.next_out_of_line();
3625 let handles_before = decoder.remaining_handles();
3626 if let Some((inlined, num_bytes, num_handles)) =
3627 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3628 {
3629 let member_inline_size =
3630 <DadConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3631 if inlined != (member_inline_size <= 4) {
3632 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3633 }
3634 let inner_offset;
3635 let mut inner_depth = depth.clone();
3636 if inlined {
3637 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3638 inner_offset = next_offset;
3639 } else {
3640 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3641 inner_depth.increment()?;
3642 }
3643 let val_ref = self.dad.get_or_insert_with(|| fidl::new_empty!(DadConfiguration, D));
3644 fidl::decode!(DadConfiguration, D, val_ref, decoder, inner_offset, inner_depth)?;
3645 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3646 {
3647 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3648 }
3649 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3650 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3651 }
3652 }
3653
3654 next_offset += envelope_size;
3655
3656 while next_offset < end_offset {
3658 _next_ordinal_to_read += 1;
3659 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3660 next_offset += envelope_size;
3661 }
3662
3663 Ok(())
3664 }
3665 }
3666
3667 impl Configuration {
3668 #[inline(always)]
3669 fn max_ordinal_present(&self) -> u64 {
3670 if let Some(_) = self.ipv6 {
3671 return 2;
3672 }
3673 if let Some(_) = self.ipv4 {
3674 return 1;
3675 }
3676 0
3677 }
3678 }
3679
3680 impl fidl::encoding::ValueTypeMarker for Configuration {
3681 type Borrowed<'a> = &'a Self;
3682 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3683 value
3684 }
3685 }
3686
3687 unsafe impl fidl::encoding::TypeMarker for Configuration {
3688 type Owned = Self;
3689
3690 #[inline(always)]
3691 fn inline_align(_context: fidl::encoding::Context) -> usize {
3692 8
3693 }
3694
3695 #[inline(always)]
3696 fn inline_size(_context: fidl::encoding::Context) -> usize {
3697 16
3698 }
3699 }
3700
3701 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Configuration, D>
3702 for &Configuration
3703 {
3704 unsafe fn encode(
3705 self,
3706 encoder: &mut fidl::encoding::Encoder<'_, D>,
3707 offset: usize,
3708 mut depth: fidl::encoding::Depth,
3709 ) -> fidl::Result<()> {
3710 encoder.debug_check_bounds::<Configuration>(offset);
3711 let max_ordinal: u64 = self.max_ordinal_present();
3713 encoder.write_num(max_ordinal, offset);
3714 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3715 if max_ordinal == 0 {
3717 return Ok(());
3718 }
3719 depth.increment()?;
3720 let envelope_size = 8;
3721 let bytes_len = max_ordinal as usize * envelope_size;
3722 #[allow(unused_variables)]
3723 let offset = encoder.out_of_line_offset(bytes_len);
3724 let mut _prev_end_offset: usize = 0;
3725 if 1 > max_ordinal {
3726 return Ok(());
3727 }
3728
3729 let cur_offset: usize = (1 - 1) * envelope_size;
3732
3733 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3735
3736 fidl::encoding::encode_in_envelope_optional::<Ipv4Configuration, D>(
3741 self.ipv4
3742 .as_ref()
3743 .map(<Ipv4Configuration as fidl::encoding::ValueTypeMarker>::borrow),
3744 encoder,
3745 offset + cur_offset,
3746 depth,
3747 )?;
3748
3749 _prev_end_offset = cur_offset + envelope_size;
3750 if 2 > max_ordinal {
3751 return Ok(());
3752 }
3753
3754 let cur_offset: usize = (2 - 1) * envelope_size;
3757
3758 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3760
3761 fidl::encoding::encode_in_envelope_optional::<Ipv6Configuration, D>(
3766 self.ipv6
3767 .as_ref()
3768 .map(<Ipv6Configuration as fidl::encoding::ValueTypeMarker>::borrow),
3769 encoder,
3770 offset + cur_offset,
3771 depth,
3772 )?;
3773
3774 _prev_end_offset = cur_offset + envelope_size;
3775
3776 Ok(())
3777 }
3778 }
3779
3780 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Configuration {
3781 #[inline(always)]
3782 fn new_empty() -> Self {
3783 Self::default()
3784 }
3785
3786 unsafe fn decode(
3787 &mut self,
3788 decoder: &mut fidl::encoding::Decoder<'_, D>,
3789 offset: usize,
3790 mut depth: fidl::encoding::Depth,
3791 ) -> fidl::Result<()> {
3792 decoder.debug_check_bounds::<Self>(offset);
3793 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3794 None => return Err(fidl::Error::NotNullable),
3795 Some(len) => len,
3796 };
3797 if len == 0 {
3799 return Ok(());
3800 };
3801 depth.increment()?;
3802 let envelope_size = 8;
3803 let bytes_len = len * envelope_size;
3804 let offset = decoder.out_of_line_offset(bytes_len)?;
3805 let mut _next_ordinal_to_read = 0;
3807 let mut next_offset = offset;
3808 let end_offset = offset + bytes_len;
3809 _next_ordinal_to_read += 1;
3810 if next_offset >= end_offset {
3811 return Ok(());
3812 }
3813
3814 while _next_ordinal_to_read < 1 {
3816 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3817 _next_ordinal_to_read += 1;
3818 next_offset += envelope_size;
3819 }
3820
3821 let next_out_of_line = decoder.next_out_of_line();
3822 let handles_before = decoder.remaining_handles();
3823 if let Some((inlined, num_bytes, num_handles)) =
3824 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3825 {
3826 let member_inline_size =
3827 <Ipv4Configuration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3828 if inlined != (member_inline_size <= 4) {
3829 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3830 }
3831 let inner_offset;
3832 let mut inner_depth = depth.clone();
3833 if inlined {
3834 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3835 inner_offset = next_offset;
3836 } else {
3837 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3838 inner_depth.increment()?;
3839 }
3840 let val_ref =
3841 self.ipv4.get_or_insert_with(|| fidl::new_empty!(Ipv4Configuration, D));
3842 fidl::decode!(Ipv4Configuration, D, val_ref, decoder, inner_offset, inner_depth)?;
3843 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3844 {
3845 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3846 }
3847 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3848 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3849 }
3850 }
3851
3852 next_offset += envelope_size;
3853 _next_ordinal_to_read += 1;
3854 if next_offset >= end_offset {
3855 return Ok(());
3856 }
3857
3858 while _next_ordinal_to_read < 2 {
3860 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3861 _next_ordinal_to_read += 1;
3862 next_offset += envelope_size;
3863 }
3864
3865 let next_out_of_line = decoder.next_out_of_line();
3866 let handles_before = decoder.remaining_handles();
3867 if let Some((inlined, num_bytes, num_handles)) =
3868 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3869 {
3870 let member_inline_size =
3871 <Ipv6Configuration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3872 if inlined != (member_inline_size <= 4) {
3873 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3874 }
3875 let inner_offset;
3876 let mut inner_depth = depth.clone();
3877 if inlined {
3878 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3879 inner_offset = next_offset;
3880 } else {
3881 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3882 inner_depth.increment()?;
3883 }
3884 let val_ref =
3885 self.ipv6.get_or_insert_with(|| fidl::new_empty!(Ipv6Configuration, D));
3886 fidl::decode!(Ipv6Configuration, D, val_ref, decoder, inner_offset, inner_depth)?;
3887 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3888 {
3889 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3890 }
3891 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3892 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3893 }
3894 }
3895
3896 next_offset += envelope_size;
3897
3898 while next_offset < end_offset {
3900 _next_ordinal_to_read += 1;
3901 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3902 next_offset += envelope_size;
3903 }
3904
3905 Ok(())
3906 }
3907 }
3908
3909 impl DadConfiguration {
3910 #[inline(always)]
3911 fn max_ordinal_present(&self) -> u64 {
3912 if let Some(_) = self.transmits {
3913 return 1;
3914 }
3915 0
3916 }
3917 }
3918
3919 impl fidl::encoding::ValueTypeMarker for DadConfiguration {
3920 type Borrowed<'a> = &'a Self;
3921 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3922 value
3923 }
3924 }
3925
3926 unsafe impl fidl::encoding::TypeMarker for DadConfiguration {
3927 type Owned = Self;
3928
3929 #[inline(always)]
3930 fn inline_align(_context: fidl::encoding::Context) -> usize {
3931 8
3932 }
3933
3934 #[inline(always)]
3935 fn inline_size(_context: fidl::encoding::Context) -> usize {
3936 16
3937 }
3938 }
3939
3940 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DadConfiguration, D>
3941 for &DadConfiguration
3942 {
3943 unsafe fn encode(
3944 self,
3945 encoder: &mut fidl::encoding::Encoder<'_, D>,
3946 offset: usize,
3947 mut depth: fidl::encoding::Depth,
3948 ) -> fidl::Result<()> {
3949 encoder.debug_check_bounds::<DadConfiguration>(offset);
3950 let max_ordinal: u64 = self.max_ordinal_present();
3952 encoder.write_num(max_ordinal, offset);
3953 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3954 if max_ordinal == 0 {
3956 return Ok(());
3957 }
3958 depth.increment()?;
3959 let envelope_size = 8;
3960 let bytes_len = max_ordinal as usize * envelope_size;
3961 #[allow(unused_variables)]
3962 let offset = encoder.out_of_line_offset(bytes_len);
3963 let mut _prev_end_offset: usize = 0;
3964 if 1 > max_ordinal {
3965 return Ok(());
3966 }
3967
3968 let cur_offset: usize = (1 - 1) * envelope_size;
3971
3972 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3974
3975 fidl::encoding::encode_in_envelope_optional::<u16, D>(
3980 self.transmits.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
3981 encoder,
3982 offset + cur_offset,
3983 depth,
3984 )?;
3985
3986 _prev_end_offset = cur_offset + envelope_size;
3987
3988 Ok(())
3989 }
3990 }
3991
3992 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DadConfiguration {
3993 #[inline(always)]
3994 fn new_empty() -> Self {
3995 Self::default()
3996 }
3997
3998 unsafe fn decode(
3999 &mut self,
4000 decoder: &mut fidl::encoding::Decoder<'_, D>,
4001 offset: usize,
4002 mut depth: fidl::encoding::Depth,
4003 ) -> fidl::Result<()> {
4004 decoder.debug_check_bounds::<Self>(offset);
4005 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4006 None => return Err(fidl::Error::NotNullable),
4007 Some(len) => len,
4008 };
4009 if len == 0 {
4011 return Ok(());
4012 };
4013 depth.increment()?;
4014 let envelope_size = 8;
4015 let bytes_len = len * envelope_size;
4016 let offset = decoder.out_of_line_offset(bytes_len)?;
4017 let mut _next_ordinal_to_read = 0;
4019 let mut next_offset = offset;
4020 let end_offset = offset + bytes_len;
4021 _next_ordinal_to_read += 1;
4022 if next_offset >= end_offset {
4023 return Ok(());
4024 }
4025
4026 while _next_ordinal_to_read < 1 {
4028 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4029 _next_ordinal_to_read += 1;
4030 next_offset += envelope_size;
4031 }
4032
4033 let next_out_of_line = decoder.next_out_of_line();
4034 let handles_before = decoder.remaining_handles();
4035 if let Some((inlined, num_bytes, num_handles)) =
4036 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4037 {
4038 let member_inline_size =
4039 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4040 if inlined != (member_inline_size <= 4) {
4041 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4042 }
4043 let inner_offset;
4044 let mut inner_depth = depth.clone();
4045 if inlined {
4046 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4047 inner_offset = next_offset;
4048 } else {
4049 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4050 inner_depth.increment()?;
4051 }
4052 let val_ref = self.transmits.get_or_insert_with(|| fidl::new_empty!(u16, D));
4053 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
4054 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4055 {
4056 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4057 }
4058 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4059 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4060 }
4061 }
4062
4063 next_offset += envelope_size;
4064
4065 while next_offset < end_offset {
4067 _next_ordinal_to_read += 1;
4068 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4069 next_offset += envelope_size;
4070 }
4071
4072 Ok(())
4073 }
4074 }
4075
4076 impl IgmpConfiguration {
4077 #[inline(always)]
4078 fn max_ordinal_present(&self) -> u64 {
4079 if let Some(_) = self.version {
4080 return 1;
4081 }
4082 0
4083 }
4084 }
4085
4086 impl fidl::encoding::ValueTypeMarker for IgmpConfiguration {
4087 type Borrowed<'a> = &'a Self;
4088 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4089 value
4090 }
4091 }
4092
4093 unsafe impl fidl::encoding::TypeMarker for IgmpConfiguration {
4094 type Owned = Self;
4095
4096 #[inline(always)]
4097 fn inline_align(_context: fidl::encoding::Context) -> usize {
4098 8
4099 }
4100
4101 #[inline(always)]
4102 fn inline_size(_context: fidl::encoding::Context) -> usize {
4103 16
4104 }
4105 }
4106
4107 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<IgmpConfiguration, D>
4108 for &IgmpConfiguration
4109 {
4110 unsafe fn encode(
4111 self,
4112 encoder: &mut fidl::encoding::Encoder<'_, D>,
4113 offset: usize,
4114 mut depth: fidl::encoding::Depth,
4115 ) -> fidl::Result<()> {
4116 encoder.debug_check_bounds::<IgmpConfiguration>(offset);
4117 let max_ordinal: u64 = self.max_ordinal_present();
4119 encoder.write_num(max_ordinal, offset);
4120 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4121 if max_ordinal == 0 {
4123 return Ok(());
4124 }
4125 depth.increment()?;
4126 let envelope_size = 8;
4127 let bytes_len = max_ordinal as usize * envelope_size;
4128 #[allow(unused_variables)]
4129 let offset = encoder.out_of_line_offset(bytes_len);
4130 let mut _prev_end_offset: usize = 0;
4131 if 1 > max_ordinal {
4132 return Ok(());
4133 }
4134
4135 let cur_offset: usize = (1 - 1) * envelope_size;
4138
4139 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4141
4142 fidl::encoding::encode_in_envelope_optional::<IgmpVersion, D>(
4147 self.version.as_ref().map(<IgmpVersion as fidl::encoding::ValueTypeMarker>::borrow),
4148 encoder,
4149 offset + cur_offset,
4150 depth,
4151 )?;
4152
4153 _prev_end_offset = cur_offset + envelope_size;
4154
4155 Ok(())
4156 }
4157 }
4158
4159 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IgmpConfiguration {
4160 #[inline(always)]
4161 fn new_empty() -> Self {
4162 Self::default()
4163 }
4164
4165 unsafe fn decode(
4166 &mut self,
4167 decoder: &mut fidl::encoding::Decoder<'_, D>,
4168 offset: usize,
4169 mut depth: fidl::encoding::Depth,
4170 ) -> fidl::Result<()> {
4171 decoder.debug_check_bounds::<Self>(offset);
4172 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4173 None => return Err(fidl::Error::NotNullable),
4174 Some(len) => len,
4175 };
4176 if len == 0 {
4178 return Ok(());
4179 };
4180 depth.increment()?;
4181 let envelope_size = 8;
4182 let bytes_len = len * envelope_size;
4183 let offset = decoder.out_of_line_offset(bytes_len)?;
4184 let mut _next_ordinal_to_read = 0;
4186 let mut next_offset = offset;
4187 let end_offset = offset + bytes_len;
4188 _next_ordinal_to_read += 1;
4189 if next_offset >= end_offset {
4190 return Ok(());
4191 }
4192
4193 while _next_ordinal_to_read < 1 {
4195 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4196 _next_ordinal_to_read += 1;
4197 next_offset += envelope_size;
4198 }
4199
4200 let next_out_of_line = decoder.next_out_of_line();
4201 let handles_before = decoder.remaining_handles();
4202 if let Some((inlined, num_bytes, num_handles)) =
4203 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4204 {
4205 let member_inline_size =
4206 <IgmpVersion as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4207 if inlined != (member_inline_size <= 4) {
4208 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4209 }
4210 let inner_offset;
4211 let mut inner_depth = depth.clone();
4212 if inlined {
4213 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4214 inner_offset = next_offset;
4215 } else {
4216 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4217 inner_depth.increment()?;
4218 }
4219 let val_ref = self.version.get_or_insert_with(|| fidl::new_empty!(IgmpVersion, D));
4220 fidl::decode!(IgmpVersion, D, val_ref, decoder, inner_offset, inner_depth)?;
4221 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4222 {
4223 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4224 }
4225 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4226 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4227 }
4228 }
4229
4230 next_offset += envelope_size;
4231
4232 while next_offset < end_offset {
4234 _next_ordinal_to_read += 1;
4235 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4236 next_offset += envelope_size;
4237 }
4238
4239 Ok(())
4240 }
4241 }
4242
4243 impl Ipv4Configuration {
4244 #[inline(always)]
4245 fn max_ordinal_present(&self) -> u64 {
4246 if let Some(_) = self.arp {
4247 return 4;
4248 }
4249 if let Some(_) = self.igmp {
4250 return 3;
4251 }
4252 if let Some(_) = self.multicast_forwarding {
4253 return 2;
4254 }
4255 if let Some(_) = self.unicast_forwarding {
4256 return 1;
4257 }
4258 0
4259 }
4260 }
4261
4262 impl fidl::encoding::ValueTypeMarker for Ipv4Configuration {
4263 type Borrowed<'a> = &'a Self;
4264 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4265 value
4266 }
4267 }
4268
4269 unsafe impl fidl::encoding::TypeMarker for Ipv4Configuration {
4270 type Owned = Self;
4271
4272 #[inline(always)]
4273 fn inline_align(_context: fidl::encoding::Context) -> usize {
4274 8
4275 }
4276
4277 #[inline(always)]
4278 fn inline_size(_context: fidl::encoding::Context) -> usize {
4279 16
4280 }
4281 }
4282
4283 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ipv4Configuration, D>
4284 for &Ipv4Configuration
4285 {
4286 unsafe fn encode(
4287 self,
4288 encoder: &mut fidl::encoding::Encoder<'_, D>,
4289 offset: usize,
4290 mut depth: fidl::encoding::Depth,
4291 ) -> fidl::Result<()> {
4292 encoder.debug_check_bounds::<Ipv4Configuration>(offset);
4293 let max_ordinal: u64 = self.max_ordinal_present();
4295 encoder.write_num(max_ordinal, offset);
4296 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4297 if max_ordinal == 0 {
4299 return Ok(());
4300 }
4301 depth.increment()?;
4302 let envelope_size = 8;
4303 let bytes_len = max_ordinal as usize * envelope_size;
4304 #[allow(unused_variables)]
4305 let offset = encoder.out_of_line_offset(bytes_len);
4306 let mut _prev_end_offset: usize = 0;
4307 if 1 > max_ordinal {
4308 return Ok(());
4309 }
4310
4311 let cur_offset: usize = (1 - 1) * envelope_size;
4314
4315 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4317
4318 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4323 self.unicast_forwarding
4324 .as_ref()
4325 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4326 encoder,
4327 offset + cur_offset,
4328 depth,
4329 )?;
4330
4331 _prev_end_offset = cur_offset + envelope_size;
4332 if 2 > max_ordinal {
4333 return Ok(());
4334 }
4335
4336 let cur_offset: usize = (2 - 1) * envelope_size;
4339
4340 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4342
4343 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4348 self.multicast_forwarding
4349 .as_ref()
4350 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4351 encoder,
4352 offset + cur_offset,
4353 depth,
4354 )?;
4355
4356 _prev_end_offset = cur_offset + envelope_size;
4357 if 3 > max_ordinal {
4358 return Ok(());
4359 }
4360
4361 let cur_offset: usize = (3 - 1) * envelope_size;
4364
4365 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4367
4368 fidl::encoding::encode_in_envelope_optional::<IgmpConfiguration, D>(
4373 self.igmp
4374 .as_ref()
4375 .map(<IgmpConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
4376 encoder,
4377 offset + cur_offset,
4378 depth,
4379 )?;
4380
4381 _prev_end_offset = cur_offset + envelope_size;
4382 if 4 > max_ordinal {
4383 return Ok(());
4384 }
4385
4386 let cur_offset: usize = (4 - 1) * envelope_size;
4389
4390 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4392
4393 fidl::encoding::encode_in_envelope_optional::<ArpConfiguration, D>(
4398 self.arp
4399 .as_ref()
4400 .map(<ArpConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
4401 encoder,
4402 offset + cur_offset,
4403 depth,
4404 )?;
4405
4406 _prev_end_offset = cur_offset + envelope_size;
4407
4408 Ok(())
4409 }
4410 }
4411
4412 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ipv4Configuration {
4413 #[inline(always)]
4414 fn new_empty() -> Self {
4415 Self::default()
4416 }
4417
4418 unsafe fn decode(
4419 &mut self,
4420 decoder: &mut fidl::encoding::Decoder<'_, D>,
4421 offset: usize,
4422 mut depth: fidl::encoding::Depth,
4423 ) -> fidl::Result<()> {
4424 decoder.debug_check_bounds::<Self>(offset);
4425 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4426 None => return Err(fidl::Error::NotNullable),
4427 Some(len) => len,
4428 };
4429 if len == 0 {
4431 return Ok(());
4432 };
4433 depth.increment()?;
4434 let envelope_size = 8;
4435 let bytes_len = len * envelope_size;
4436 let offset = decoder.out_of_line_offset(bytes_len)?;
4437 let mut _next_ordinal_to_read = 0;
4439 let mut next_offset = offset;
4440 let end_offset = offset + bytes_len;
4441 _next_ordinal_to_read += 1;
4442 if next_offset >= end_offset {
4443 return Ok(());
4444 }
4445
4446 while _next_ordinal_to_read < 1 {
4448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4449 _next_ordinal_to_read += 1;
4450 next_offset += envelope_size;
4451 }
4452
4453 let next_out_of_line = decoder.next_out_of_line();
4454 let handles_before = decoder.remaining_handles();
4455 if let Some((inlined, num_bytes, num_handles)) =
4456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4457 {
4458 let member_inline_size =
4459 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4460 if inlined != (member_inline_size <= 4) {
4461 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4462 }
4463 let inner_offset;
4464 let mut inner_depth = depth.clone();
4465 if inlined {
4466 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4467 inner_offset = next_offset;
4468 } else {
4469 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4470 inner_depth.increment()?;
4471 }
4472 let val_ref =
4473 self.unicast_forwarding.get_or_insert_with(|| fidl::new_empty!(bool, D));
4474 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4476 {
4477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4478 }
4479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4481 }
4482 }
4483
4484 next_offset += envelope_size;
4485 _next_ordinal_to_read += 1;
4486 if next_offset >= end_offset {
4487 return Ok(());
4488 }
4489
4490 while _next_ordinal_to_read < 2 {
4492 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4493 _next_ordinal_to_read += 1;
4494 next_offset += envelope_size;
4495 }
4496
4497 let next_out_of_line = decoder.next_out_of_line();
4498 let handles_before = decoder.remaining_handles();
4499 if let Some((inlined, num_bytes, num_handles)) =
4500 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4501 {
4502 let member_inline_size =
4503 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4504 if inlined != (member_inline_size <= 4) {
4505 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4506 }
4507 let inner_offset;
4508 let mut inner_depth = depth.clone();
4509 if inlined {
4510 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4511 inner_offset = next_offset;
4512 } else {
4513 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4514 inner_depth.increment()?;
4515 }
4516 let val_ref =
4517 self.multicast_forwarding.get_or_insert_with(|| fidl::new_empty!(bool, D));
4518 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4519 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4520 {
4521 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4522 }
4523 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4524 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4525 }
4526 }
4527
4528 next_offset += envelope_size;
4529 _next_ordinal_to_read += 1;
4530 if next_offset >= end_offset {
4531 return Ok(());
4532 }
4533
4534 while _next_ordinal_to_read < 3 {
4536 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4537 _next_ordinal_to_read += 1;
4538 next_offset += envelope_size;
4539 }
4540
4541 let next_out_of_line = decoder.next_out_of_line();
4542 let handles_before = decoder.remaining_handles();
4543 if let Some((inlined, num_bytes, num_handles)) =
4544 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4545 {
4546 let member_inline_size =
4547 <IgmpConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4548 if inlined != (member_inline_size <= 4) {
4549 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4550 }
4551 let inner_offset;
4552 let mut inner_depth = depth.clone();
4553 if inlined {
4554 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4555 inner_offset = next_offset;
4556 } else {
4557 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4558 inner_depth.increment()?;
4559 }
4560 let val_ref =
4561 self.igmp.get_or_insert_with(|| fidl::new_empty!(IgmpConfiguration, D));
4562 fidl::decode!(IgmpConfiguration, D, val_ref, decoder, inner_offset, inner_depth)?;
4563 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4564 {
4565 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4566 }
4567 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4568 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4569 }
4570 }
4571
4572 next_offset += envelope_size;
4573 _next_ordinal_to_read += 1;
4574 if next_offset >= end_offset {
4575 return Ok(());
4576 }
4577
4578 while _next_ordinal_to_read < 4 {
4580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4581 _next_ordinal_to_read += 1;
4582 next_offset += envelope_size;
4583 }
4584
4585 let next_out_of_line = decoder.next_out_of_line();
4586 let handles_before = decoder.remaining_handles();
4587 if let Some((inlined, num_bytes, num_handles)) =
4588 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4589 {
4590 let member_inline_size =
4591 <ArpConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4592 if inlined != (member_inline_size <= 4) {
4593 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4594 }
4595 let inner_offset;
4596 let mut inner_depth = depth.clone();
4597 if inlined {
4598 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4599 inner_offset = next_offset;
4600 } else {
4601 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4602 inner_depth.increment()?;
4603 }
4604 let val_ref = self.arp.get_or_insert_with(|| fidl::new_empty!(ArpConfiguration, D));
4605 fidl::decode!(ArpConfiguration, D, val_ref, decoder, inner_offset, inner_depth)?;
4606 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4607 {
4608 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4609 }
4610 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4611 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4612 }
4613 }
4614
4615 next_offset += envelope_size;
4616
4617 while next_offset < end_offset {
4619 _next_ordinal_to_read += 1;
4620 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4621 next_offset += envelope_size;
4622 }
4623
4624 Ok(())
4625 }
4626 }
4627
4628 impl Ipv6Configuration {
4629 #[inline(always)]
4630 fn max_ordinal_present(&self) -> u64 {
4631 if let Some(_) = self.ndp {
4632 return 4;
4633 }
4634 if let Some(_) = self.mld {
4635 return 3;
4636 }
4637 if let Some(_) = self.multicast_forwarding {
4638 return 2;
4639 }
4640 if let Some(_) = self.unicast_forwarding {
4641 return 1;
4642 }
4643 0
4644 }
4645 }
4646
4647 impl fidl::encoding::ValueTypeMarker for Ipv6Configuration {
4648 type Borrowed<'a> = &'a Self;
4649 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4650 value
4651 }
4652 }
4653
4654 unsafe impl fidl::encoding::TypeMarker for Ipv6Configuration {
4655 type Owned = Self;
4656
4657 #[inline(always)]
4658 fn inline_align(_context: fidl::encoding::Context) -> usize {
4659 8
4660 }
4661
4662 #[inline(always)]
4663 fn inline_size(_context: fidl::encoding::Context) -> usize {
4664 16
4665 }
4666 }
4667
4668 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ipv6Configuration, D>
4669 for &Ipv6Configuration
4670 {
4671 unsafe fn encode(
4672 self,
4673 encoder: &mut fidl::encoding::Encoder<'_, D>,
4674 offset: usize,
4675 mut depth: fidl::encoding::Depth,
4676 ) -> fidl::Result<()> {
4677 encoder.debug_check_bounds::<Ipv6Configuration>(offset);
4678 let max_ordinal: u64 = self.max_ordinal_present();
4680 encoder.write_num(max_ordinal, offset);
4681 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4682 if max_ordinal == 0 {
4684 return Ok(());
4685 }
4686 depth.increment()?;
4687 let envelope_size = 8;
4688 let bytes_len = max_ordinal as usize * envelope_size;
4689 #[allow(unused_variables)]
4690 let offset = encoder.out_of_line_offset(bytes_len);
4691 let mut _prev_end_offset: usize = 0;
4692 if 1 > max_ordinal {
4693 return Ok(());
4694 }
4695
4696 let cur_offset: usize = (1 - 1) * envelope_size;
4699
4700 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4702
4703 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4708 self.unicast_forwarding
4709 .as_ref()
4710 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4711 encoder,
4712 offset + cur_offset,
4713 depth,
4714 )?;
4715
4716 _prev_end_offset = cur_offset + envelope_size;
4717 if 2 > max_ordinal {
4718 return Ok(());
4719 }
4720
4721 let cur_offset: usize = (2 - 1) * envelope_size;
4724
4725 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4727
4728 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4733 self.multicast_forwarding
4734 .as_ref()
4735 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4736 encoder,
4737 offset + cur_offset,
4738 depth,
4739 )?;
4740
4741 _prev_end_offset = cur_offset + envelope_size;
4742 if 3 > max_ordinal {
4743 return Ok(());
4744 }
4745
4746 let cur_offset: usize = (3 - 1) * envelope_size;
4749
4750 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4752
4753 fidl::encoding::encode_in_envelope_optional::<MldConfiguration, D>(
4758 self.mld
4759 .as_ref()
4760 .map(<MldConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
4761 encoder,
4762 offset + cur_offset,
4763 depth,
4764 )?;
4765
4766 _prev_end_offset = cur_offset + envelope_size;
4767 if 4 > max_ordinal {
4768 return Ok(());
4769 }
4770
4771 let cur_offset: usize = (4 - 1) * envelope_size;
4774
4775 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4777
4778 fidl::encoding::encode_in_envelope_optional::<NdpConfiguration, D>(
4783 self.ndp
4784 .as_ref()
4785 .map(<NdpConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
4786 encoder,
4787 offset + cur_offset,
4788 depth,
4789 )?;
4790
4791 _prev_end_offset = cur_offset + envelope_size;
4792
4793 Ok(())
4794 }
4795 }
4796
4797 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ipv6Configuration {
4798 #[inline(always)]
4799 fn new_empty() -> Self {
4800 Self::default()
4801 }
4802
4803 unsafe fn decode(
4804 &mut self,
4805 decoder: &mut fidl::encoding::Decoder<'_, D>,
4806 offset: usize,
4807 mut depth: fidl::encoding::Depth,
4808 ) -> fidl::Result<()> {
4809 decoder.debug_check_bounds::<Self>(offset);
4810 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4811 None => return Err(fidl::Error::NotNullable),
4812 Some(len) => len,
4813 };
4814 if len == 0 {
4816 return Ok(());
4817 };
4818 depth.increment()?;
4819 let envelope_size = 8;
4820 let bytes_len = len * envelope_size;
4821 let offset = decoder.out_of_line_offset(bytes_len)?;
4822 let mut _next_ordinal_to_read = 0;
4824 let mut next_offset = offset;
4825 let end_offset = offset + bytes_len;
4826 _next_ordinal_to_read += 1;
4827 if next_offset >= end_offset {
4828 return Ok(());
4829 }
4830
4831 while _next_ordinal_to_read < 1 {
4833 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4834 _next_ordinal_to_read += 1;
4835 next_offset += envelope_size;
4836 }
4837
4838 let next_out_of_line = decoder.next_out_of_line();
4839 let handles_before = decoder.remaining_handles();
4840 if let Some((inlined, num_bytes, num_handles)) =
4841 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4842 {
4843 let member_inline_size =
4844 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4845 if inlined != (member_inline_size <= 4) {
4846 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4847 }
4848 let inner_offset;
4849 let mut inner_depth = depth.clone();
4850 if inlined {
4851 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4852 inner_offset = next_offset;
4853 } else {
4854 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4855 inner_depth.increment()?;
4856 }
4857 let val_ref =
4858 self.unicast_forwarding.get_or_insert_with(|| fidl::new_empty!(bool, D));
4859 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4860 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4861 {
4862 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4863 }
4864 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4865 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4866 }
4867 }
4868
4869 next_offset += envelope_size;
4870 _next_ordinal_to_read += 1;
4871 if next_offset >= end_offset {
4872 return Ok(());
4873 }
4874
4875 while _next_ordinal_to_read < 2 {
4877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4878 _next_ordinal_to_read += 1;
4879 next_offset += envelope_size;
4880 }
4881
4882 let next_out_of_line = decoder.next_out_of_line();
4883 let handles_before = decoder.remaining_handles();
4884 if let Some((inlined, num_bytes, num_handles)) =
4885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4886 {
4887 let member_inline_size =
4888 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4889 if inlined != (member_inline_size <= 4) {
4890 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4891 }
4892 let inner_offset;
4893 let mut inner_depth = depth.clone();
4894 if inlined {
4895 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4896 inner_offset = next_offset;
4897 } else {
4898 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4899 inner_depth.increment()?;
4900 }
4901 let val_ref =
4902 self.multicast_forwarding.get_or_insert_with(|| fidl::new_empty!(bool, D));
4903 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4904 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4905 {
4906 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4907 }
4908 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4909 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4910 }
4911 }
4912
4913 next_offset += envelope_size;
4914 _next_ordinal_to_read += 1;
4915 if next_offset >= end_offset {
4916 return Ok(());
4917 }
4918
4919 while _next_ordinal_to_read < 3 {
4921 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4922 _next_ordinal_to_read += 1;
4923 next_offset += envelope_size;
4924 }
4925
4926 let next_out_of_line = decoder.next_out_of_line();
4927 let handles_before = decoder.remaining_handles();
4928 if let Some((inlined, num_bytes, num_handles)) =
4929 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4930 {
4931 let member_inline_size =
4932 <MldConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4933 if inlined != (member_inline_size <= 4) {
4934 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4935 }
4936 let inner_offset;
4937 let mut inner_depth = depth.clone();
4938 if inlined {
4939 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4940 inner_offset = next_offset;
4941 } else {
4942 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4943 inner_depth.increment()?;
4944 }
4945 let val_ref = self.mld.get_or_insert_with(|| fidl::new_empty!(MldConfiguration, D));
4946 fidl::decode!(MldConfiguration, D, val_ref, decoder, inner_offset, inner_depth)?;
4947 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4948 {
4949 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4950 }
4951 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4952 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4953 }
4954 }
4955
4956 next_offset += envelope_size;
4957 _next_ordinal_to_read += 1;
4958 if next_offset >= end_offset {
4959 return Ok(());
4960 }
4961
4962 while _next_ordinal_to_read < 4 {
4964 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4965 _next_ordinal_to_read += 1;
4966 next_offset += envelope_size;
4967 }
4968
4969 let next_out_of_line = decoder.next_out_of_line();
4970 let handles_before = decoder.remaining_handles();
4971 if let Some((inlined, num_bytes, num_handles)) =
4972 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4973 {
4974 let member_inline_size =
4975 <NdpConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4976 if inlined != (member_inline_size <= 4) {
4977 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4978 }
4979 let inner_offset;
4980 let mut inner_depth = depth.clone();
4981 if inlined {
4982 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4983 inner_offset = next_offset;
4984 } else {
4985 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4986 inner_depth.increment()?;
4987 }
4988 let val_ref = self.ndp.get_or_insert_with(|| fidl::new_empty!(NdpConfiguration, D));
4989 fidl::decode!(NdpConfiguration, D, val_ref, decoder, inner_offset, inner_depth)?;
4990 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4991 {
4992 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4993 }
4994 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4995 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4996 }
4997 }
4998
4999 next_offset += envelope_size;
5000
5001 while next_offset < end_offset {
5003 _next_ordinal_to_read += 1;
5004 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5005 next_offset += envelope_size;
5006 }
5007
5008 Ok(())
5009 }
5010 }
5011
5012 impl MldConfiguration {
5013 #[inline(always)]
5014 fn max_ordinal_present(&self) -> u64 {
5015 if let Some(_) = self.version {
5016 return 1;
5017 }
5018 0
5019 }
5020 }
5021
5022 impl fidl::encoding::ValueTypeMarker for MldConfiguration {
5023 type Borrowed<'a> = &'a Self;
5024 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5025 value
5026 }
5027 }
5028
5029 unsafe impl fidl::encoding::TypeMarker for MldConfiguration {
5030 type Owned = Self;
5031
5032 #[inline(always)]
5033 fn inline_align(_context: fidl::encoding::Context) -> usize {
5034 8
5035 }
5036
5037 #[inline(always)]
5038 fn inline_size(_context: fidl::encoding::Context) -> usize {
5039 16
5040 }
5041 }
5042
5043 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MldConfiguration, D>
5044 for &MldConfiguration
5045 {
5046 unsafe fn encode(
5047 self,
5048 encoder: &mut fidl::encoding::Encoder<'_, D>,
5049 offset: usize,
5050 mut depth: fidl::encoding::Depth,
5051 ) -> fidl::Result<()> {
5052 encoder.debug_check_bounds::<MldConfiguration>(offset);
5053 let max_ordinal: u64 = self.max_ordinal_present();
5055 encoder.write_num(max_ordinal, offset);
5056 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5057 if max_ordinal == 0 {
5059 return Ok(());
5060 }
5061 depth.increment()?;
5062 let envelope_size = 8;
5063 let bytes_len = max_ordinal as usize * envelope_size;
5064 #[allow(unused_variables)]
5065 let offset = encoder.out_of_line_offset(bytes_len);
5066 let mut _prev_end_offset: usize = 0;
5067 if 1 > max_ordinal {
5068 return Ok(());
5069 }
5070
5071 let cur_offset: usize = (1 - 1) * envelope_size;
5074
5075 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5077
5078 fidl::encoding::encode_in_envelope_optional::<MldVersion, D>(
5083 self.version.as_ref().map(<MldVersion as fidl::encoding::ValueTypeMarker>::borrow),
5084 encoder,
5085 offset + cur_offset,
5086 depth,
5087 )?;
5088
5089 _prev_end_offset = cur_offset + envelope_size;
5090
5091 Ok(())
5092 }
5093 }
5094
5095 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MldConfiguration {
5096 #[inline(always)]
5097 fn new_empty() -> Self {
5098 Self::default()
5099 }
5100
5101 unsafe fn decode(
5102 &mut self,
5103 decoder: &mut fidl::encoding::Decoder<'_, D>,
5104 offset: usize,
5105 mut depth: fidl::encoding::Depth,
5106 ) -> fidl::Result<()> {
5107 decoder.debug_check_bounds::<Self>(offset);
5108 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5109 None => return Err(fidl::Error::NotNullable),
5110 Some(len) => len,
5111 };
5112 if len == 0 {
5114 return Ok(());
5115 };
5116 depth.increment()?;
5117 let envelope_size = 8;
5118 let bytes_len = len * envelope_size;
5119 let offset = decoder.out_of_line_offset(bytes_len)?;
5120 let mut _next_ordinal_to_read = 0;
5122 let mut next_offset = offset;
5123 let end_offset = offset + bytes_len;
5124 _next_ordinal_to_read += 1;
5125 if next_offset >= end_offset {
5126 return Ok(());
5127 }
5128
5129 while _next_ordinal_to_read < 1 {
5131 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5132 _next_ordinal_to_read += 1;
5133 next_offset += envelope_size;
5134 }
5135
5136 let next_out_of_line = decoder.next_out_of_line();
5137 let handles_before = decoder.remaining_handles();
5138 if let Some((inlined, num_bytes, num_handles)) =
5139 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5140 {
5141 let member_inline_size =
5142 <MldVersion as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5143 if inlined != (member_inline_size <= 4) {
5144 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5145 }
5146 let inner_offset;
5147 let mut inner_depth = depth.clone();
5148 if inlined {
5149 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5150 inner_offset = next_offset;
5151 } else {
5152 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5153 inner_depth.increment()?;
5154 }
5155 let val_ref = self.version.get_or_insert_with(|| fidl::new_empty!(MldVersion, D));
5156 fidl::decode!(MldVersion, D, val_ref, decoder, inner_offset, inner_depth)?;
5157 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5158 {
5159 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5160 }
5161 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5162 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5163 }
5164 }
5165
5166 next_offset += envelope_size;
5167
5168 while next_offset < end_offset {
5170 _next_ordinal_to_read += 1;
5171 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5172 next_offset += envelope_size;
5173 }
5174
5175 Ok(())
5176 }
5177 }
5178
5179 impl NdpConfiguration {
5180 #[inline(always)]
5181 fn max_ordinal_present(&self) -> u64 {
5182 if let Some(_) = self.slaac {
5183 return 3;
5184 }
5185 if let Some(_) = self.dad {
5186 return 2;
5187 }
5188 if let Some(_) = self.nud {
5189 return 1;
5190 }
5191 0
5192 }
5193 }
5194
5195 impl fidl::encoding::ValueTypeMarker for NdpConfiguration {
5196 type Borrowed<'a> = &'a Self;
5197 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5198 value
5199 }
5200 }
5201
5202 unsafe impl fidl::encoding::TypeMarker for NdpConfiguration {
5203 type Owned = Self;
5204
5205 #[inline(always)]
5206 fn inline_align(_context: fidl::encoding::Context) -> usize {
5207 8
5208 }
5209
5210 #[inline(always)]
5211 fn inline_size(_context: fidl::encoding::Context) -> usize {
5212 16
5213 }
5214 }
5215
5216 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NdpConfiguration, D>
5217 for &NdpConfiguration
5218 {
5219 unsafe fn encode(
5220 self,
5221 encoder: &mut fidl::encoding::Encoder<'_, D>,
5222 offset: usize,
5223 mut depth: fidl::encoding::Depth,
5224 ) -> fidl::Result<()> {
5225 encoder.debug_check_bounds::<NdpConfiguration>(offset);
5226 let max_ordinal: u64 = self.max_ordinal_present();
5228 encoder.write_num(max_ordinal, offset);
5229 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5230 if max_ordinal == 0 {
5232 return Ok(());
5233 }
5234 depth.increment()?;
5235 let envelope_size = 8;
5236 let bytes_len = max_ordinal as usize * envelope_size;
5237 #[allow(unused_variables)]
5238 let offset = encoder.out_of_line_offset(bytes_len);
5239 let mut _prev_end_offset: usize = 0;
5240 if 1 > max_ordinal {
5241 return Ok(());
5242 }
5243
5244 let cur_offset: usize = (1 - 1) * envelope_size;
5247
5248 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5250
5251 fidl::encoding::encode_in_envelope_optional::<NudConfiguration, D>(
5256 self.nud
5257 .as_ref()
5258 .map(<NudConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
5259 encoder,
5260 offset + cur_offset,
5261 depth,
5262 )?;
5263
5264 _prev_end_offset = cur_offset + envelope_size;
5265 if 2 > max_ordinal {
5266 return Ok(());
5267 }
5268
5269 let cur_offset: usize = (2 - 1) * envelope_size;
5272
5273 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5275
5276 fidl::encoding::encode_in_envelope_optional::<DadConfiguration, D>(
5281 self.dad
5282 .as_ref()
5283 .map(<DadConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
5284 encoder,
5285 offset + cur_offset,
5286 depth,
5287 )?;
5288
5289 _prev_end_offset = cur_offset + envelope_size;
5290 if 3 > max_ordinal {
5291 return Ok(());
5292 }
5293
5294 let cur_offset: usize = (3 - 1) * envelope_size;
5297
5298 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5300
5301 fidl::encoding::encode_in_envelope_optional::<SlaacConfiguration, D>(
5306 self.slaac
5307 .as_ref()
5308 .map(<SlaacConfiguration as fidl::encoding::ValueTypeMarker>::borrow),
5309 encoder,
5310 offset + cur_offset,
5311 depth,
5312 )?;
5313
5314 _prev_end_offset = cur_offset + envelope_size;
5315
5316 Ok(())
5317 }
5318 }
5319
5320 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NdpConfiguration {
5321 #[inline(always)]
5322 fn new_empty() -> Self {
5323 Self::default()
5324 }
5325
5326 unsafe fn decode(
5327 &mut self,
5328 decoder: &mut fidl::encoding::Decoder<'_, D>,
5329 offset: usize,
5330 mut depth: fidl::encoding::Depth,
5331 ) -> fidl::Result<()> {
5332 decoder.debug_check_bounds::<Self>(offset);
5333 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5334 None => return Err(fidl::Error::NotNullable),
5335 Some(len) => len,
5336 };
5337 if len == 0 {
5339 return Ok(());
5340 };
5341 depth.increment()?;
5342 let envelope_size = 8;
5343 let bytes_len = len * envelope_size;
5344 let offset = decoder.out_of_line_offset(bytes_len)?;
5345 let mut _next_ordinal_to_read = 0;
5347 let mut next_offset = offset;
5348 let end_offset = offset + bytes_len;
5349 _next_ordinal_to_read += 1;
5350 if next_offset >= end_offset {
5351 return Ok(());
5352 }
5353
5354 while _next_ordinal_to_read < 1 {
5356 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5357 _next_ordinal_to_read += 1;
5358 next_offset += envelope_size;
5359 }
5360
5361 let next_out_of_line = decoder.next_out_of_line();
5362 let handles_before = decoder.remaining_handles();
5363 if let Some((inlined, num_bytes, num_handles)) =
5364 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5365 {
5366 let member_inline_size =
5367 <NudConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5368 if inlined != (member_inline_size <= 4) {
5369 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5370 }
5371 let inner_offset;
5372 let mut inner_depth = depth.clone();
5373 if inlined {
5374 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5375 inner_offset = next_offset;
5376 } else {
5377 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5378 inner_depth.increment()?;
5379 }
5380 let val_ref = self.nud.get_or_insert_with(|| fidl::new_empty!(NudConfiguration, D));
5381 fidl::decode!(NudConfiguration, D, val_ref, decoder, inner_offset, inner_depth)?;
5382 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5383 {
5384 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5385 }
5386 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5387 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5388 }
5389 }
5390
5391 next_offset += envelope_size;
5392 _next_ordinal_to_read += 1;
5393 if next_offset >= end_offset {
5394 return Ok(());
5395 }
5396
5397 while _next_ordinal_to_read < 2 {
5399 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5400 _next_ordinal_to_read += 1;
5401 next_offset += envelope_size;
5402 }
5403
5404 let next_out_of_line = decoder.next_out_of_line();
5405 let handles_before = decoder.remaining_handles();
5406 if let Some((inlined, num_bytes, num_handles)) =
5407 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5408 {
5409 let member_inline_size =
5410 <DadConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5411 if inlined != (member_inline_size <= 4) {
5412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5413 }
5414 let inner_offset;
5415 let mut inner_depth = depth.clone();
5416 if inlined {
5417 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5418 inner_offset = next_offset;
5419 } else {
5420 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5421 inner_depth.increment()?;
5422 }
5423 let val_ref = self.dad.get_or_insert_with(|| fidl::new_empty!(DadConfiguration, D));
5424 fidl::decode!(DadConfiguration, D, val_ref, decoder, inner_offset, inner_depth)?;
5425 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5426 {
5427 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5428 }
5429 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5430 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5431 }
5432 }
5433
5434 next_offset += envelope_size;
5435 _next_ordinal_to_read += 1;
5436 if next_offset >= end_offset {
5437 return Ok(());
5438 }
5439
5440 while _next_ordinal_to_read < 3 {
5442 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5443 _next_ordinal_to_read += 1;
5444 next_offset += envelope_size;
5445 }
5446
5447 let next_out_of_line = decoder.next_out_of_line();
5448 let handles_before = decoder.remaining_handles();
5449 if let Some((inlined, num_bytes, num_handles)) =
5450 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5451 {
5452 let member_inline_size =
5453 <SlaacConfiguration as fidl::encoding::TypeMarker>::inline_size(
5454 decoder.context,
5455 );
5456 if inlined != (member_inline_size <= 4) {
5457 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5458 }
5459 let inner_offset;
5460 let mut inner_depth = depth.clone();
5461 if inlined {
5462 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5463 inner_offset = next_offset;
5464 } else {
5465 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5466 inner_depth.increment()?;
5467 }
5468 let val_ref =
5469 self.slaac.get_or_insert_with(|| fidl::new_empty!(SlaacConfiguration, D));
5470 fidl::decode!(SlaacConfiguration, D, val_ref, decoder, inner_offset, inner_depth)?;
5471 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5472 {
5473 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5474 }
5475 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5476 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5477 }
5478 }
5479
5480 next_offset += envelope_size;
5481
5482 while next_offset < end_offset {
5484 _next_ordinal_to_read += 1;
5485 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5486 next_offset += envelope_size;
5487 }
5488
5489 Ok(())
5490 }
5491 }
5492
5493 impl NudConfiguration {
5494 #[inline(always)]
5495 fn max_ordinal_present(&self) -> u64 {
5496 if let Some(_) = self.base_reachable_time {
5497 return 3;
5498 }
5499 if let Some(_) = self.max_unicast_solicitations {
5500 return 2;
5501 }
5502 if let Some(_) = self.max_multicast_solicitations {
5503 return 1;
5504 }
5505 0
5506 }
5507 }
5508
5509 impl fidl::encoding::ValueTypeMarker for NudConfiguration {
5510 type Borrowed<'a> = &'a Self;
5511 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5512 value
5513 }
5514 }
5515
5516 unsafe impl fidl::encoding::TypeMarker for NudConfiguration {
5517 type Owned = Self;
5518
5519 #[inline(always)]
5520 fn inline_align(_context: fidl::encoding::Context) -> usize {
5521 8
5522 }
5523
5524 #[inline(always)]
5525 fn inline_size(_context: fidl::encoding::Context) -> usize {
5526 16
5527 }
5528 }
5529
5530 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NudConfiguration, D>
5531 for &NudConfiguration
5532 {
5533 unsafe fn encode(
5534 self,
5535 encoder: &mut fidl::encoding::Encoder<'_, D>,
5536 offset: usize,
5537 mut depth: fidl::encoding::Depth,
5538 ) -> fidl::Result<()> {
5539 encoder.debug_check_bounds::<NudConfiguration>(offset);
5540 let max_ordinal: u64 = self.max_ordinal_present();
5542 encoder.write_num(max_ordinal, offset);
5543 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5544 if max_ordinal == 0 {
5546 return Ok(());
5547 }
5548 depth.increment()?;
5549 let envelope_size = 8;
5550 let bytes_len = max_ordinal as usize * envelope_size;
5551 #[allow(unused_variables)]
5552 let offset = encoder.out_of_line_offset(bytes_len);
5553 let mut _prev_end_offset: usize = 0;
5554 if 1 > max_ordinal {
5555 return Ok(());
5556 }
5557
5558 let cur_offset: usize = (1 - 1) * envelope_size;
5561
5562 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5564
5565 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5570 self.max_multicast_solicitations
5571 .as_ref()
5572 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5573 encoder,
5574 offset + cur_offset,
5575 depth,
5576 )?;
5577
5578 _prev_end_offset = cur_offset + envelope_size;
5579 if 2 > max_ordinal {
5580 return Ok(());
5581 }
5582
5583 let cur_offset: usize = (2 - 1) * envelope_size;
5586
5587 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5589
5590 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5595 self.max_unicast_solicitations
5596 .as_ref()
5597 .map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5598 encoder,
5599 offset + cur_offset,
5600 depth,
5601 )?;
5602
5603 _prev_end_offset = cur_offset + envelope_size;
5604 if 3 > max_ordinal {
5605 return Ok(());
5606 }
5607
5608 let cur_offset: usize = (3 - 1) * envelope_size;
5611
5612 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5614
5615 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5620 self.base_reachable_time
5621 .as_ref()
5622 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5623 encoder,
5624 offset + cur_offset,
5625 depth,
5626 )?;
5627
5628 _prev_end_offset = cur_offset + envelope_size;
5629
5630 Ok(())
5631 }
5632 }
5633
5634 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NudConfiguration {
5635 #[inline(always)]
5636 fn new_empty() -> Self {
5637 Self::default()
5638 }
5639
5640 unsafe fn decode(
5641 &mut self,
5642 decoder: &mut fidl::encoding::Decoder<'_, D>,
5643 offset: usize,
5644 mut depth: fidl::encoding::Depth,
5645 ) -> fidl::Result<()> {
5646 decoder.debug_check_bounds::<Self>(offset);
5647 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5648 None => return Err(fidl::Error::NotNullable),
5649 Some(len) => len,
5650 };
5651 if len == 0 {
5653 return Ok(());
5654 };
5655 depth.increment()?;
5656 let envelope_size = 8;
5657 let bytes_len = len * envelope_size;
5658 let offset = decoder.out_of_line_offset(bytes_len)?;
5659 let mut _next_ordinal_to_read = 0;
5661 let mut next_offset = offset;
5662 let end_offset = offset + bytes_len;
5663 _next_ordinal_to_read += 1;
5664 if next_offset >= end_offset {
5665 return Ok(());
5666 }
5667
5668 while _next_ordinal_to_read < 1 {
5670 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5671 _next_ordinal_to_read += 1;
5672 next_offset += envelope_size;
5673 }
5674
5675 let next_out_of_line = decoder.next_out_of_line();
5676 let handles_before = decoder.remaining_handles();
5677 if let Some((inlined, num_bytes, num_handles)) =
5678 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5679 {
5680 let member_inline_size =
5681 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5682 if inlined != (member_inline_size <= 4) {
5683 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5684 }
5685 let inner_offset;
5686 let mut inner_depth = depth.clone();
5687 if inlined {
5688 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5689 inner_offset = next_offset;
5690 } else {
5691 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5692 inner_depth.increment()?;
5693 }
5694 let val_ref = self
5695 .max_multicast_solicitations
5696 .get_or_insert_with(|| fidl::new_empty!(u16, D));
5697 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5698 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5699 {
5700 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5701 }
5702 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5703 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5704 }
5705 }
5706
5707 next_offset += envelope_size;
5708 _next_ordinal_to_read += 1;
5709 if next_offset >= end_offset {
5710 return Ok(());
5711 }
5712
5713 while _next_ordinal_to_read < 2 {
5715 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5716 _next_ordinal_to_read += 1;
5717 next_offset += envelope_size;
5718 }
5719
5720 let next_out_of_line = decoder.next_out_of_line();
5721 let handles_before = decoder.remaining_handles();
5722 if let Some((inlined, num_bytes, num_handles)) =
5723 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5724 {
5725 let member_inline_size =
5726 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5727 if inlined != (member_inline_size <= 4) {
5728 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5729 }
5730 let inner_offset;
5731 let mut inner_depth = depth.clone();
5732 if inlined {
5733 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5734 inner_offset = next_offset;
5735 } else {
5736 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5737 inner_depth.increment()?;
5738 }
5739 let val_ref =
5740 self.max_unicast_solicitations.get_or_insert_with(|| fidl::new_empty!(u16, D));
5741 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5742 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5743 {
5744 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5745 }
5746 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5747 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5748 }
5749 }
5750
5751 next_offset += envelope_size;
5752 _next_ordinal_to_read += 1;
5753 if next_offset >= end_offset {
5754 return Ok(());
5755 }
5756
5757 while _next_ordinal_to_read < 3 {
5759 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5760 _next_ordinal_to_read += 1;
5761 next_offset += envelope_size;
5762 }
5763
5764 let next_out_of_line = decoder.next_out_of_line();
5765 let handles_before = decoder.remaining_handles();
5766 if let Some((inlined, num_bytes, num_handles)) =
5767 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5768 {
5769 let member_inline_size =
5770 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5771 if inlined != (member_inline_size <= 4) {
5772 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5773 }
5774 let inner_offset;
5775 let mut inner_depth = depth.clone();
5776 if inlined {
5777 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5778 inner_offset = next_offset;
5779 } else {
5780 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5781 inner_depth.increment()?;
5782 }
5783 let val_ref =
5784 self.base_reachable_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
5785 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5786 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5787 {
5788 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5789 }
5790 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5791 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5792 }
5793 }
5794
5795 next_offset += envelope_size;
5796
5797 while next_offset < end_offset {
5799 _next_ordinal_to_read += 1;
5800 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5801 next_offset += envelope_size;
5802 }
5803
5804 Ok(())
5805 }
5806 }
5807
5808 impl SlaacConfiguration {
5809 #[inline(always)]
5810 fn max_ordinal_present(&self) -> u64 {
5811 if let Some(_) = self.temporary_address {
5812 return 1;
5813 }
5814 0
5815 }
5816 }
5817
5818 impl fidl::encoding::ValueTypeMarker for SlaacConfiguration {
5819 type Borrowed<'a> = &'a Self;
5820 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5821 value
5822 }
5823 }
5824
5825 unsafe impl fidl::encoding::TypeMarker for SlaacConfiguration {
5826 type Owned = Self;
5827
5828 #[inline(always)]
5829 fn inline_align(_context: fidl::encoding::Context) -> usize {
5830 8
5831 }
5832
5833 #[inline(always)]
5834 fn inline_size(_context: fidl::encoding::Context) -> usize {
5835 16
5836 }
5837 }
5838
5839 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SlaacConfiguration, D>
5840 for &SlaacConfiguration
5841 {
5842 unsafe fn encode(
5843 self,
5844 encoder: &mut fidl::encoding::Encoder<'_, D>,
5845 offset: usize,
5846 mut depth: fidl::encoding::Depth,
5847 ) -> fidl::Result<()> {
5848 encoder.debug_check_bounds::<SlaacConfiguration>(offset);
5849 let max_ordinal: u64 = self.max_ordinal_present();
5851 encoder.write_num(max_ordinal, offset);
5852 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5853 if max_ordinal == 0 {
5855 return Ok(());
5856 }
5857 depth.increment()?;
5858 let envelope_size = 8;
5859 let bytes_len = max_ordinal as usize * envelope_size;
5860 #[allow(unused_variables)]
5861 let offset = encoder.out_of_line_offset(bytes_len);
5862 let mut _prev_end_offset: usize = 0;
5863 if 1 > max_ordinal {
5864 return Ok(());
5865 }
5866
5867 let cur_offset: usize = (1 - 1) * envelope_size;
5870
5871 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5873
5874 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5879 self.temporary_address
5880 .as_ref()
5881 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5882 encoder,
5883 offset + cur_offset,
5884 depth,
5885 )?;
5886
5887 _prev_end_offset = cur_offset + envelope_size;
5888
5889 Ok(())
5890 }
5891 }
5892
5893 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SlaacConfiguration {
5894 #[inline(always)]
5895 fn new_empty() -> Self {
5896 Self::default()
5897 }
5898
5899 unsafe fn decode(
5900 &mut self,
5901 decoder: &mut fidl::encoding::Decoder<'_, D>,
5902 offset: usize,
5903 mut depth: fidl::encoding::Depth,
5904 ) -> fidl::Result<()> {
5905 decoder.debug_check_bounds::<Self>(offset);
5906 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5907 None => return Err(fidl::Error::NotNullable),
5908 Some(len) => len,
5909 };
5910 if len == 0 {
5912 return Ok(());
5913 };
5914 depth.increment()?;
5915 let envelope_size = 8;
5916 let bytes_len = len * envelope_size;
5917 let offset = decoder.out_of_line_offset(bytes_len)?;
5918 let mut _next_ordinal_to_read = 0;
5920 let mut next_offset = offset;
5921 let end_offset = offset + bytes_len;
5922 _next_ordinal_to_read += 1;
5923 if next_offset >= end_offset {
5924 return Ok(());
5925 }
5926
5927 while _next_ordinal_to_read < 1 {
5929 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5930 _next_ordinal_to_read += 1;
5931 next_offset += envelope_size;
5932 }
5933
5934 let next_out_of_line = decoder.next_out_of_line();
5935 let handles_before = decoder.remaining_handles();
5936 if let Some((inlined, num_bytes, num_handles)) =
5937 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5938 {
5939 let member_inline_size =
5940 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5941 if inlined != (member_inline_size <= 4) {
5942 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5943 }
5944 let inner_offset;
5945 let mut inner_depth = depth.clone();
5946 if inlined {
5947 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5948 inner_offset = next_offset;
5949 } else {
5950 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5951 inner_depth.increment()?;
5952 }
5953 let val_ref =
5954 self.temporary_address.get_or_insert_with(|| fidl::new_empty!(bool, D));
5955 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5956 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5957 {
5958 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5959 }
5960 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5961 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5962 }
5963 }
5964
5965 next_offset += envelope_size;
5966
5967 while next_offset < end_offset {
5969 _next_ordinal_to_read += 1;
5970 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5971 next_offset += envelope_size;
5972 }
5973
5974 Ok(())
5975 }
5976 }
5977}