1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub type Addresses = Vec<fidl_fuchsia_net_common::Ipv4Address>;
19
20pub type AsciiString = String;
28
29pub type Duration = u32;
33
34pub const MAX_DNS_SERVERS: u8 = 64;
48
49pub const MAX_ROUTERS: u8 = 64;
63
64bitflags! {
65 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
68 pub struct NodeTypes: u8 {
69 const B_NODE = 1;
71 const P_NODE = 2;
73 const M_NODE = 4;
75 const H_NODE = 8;
77 }
78}
79
80impl NodeTypes {}
81
82#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
83#[repr(u32)]
84pub enum ClientExitReason {
85 ClientAlreadyExistsOnInterface = 1,
87 WatchConfigurationAlreadyPending = 2,
89 InvalidInterface = 3,
91 InvalidParams = 4,
93 NetworkUnreachable = 5,
96 UnableToOpenSocket = 6,
98 GracefulShutdown = 7,
100 AddressRemovedByUser = 8,
102 AddressStateProviderError = 9,
106}
107
108impl ClientExitReason {
109 #[inline]
110 pub fn from_primitive(prim: u32) -> Option<Self> {
111 match prim {
112 1 => Some(Self::ClientAlreadyExistsOnInterface),
113 2 => Some(Self::WatchConfigurationAlreadyPending),
114 3 => Some(Self::InvalidInterface),
115 4 => Some(Self::InvalidParams),
116 5 => Some(Self::NetworkUnreachable),
117 6 => Some(Self::UnableToOpenSocket),
118 7 => Some(Self::GracefulShutdown),
119 8 => Some(Self::AddressRemovedByUser),
120 9 => Some(Self::AddressStateProviderError),
121 _ => None,
122 }
123 }
124
125 #[inline]
126 pub const fn into_primitive(self) -> u32 {
127 self as u32
128 }
129}
130
131#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
135#[repr(u8)]
136pub enum MessageType {
137 Dhcpdiscover = 1,
139 Dhcpoffer = 2,
141 Dhcprequest = 3,
143 Dhcpdecline = 4,
145 Dhcpack = 5,
147 Dhcpnak = 6,
149 Dhcprelease = 7,
151 Dhcpinform = 8,
153}
154
155impl MessageType {
156 #[inline]
157 pub fn from_primitive(prim: u8) -> Option<Self> {
158 match prim {
159 1 => Some(Self::Dhcpdiscover),
160 2 => Some(Self::Dhcpoffer),
161 3 => Some(Self::Dhcprequest),
162 4 => Some(Self::Dhcpdecline),
163 5 => Some(Self::Dhcpack),
164 6 => Some(Self::Dhcpnak),
165 7 => Some(Self::Dhcprelease),
166 8 => Some(Self::Dhcpinform),
167 _ => None,
168 }
169 }
170
171 #[inline]
172 pub const fn into_primitive(self) -> u8 {
173 self as u8
174 }
175}
176
177#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
181#[repr(u32)]
182pub enum OptionCode {
183 SubnetMask = 1,
184 TimeOffset = 2,
185 Router = 3,
186 TimeServer = 4,
187 NameServer = 5,
188 DomainNameServer = 6,
189 LogServer = 7,
190 CookieServer = 8,
191 LprServer = 9,
192 ImpressServer = 10,
193 ResourceLocationServer = 11,
194 HostName = 12,
195 BootFileSize = 13,
196 MeritDumpFile = 14,
197 DomainName = 15,
198 SwapServer = 16,
199 RootPath = 17,
200 ExtensionsPath = 18,
201 IpForwarding = 19,
202 NonLocalSourceRouting = 20,
203 PolicyFilter = 21,
204 MaxDatagramReassemblySize = 22,
205 DefaultIpTtl = 23,
206 PathMtuAgingTimeout = 24,
207 PathMtuPlateauTable = 25,
208 InterfaceMtu = 26,
209 AllSubnetsLocal = 27,
210 BroadcastAddress = 28,
211 PerformMaskDiscovery = 29,
212 MaskSupplier = 30,
213 PerformRouterDiscovery = 31,
214 RouterSolicitationAddress = 32,
215 StaticRoute = 33,
216 TrailerEncapsulation = 34,
217 ArpCacheTimeout = 35,
218 EthernetEncapsulation = 36,
219 TcpDefaultTtl = 37,
220 TcpKeepaliveInterval = 38,
221 TcpKeepaliveGarbage = 39,
222 NetworkInformationServiceDomain = 40,
223 NetworkInformationServers = 41,
224 NetworkTimeProtocolServers = 42,
225 VendorSpecificInformation = 43,
226 NetbiosOverTcpipNameServer = 44,
227 NetbiosOverTcpipDatagramDistributionServer = 45,
228 NetbiosOverTcpipNodeType = 46,
229 NetbiosOverTcpipScope = 47,
230 XWindowSystemFontServer = 48,
231 XWindowSystemDisplayManager = 49,
232 NetworkInformationServicePlusDomain = 64,
233 NetworkInformationServicePlusServers = 65,
234 MobileIpHomeAgent = 68,
235 SmtpServer = 69,
236 Pop3Server = 70,
237 NntpServer = 71,
238 DefaultWwwServer = 72,
239 DefaultFingerServer = 73,
240 DefaultIrcServer = 74,
241 StreettalkServer = 75,
242 StreettalkDirectoryAssistanceServer = 76,
243 OptionOverload = 52,
244 TftpServerName = 66,
245 BootfileName = 67,
246 MaxDhcpMessageSize = 57,
247 RenewalTimeValue = 58,
248 RebindingTimeValue = 59,
249}
250
251impl OptionCode {
252 #[inline]
253 pub fn from_primitive(prim: u32) -> Option<Self> {
254 match prim {
255 1 => Some(Self::SubnetMask),
256 2 => Some(Self::TimeOffset),
257 3 => Some(Self::Router),
258 4 => Some(Self::TimeServer),
259 5 => Some(Self::NameServer),
260 6 => Some(Self::DomainNameServer),
261 7 => Some(Self::LogServer),
262 8 => Some(Self::CookieServer),
263 9 => Some(Self::LprServer),
264 10 => Some(Self::ImpressServer),
265 11 => Some(Self::ResourceLocationServer),
266 12 => Some(Self::HostName),
267 13 => Some(Self::BootFileSize),
268 14 => Some(Self::MeritDumpFile),
269 15 => Some(Self::DomainName),
270 16 => Some(Self::SwapServer),
271 17 => Some(Self::RootPath),
272 18 => Some(Self::ExtensionsPath),
273 19 => Some(Self::IpForwarding),
274 20 => Some(Self::NonLocalSourceRouting),
275 21 => Some(Self::PolicyFilter),
276 22 => Some(Self::MaxDatagramReassemblySize),
277 23 => Some(Self::DefaultIpTtl),
278 24 => Some(Self::PathMtuAgingTimeout),
279 25 => Some(Self::PathMtuPlateauTable),
280 26 => Some(Self::InterfaceMtu),
281 27 => Some(Self::AllSubnetsLocal),
282 28 => Some(Self::BroadcastAddress),
283 29 => Some(Self::PerformMaskDiscovery),
284 30 => Some(Self::MaskSupplier),
285 31 => Some(Self::PerformRouterDiscovery),
286 32 => Some(Self::RouterSolicitationAddress),
287 33 => Some(Self::StaticRoute),
288 34 => Some(Self::TrailerEncapsulation),
289 35 => Some(Self::ArpCacheTimeout),
290 36 => Some(Self::EthernetEncapsulation),
291 37 => Some(Self::TcpDefaultTtl),
292 38 => Some(Self::TcpKeepaliveInterval),
293 39 => Some(Self::TcpKeepaliveGarbage),
294 40 => Some(Self::NetworkInformationServiceDomain),
295 41 => Some(Self::NetworkInformationServers),
296 42 => Some(Self::NetworkTimeProtocolServers),
297 43 => Some(Self::VendorSpecificInformation),
298 44 => Some(Self::NetbiosOverTcpipNameServer),
299 45 => Some(Self::NetbiosOverTcpipDatagramDistributionServer),
300 46 => Some(Self::NetbiosOverTcpipNodeType),
301 47 => Some(Self::NetbiosOverTcpipScope),
302 48 => Some(Self::XWindowSystemFontServer),
303 49 => Some(Self::XWindowSystemDisplayManager),
304 64 => Some(Self::NetworkInformationServicePlusDomain),
305 65 => Some(Self::NetworkInformationServicePlusServers),
306 68 => Some(Self::MobileIpHomeAgent),
307 69 => Some(Self::SmtpServer),
308 70 => Some(Self::Pop3Server),
309 71 => Some(Self::NntpServer),
310 72 => Some(Self::DefaultWwwServer),
311 73 => Some(Self::DefaultFingerServer),
312 74 => Some(Self::DefaultIrcServer),
313 75 => Some(Self::StreettalkServer),
314 76 => Some(Self::StreettalkDirectoryAssistanceServer),
315 52 => Some(Self::OptionOverload),
316 66 => Some(Self::TftpServerName),
317 67 => Some(Self::BootfileName),
318 57 => Some(Self::MaxDhcpMessageSize),
319 58 => Some(Self::RenewalTimeValue),
320 59 => Some(Self::RebindingTimeValue),
321 _ => None,
322 }
323 }
324
325 #[inline]
326 pub const fn into_primitive(self) -> u32 {
327 self as u32
328 }
329}
330
331#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
333#[repr(u8)]
334pub enum OptionOverloadValue {
335 File = 1,
337 Sname = 2,
339 Both = 3,
341}
342
343impl OptionOverloadValue {
344 #[inline]
345 pub fn from_primitive(prim: u8) -> Option<Self> {
346 match prim {
347 1 => Some(Self::File),
348 2 => Some(Self::Sname),
349 3 => Some(Self::Both),
350 _ => None,
351 }
352 }
353
354 #[inline]
355 pub const fn into_primitive(self) -> u8 {
356 self as u8
357 }
358}
359
360#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
362#[repr(u32)]
363pub enum ParameterName {
364 IpAddrs = 0,
365 AddressPool = 1,
366 LeaseLength = 2,
367 PermittedMacs = 3,
368 StaticallyAssignedAddrs = 4,
369 ArpProbe = 5,
370 BoundDeviceNames = 6,
371}
372
373impl ParameterName {
374 #[inline]
375 pub fn from_primitive(prim: u32) -> Option<Self> {
376 match prim {
377 0 => Some(Self::IpAddrs),
378 1 => Some(Self::AddressPool),
379 2 => Some(Self::LeaseLength),
380 3 => Some(Self::PermittedMacs),
381 4 => Some(Self::StaticallyAssignedAddrs),
382 5 => Some(Self::ArpProbe),
383 6 => Some(Self::BoundDeviceNames),
384 _ => None,
385 }
386 }
387
388 #[inline]
389 pub const fn into_primitive(self) -> u32 {
390 self as u32
391 }
392}
393
394#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
395pub struct ClientOnExitRequest {
396 pub reason: ClientExitReason,
397}
398
399impl fidl::Persistable for ClientOnExitRequest {}
400
401#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
402pub struct ServerGetOptionRequest {
403 pub code: OptionCode,
404}
405
406impl fidl::Persistable for ServerGetOptionRequest {}
407
408#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
409pub struct ServerGetParameterRequest {
410 pub name: ParameterName,
411}
412
413impl fidl::Persistable for ServerGetParameterRequest {}
414
415#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
416pub struct ServerIsServingResponse {
417 pub enabled: bool,
418}
419
420impl fidl::Persistable for ServerIsServingResponse {}
421
422#[derive(Clone, Debug, PartialEq)]
423pub struct ServerSetOptionRequest {
424 pub value: Option_,
425}
426
427impl fidl::Persistable for ServerSetOptionRequest {}
428
429#[derive(Clone, Debug, PartialEq)]
430pub struct ServerSetParameterRequest {
431 pub value: Parameter,
432}
433
434impl fidl::Persistable for ServerSetParameterRequest {}
435
436#[derive(Clone, Debug, PartialEq)]
437pub struct ServerGetOptionResponse {
438 pub value: Option_,
439}
440
441impl fidl::Persistable for ServerGetOptionResponse {}
442
443#[derive(Clone, Debug, PartialEq)]
444pub struct ServerGetParameterResponse {
445 pub value: Parameter,
446}
447
448impl fidl::Persistable for ServerGetParameterResponse {}
449
450#[derive(Clone, Debug, PartialEq)]
451pub struct ServerListOptionsResponse {
452 pub options: Vec<Option_>,
453}
454
455impl fidl::Persistable for ServerListOptionsResponse {}
456
457#[derive(Clone, Debug, PartialEq)]
458pub struct ServerListParametersResponse {
459 pub parameters: Vec<Parameter>,
460}
461
462impl fidl::Persistable for ServerListParametersResponse {}
463
464#[derive(Clone, Debug, Default, PartialEq)]
465pub struct AddressPool {
466 pub prefix_length: Option<u8>,
468 pub range_start: Option<fidl_fuchsia_net_common::Ipv4Address>,
471 pub range_stop: Option<fidl_fuchsia_net_common::Ipv4Address>,
474 #[doc(hidden)]
475 pub __source_breaking: fidl::marker::SourceBreaking,
476}
477
478impl fidl::Persistable for AddressPool {}
479
480#[derive(Clone, Debug, Default, PartialEq)]
483pub struct ConfigurationToRequest {
484 pub routers: Option<bool>,
490 pub dns_servers: Option<bool>,
495 #[doc(hidden)]
496 pub __source_breaking: fidl::marker::SourceBreaking,
497}
498
499impl fidl::Persistable for ConfigurationToRequest {}
500
501#[derive(Clone, Debug, Default, PartialEq)]
502pub struct LeaseLength {
503 pub default: Option<u32>,
506 pub max: Option<u32>,
510 #[doc(hidden)]
511 pub __source_breaking: fidl::marker::SourceBreaking,
512}
513
514impl fidl::Persistable for LeaseLength {}
515
516#[derive(Clone, Debug, Default, PartialEq)]
517pub struct NewClientParams {
518 pub configuration_to_request: Option<ConfigurationToRequest>,
524 pub request_ip_address: Option<bool>,
530 #[doc(hidden)]
531 pub __source_breaking: fidl::marker::SourceBreaking,
532}
533
534impl fidl::Persistable for NewClientParams {}
535
536#[derive(Clone, Debug, Default, PartialEq)]
537pub struct StaticAssignment {
538 pub host: Option<fidl_fuchsia_net_common::MacAddress>,
541 pub assigned_addr: Option<fidl_fuchsia_net_common::Ipv4Address>,
544 #[doc(hidden)]
545 pub __source_breaking: fidl::marker::SourceBreaking,
546}
547
548impl fidl::Persistable for StaticAssignment {}
549
550#[derive(Clone, Debug)]
567pub enum Option_ {
568 SubnetMask(fidl_fuchsia_net_common::Ipv4Address),
570 TimeOffset(i32),
573 Router(Vec<fidl_fuchsia_net_common::Ipv4Address>),
575 TimeServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
577 NameServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
579 DomainNameServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
581 LogServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
583 CookieServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
585 LprServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
587 ImpressServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
589 ResourceLocationServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
591 HostName(String),
593 BootFileSize(u16),
595 MeritDumpFile(String),
597 DomainName(String),
599 SwapServer(fidl_fuchsia_net_common::Ipv4Address),
601 RootPath(String),
603 ExtensionsPath(String),
607 IpForwarding(bool),
609 NonLocalSourceRouting(bool),
611 PolicyFilter(Vec<fidl_fuchsia_net_common::Ipv4Address>),
615 MaxDatagramReassemblySize(u16),
618 DefaultIpTtl(u8),
621 PathMtuAgingTimeout(u32),
623 PathMtuPlateauTable(Vec<u16>),
627 InterfaceMtu(u16),
629 AllSubnetsLocal(bool),
632 BroadcastAddress(fidl_fuchsia_net_common::Ipv4Address),
634 PerformMaskDiscovery(bool),
636 MaskSupplier(bool),
639 PerformRouterDiscovery(bool),
642 RouterSolicitationAddress(fidl_fuchsia_net_common::Ipv4Address),
644 StaticRoute(Vec<fidl_fuchsia_net_common::Ipv4Address>),
649 TrailerEncapsulation(bool),
652 ArpCacheTimeout(u32),
654 EthernetEncapsulation(bool),
657 TcpDefaultTtl(u8),
660 TcpKeepaliveInterval(u32),
664 TcpKeepaliveGarbage(bool),
667 NetworkInformationServiceDomain(String),
669 NetworkInformationServers(Vec<fidl_fuchsia_net_common::Ipv4Address>),
672 NetworkTimeProtocolServers(Vec<fidl_fuchsia_net_common::Ipv4Address>),
675 VendorSpecificInformation(Vec<u8>),
677 NetbiosOverTcpipNameServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
680 NetbiosOverTcpipDatagramDistributionServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
683 NetbiosOverTcpipNodeType(NodeTypes),
685 NetbiosOverTcpipScope(String),
687 XWindowSystemFontServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
690 XWindowSystemDisplayManager(Vec<fidl_fuchsia_net_common::Ipv4Address>),
693 NetworkInformationServicePlusDomain(String),
695 NetworkInformationServicePlusServers(Vec<fidl_fuchsia_net_common::Ipv4Address>),
698 MobileIpHomeAgent(Vec<fidl_fuchsia_net_common::Ipv4Address>),
701 SmtpServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
704 Pop3Server(Vec<fidl_fuchsia_net_common::Ipv4Address>),
707 NntpServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
710 DefaultWwwServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
713 DefaultFingerServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
716 DefaultIrcServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
719 StreettalkServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
722 StreettalkDirectoryAssistanceServer(Vec<fidl_fuchsia_net_common::Ipv4Address>),
725 OptionOverload(OptionOverloadValue),
729 TftpServerName(String),
732 BootfileName(String),
735 MaxDhcpMessageSize(u16),
738 RenewalTimeValue(u32),
741 RebindingTimeValue(u32),
744 #[doc(hidden)]
745 __SourceBreaking { unknown_ordinal: u64 },
746}
747
748#[macro_export]
750macro_rules! Option_Unknown {
751 () => {
752 _
753 };
754}
755
756impl PartialEq for Option_ {
758 fn eq(&self, other: &Self) -> bool {
759 match (self, other) {
760 (Self::SubnetMask(x), Self::SubnetMask(y)) => *x == *y,
761 (Self::TimeOffset(x), Self::TimeOffset(y)) => *x == *y,
762 (Self::Router(x), Self::Router(y)) => *x == *y,
763 (Self::TimeServer(x), Self::TimeServer(y)) => *x == *y,
764 (Self::NameServer(x), Self::NameServer(y)) => *x == *y,
765 (Self::DomainNameServer(x), Self::DomainNameServer(y)) => *x == *y,
766 (Self::LogServer(x), Self::LogServer(y)) => *x == *y,
767 (Self::CookieServer(x), Self::CookieServer(y)) => *x == *y,
768 (Self::LprServer(x), Self::LprServer(y)) => *x == *y,
769 (Self::ImpressServer(x), Self::ImpressServer(y)) => *x == *y,
770 (Self::ResourceLocationServer(x), Self::ResourceLocationServer(y)) => *x == *y,
771 (Self::HostName(x), Self::HostName(y)) => *x == *y,
772 (Self::BootFileSize(x), Self::BootFileSize(y)) => *x == *y,
773 (Self::MeritDumpFile(x), Self::MeritDumpFile(y)) => *x == *y,
774 (Self::DomainName(x), Self::DomainName(y)) => *x == *y,
775 (Self::SwapServer(x), Self::SwapServer(y)) => *x == *y,
776 (Self::RootPath(x), Self::RootPath(y)) => *x == *y,
777 (Self::ExtensionsPath(x), Self::ExtensionsPath(y)) => *x == *y,
778 (Self::IpForwarding(x), Self::IpForwarding(y)) => *x == *y,
779 (Self::NonLocalSourceRouting(x), Self::NonLocalSourceRouting(y)) => *x == *y,
780 (Self::PolicyFilter(x), Self::PolicyFilter(y)) => *x == *y,
781 (Self::MaxDatagramReassemblySize(x), Self::MaxDatagramReassemblySize(y)) => *x == *y,
782 (Self::DefaultIpTtl(x), Self::DefaultIpTtl(y)) => *x == *y,
783 (Self::PathMtuAgingTimeout(x), Self::PathMtuAgingTimeout(y)) => *x == *y,
784 (Self::PathMtuPlateauTable(x), Self::PathMtuPlateauTable(y)) => *x == *y,
785 (Self::InterfaceMtu(x), Self::InterfaceMtu(y)) => *x == *y,
786 (Self::AllSubnetsLocal(x), Self::AllSubnetsLocal(y)) => *x == *y,
787 (Self::BroadcastAddress(x), Self::BroadcastAddress(y)) => *x == *y,
788 (Self::PerformMaskDiscovery(x), Self::PerformMaskDiscovery(y)) => *x == *y,
789 (Self::MaskSupplier(x), Self::MaskSupplier(y)) => *x == *y,
790 (Self::PerformRouterDiscovery(x), Self::PerformRouterDiscovery(y)) => *x == *y,
791 (Self::RouterSolicitationAddress(x), Self::RouterSolicitationAddress(y)) => *x == *y,
792 (Self::StaticRoute(x), Self::StaticRoute(y)) => *x == *y,
793 (Self::TrailerEncapsulation(x), Self::TrailerEncapsulation(y)) => *x == *y,
794 (Self::ArpCacheTimeout(x), Self::ArpCacheTimeout(y)) => *x == *y,
795 (Self::EthernetEncapsulation(x), Self::EthernetEncapsulation(y)) => *x == *y,
796 (Self::TcpDefaultTtl(x), Self::TcpDefaultTtl(y)) => *x == *y,
797 (Self::TcpKeepaliveInterval(x), Self::TcpKeepaliveInterval(y)) => *x == *y,
798 (Self::TcpKeepaliveGarbage(x), Self::TcpKeepaliveGarbage(y)) => *x == *y,
799 (
800 Self::NetworkInformationServiceDomain(x),
801 Self::NetworkInformationServiceDomain(y),
802 ) => *x == *y,
803 (Self::NetworkInformationServers(x), Self::NetworkInformationServers(y)) => *x == *y,
804 (Self::NetworkTimeProtocolServers(x), Self::NetworkTimeProtocolServers(y)) => *x == *y,
805 (Self::VendorSpecificInformation(x), Self::VendorSpecificInformation(y)) => *x == *y,
806 (Self::NetbiosOverTcpipNameServer(x), Self::NetbiosOverTcpipNameServer(y)) => *x == *y,
807 (
808 Self::NetbiosOverTcpipDatagramDistributionServer(x),
809 Self::NetbiosOverTcpipDatagramDistributionServer(y),
810 ) => *x == *y,
811 (Self::NetbiosOverTcpipNodeType(x), Self::NetbiosOverTcpipNodeType(y)) => *x == *y,
812 (Self::NetbiosOverTcpipScope(x), Self::NetbiosOverTcpipScope(y)) => *x == *y,
813 (Self::XWindowSystemFontServer(x), Self::XWindowSystemFontServer(y)) => *x == *y,
814 (Self::XWindowSystemDisplayManager(x), Self::XWindowSystemDisplayManager(y)) => {
815 *x == *y
816 }
817 (
818 Self::NetworkInformationServicePlusDomain(x),
819 Self::NetworkInformationServicePlusDomain(y),
820 ) => *x == *y,
821 (
822 Self::NetworkInformationServicePlusServers(x),
823 Self::NetworkInformationServicePlusServers(y),
824 ) => *x == *y,
825 (Self::MobileIpHomeAgent(x), Self::MobileIpHomeAgent(y)) => *x == *y,
826 (Self::SmtpServer(x), Self::SmtpServer(y)) => *x == *y,
827 (Self::Pop3Server(x), Self::Pop3Server(y)) => *x == *y,
828 (Self::NntpServer(x), Self::NntpServer(y)) => *x == *y,
829 (Self::DefaultWwwServer(x), Self::DefaultWwwServer(y)) => *x == *y,
830 (Self::DefaultFingerServer(x), Self::DefaultFingerServer(y)) => *x == *y,
831 (Self::DefaultIrcServer(x), Self::DefaultIrcServer(y)) => *x == *y,
832 (Self::StreettalkServer(x), Self::StreettalkServer(y)) => *x == *y,
833 (
834 Self::StreettalkDirectoryAssistanceServer(x),
835 Self::StreettalkDirectoryAssistanceServer(y),
836 ) => *x == *y,
837 (Self::OptionOverload(x), Self::OptionOverload(y)) => *x == *y,
838 (Self::TftpServerName(x), Self::TftpServerName(y)) => *x == *y,
839 (Self::BootfileName(x), Self::BootfileName(y)) => *x == *y,
840 (Self::MaxDhcpMessageSize(x), Self::MaxDhcpMessageSize(y)) => *x == *y,
841 (Self::RenewalTimeValue(x), Self::RenewalTimeValue(y)) => *x == *y,
842 (Self::RebindingTimeValue(x), Self::RebindingTimeValue(y)) => *x == *y,
843 _ => false,
844 }
845 }
846}
847
848impl Option_ {
849 #[inline]
850 pub fn ordinal(&self) -> u64 {
851 match *self {
852 Self::SubnetMask(_) => 1,
853 Self::TimeOffset(_) => 2,
854 Self::Router(_) => 3,
855 Self::TimeServer(_) => 4,
856 Self::NameServer(_) => 5,
857 Self::DomainNameServer(_) => 6,
858 Self::LogServer(_) => 7,
859 Self::CookieServer(_) => 8,
860 Self::LprServer(_) => 9,
861 Self::ImpressServer(_) => 10,
862 Self::ResourceLocationServer(_) => 11,
863 Self::HostName(_) => 12,
864 Self::BootFileSize(_) => 13,
865 Self::MeritDumpFile(_) => 14,
866 Self::DomainName(_) => 15,
867 Self::SwapServer(_) => 16,
868 Self::RootPath(_) => 17,
869 Self::ExtensionsPath(_) => 18,
870 Self::IpForwarding(_) => 19,
871 Self::NonLocalSourceRouting(_) => 20,
872 Self::PolicyFilter(_) => 21,
873 Self::MaxDatagramReassemblySize(_) => 22,
874 Self::DefaultIpTtl(_) => 23,
875 Self::PathMtuAgingTimeout(_) => 24,
876 Self::PathMtuPlateauTable(_) => 25,
877 Self::InterfaceMtu(_) => 26,
878 Self::AllSubnetsLocal(_) => 27,
879 Self::BroadcastAddress(_) => 28,
880 Self::PerformMaskDiscovery(_) => 29,
881 Self::MaskSupplier(_) => 30,
882 Self::PerformRouterDiscovery(_) => 31,
883 Self::RouterSolicitationAddress(_) => 32,
884 Self::StaticRoute(_) => 33,
885 Self::TrailerEncapsulation(_) => 34,
886 Self::ArpCacheTimeout(_) => 35,
887 Self::EthernetEncapsulation(_) => 36,
888 Self::TcpDefaultTtl(_) => 37,
889 Self::TcpKeepaliveInterval(_) => 38,
890 Self::TcpKeepaliveGarbage(_) => 39,
891 Self::NetworkInformationServiceDomain(_) => 40,
892 Self::NetworkInformationServers(_) => 41,
893 Self::NetworkTimeProtocolServers(_) => 42,
894 Self::VendorSpecificInformation(_) => 43,
895 Self::NetbiosOverTcpipNameServer(_) => 44,
896 Self::NetbiosOverTcpipDatagramDistributionServer(_) => 45,
897 Self::NetbiosOverTcpipNodeType(_) => 46,
898 Self::NetbiosOverTcpipScope(_) => 47,
899 Self::XWindowSystemFontServer(_) => 48,
900 Self::XWindowSystemDisplayManager(_) => 49,
901 Self::NetworkInformationServicePlusDomain(_) => 50,
902 Self::NetworkInformationServicePlusServers(_) => 51,
903 Self::MobileIpHomeAgent(_) => 52,
904 Self::SmtpServer(_) => 53,
905 Self::Pop3Server(_) => 54,
906 Self::NntpServer(_) => 55,
907 Self::DefaultWwwServer(_) => 56,
908 Self::DefaultFingerServer(_) => 57,
909 Self::DefaultIrcServer(_) => 58,
910 Self::StreettalkServer(_) => 59,
911 Self::StreettalkDirectoryAssistanceServer(_) => 60,
912 Self::OptionOverload(_) => 61,
913 Self::TftpServerName(_) => 62,
914 Self::BootfileName(_) => 63,
915 Self::MaxDhcpMessageSize(_) => 64,
916 Self::RenewalTimeValue(_) => 65,
917 Self::RebindingTimeValue(_) => 66,
918 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
919 }
920 }
921
922 #[inline]
923 pub fn unknown_variant_for_testing() -> Self {
924 Self::__SourceBreaking { unknown_ordinal: 0 }
925 }
926
927 #[inline]
928 pub fn is_unknown(&self) -> bool {
929 match self {
930 Self::__SourceBreaking { .. } => true,
931 _ => false,
932 }
933 }
934}
935
936impl fidl::Persistable for Option_ {}
937
938#[derive(Clone, Debug)]
940pub enum Parameter {
941 IpAddrs(Vec<fidl_fuchsia_net_common::Ipv4Address>),
944 AddressPool(AddressPool),
966 Lease(LeaseLength),
968 PermittedMacs(Vec<fidl_fuchsia_net_common::MacAddress>),
975 StaticallyAssignedAddrs(Vec<StaticAssignment>),
981 ArpProbe(bool),
985 BoundDeviceNames(Vec<String>),
993 #[doc(hidden)]
994 __SourceBreaking { unknown_ordinal: u64 },
995}
996
997#[macro_export]
999macro_rules! ParameterUnknown {
1000 () => {
1001 _
1002 };
1003}
1004
1005impl PartialEq for Parameter {
1007 fn eq(&self, other: &Self) -> bool {
1008 match (self, other) {
1009 (Self::IpAddrs(x), Self::IpAddrs(y)) => *x == *y,
1010 (Self::AddressPool(x), Self::AddressPool(y)) => *x == *y,
1011 (Self::Lease(x), Self::Lease(y)) => *x == *y,
1012 (Self::PermittedMacs(x), Self::PermittedMacs(y)) => *x == *y,
1013 (Self::StaticallyAssignedAddrs(x), Self::StaticallyAssignedAddrs(y)) => *x == *y,
1014 (Self::ArpProbe(x), Self::ArpProbe(y)) => *x == *y,
1015 (Self::BoundDeviceNames(x), Self::BoundDeviceNames(y)) => *x == *y,
1016 _ => false,
1017 }
1018 }
1019}
1020
1021impl Parameter {
1022 #[inline]
1023 pub fn ordinal(&self) -> u64 {
1024 match *self {
1025 Self::IpAddrs(_) => 1,
1026 Self::AddressPool(_) => 2,
1027 Self::Lease(_) => 3,
1028 Self::PermittedMacs(_) => 4,
1029 Self::StaticallyAssignedAddrs(_) => 5,
1030 Self::ArpProbe(_) => 6,
1031 Self::BoundDeviceNames(_) => 7,
1032 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
1033 }
1034 }
1035
1036 #[inline]
1037 pub fn unknown_variant_for_testing() -> Self {
1038 Self::__SourceBreaking { unknown_ordinal: 0 }
1039 }
1040
1041 #[inline]
1042 pub fn is_unknown(&self) -> bool {
1043 match self {
1044 Self::__SourceBreaking { .. } => true,
1045 _ => false,
1046 }
1047 }
1048}
1049
1050impl fidl::Persistable for Parameter {}
1051
1052pub mod client_ordinals {
1053 pub const WATCH_CONFIGURATION: u64 = 0x2b6f7c7d3bcc6682;
1054 pub const SHUTDOWN: u64 = 0x265a3213e9a8abde;
1055 pub const ON_EXIT: u64 = 0x2a2a052260f657c0;
1056}
1057
1058pub mod client_provider_ordinals {
1059 pub const NEW_CLIENT: u64 = 0x317e9af2e462cbcd;
1060}
1061
1062pub mod server__ordinals {
1063 pub const START_SERVING: u64 = 0x10990e324ac53cd1;
1064 pub const STOP_SERVING: u64 = 0x7776cfe9f68a0dbe;
1065 pub const IS_SERVING: u64 = 0x45aadc35fcbe3826;
1066 pub const GET_OPTION: u64 = 0x5305ee2c593f68a;
1067 pub const GET_PARAMETER: u64 = 0x1e8c98758fb82714;
1068 pub const SET_OPTION: u64 = 0x63c98b670db8d96a;
1069 pub const SET_PARAMETER: u64 = 0x3002d0d956eb4bdc;
1070 pub const LIST_OPTIONS: u64 = 0x72c8161c69ca67b;
1071 pub const LIST_PARAMETERS: u64 = 0xa201b1d6d121c59;
1072 pub const RESET_OPTIONS: u64 = 0x31014911fd21cc13;
1073 pub const RESET_PARAMETERS: u64 = 0x353fba50bcf4ecec;
1074 pub const CLEAR_LEASES: u64 = 0xe39e35cda85a04d;
1075}
1076
1077mod internal {
1078 use super::*;
1079 unsafe impl fidl::encoding::TypeMarker for NodeTypes {
1080 type Owned = Self;
1081
1082 #[inline(always)]
1083 fn inline_align(_context: fidl::encoding::Context) -> usize {
1084 1
1085 }
1086
1087 #[inline(always)]
1088 fn inline_size(_context: fidl::encoding::Context) -> usize {
1089 1
1090 }
1091 }
1092
1093 impl fidl::encoding::ValueTypeMarker for NodeTypes {
1094 type Borrowed<'a> = Self;
1095 #[inline(always)]
1096 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1097 *value
1098 }
1099 }
1100
1101 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for NodeTypes {
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 if self.bits() & Self::all().bits() != self.bits() {
1111 return Err(fidl::Error::InvalidBitsValue);
1112 }
1113 encoder.write_num(self.bits(), offset);
1114 Ok(())
1115 }
1116 }
1117
1118 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NodeTypes {
1119 #[inline(always)]
1120 fn new_empty() -> Self {
1121 Self::empty()
1122 }
1123
1124 #[inline]
1125 unsafe fn decode(
1126 &mut self,
1127 decoder: &mut fidl::encoding::Decoder<'_, D>,
1128 offset: usize,
1129 _depth: fidl::encoding::Depth,
1130 ) -> fidl::Result<()> {
1131 decoder.debug_check_bounds::<Self>(offset);
1132 let prim = decoder.read_num::<u8>(offset);
1133 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
1134 Ok(())
1135 }
1136 }
1137 unsafe impl fidl::encoding::TypeMarker for ClientExitReason {
1138 type Owned = Self;
1139
1140 #[inline(always)]
1141 fn inline_align(_context: fidl::encoding::Context) -> usize {
1142 std::mem::align_of::<u32>()
1143 }
1144
1145 #[inline(always)]
1146 fn inline_size(_context: fidl::encoding::Context) -> usize {
1147 std::mem::size_of::<u32>()
1148 }
1149
1150 #[inline(always)]
1151 fn encode_is_copy() -> bool {
1152 true
1153 }
1154
1155 #[inline(always)]
1156 fn decode_is_copy() -> bool {
1157 false
1158 }
1159 }
1160
1161 impl fidl::encoding::ValueTypeMarker for ClientExitReason {
1162 type Borrowed<'a> = Self;
1163 #[inline(always)]
1164 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1165 *value
1166 }
1167 }
1168
1169 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1170 for ClientExitReason
1171 {
1172 #[inline]
1173 unsafe fn encode(
1174 self,
1175 encoder: &mut fidl::encoding::Encoder<'_, D>,
1176 offset: usize,
1177 _depth: fidl::encoding::Depth,
1178 ) -> fidl::Result<()> {
1179 encoder.debug_check_bounds::<Self>(offset);
1180 encoder.write_num(self.into_primitive(), offset);
1181 Ok(())
1182 }
1183 }
1184
1185 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ClientExitReason {
1186 #[inline(always)]
1187 fn new_empty() -> Self {
1188 Self::ClientAlreadyExistsOnInterface
1189 }
1190
1191 #[inline]
1192 unsafe fn decode(
1193 &mut self,
1194 decoder: &mut fidl::encoding::Decoder<'_, D>,
1195 offset: usize,
1196 _depth: fidl::encoding::Depth,
1197 ) -> fidl::Result<()> {
1198 decoder.debug_check_bounds::<Self>(offset);
1199 let prim = decoder.read_num::<u32>(offset);
1200
1201 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1202 Ok(())
1203 }
1204 }
1205 unsafe impl fidl::encoding::TypeMarker for MessageType {
1206 type Owned = Self;
1207
1208 #[inline(always)]
1209 fn inline_align(_context: fidl::encoding::Context) -> usize {
1210 std::mem::align_of::<u8>()
1211 }
1212
1213 #[inline(always)]
1214 fn inline_size(_context: fidl::encoding::Context) -> usize {
1215 std::mem::size_of::<u8>()
1216 }
1217
1218 #[inline(always)]
1219 fn encode_is_copy() -> bool {
1220 true
1221 }
1222
1223 #[inline(always)]
1224 fn decode_is_copy() -> bool {
1225 false
1226 }
1227 }
1228
1229 impl fidl::encoding::ValueTypeMarker for MessageType {
1230 type Borrowed<'a> = Self;
1231 #[inline(always)]
1232 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1233 *value
1234 }
1235 }
1236
1237 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for MessageType {
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> for MessageType {
1252 #[inline(always)]
1253 fn new_empty() -> Self {
1254 Self::Dhcpdiscover
1255 }
1256
1257 #[inline]
1258 unsafe fn decode(
1259 &mut self,
1260 decoder: &mut fidl::encoding::Decoder<'_, D>,
1261 offset: usize,
1262 _depth: fidl::encoding::Depth,
1263 ) -> fidl::Result<()> {
1264 decoder.debug_check_bounds::<Self>(offset);
1265 let prim = decoder.read_num::<u8>(offset);
1266
1267 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1268 Ok(())
1269 }
1270 }
1271 unsafe impl fidl::encoding::TypeMarker for OptionCode {
1272 type Owned = Self;
1273
1274 #[inline(always)]
1275 fn inline_align(_context: fidl::encoding::Context) -> usize {
1276 std::mem::align_of::<u32>()
1277 }
1278
1279 #[inline(always)]
1280 fn inline_size(_context: fidl::encoding::Context) -> usize {
1281 std::mem::size_of::<u32>()
1282 }
1283
1284 #[inline(always)]
1285 fn encode_is_copy() -> bool {
1286 true
1287 }
1288
1289 #[inline(always)]
1290 fn decode_is_copy() -> bool {
1291 false
1292 }
1293 }
1294
1295 impl fidl::encoding::ValueTypeMarker for OptionCode {
1296 type Borrowed<'a> = Self;
1297 #[inline(always)]
1298 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1299 *value
1300 }
1301 }
1302
1303 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for OptionCode {
1304 #[inline]
1305 unsafe fn encode(
1306 self,
1307 encoder: &mut fidl::encoding::Encoder<'_, D>,
1308 offset: usize,
1309 _depth: fidl::encoding::Depth,
1310 ) -> fidl::Result<()> {
1311 encoder.debug_check_bounds::<Self>(offset);
1312 encoder.write_num(self.into_primitive(), offset);
1313 Ok(())
1314 }
1315 }
1316
1317 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OptionCode {
1318 #[inline(always)]
1319 fn new_empty() -> Self {
1320 Self::SubnetMask
1321 }
1322
1323 #[inline]
1324 unsafe fn decode(
1325 &mut self,
1326 decoder: &mut fidl::encoding::Decoder<'_, D>,
1327 offset: usize,
1328 _depth: fidl::encoding::Depth,
1329 ) -> fidl::Result<()> {
1330 decoder.debug_check_bounds::<Self>(offset);
1331 let prim = decoder.read_num::<u32>(offset);
1332
1333 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1334 Ok(())
1335 }
1336 }
1337 unsafe impl fidl::encoding::TypeMarker for OptionOverloadValue {
1338 type Owned = Self;
1339
1340 #[inline(always)]
1341 fn inline_align(_context: fidl::encoding::Context) -> usize {
1342 std::mem::align_of::<u8>()
1343 }
1344
1345 #[inline(always)]
1346 fn inline_size(_context: fidl::encoding::Context) -> usize {
1347 std::mem::size_of::<u8>()
1348 }
1349
1350 #[inline(always)]
1351 fn encode_is_copy() -> bool {
1352 true
1353 }
1354
1355 #[inline(always)]
1356 fn decode_is_copy() -> bool {
1357 false
1358 }
1359 }
1360
1361 impl fidl::encoding::ValueTypeMarker for OptionOverloadValue {
1362 type Borrowed<'a> = Self;
1363 #[inline(always)]
1364 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1365 *value
1366 }
1367 }
1368
1369 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1370 for OptionOverloadValue
1371 {
1372 #[inline]
1373 unsafe fn encode(
1374 self,
1375 encoder: &mut fidl::encoding::Encoder<'_, D>,
1376 offset: usize,
1377 _depth: fidl::encoding::Depth,
1378 ) -> fidl::Result<()> {
1379 encoder.debug_check_bounds::<Self>(offset);
1380 encoder.write_num(self.into_primitive(), offset);
1381 Ok(())
1382 }
1383 }
1384
1385 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OptionOverloadValue {
1386 #[inline(always)]
1387 fn new_empty() -> Self {
1388 Self::File
1389 }
1390
1391 #[inline]
1392 unsafe fn decode(
1393 &mut self,
1394 decoder: &mut fidl::encoding::Decoder<'_, D>,
1395 offset: usize,
1396 _depth: fidl::encoding::Depth,
1397 ) -> fidl::Result<()> {
1398 decoder.debug_check_bounds::<Self>(offset);
1399 let prim = decoder.read_num::<u8>(offset);
1400
1401 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1402 Ok(())
1403 }
1404 }
1405 unsafe impl fidl::encoding::TypeMarker for ParameterName {
1406 type Owned = Self;
1407
1408 #[inline(always)]
1409 fn inline_align(_context: fidl::encoding::Context) -> usize {
1410 std::mem::align_of::<u32>()
1411 }
1412
1413 #[inline(always)]
1414 fn inline_size(_context: fidl::encoding::Context) -> usize {
1415 std::mem::size_of::<u32>()
1416 }
1417
1418 #[inline(always)]
1419 fn encode_is_copy() -> bool {
1420 true
1421 }
1422
1423 #[inline(always)]
1424 fn decode_is_copy() -> bool {
1425 false
1426 }
1427 }
1428
1429 impl fidl::encoding::ValueTypeMarker for ParameterName {
1430 type Borrowed<'a> = Self;
1431 #[inline(always)]
1432 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1433 *value
1434 }
1435 }
1436
1437 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ParameterName {
1438 #[inline]
1439 unsafe fn encode(
1440 self,
1441 encoder: &mut fidl::encoding::Encoder<'_, D>,
1442 offset: usize,
1443 _depth: fidl::encoding::Depth,
1444 ) -> fidl::Result<()> {
1445 encoder.debug_check_bounds::<Self>(offset);
1446 encoder.write_num(self.into_primitive(), offset);
1447 Ok(())
1448 }
1449 }
1450
1451 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ParameterName {
1452 #[inline(always)]
1453 fn new_empty() -> Self {
1454 Self::IpAddrs
1455 }
1456
1457 #[inline]
1458 unsafe fn decode(
1459 &mut self,
1460 decoder: &mut fidl::encoding::Decoder<'_, D>,
1461 offset: usize,
1462 _depth: fidl::encoding::Depth,
1463 ) -> fidl::Result<()> {
1464 decoder.debug_check_bounds::<Self>(offset);
1465 let prim = decoder.read_num::<u32>(offset);
1466
1467 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1468 Ok(())
1469 }
1470 }
1471
1472 impl fidl::encoding::ValueTypeMarker for ClientOnExitRequest {
1473 type Borrowed<'a> = &'a Self;
1474 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1475 value
1476 }
1477 }
1478
1479 unsafe impl fidl::encoding::TypeMarker for ClientOnExitRequest {
1480 type Owned = Self;
1481
1482 #[inline(always)]
1483 fn inline_align(_context: fidl::encoding::Context) -> usize {
1484 4
1485 }
1486
1487 #[inline(always)]
1488 fn inline_size(_context: fidl::encoding::Context) -> usize {
1489 4
1490 }
1491 }
1492
1493 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ClientOnExitRequest, D>
1494 for &ClientOnExitRequest
1495 {
1496 #[inline]
1497 unsafe fn encode(
1498 self,
1499 encoder: &mut fidl::encoding::Encoder<'_, D>,
1500 offset: usize,
1501 _depth: fidl::encoding::Depth,
1502 ) -> fidl::Result<()> {
1503 encoder.debug_check_bounds::<ClientOnExitRequest>(offset);
1504 fidl::encoding::Encode::<ClientOnExitRequest, D>::encode(
1506 (<ClientExitReason as fidl::encoding::ValueTypeMarker>::borrow(&self.reason),),
1507 encoder,
1508 offset,
1509 _depth,
1510 )
1511 }
1512 }
1513 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ClientExitReason, D>>
1514 fidl::encoding::Encode<ClientOnExitRequest, D> for (T0,)
1515 {
1516 #[inline]
1517 unsafe fn encode(
1518 self,
1519 encoder: &mut fidl::encoding::Encoder<'_, D>,
1520 offset: usize,
1521 depth: fidl::encoding::Depth,
1522 ) -> fidl::Result<()> {
1523 encoder.debug_check_bounds::<ClientOnExitRequest>(offset);
1524 self.0.encode(encoder, offset + 0, depth)?;
1528 Ok(())
1529 }
1530 }
1531
1532 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ClientOnExitRequest {
1533 #[inline(always)]
1534 fn new_empty() -> Self {
1535 Self { reason: fidl::new_empty!(ClientExitReason, D) }
1536 }
1537
1538 #[inline]
1539 unsafe fn decode(
1540 &mut self,
1541 decoder: &mut fidl::encoding::Decoder<'_, D>,
1542 offset: usize,
1543 _depth: fidl::encoding::Depth,
1544 ) -> fidl::Result<()> {
1545 decoder.debug_check_bounds::<Self>(offset);
1546 fidl::decode!(ClientExitReason, D, &mut self.reason, decoder, offset + 0, _depth)?;
1548 Ok(())
1549 }
1550 }
1551
1552 impl fidl::encoding::ValueTypeMarker for ServerGetOptionRequest {
1553 type Borrowed<'a> = &'a Self;
1554 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1555 value
1556 }
1557 }
1558
1559 unsafe impl fidl::encoding::TypeMarker for ServerGetOptionRequest {
1560 type Owned = Self;
1561
1562 #[inline(always)]
1563 fn inline_align(_context: fidl::encoding::Context) -> usize {
1564 4
1565 }
1566
1567 #[inline(always)]
1568 fn inline_size(_context: fidl::encoding::Context) -> usize {
1569 4
1570 }
1571 }
1572
1573 unsafe impl<D: fidl::encoding::ResourceDialect>
1574 fidl::encoding::Encode<ServerGetOptionRequest, D> for &ServerGetOptionRequest
1575 {
1576 #[inline]
1577 unsafe fn encode(
1578 self,
1579 encoder: &mut fidl::encoding::Encoder<'_, D>,
1580 offset: usize,
1581 _depth: fidl::encoding::Depth,
1582 ) -> fidl::Result<()> {
1583 encoder.debug_check_bounds::<ServerGetOptionRequest>(offset);
1584 fidl::encoding::Encode::<ServerGetOptionRequest, D>::encode(
1586 (<OptionCode as fidl::encoding::ValueTypeMarker>::borrow(&self.code),),
1587 encoder,
1588 offset,
1589 _depth,
1590 )
1591 }
1592 }
1593 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<OptionCode, D>>
1594 fidl::encoding::Encode<ServerGetOptionRequest, D> for (T0,)
1595 {
1596 #[inline]
1597 unsafe fn encode(
1598 self,
1599 encoder: &mut fidl::encoding::Encoder<'_, D>,
1600 offset: usize,
1601 depth: fidl::encoding::Depth,
1602 ) -> fidl::Result<()> {
1603 encoder.debug_check_bounds::<ServerGetOptionRequest>(offset);
1604 self.0.encode(encoder, offset + 0, depth)?;
1608 Ok(())
1609 }
1610 }
1611
1612 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1613 for ServerGetOptionRequest
1614 {
1615 #[inline(always)]
1616 fn new_empty() -> Self {
1617 Self { code: fidl::new_empty!(OptionCode, D) }
1618 }
1619
1620 #[inline]
1621 unsafe fn decode(
1622 &mut self,
1623 decoder: &mut fidl::encoding::Decoder<'_, D>,
1624 offset: usize,
1625 _depth: fidl::encoding::Depth,
1626 ) -> fidl::Result<()> {
1627 decoder.debug_check_bounds::<Self>(offset);
1628 fidl::decode!(OptionCode, D, &mut self.code, decoder, offset + 0, _depth)?;
1630 Ok(())
1631 }
1632 }
1633
1634 impl fidl::encoding::ValueTypeMarker for ServerGetParameterRequest {
1635 type Borrowed<'a> = &'a Self;
1636 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1637 value
1638 }
1639 }
1640
1641 unsafe impl fidl::encoding::TypeMarker for ServerGetParameterRequest {
1642 type Owned = Self;
1643
1644 #[inline(always)]
1645 fn inline_align(_context: fidl::encoding::Context) -> usize {
1646 4
1647 }
1648
1649 #[inline(always)]
1650 fn inline_size(_context: fidl::encoding::Context) -> usize {
1651 4
1652 }
1653 }
1654
1655 unsafe impl<D: fidl::encoding::ResourceDialect>
1656 fidl::encoding::Encode<ServerGetParameterRequest, D> for &ServerGetParameterRequest
1657 {
1658 #[inline]
1659 unsafe fn encode(
1660 self,
1661 encoder: &mut fidl::encoding::Encoder<'_, D>,
1662 offset: usize,
1663 _depth: fidl::encoding::Depth,
1664 ) -> fidl::Result<()> {
1665 encoder.debug_check_bounds::<ServerGetParameterRequest>(offset);
1666 fidl::encoding::Encode::<ServerGetParameterRequest, D>::encode(
1668 (<ParameterName as fidl::encoding::ValueTypeMarker>::borrow(&self.name),),
1669 encoder,
1670 offset,
1671 _depth,
1672 )
1673 }
1674 }
1675 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ParameterName, D>>
1676 fidl::encoding::Encode<ServerGetParameterRequest, D> for (T0,)
1677 {
1678 #[inline]
1679 unsafe fn encode(
1680 self,
1681 encoder: &mut fidl::encoding::Encoder<'_, D>,
1682 offset: usize,
1683 depth: fidl::encoding::Depth,
1684 ) -> fidl::Result<()> {
1685 encoder.debug_check_bounds::<ServerGetParameterRequest>(offset);
1686 self.0.encode(encoder, offset + 0, depth)?;
1690 Ok(())
1691 }
1692 }
1693
1694 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1695 for ServerGetParameterRequest
1696 {
1697 #[inline(always)]
1698 fn new_empty() -> Self {
1699 Self { name: fidl::new_empty!(ParameterName, D) }
1700 }
1701
1702 #[inline]
1703 unsafe fn decode(
1704 &mut self,
1705 decoder: &mut fidl::encoding::Decoder<'_, D>,
1706 offset: usize,
1707 _depth: fidl::encoding::Depth,
1708 ) -> fidl::Result<()> {
1709 decoder.debug_check_bounds::<Self>(offset);
1710 fidl::decode!(ParameterName, D, &mut self.name, decoder, offset + 0, _depth)?;
1712 Ok(())
1713 }
1714 }
1715
1716 impl fidl::encoding::ValueTypeMarker for ServerIsServingResponse {
1717 type Borrowed<'a> = &'a Self;
1718 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1719 value
1720 }
1721 }
1722
1723 unsafe impl fidl::encoding::TypeMarker for ServerIsServingResponse {
1724 type Owned = Self;
1725
1726 #[inline(always)]
1727 fn inline_align(_context: fidl::encoding::Context) -> usize {
1728 1
1729 }
1730
1731 #[inline(always)]
1732 fn inline_size(_context: fidl::encoding::Context) -> usize {
1733 1
1734 }
1735 }
1736
1737 unsafe impl<D: fidl::encoding::ResourceDialect>
1738 fidl::encoding::Encode<ServerIsServingResponse, D> for &ServerIsServingResponse
1739 {
1740 #[inline]
1741 unsafe fn encode(
1742 self,
1743 encoder: &mut fidl::encoding::Encoder<'_, D>,
1744 offset: usize,
1745 _depth: fidl::encoding::Depth,
1746 ) -> fidl::Result<()> {
1747 encoder.debug_check_bounds::<ServerIsServingResponse>(offset);
1748 fidl::encoding::Encode::<ServerIsServingResponse, D>::encode(
1750 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enabled),),
1751 encoder,
1752 offset,
1753 _depth,
1754 )
1755 }
1756 }
1757 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
1758 fidl::encoding::Encode<ServerIsServingResponse, D> for (T0,)
1759 {
1760 #[inline]
1761 unsafe fn encode(
1762 self,
1763 encoder: &mut fidl::encoding::Encoder<'_, D>,
1764 offset: usize,
1765 depth: fidl::encoding::Depth,
1766 ) -> fidl::Result<()> {
1767 encoder.debug_check_bounds::<ServerIsServingResponse>(offset);
1768 self.0.encode(encoder, offset + 0, depth)?;
1772 Ok(())
1773 }
1774 }
1775
1776 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1777 for ServerIsServingResponse
1778 {
1779 #[inline(always)]
1780 fn new_empty() -> Self {
1781 Self { enabled: fidl::new_empty!(bool, D) }
1782 }
1783
1784 #[inline]
1785 unsafe fn decode(
1786 &mut self,
1787 decoder: &mut fidl::encoding::Decoder<'_, D>,
1788 offset: usize,
1789 _depth: fidl::encoding::Depth,
1790 ) -> fidl::Result<()> {
1791 decoder.debug_check_bounds::<Self>(offset);
1792 fidl::decode!(bool, D, &mut self.enabled, decoder, offset + 0, _depth)?;
1794 Ok(())
1795 }
1796 }
1797
1798 impl fidl::encoding::ValueTypeMarker for ServerSetOptionRequest {
1799 type Borrowed<'a> = &'a Self;
1800 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1801 value
1802 }
1803 }
1804
1805 unsafe impl fidl::encoding::TypeMarker for ServerSetOptionRequest {
1806 type Owned = Self;
1807
1808 #[inline(always)]
1809 fn inline_align(_context: fidl::encoding::Context) -> usize {
1810 8
1811 }
1812
1813 #[inline(always)]
1814 fn inline_size(_context: fidl::encoding::Context) -> usize {
1815 16
1816 }
1817 }
1818
1819 unsafe impl<D: fidl::encoding::ResourceDialect>
1820 fidl::encoding::Encode<ServerSetOptionRequest, D> for &ServerSetOptionRequest
1821 {
1822 #[inline]
1823 unsafe fn encode(
1824 self,
1825 encoder: &mut fidl::encoding::Encoder<'_, D>,
1826 offset: usize,
1827 _depth: fidl::encoding::Depth,
1828 ) -> fidl::Result<()> {
1829 encoder.debug_check_bounds::<ServerSetOptionRequest>(offset);
1830 fidl::encoding::Encode::<ServerSetOptionRequest, D>::encode(
1832 (<Option_ as fidl::encoding::ValueTypeMarker>::borrow(&self.value),),
1833 encoder,
1834 offset,
1835 _depth,
1836 )
1837 }
1838 }
1839 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Option_, D>>
1840 fidl::encoding::Encode<ServerSetOptionRequest, D> for (T0,)
1841 {
1842 #[inline]
1843 unsafe fn encode(
1844 self,
1845 encoder: &mut fidl::encoding::Encoder<'_, D>,
1846 offset: usize,
1847 depth: fidl::encoding::Depth,
1848 ) -> fidl::Result<()> {
1849 encoder.debug_check_bounds::<ServerSetOptionRequest>(offset);
1850 self.0.encode(encoder, offset + 0, depth)?;
1854 Ok(())
1855 }
1856 }
1857
1858 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1859 for ServerSetOptionRequest
1860 {
1861 #[inline(always)]
1862 fn new_empty() -> Self {
1863 Self { value: fidl::new_empty!(Option_, D) }
1864 }
1865
1866 #[inline]
1867 unsafe fn decode(
1868 &mut self,
1869 decoder: &mut fidl::encoding::Decoder<'_, D>,
1870 offset: usize,
1871 _depth: fidl::encoding::Depth,
1872 ) -> fidl::Result<()> {
1873 decoder.debug_check_bounds::<Self>(offset);
1874 fidl::decode!(Option_, D, &mut self.value, decoder, offset + 0, _depth)?;
1876 Ok(())
1877 }
1878 }
1879
1880 impl fidl::encoding::ValueTypeMarker for ServerSetParameterRequest {
1881 type Borrowed<'a> = &'a Self;
1882 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1883 value
1884 }
1885 }
1886
1887 unsafe impl fidl::encoding::TypeMarker for ServerSetParameterRequest {
1888 type Owned = Self;
1889
1890 #[inline(always)]
1891 fn inline_align(_context: fidl::encoding::Context) -> usize {
1892 8
1893 }
1894
1895 #[inline(always)]
1896 fn inline_size(_context: fidl::encoding::Context) -> usize {
1897 16
1898 }
1899 }
1900
1901 unsafe impl<D: fidl::encoding::ResourceDialect>
1902 fidl::encoding::Encode<ServerSetParameterRequest, D> for &ServerSetParameterRequest
1903 {
1904 #[inline]
1905 unsafe fn encode(
1906 self,
1907 encoder: &mut fidl::encoding::Encoder<'_, D>,
1908 offset: usize,
1909 _depth: fidl::encoding::Depth,
1910 ) -> fidl::Result<()> {
1911 encoder.debug_check_bounds::<ServerSetParameterRequest>(offset);
1912 fidl::encoding::Encode::<ServerSetParameterRequest, D>::encode(
1914 (<Parameter as fidl::encoding::ValueTypeMarker>::borrow(&self.value),),
1915 encoder,
1916 offset,
1917 _depth,
1918 )
1919 }
1920 }
1921 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Parameter, D>>
1922 fidl::encoding::Encode<ServerSetParameterRequest, D> for (T0,)
1923 {
1924 #[inline]
1925 unsafe fn encode(
1926 self,
1927 encoder: &mut fidl::encoding::Encoder<'_, D>,
1928 offset: usize,
1929 depth: fidl::encoding::Depth,
1930 ) -> fidl::Result<()> {
1931 encoder.debug_check_bounds::<ServerSetParameterRequest>(offset);
1932 self.0.encode(encoder, offset + 0, depth)?;
1936 Ok(())
1937 }
1938 }
1939
1940 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1941 for ServerSetParameterRequest
1942 {
1943 #[inline(always)]
1944 fn new_empty() -> Self {
1945 Self { value: fidl::new_empty!(Parameter, D) }
1946 }
1947
1948 #[inline]
1949 unsafe fn decode(
1950 &mut self,
1951 decoder: &mut fidl::encoding::Decoder<'_, D>,
1952 offset: usize,
1953 _depth: fidl::encoding::Depth,
1954 ) -> fidl::Result<()> {
1955 decoder.debug_check_bounds::<Self>(offset);
1956 fidl::decode!(Parameter, D, &mut self.value, decoder, offset + 0, _depth)?;
1958 Ok(())
1959 }
1960 }
1961
1962 impl fidl::encoding::ValueTypeMarker for ServerGetOptionResponse {
1963 type Borrowed<'a> = &'a Self;
1964 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1965 value
1966 }
1967 }
1968
1969 unsafe impl fidl::encoding::TypeMarker for ServerGetOptionResponse {
1970 type Owned = Self;
1971
1972 #[inline(always)]
1973 fn inline_align(_context: fidl::encoding::Context) -> usize {
1974 8
1975 }
1976
1977 #[inline(always)]
1978 fn inline_size(_context: fidl::encoding::Context) -> usize {
1979 16
1980 }
1981 }
1982
1983 unsafe impl<D: fidl::encoding::ResourceDialect>
1984 fidl::encoding::Encode<ServerGetOptionResponse, D> for &ServerGetOptionResponse
1985 {
1986 #[inline]
1987 unsafe fn encode(
1988 self,
1989 encoder: &mut fidl::encoding::Encoder<'_, D>,
1990 offset: usize,
1991 _depth: fidl::encoding::Depth,
1992 ) -> fidl::Result<()> {
1993 encoder.debug_check_bounds::<ServerGetOptionResponse>(offset);
1994 fidl::encoding::Encode::<ServerGetOptionResponse, D>::encode(
1996 (<Option_ as fidl::encoding::ValueTypeMarker>::borrow(&self.value),),
1997 encoder,
1998 offset,
1999 _depth,
2000 )
2001 }
2002 }
2003 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Option_, D>>
2004 fidl::encoding::Encode<ServerGetOptionResponse, D> for (T0,)
2005 {
2006 #[inline]
2007 unsafe fn encode(
2008 self,
2009 encoder: &mut fidl::encoding::Encoder<'_, D>,
2010 offset: usize,
2011 depth: fidl::encoding::Depth,
2012 ) -> fidl::Result<()> {
2013 encoder.debug_check_bounds::<ServerGetOptionResponse>(offset);
2014 self.0.encode(encoder, offset + 0, depth)?;
2018 Ok(())
2019 }
2020 }
2021
2022 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2023 for ServerGetOptionResponse
2024 {
2025 #[inline(always)]
2026 fn new_empty() -> Self {
2027 Self { value: fidl::new_empty!(Option_, D) }
2028 }
2029
2030 #[inline]
2031 unsafe fn decode(
2032 &mut self,
2033 decoder: &mut fidl::encoding::Decoder<'_, D>,
2034 offset: usize,
2035 _depth: fidl::encoding::Depth,
2036 ) -> fidl::Result<()> {
2037 decoder.debug_check_bounds::<Self>(offset);
2038 fidl::decode!(Option_, D, &mut self.value, decoder, offset + 0, _depth)?;
2040 Ok(())
2041 }
2042 }
2043
2044 impl fidl::encoding::ValueTypeMarker for ServerGetParameterResponse {
2045 type Borrowed<'a> = &'a Self;
2046 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2047 value
2048 }
2049 }
2050
2051 unsafe impl fidl::encoding::TypeMarker for ServerGetParameterResponse {
2052 type Owned = Self;
2053
2054 #[inline(always)]
2055 fn inline_align(_context: fidl::encoding::Context) -> usize {
2056 8
2057 }
2058
2059 #[inline(always)]
2060 fn inline_size(_context: fidl::encoding::Context) -> usize {
2061 16
2062 }
2063 }
2064
2065 unsafe impl<D: fidl::encoding::ResourceDialect>
2066 fidl::encoding::Encode<ServerGetParameterResponse, D> for &ServerGetParameterResponse
2067 {
2068 #[inline]
2069 unsafe fn encode(
2070 self,
2071 encoder: &mut fidl::encoding::Encoder<'_, D>,
2072 offset: usize,
2073 _depth: fidl::encoding::Depth,
2074 ) -> fidl::Result<()> {
2075 encoder.debug_check_bounds::<ServerGetParameterResponse>(offset);
2076 fidl::encoding::Encode::<ServerGetParameterResponse, D>::encode(
2078 (<Parameter as fidl::encoding::ValueTypeMarker>::borrow(&self.value),),
2079 encoder,
2080 offset,
2081 _depth,
2082 )
2083 }
2084 }
2085 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Parameter, D>>
2086 fidl::encoding::Encode<ServerGetParameterResponse, D> for (T0,)
2087 {
2088 #[inline]
2089 unsafe fn encode(
2090 self,
2091 encoder: &mut fidl::encoding::Encoder<'_, D>,
2092 offset: usize,
2093 depth: fidl::encoding::Depth,
2094 ) -> fidl::Result<()> {
2095 encoder.debug_check_bounds::<ServerGetParameterResponse>(offset);
2096 self.0.encode(encoder, offset + 0, depth)?;
2100 Ok(())
2101 }
2102 }
2103
2104 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2105 for ServerGetParameterResponse
2106 {
2107 #[inline(always)]
2108 fn new_empty() -> Self {
2109 Self { value: fidl::new_empty!(Parameter, D) }
2110 }
2111
2112 #[inline]
2113 unsafe fn decode(
2114 &mut self,
2115 decoder: &mut fidl::encoding::Decoder<'_, D>,
2116 offset: usize,
2117 _depth: fidl::encoding::Depth,
2118 ) -> fidl::Result<()> {
2119 decoder.debug_check_bounds::<Self>(offset);
2120 fidl::decode!(Parameter, D, &mut self.value, decoder, offset + 0, _depth)?;
2122 Ok(())
2123 }
2124 }
2125
2126 impl fidl::encoding::ValueTypeMarker for ServerListOptionsResponse {
2127 type Borrowed<'a> = &'a Self;
2128 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2129 value
2130 }
2131 }
2132
2133 unsafe impl fidl::encoding::TypeMarker for ServerListOptionsResponse {
2134 type Owned = Self;
2135
2136 #[inline(always)]
2137 fn inline_align(_context: fidl::encoding::Context) -> usize {
2138 8
2139 }
2140
2141 #[inline(always)]
2142 fn inline_size(_context: fidl::encoding::Context) -> usize {
2143 16
2144 }
2145 }
2146
2147 unsafe impl<D: fidl::encoding::ResourceDialect>
2148 fidl::encoding::Encode<ServerListOptionsResponse, D> for &ServerListOptionsResponse
2149 {
2150 #[inline]
2151 unsafe fn encode(
2152 self,
2153 encoder: &mut fidl::encoding::Encoder<'_, D>,
2154 offset: usize,
2155 _depth: fidl::encoding::Depth,
2156 ) -> fidl::Result<()> {
2157 encoder.debug_check_bounds::<ServerListOptionsResponse>(offset);
2158 fidl::encoding::Encode::<ServerListOptionsResponse, D>::encode(
2160 (
2161 <fidl::encoding::Vector<Option_, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
2162 ),
2163 encoder, offset, _depth
2164 )
2165 }
2166 }
2167 unsafe impl<
2168 D: fidl::encoding::ResourceDialect,
2169 T0: fidl::encoding::Encode<fidl::encoding::Vector<Option_, 256>, D>,
2170 > fidl::encoding::Encode<ServerListOptionsResponse, D> for (T0,)
2171 {
2172 #[inline]
2173 unsafe fn encode(
2174 self,
2175 encoder: &mut fidl::encoding::Encoder<'_, D>,
2176 offset: usize,
2177 depth: fidl::encoding::Depth,
2178 ) -> fidl::Result<()> {
2179 encoder.debug_check_bounds::<ServerListOptionsResponse>(offset);
2180 self.0.encode(encoder, offset + 0, depth)?;
2184 Ok(())
2185 }
2186 }
2187
2188 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2189 for ServerListOptionsResponse
2190 {
2191 #[inline(always)]
2192 fn new_empty() -> Self {
2193 Self { options: fidl::new_empty!(fidl::encoding::Vector<Option_, 256>, D) }
2194 }
2195
2196 #[inline]
2197 unsafe fn decode(
2198 &mut self,
2199 decoder: &mut fidl::encoding::Decoder<'_, D>,
2200 offset: usize,
2201 _depth: fidl::encoding::Depth,
2202 ) -> fidl::Result<()> {
2203 decoder.debug_check_bounds::<Self>(offset);
2204 fidl::decode!(fidl::encoding::Vector<Option_, 256>, D, &mut self.options, decoder, offset + 0, _depth)?;
2206 Ok(())
2207 }
2208 }
2209
2210 impl fidl::encoding::ValueTypeMarker for ServerListParametersResponse {
2211 type Borrowed<'a> = &'a Self;
2212 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2213 value
2214 }
2215 }
2216
2217 unsafe impl fidl::encoding::TypeMarker for ServerListParametersResponse {
2218 type Owned = Self;
2219
2220 #[inline(always)]
2221 fn inline_align(_context: fidl::encoding::Context) -> usize {
2222 8
2223 }
2224
2225 #[inline(always)]
2226 fn inline_size(_context: fidl::encoding::Context) -> usize {
2227 16
2228 }
2229 }
2230
2231 unsafe impl<D: fidl::encoding::ResourceDialect>
2232 fidl::encoding::Encode<ServerListParametersResponse, D> for &ServerListParametersResponse
2233 {
2234 #[inline]
2235 unsafe fn encode(
2236 self,
2237 encoder: &mut fidl::encoding::Encoder<'_, D>,
2238 offset: usize,
2239 _depth: fidl::encoding::Depth,
2240 ) -> fidl::Result<()> {
2241 encoder.debug_check_bounds::<ServerListParametersResponse>(offset);
2242 fidl::encoding::Encode::<ServerListParametersResponse, D>::encode(
2244 (
2245 <fidl::encoding::Vector<Parameter, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.parameters),
2246 ),
2247 encoder, offset, _depth
2248 )
2249 }
2250 }
2251 unsafe impl<
2252 D: fidl::encoding::ResourceDialect,
2253 T0: fidl::encoding::Encode<fidl::encoding::Vector<Parameter, 256>, D>,
2254 > fidl::encoding::Encode<ServerListParametersResponse, D> for (T0,)
2255 {
2256 #[inline]
2257 unsafe fn encode(
2258 self,
2259 encoder: &mut fidl::encoding::Encoder<'_, D>,
2260 offset: usize,
2261 depth: fidl::encoding::Depth,
2262 ) -> fidl::Result<()> {
2263 encoder.debug_check_bounds::<ServerListParametersResponse>(offset);
2264 self.0.encode(encoder, offset + 0, depth)?;
2268 Ok(())
2269 }
2270 }
2271
2272 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2273 for ServerListParametersResponse
2274 {
2275 #[inline(always)]
2276 fn new_empty() -> Self {
2277 Self { parameters: fidl::new_empty!(fidl::encoding::Vector<Parameter, 256>, D) }
2278 }
2279
2280 #[inline]
2281 unsafe fn decode(
2282 &mut self,
2283 decoder: &mut fidl::encoding::Decoder<'_, D>,
2284 offset: usize,
2285 _depth: fidl::encoding::Depth,
2286 ) -> fidl::Result<()> {
2287 decoder.debug_check_bounds::<Self>(offset);
2288 fidl::decode!(fidl::encoding::Vector<Parameter, 256>, D, &mut self.parameters, decoder, offset + 0, _depth)?;
2290 Ok(())
2291 }
2292 }
2293
2294 impl AddressPool {
2295 #[inline(always)]
2296 fn max_ordinal_present(&self) -> u64 {
2297 if let Some(_) = self.range_stop {
2298 return 3;
2299 }
2300 if let Some(_) = self.range_start {
2301 return 2;
2302 }
2303 if let Some(_) = self.prefix_length {
2304 return 1;
2305 }
2306 0
2307 }
2308 }
2309
2310 impl fidl::encoding::ValueTypeMarker for AddressPool {
2311 type Borrowed<'a> = &'a Self;
2312 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2313 value
2314 }
2315 }
2316
2317 unsafe impl fidl::encoding::TypeMarker for AddressPool {
2318 type Owned = Self;
2319
2320 #[inline(always)]
2321 fn inline_align(_context: fidl::encoding::Context) -> usize {
2322 8
2323 }
2324
2325 #[inline(always)]
2326 fn inline_size(_context: fidl::encoding::Context) -> usize {
2327 16
2328 }
2329 }
2330
2331 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AddressPool, D>
2332 for &AddressPool
2333 {
2334 unsafe fn encode(
2335 self,
2336 encoder: &mut fidl::encoding::Encoder<'_, D>,
2337 offset: usize,
2338 mut depth: fidl::encoding::Depth,
2339 ) -> fidl::Result<()> {
2340 encoder.debug_check_bounds::<AddressPool>(offset);
2341 let max_ordinal: u64 = self.max_ordinal_present();
2343 encoder.write_num(max_ordinal, offset);
2344 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2345 if max_ordinal == 0 {
2347 return Ok(());
2348 }
2349 depth.increment()?;
2350 let envelope_size = 8;
2351 let bytes_len = max_ordinal as usize * envelope_size;
2352 #[allow(unused_variables)]
2353 let offset = encoder.out_of_line_offset(bytes_len);
2354 let mut _prev_end_offset: usize = 0;
2355 if 1 > max_ordinal {
2356 return Ok(());
2357 }
2358
2359 let cur_offset: usize = (1 - 1) * envelope_size;
2362
2363 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2365
2366 fidl::encoding::encode_in_envelope_optional::<u8, D>(
2371 self.prefix_length.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
2372 encoder,
2373 offset + cur_offset,
2374 depth,
2375 )?;
2376
2377 _prev_end_offset = cur_offset + envelope_size;
2378 if 2 > max_ordinal {
2379 return Ok(());
2380 }
2381
2382 let cur_offset: usize = (2 - 1) * envelope_size;
2385
2386 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2388
2389 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_common::Ipv4Address, D>(
2394 self.range_start.as_ref().map(<fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::ValueTypeMarker>::borrow),
2395 encoder, offset + cur_offset, depth
2396 )?;
2397
2398 _prev_end_offset = cur_offset + envelope_size;
2399 if 3 > max_ordinal {
2400 return Ok(());
2401 }
2402
2403 let cur_offset: usize = (3 - 1) * envelope_size;
2406
2407 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2409
2410 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_common::Ipv4Address, D>(
2415 self.range_stop.as_ref().map(<fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::ValueTypeMarker>::borrow),
2416 encoder, offset + cur_offset, depth
2417 )?;
2418
2419 _prev_end_offset = cur_offset + envelope_size;
2420
2421 Ok(())
2422 }
2423 }
2424
2425 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AddressPool {
2426 #[inline(always)]
2427 fn new_empty() -> Self {
2428 Self::default()
2429 }
2430
2431 unsafe fn decode(
2432 &mut self,
2433 decoder: &mut fidl::encoding::Decoder<'_, D>,
2434 offset: usize,
2435 mut depth: fidl::encoding::Depth,
2436 ) -> fidl::Result<()> {
2437 decoder.debug_check_bounds::<Self>(offset);
2438 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2439 None => return Err(fidl::Error::NotNullable),
2440 Some(len) => len,
2441 };
2442 if len == 0 {
2444 return Ok(());
2445 };
2446 depth.increment()?;
2447 let envelope_size = 8;
2448 let bytes_len = len * envelope_size;
2449 let offset = decoder.out_of_line_offset(bytes_len)?;
2450 let mut _next_ordinal_to_read = 0;
2452 let mut next_offset = offset;
2453 let end_offset = offset + bytes_len;
2454 _next_ordinal_to_read += 1;
2455 if next_offset >= end_offset {
2456 return Ok(());
2457 }
2458
2459 while _next_ordinal_to_read < 1 {
2461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2462 _next_ordinal_to_read += 1;
2463 next_offset += envelope_size;
2464 }
2465
2466 let next_out_of_line = decoder.next_out_of_line();
2467 let handles_before = decoder.remaining_handles();
2468 if let Some((inlined, num_bytes, num_handles)) =
2469 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2470 {
2471 let member_inline_size =
2472 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2473 if inlined != (member_inline_size <= 4) {
2474 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2475 }
2476 let inner_offset;
2477 let mut inner_depth = depth.clone();
2478 if inlined {
2479 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2480 inner_offset = next_offset;
2481 } else {
2482 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2483 inner_depth.increment()?;
2484 }
2485 let val_ref = self.prefix_length.get_or_insert_with(|| fidl::new_empty!(u8, D));
2486 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
2487 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2488 {
2489 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2490 }
2491 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2492 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2493 }
2494 }
2495
2496 next_offset += envelope_size;
2497 _next_ordinal_to_read += 1;
2498 if next_offset >= end_offset {
2499 return Ok(());
2500 }
2501
2502 while _next_ordinal_to_read < 2 {
2504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2505 _next_ordinal_to_read += 1;
2506 next_offset += envelope_size;
2507 }
2508
2509 let next_out_of_line = decoder.next_out_of_line();
2510 let handles_before = decoder.remaining_handles();
2511 if let Some((inlined, num_bytes, num_handles)) =
2512 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2513 {
2514 let member_inline_size = <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2515 if inlined != (member_inline_size <= 4) {
2516 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2517 }
2518 let inner_offset;
2519 let mut inner_depth = depth.clone();
2520 if inlined {
2521 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2522 inner_offset = next_offset;
2523 } else {
2524 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2525 inner_depth.increment()?;
2526 }
2527 let val_ref = self.range_start.get_or_insert_with(|| {
2528 fidl::new_empty!(fidl_fuchsia_net_common::Ipv4Address, D)
2529 });
2530 fidl::decode!(
2531 fidl_fuchsia_net_common::Ipv4Address,
2532 D,
2533 val_ref,
2534 decoder,
2535 inner_offset,
2536 inner_depth
2537 )?;
2538 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2539 {
2540 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2541 }
2542 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2543 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2544 }
2545 }
2546
2547 next_offset += envelope_size;
2548 _next_ordinal_to_read += 1;
2549 if next_offset >= end_offset {
2550 return Ok(());
2551 }
2552
2553 while _next_ordinal_to_read < 3 {
2555 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2556 _next_ordinal_to_read += 1;
2557 next_offset += envelope_size;
2558 }
2559
2560 let next_out_of_line = decoder.next_out_of_line();
2561 let handles_before = decoder.remaining_handles();
2562 if let Some((inlined, num_bytes, num_handles)) =
2563 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2564 {
2565 let member_inline_size = <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2566 if inlined != (member_inline_size <= 4) {
2567 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2568 }
2569 let inner_offset;
2570 let mut inner_depth = depth.clone();
2571 if inlined {
2572 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2573 inner_offset = next_offset;
2574 } else {
2575 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2576 inner_depth.increment()?;
2577 }
2578 let val_ref = self.range_stop.get_or_insert_with(|| {
2579 fidl::new_empty!(fidl_fuchsia_net_common::Ipv4Address, D)
2580 });
2581 fidl::decode!(
2582 fidl_fuchsia_net_common::Ipv4Address,
2583 D,
2584 val_ref,
2585 decoder,
2586 inner_offset,
2587 inner_depth
2588 )?;
2589 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2590 {
2591 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2592 }
2593 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2594 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2595 }
2596 }
2597
2598 next_offset += envelope_size;
2599
2600 while next_offset < end_offset {
2602 _next_ordinal_to_read += 1;
2603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2604 next_offset += envelope_size;
2605 }
2606
2607 Ok(())
2608 }
2609 }
2610
2611 impl ConfigurationToRequest {
2612 #[inline(always)]
2613 fn max_ordinal_present(&self) -> u64 {
2614 if let Some(_) = self.dns_servers {
2615 return 2;
2616 }
2617 if let Some(_) = self.routers {
2618 return 1;
2619 }
2620 0
2621 }
2622 }
2623
2624 impl fidl::encoding::ValueTypeMarker for ConfigurationToRequest {
2625 type Borrowed<'a> = &'a Self;
2626 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2627 value
2628 }
2629 }
2630
2631 unsafe impl fidl::encoding::TypeMarker for ConfigurationToRequest {
2632 type Owned = Self;
2633
2634 #[inline(always)]
2635 fn inline_align(_context: fidl::encoding::Context) -> usize {
2636 8
2637 }
2638
2639 #[inline(always)]
2640 fn inline_size(_context: fidl::encoding::Context) -> usize {
2641 16
2642 }
2643 }
2644
2645 unsafe impl<D: fidl::encoding::ResourceDialect>
2646 fidl::encoding::Encode<ConfigurationToRequest, D> for &ConfigurationToRequest
2647 {
2648 unsafe fn encode(
2649 self,
2650 encoder: &mut fidl::encoding::Encoder<'_, D>,
2651 offset: usize,
2652 mut depth: fidl::encoding::Depth,
2653 ) -> fidl::Result<()> {
2654 encoder.debug_check_bounds::<ConfigurationToRequest>(offset);
2655 let max_ordinal: u64 = self.max_ordinal_present();
2657 encoder.write_num(max_ordinal, offset);
2658 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2659 if max_ordinal == 0 {
2661 return Ok(());
2662 }
2663 depth.increment()?;
2664 let envelope_size = 8;
2665 let bytes_len = max_ordinal as usize * envelope_size;
2666 #[allow(unused_variables)]
2667 let offset = encoder.out_of_line_offset(bytes_len);
2668 let mut _prev_end_offset: usize = 0;
2669 if 1 > max_ordinal {
2670 return Ok(());
2671 }
2672
2673 let cur_offset: usize = (1 - 1) * envelope_size;
2676
2677 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2679
2680 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2685 self.routers.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2686 encoder,
2687 offset + cur_offset,
2688 depth,
2689 )?;
2690
2691 _prev_end_offset = cur_offset + envelope_size;
2692 if 2 > max_ordinal {
2693 return Ok(());
2694 }
2695
2696 let cur_offset: usize = (2 - 1) * envelope_size;
2699
2700 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2702
2703 fidl::encoding::encode_in_envelope_optional::<bool, D>(
2708 self.dns_servers.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
2709 encoder,
2710 offset + cur_offset,
2711 depth,
2712 )?;
2713
2714 _prev_end_offset = cur_offset + envelope_size;
2715
2716 Ok(())
2717 }
2718 }
2719
2720 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2721 for ConfigurationToRequest
2722 {
2723 #[inline(always)]
2724 fn new_empty() -> Self {
2725 Self::default()
2726 }
2727
2728 unsafe fn decode(
2729 &mut self,
2730 decoder: &mut fidl::encoding::Decoder<'_, D>,
2731 offset: usize,
2732 mut depth: fidl::encoding::Depth,
2733 ) -> fidl::Result<()> {
2734 decoder.debug_check_bounds::<Self>(offset);
2735 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2736 None => return Err(fidl::Error::NotNullable),
2737 Some(len) => len,
2738 };
2739 if len == 0 {
2741 return Ok(());
2742 };
2743 depth.increment()?;
2744 let envelope_size = 8;
2745 let bytes_len = len * envelope_size;
2746 let offset = decoder.out_of_line_offset(bytes_len)?;
2747 let mut _next_ordinal_to_read = 0;
2749 let mut next_offset = offset;
2750 let end_offset = offset + bytes_len;
2751 _next_ordinal_to_read += 1;
2752 if next_offset >= end_offset {
2753 return Ok(());
2754 }
2755
2756 while _next_ordinal_to_read < 1 {
2758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2759 _next_ordinal_to_read += 1;
2760 next_offset += envelope_size;
2761 }
2762
2763 let next_out_of_line = decoder.next_out_of_line();
2764 let handles_before = decoder.remaining_handles();
2765 if let Some((inlined, num_bytes, num_handles)) =
2766 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2767 {
2768 let member_inline_size =
2769 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2770 if inlined != (member_inline_size <= 4) {
2771 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2772 }
2773 let inner_offset;
2774 let mut inner_depth = depth.clone();
2775 if inlined {
2776 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2777 inner_offset = next_offset;
2778 } else {
2779 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2780 inner_depth.increment()?;
2781 }
2782 let val_ref = self.routers.get_or_insert_with(|| fidl::new_empty!(bool, D));
2783 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2784 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2785 {
2786 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2787 }
2788 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2789 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2790 }
2791 }
2792
2793 next_offset += envelope_size;
2794 _next_ordinal_to_read += 1;
2795 if next_offset >= end_offset {
2796 return Ok(());
2797 }
2798
2799 while _next_ordinal_to_read < 2 {
2801 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2802 _next_ordinal_to_read += 1;
2803 next_offset += envelope_size;
2804 }
2805
2806 let next_out_of_line = decoder.next_out_of_line();
2807 let handles_before = decoder.remaining_handles();
2808 if let Some((inlined, num_bytes, num_handles)) =
2809 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2810 {
2811 let member_inline_size =
2812 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2813 if inlined != (member_inline_size <= 4) {
2814 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2815 }
2816 let inner_offset;
2817 let mut inner_depth = depth.clone();
2818 if inlined {
2819 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2820 inner_offset = next_offset;
2821 } else {
2822 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2823 inner_depth.increment()?;
2824 }
2825 let val_ref = self.dns_servers.get_or_insert_with(|| fidl::new_empty!(bool, D));
2826 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
2827 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2828 {
2829 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2830 }
2831 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2832 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2833 }
2834 }
2835
2836 next_offset += envelope_size;
2837
2838 while next_offset < end_offset {
2840 _next_ordinal_to_read += 1;
2841 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2842 next_offset += envelope_size;
2843 }
2844
2845 Ok(())
2846 }
2847 }
2848
2849 impl LeaseLength {
2850 #[inline(always)]
2851 fn max_ordinal_present(&self) -> u64 {
2852 if let Some(_) = self.max {
2853 return 2;
2854 }
2855 if let Some(_) = self.default {
2856 return 1;
2857 }
2858 0
2859 }
2860 }
2861
2862 impl fidl::encoding::ValueTypeMarker for LeaseLength {
2863 type Borrowed<'a> = &'a Self;
2864 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2865 value
2866 }
2867 }
2868
2869 unsafe impl fidl::encoding::TypeMarker for LeaseLength {
2870 type Owned = Self;
2871
2872 #[inline(always)]
2873 fn inline_align(_context: fidl::encoding::Context) -> usize {
2874 8
2875 }
2876
2877 #[inline(always)]
2878 fn inline_size(_context: fidl::encoding::Context) -> usize {
2879 16
2880 }
2881 }
2882
2883 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LeaseLength, D>
2884 for &LeaseLength
2885 {
2886 unsafe fn encode(
2887 self,
2888 encoder: &mut fidl::encoding::Encoder<'_, D>,
2889 offset: usize,
2890 mut depth: fidl::encoding::Depth,
2891 ) -> fidl::Result<()> {
2892 encoder.debug_check_bounds::<LeaseLength>(offset);
2893 let max_ordinal: u64 = self.max_ordinal_present();
2895 encoder.write_num(max_ordinal, offset);
2896 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2897 if max_ordinal == 0 {
2899 return Ok(());
2900 }
2901 depth.increment()?;
2902 let envelope_size = 8;
2903 let bytes_len = max_ordinal as usize * envelope_size;
2904 #[allow(unused_variables)]
2905 let offset = encoder.out_of_line_offset(bytes_len);
2906 let mut _prev_end_offset: usize = 0;
2907 if 1 > max_ordinal {
2908 return Ok(());
2909 }
2910
2911 let cur_offset: usize = (1 - 1) * envelope_size;
2914
2915 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2917
2918 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2923 self.default.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2924 encoder,
2925 offset + cur_offset,
2926 depth,
2927 )?;
2928
2929 _prev_end_offset = cur_offset + envelope_size;
2930 if 2 > max_ordinal {
2931 return Ok(());
2932 }
2933
2934 let cur_offset: usize = (2 - 1) * envelope_size;
2937
2938 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2940
2941 fidl::encoding::encode_in_envelope_optional::<u32, D>(
2946 self.max.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
2947 encoder,
2948 offset + cur_offset,
2949 depth,
2950 )?;
2951
2952 _prev_end_offset = cur_offset + envelope_size;
2953
2954 Ok(())
2955 }
2956 }
2957
2958 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LeaseLength {
2959 #[inline(always)]
2960 fn new_empty() -> Self {
2961 Self::default()
2962 }
2963
2964 unsafe fn decode(
2965 &mut self,
2966 decoder: &mut fidl::encoding::Decoder<'_, D>,
2967 offset: usize,
2968 mut depth: fidl::encoding::Depth,
2969 ) -> fidl::Result<()> {
2970 decoder.debug_check_bounds::<Self>(offset);
2971 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2972 None => return Err(fidl::Error::NotNullable),
2973 Some(len) => len,
2974 };
2975 if len == 0 {
2977 return Ok(());
2978 };
2979 depth.increment()?;
2980 let envelope_size = 8;
2981 let bytes_len = len * envelope_size;
2982 let offset = decoder.out_of_line_offset(bytes_len)?;
2983 let mut _next_ordinal_to_read = 0;
2985 let mut next_offset = offset;
2986 let end_offset = offset + bytes_len;
2987 _next_ordinal_to_read += 1;
2988 if next_offset >= end_offset {
2989 return Ok(());
2990 }
2991
2992 while _next_ordinal_to_read < 1 {
2994 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2995 _next_ordinal_to_read += 1;
2996 next_offset += envelope_size;
2997 }
2998
2999 let next_out_of_line = decoder.next_out_of_line();
3000 let handles_before = decoder.remaining_handles();
3001 if let Some((inlined, num_bytes, num_handles)) =
3002 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3003 {
3004 let member_inline_size =
3005 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3006 if inlined != (member_inline_size <= 4) {
3007 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3008 }
3009 let inner_offset;
3010 let mut inner_depth = depth.clone();
3011 if inlined {
3012 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3013 inner_offset = next_offset;
3014 } else {
3015 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3016 inner_depth.increment()?;
3017 }
3018 let val_ref = self.default.get_or_insert_with(|| fidl::new_empty!(u32, D));
3019 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3020 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3021 {
3022 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3023 }
3024 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3025 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3026 }
3027 }
3028
3029 next_offset += envelope_size;
3030 _next_ordinal_to_read += 1;
3031 if next_offset >= end_offset {
3032 return Ok(());
3033 }
3034
3035 while _next_ordinal_to_read < 2 {
3037 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3038 _next_ordinal_to_read += 1;
3039 next_offset += envelope_size;
3040 }
3041
3042 let next_out_of_line = decoder.next_out_of_line();
3043 let handles_before = decoder.remaining_handles();
3044 if let Some((inlined, num_bytes, num_handles)) =
3045 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3046 {
3047 let member_inline_size =
3048 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3049 if inlined != (member_inline_size <= 4) {
3050 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3051 }
3052 let inner_offset;
3053 let mut inner_depth = depth.clone();
3054 if inlined {
3055 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3056 inner_offset = next_offset;
3057 } else {
3058 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3059 inner_depth.increment()?;
3060 }
3061 let val_ref = self.max.get_or_insert_with(|| fidl::new_empty!(u32, D));
3062 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
3063 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3064 {
3065 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3066 }
3067 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3068 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3069 }
3070 }
3071
3072 next_offset += envelope_size;
3073
3074 while next_offset < end_offset {
3076 _next_ordinal_to_read += 1;
3077 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3078 next_offset += envelope_size;
3079 }
3080
3081 Ok(())
3082 }
3083 }
3084
3085 impl NewClientParams {
3086 #[inline(always)]
3087 fn max_ordinal_present(&self) -> u64 {
3088 if let Some(_) = self.request_ip_address {
3089 return 2;
3090 }
3091 if let Some(_) = self.configuration_to_request {
3092 return 1;
3093 }
3094 0
3095 }
3096 }
3097
3098 impl fidl::encoding::ValueTypeMarker for NewClientParams {
3099 type Borrowed<'a> = &'a Self;
3100 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3101 value
3102 }
3103 }
3104
3105 unsafe impl fidl::encoding::TypeMarker for NewClientParams {
3106 type Owned = Self;
3107
3108 #[inline(always)]
3109 fn inline_align(_context: fidl::encoding::Context) -> usize {
3110 8
3111 }
3112
3113 #[inline(always)]
3114 fn inline_size(_context: fidl::encoding::Context) -> usize {
3115 16
3116 }
3117 }
3118
3119 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NewClientParams, D>
3120 for &NewClientParams
3121 {
3122 unsafe fn encode(
3123 self,
3124 encoder: &mut fidl::encoding::Encoder<'_, D>,
3125 offset: usize,
3126 mut depth: fidl::encoding::Depth,
3127 ) -> fidl::Result<()> {
3128 encoder.debug_check_bounds::<NewClientParams>(offset);
3129 let max_ordinal: u64 = self.max_ordinal_present();
3131 encoder.write_num(max_ordinal, offset);
3132 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3133 if max_ordinal == 0 {
3135 return Ok(());
3136 }
3137 depth.increment()?;
3138 let envelope_size = 8;
3139 let bytes_len = max_ordinal as usize * envelope_size;
3140 #[allow(unused_variables)]
3141 let offset = encoder.out_of_line_offset(bytes_len);
3142 let mut _prev_end_offset: usize = 0;
3143 if 1 > max_ordinal {
3144 return Ok(());
3145 }
3146
3147 let cur_offset: usize = (1 - 1) * envelope_size;
3150
3151 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3153
3154 fidl::encoding::encode_in_envelope_optional::<ConfigurationToRequest, D>(
3159 self.configuration_to_request
3160 .as_ref()
3161 .map(<ConfigurationToRequest as fidl::encoding::ValueTypeMarker>::borrow),
3162 encoder,
3163 offset + cur_offset,
3164 depth,
3165 )?;
3166
3167 _prev_end_offset = cur_offset + envelope_size;
3168 if 2 > max_ordinal {
3169 return Ok(());
3170 }
3171
3172 let cur_offset: usize = (2 - 1) * envelope_size;
3175
3176 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3178
3179 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3184 self.request_ip_address
3185 .as_ref()
3186 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3187 encoder,
3188 offset + cur_offset,
3189 depth,
3190 )?;
3191
3192 _prev_end_offset = cur_offset + envelope_size;
3193
3194 Ok(())
3195 }
3196 }
3197
3198 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NewClientParams {
3199 #[inline(always)]
3200 fn new_empty() -> Self {
3201 Self::default()
3202 }
3203
3204 unsafe fn decode(
3205 &mut self,
3206 decoder: &mut fidl::encoding::Decoder<'_, D>,
3207 offset: usize,
3208 mut depth: fidl::encoding::Depth,
3209 ) -> fidl::Result<()> {
3210 decoder.debug_check_bounds::<Self>(offset);
3211 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3212 None => return Err(fidl::Error::NotNullable),
3213 Some(len) => len,
3214 };
3215 if len == 0 {
3217 return Ok(());
3218 };
3219 depth.increment()?;
3220 let envelope_size = 8;
3221 let bytes_len = len * envelope_size;
3222 let offset = decoder.out_of_line_offset(bytes_len)?;
3223 let mut _next_ordinal_to_read = 0;
3225 let mut next_offset = offset;
3226 let end_offset = offset + bytes_len;
3227 _next_ordinal_to_read += 1;
3228 if next_offset >= end_offset {
3229 return Ok(());
3230 }
3231
3232 while _next_ordinal_to_read < 1 {
3234 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3235 _next_ordinal_to_read += 1;
3236 next_offset += envelope_size;
3237 }
3238
3239 let next_out_of_line = decoder.next_out_of_line();
3240 let handles_before = decoder.remaining_handles();
3241 if let Some((inlined, num_bytes, num_handles)) =
3242 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3243 {
3244 let member_inline_size =
3245 <ConfigurationToRequest as fidl::encoding::TypeMarker>::inline_size(
3246 decoder.context,
3247 );
3248 if inlined != (member_inline_size <= 4) {
3249 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3250 }
3251 let inner_offset;
3252 let mut inner_depth = depth.clone();
3253 if inlined {
3254 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3255 inner_offset = next_offset;
3256 } else {
3257 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3258 inner_depth.increment()?;
3259 }
3260 let val_ref = self
3261 .configuration_to_request
3262 .get_or_insert_with(|| fidl::new_empty!(ConfigurationToRequest, D));
3263 fidl::decode!(
3264 ConfigurationToRequest,
3265 D,
3266 val_ref,
3267 decoder,
3268 inner_offset,
3269 inner_depth
3270 )?;
3271 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3272 {
3273 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3274 }
3275 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3276 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3277 }
3278 }
3279
3280 next_offset += envelope_size;
3281 _next_ordinal_to_read += 1;
3282 if next_offset >= end_offset {
3283 return Ok(());
3284 }
3285
3286 while _next_ordinal_to_read < 2 {
3288 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3289 _next_ordinal_to_read += 1;
3290 next_offset += envelope_size;
3291 }
3292
3293 let next_out_of_line = decoder.next_out_of_line();
3294 let handles_before = decoder.remaining_handles();
3295 if let Some((inlined, num_bytes, num_handles)) =
3296 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3297 {
3298 let member_inline_size =
3299 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3300 if inlined != (member_inline_size <= 4) {
3301 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3302 }
3303 let inner_offset;
3304 let mut inner_depth = depth.clone();
3305 if inlined {
3306 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3307 inner_offset = next_offset;
3308 } else {
3309 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3310 inner_depth.increment()?;
3311 }
3312 let val_ref =
3313 self.request_ip_address.get_or_insert_with(|| fidl::new_empty!(bool, D));
3314 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
3315 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3316 {
3317 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3318 }
3319 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3320 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3321 }
3322 }
3323
3324 next_offset += envelope_size;
3325
3326 while next_offset < end_offset {
3328 _next_ordinal_to_read += 1;
3329 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3330 next_offset += envelope_size;
3331 }
3332
3333 Ok(())
3334 }
3335 }
3336
3337 impl StaticAssignment {
3338 #[inline(always)]
3339 fn max_ordinal_present(&self) -> u64 {
3340 if let Some(_) = self.assigned_addr {
3341 return 2;
3342 }
3343 if let Some(_) = self.host {
3344 return 1;
3345 }
3346 0
3347 }
3348 }
3349
3350 impl fidl::encoding::ValueTypeMarker for StaticAssignment {
3351 type Borrowed<'a> = &'a Self;
3352 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3353 value
3354 }
3355 }
3356
3357 unsafe impl fidl::encoding::TypeMarker for StaticAssignment {
3358 type Owned = Self;
3359
3360 #[inline(always)]
3361 fn inline_align(_context: fidl::encoding::Context) -> usize {
3362 8
3363 }
3364
3365 #[inline(always)]
3366 fn inline_size(_context: fidl::encoding::Context) -> usize {
3367 16
3368 }
3369 }
3370
3371 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StaticAssignment, D>
3372 for &StaticAssignment
3373 {
3374 unsafe fn encode(
3375 self,
3376 encoder: &mut fidl::encoding::Encoder<'_, D>,
3377 offset: usize,
3378 mut depth: fidl::encoding::Depth,
3379 ) -> fidl::Result<()> {
3380 encoder.debug_check_bounds::<StaticAssignment>(offset);
3381 let max_ordinal: u64 = self.max_ordinal_present();
3383 encoder.write_num(max_ordinal, offset);
3384 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3385 if max_ordinal == 0 {
3387 return Ok(());
3388 }
3389 depth.increment()?;
3390 let envelope_size = 8;
3391 let bytes_len = max_ordinal as usize * envelope_size;
3392 #[allow(unused_variables)]
3393 let offset = encoder.out_of_line_offset(bytes_len);
3394 let mut _prev_end_offset: usize = 0;
3395 if 1 > max_ordinal {
3396 return Ok(());
3397 }
3398
3399 let cur_offset: usize = (1 - 1) * envelope_size;
3402
3403 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3405
3406 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_common::MacAddress, D>(
3411 self.host.as_ref().map(<fidl_fuchsia_net_common::MacAddress as fidl::encoding::ValueTypeMarker>::borrow),
3412 encoder, offset + cur_offset, depth
3413 )?;
3414
3415 _prev_end_offset = cur_offset + envelope_size;
3416 if 2 > max_ordinal {
3417 return Ok(());
3418 }
3419
3420 let cur_offset: usize = (2 - 1) * envelope_size;
3423
3424 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3426
3427 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_common::Ipv4Address, D>(
3432 self.assigned_addr.as_ref().map(<fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::ValueTypeMarker>::borrow),
3433 encoder, offset + cur_offset, depth
3434 )?;
3435
3436 _prev_end_offset = cur_offset + envelope_size;
3437
3438 Ok(())
3439 }
3440 }
3441
3442 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StaticAssignment {
3443 #[inline(always)]
3444 fn new_empty() -> Self {
3445 Self::default()
3446 }
3447
3448 unsafe fn decode(
3449 &mut self,
3450 decoder: &mut fidl::encoding::Decoder<'_, D>,
3451 offset: usize,
3452 mut depth: fidl::encoding::Depth,
3453 ) -> fidl::Result<()> {
3454 decoder.debug_check_bounds::<Self>(offset);
3455 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3456 None => return Err(fidl::Error::NotNullable),
3457 Some(len) => len,
3458 };
3459 if len == 0 {
3461 return Ok(());
3462 };
3463 depth.increment()?;
3464 let envelope_size = 8;
3465 let bytes_len = len * envelope_size;
3466 let offset = decoder.out_of_line_offset(bytes_len)?;
3467 let mut _next_ordinal_to_read = 0;
3469 let mut next_offset = offset;
3470 let end_offset = offset + bytes_len;
3471 _next_ordinal_to_read += 1;
3472 if next_offset >= end_offset {
3473 return Ok(());
3474 }
3475
3476 while _next_ordinal_to_read < 1 {
3478 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3479 _next_ordinal_to_read += 1;
3480 next_offset += envelope_size;
3481 }
3482
3483 let next_out_of_line = decoder.next_out_of_line();
3484 let handles_before = decoder.remaining_handles();
3485 if let Some((inlined, num_bytes, num_handles)) =
3486 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3487 {
3488 let member_inline_size = <fidl_fuchsia_net_common::MacAddress as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3489 if inlined != (member_inline_size <= 4) {
3490 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3491 }
3492 let inner_offset;
3493 let mut inner_depth = depth.clone();
3494 if inlined {
3495 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3496 inner_offset = next_offset;
3497 } else {
3498 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3499 inner_depth.increment()?;
3500 }
3501 let val_ref = self.host.get_or_insert_with(|| {
3502 fidl::new_empty!(fidl_fuchsia_net_common::MacAddress, D)
3503 });
3504 fidl::decode!(
3505 fidl_fuchsia_net_common::MacAddress,
3506 D,
3507 val_ref,
3508 decoder,
3509 inner_offset,
3510 inner_depth
3511 )?;
3512 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3513 {
3514 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3515 }
3516 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3517 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3518 }
3519 }
3520
3521 next_offset += envelope_size;
3522 _next_ordinal_to_read += 1;
3523 if next_offset >= end_offset {
3524 return Ok(());
3525 }
3526
3527 while _next_ordinal_to_read < 2 {
3529 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3530 _next_ordinal_to_read += 1;
3531 next_offset += envelope_size;
3532 }
3533
3534 let next_out_of_line = decoder.next_out_of_line();
3535 let handles_before = decoder.remaining_handles();
3536 if let Some((inlined, num_bytes, num_handles)) =
3537 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3538 {
3539 let member_inline_size = <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3540 if inlined != (member_inline_size <= 4) {
3541 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3542 }
3543 let inner_offset;
3544 let mut inner_depth = depth.clone();
3545 if inlined {
3546 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3547 inner_offset = next_offset;
3548 } else {
3549 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3550 inner_depth.increment()?;
3551 }
3552 let val_ref = self.assigned_addr.get_or_insert_with(|| {
3553 fidl::new_empty!(fidl_fuchsia_net_common::Ipv4Address, D)
3554 });
3555 fidl::decode!(
3556 fidl_fuchsia_net_common::Ipv4Address,
3557 D,
3558 val_ref,
3559 decoder,
3560 inner_offset,
3561 inner_depth
3562 )?;
3563 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3564 {
3565 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3566 }
3567 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3568 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3569 }
3570 }
3571
3572 next_offset += envelope_size;
3573
3574 while next_offset < end_offset {
3576 _next_ordinal_to_read += 1;
3577 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3578 next_offset += envelope_size;
3579 }
3580
3581 Ok(())
3582 }
3583 }
3584
3585 impl fidl::encoding::ValueTypeMarker for Option_ {
3586 type Borrowed<'a> = &'a Self;
3587 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3588 value
3589 }
3590 }
3591
3592 unsafe impl fidl::encoding::TypeMarker for Option_ {
3593 type Owned = Self;
3594
3595 #[inline(always)]
3596 fn inline_align(_context: fidl::encoding::Context) -> usize {
3597 8
3598 }
3599
3600 #[inline(always)]
3601 fn inline_size(_context: fidl::encoding::Context) -> usize {
3602 16
3603 }
3604 }
3605
3606 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Option_, D> for &Option_ {
3607 #[inline]
3608 unsafe fn encode(
3609 self,
3610 encoder: &mut fidl::encoding::Encoder<'_, D>,
3611 offset: usize,
3612 _depth: fidl::encoding::Depth,
3613 ) -> fidl::Result<()> {
3614 encoder.debug_check_bounds::<Option_>(offset);
3615 encoder.write_num::<u64>(self.ordinal(), offset);
3616 match self {
3617 Option_::SubnetMask(ref val) => {
3618 fidl::encoding::encode_in_envelope::<fidl_fuchsia_net_common::Ipv4Address, D>(
3619 <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::ValueTypeMarker>::borrow(val),
3620 encoder, offset + 8, _depth
3621 )
3622 }
3623 Option_::TimeOffset(ref val) => {
3624 fidl::encoding::encode_in_envelope::<i32, D>(
3625 <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
3626 encoder, offset + 8, _depth
3627 )
3628 }
3629 Option_::Router(ref val) => {
3630 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3631 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3632 encoder, offset + 8, _depth
3633 )
3634 }
3635 Option_::TimeServer(ref val) => {
3636 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3637 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3638 encoder, offset + 8, _depth
3639 )
3640 }
3641 Option_::NameServer(ref val) => {
3642 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3643 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3644 encoder, offset + 8, _depth
3645 )
3646 }
3647 Option_::DomainNameServer(ref val) => {
3648 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3649 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3650 encoder, offset + 8, _depth
3651 )
3652 }
3653 Option_::LogServer(ref val) => {
3654 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3655 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3656 encoder, offset + 8, _depth
3657 )
3658 }
3659 Option_::CookieServer(ref val) => {
3660 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3661 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3662 encoder, offset + 8, _depth
3663 )
3664 }
3665 Option_::LprServer(ref val) => {
3666 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3667 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3668 encoder, offset + 8, _depth
3669 )
3670 }
3671 Option_::ImpressServer(ref val) => {
3672 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3673 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3674 encoder, offset + 8, _depth
3675 )
3676 }
3677 Option_::ResourceLocationServer(ref val) => {
3678 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3679 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3680 encoder, offset + 8, _depth
3681 )
3682 }
3683 Option_::HostName(ref val) => {
3684 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3685 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3686 encoder, offset + 8, _depth
3687 )
3688 }
3689 Option_::BootFileSize(ref val) => {
3690 fidl::encoding::encode_in_envelope::<u16, D>(
3691 <u16 as fidl::encoding::ValueTypeMarker>::borrow(val),
3692 encoder, offset + 8, _depth
3693 )
3694 }
3695 Option_::MeritDumpFile(ref val) => {
3696 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3697 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3698 encoder, offset + 8, _depth
3699 )
3700 }
3701 Option_::DomainName(ref val) => {
3702 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3703 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3704 encoder, offset + 8, _depth
3705 )
3706 }
3707 Option_::SwapServer(ref val) => {
3708 fidl::encoding::encode_in_envelope::<fidl_fuchsia_net_common::Ipv4Address, D>(
3709 <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::ValueTypeMarker>::borrow(val),
3710 encoder, offset + 8, _depth
3711 )
3712 }
3713 Option_::RootPath(ref val) => {
3714 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3715 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3716 encoder, offset + 8, _depth
3717 )
3718 }
3719 Option_::ExtensionsPath(ref val) => {
3720 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3721 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3722 encoder, offset + 8, _depth
3723 )
3724 }
3725 Option_::IpForwarding(ref val) => {
3726 fidl::encoding::encode_in_envelope::<bool, D>(
3727 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3728 encoder, offset + 8, _depth
3729 )
3730 }
3731 Option_::NonLocalSourceRouting(ref val) => {
3732 fidl::encoding::encode_in_envelope::<bool, D>(
3733 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3734 encoder, offset + 8, _depth
3735 )
3736 }
3737 Option_::PolicyFilter(ref val) => {
3738 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3739 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3740 encoder, offset + 8, _depth
3741 )
3742 }
3743 Option_::MaxDatagramReassemblySize(ref val) => {
3744 fidl::encoding::encode_in_envelope::<u16, D>(
3745 <u16 as fidl::encoding::ValueTypeMarker>::borrow(val),
3746 encoder, offset + 8, _depth
3747 )
3748 }
3749 Option_::DefaultIpTtl(ref val) => {
3750 fidl::encoding::encode_in_envelope::<u8, D>(
3751 <u8 as fidl::encoding::ValueTypeMarker>::borrow(val),
3752 encoder, offset + 8, _depth
3753 )
3754 }
3755 Option_::PathMtuAgingTimeout(ref val) => {
3756 fidl::encoding::encode_in_envelope::<u32, D>(
3757 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
3758 encoder, offset + 8, _depth
3759 )
3760 }
3761 Option_::PathMtuPlateauTable(ref val) => {
3762 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<u16, 127>, D>(
3763 <fidl::encoding::Vector<u16, 127> as fidl::encoding::ValueTypeMarker>::borrow(val),
3764 encoder, offset + 8, _depth
3765 )
3766 }
3767 Option_::InterfaceMtu(ref val) => {
3768 fidl::encoding::encode_in_envelope::<u16, D>(
3769 <u16 as fidl::encoding::ValueTypeMarker>::borrow(val),
3770 encoder, offset + 8, _depth
3771 )
3772 }
3773 Option_::AllSubnetsLocal(ref val) => {
3774 fidl::encoding::encode_in_envelope::<bool, D>(
3775 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3776 encoder, offset + 8, _depth
3777 )
3778 }
3779 Option_::BroadcastAddress(ref val) => {
3780 fidl::encoding::encode_in_envelope::<fidl_fuchsia_net_common::Ipv4Address, D>(
3781 <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::ValueTypeMarker>::borrow(val),
3782 encoder, offset + 8, _depth
3783 )
3784 }
3785 Option_::PerformMaskDiscovery(ref val) => {
3786 fidl::encoding::encode_in_envelope::<bool, D>(
3787 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3788 encoder, offset + 8, _depth
3789 )
3790 }
3791 Option_::MaskSupplier(ref val) => {
3792 fidl::encoding::encode_in_envelope::<bool, D>(
3793 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3794 encoder, offset + 8, _depth
3795 )
3796 }
3797 Option_::PerformRouterDiscovery(ref val) => {
3798 fidl::encoding::encode_in_envelope::<bool, D>(
3799 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3800 encoder, offset + 8, _depth
3801 )
3802 }
3803 Option_::RouterSolicitationAddress(ref val) => {
3804 fidl::encoding::encode_in_envelope::<fidl_fuchsia_net_common::Ipv4Address, D>(
3805 <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::ValueTypeMarker>::borrow(val),
3806 encoder, offset + 8, _depth
3807 )
3808 }
3809 Option_::StaticRoute(ref val) => {
3810 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3811 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3812 encoder, offset + 8, _depth
3813 )
3814 }
3815 Option_::TrailerEncapsulation(ref val) => {
3816 fidl::encoding::encode_in_envelope::<bool, D>(
3817 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3818 encoder, offset + 8, _depth
3819 )
3820 }
3821 Option_::ArpCacheTimeout(ref val) => {
3822 fidl::encoding::encode_in_envelope::<u32, D>(
3823 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
3824 encoder, offset + 8, _depth
3825 )
3826 }
3827 Option_::EthernetEncapsulation(ref val) => {
3828 fidl::encoding::encode_in_envelope::<bool, D>(
3829 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3830 encoder, offset + 8, _depth
3831 )
3832 }
3833 Option_::TcpDefaultTtl(ref val) => {
3834 fidl::encoding::encode_in_envelope::<u8, D>(
3835 <u8 as fidl::encoding::ValueTypeMarker>::borrow(val),
3836 encoder, offset + 8, _depth
3837 )
3838 }
3839 Option_::TcpKeepaliveInterval(ref val) => {
3840 fidl::encoding::encode_in_envelope::<u32, D>(
3841 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
3842 encoder, offset + 8, _depth
3843 )
3844 }
3845 Option_::TcpKeepaliveGarbage(ref val) => {
3846 fidl::encoding::encode_in_envelope::<bool, D>(
3847 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
3848 encoder, offset + 8, _depth
3849 )
3850 }
3851 Option_::NetworkInformationServiceDomain(ref val) => {
3852 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3853 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3854 encoder, offset + 8, _depth
3855 )
3856 }
3857 Option_::NetworkInformationServers(ref val) => {
3858 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3859 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3860 encoder, offset + 8, _depth
3861 )
3862 }
3863 Option_::NetworkTimeProtocolServers(ref val) => {
3864 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3865 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3866 encoder, offset + 8, _depth
3867 )
3868 }
3869 Option_::VendorSpecificInformation(ref val) => {
3870 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<u8, 255>, D>(
3871 <fidl::encoding::Vector<u8, 255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3872 encoder, offset + 8, _depth
3873 )
3874 }
3875 Option_::NetbiosOverTcpipNameServer(ref val) => {
3876 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3877 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3878 encoder, offset + 8, _depth
3879 )
3880 }
3881 Option_::NetbiosOverTcpipDatagramDistributionServer(ref val) => {
3882 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3883 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3884 encoder, offset + 8, _depth
3885 )
3886 }
3887 Option_::NetbiosOverTcpipNodeType(ref val) => {
3888 fidl::encoding::encode_in_envelope::<NodeTypes, D>(
3889 <NodeTypes as fidl::encoding::ValueTypeMarker>::borrow(val),
3890 encoder, offset + 8, _depth
3891 )
3892 }
3893 Option_::NetbiosOverTcpipScope(ref val) => {
3894 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3895 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3896 encoder, offset + 8, _depth
3897 )
3898 }
3899 Option_::XWindowSystemFontServer(ref val) => {
3900 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3901 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3902 encoder, offset + 8, _depth
3903 )
3904 }
3905 Option_::XWindowSystemDisplayManager(ref val) => {
3906 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3907 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3908 encoder, offset + 8, _depth
3909 )
3910 }
3911 Option_::NetworkInformationServicePlusDomain(ref val) => {
3912 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3913 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3914 encoder, offset + 8, _depth
3915 )
3916 }
3917 Option_::NetworkInformationServicePlusServers(ref val) => {
3918 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3919 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3920 encoder, offset + 8, _depth
3921 )
3922 }
3923 Option_::MobileIpHomeAgent(ref val) => {
3924 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3925 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3926 encoder, offset + 8, _depth
3927 )
3928 }
3929 Option_::SmtpServer(ref val) => {
3930 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3931 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3932 encoder, offset + 8, _depth
3933 )
3934 }
3935 Option_::Pop3Server(ref val) => {
3936 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3937 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3938 encoder, offset + 8, _depth
3939 )
3940 }
3941 Option_::NntpServer(ref val) => {
3942 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3943 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3944 encoder, offset + 8, _depth
3945 )
3946 }
3947 Option_::DefaultWwwServer(ref val) => {
3948 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3949 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3950 encoder, offset + 8, _depth
3951 )
3952 }
3953 Option_::DefaultFingerServer(ref val) => {
3954 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3955 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3956 encoder, offset + 8, _depth
3957 )
3958 }
3959 Option_::DefaultIrcServer(ref val) => {
3960 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3961 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3962 encoder, offset + 8, _depth
3963 )
3964 }
3965 Option_::StreettalkServer(ref val) => {
3966 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3967 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3968 encoder, offset + 8, _depth
3969 )
3970 }
3971 Option_::StreettalkDirectoryAssistanceServer(ref val) => {
3972 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D>(
3973 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::ValueTypeMarker>::borrow(val),
3974 encoder, offset + 8, _depth
3975 )
3976 }
3977 Option_::OptionOverload(ref val) => {
3978 fidl::encoding::encode_in_envelope::<OptionOverloadValue, D>(
3979 <OptionOverloadValue as fidl::encoding::ValueTypeMarker>::borrow(val),
3980 encoder, offset + 8, _depth
3981 )
3982 }
3983 Option_::TftpServerName(ref val) => {
3984 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3985 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3986 encoder, offset + 8, _depth
3987 )
3988 }
3989 Option_::BootfileName(ref val) => {
3990 fidl::encoding::encode_in_envelope::<fidl::encoding::BoundedString<255>, D>(
3991 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(val),
3992 encoder, offset + 8, _depth
3993 )
3994 }
3995 Option_::MaxDhcpMessageSize(ref val) => {
3996 fidl::encoding::encode_in_envelope::<u16, D>(
3997 <u16 as fidl::encoding::ValueTypeMarker>::borrow(val),
3998 encoder, offset + 8, _depth
3999 )
4000 }
4001 Option_::RenewalTimeValue(ref val) => {
4002 fidl::encoding::encode_in_envelope::<u32, D>(
4003 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
4004 encoder, offset + 8, _depth
4005 )
4006 }
4007 Option_::RebindingTimeValue(ref val) => {
4008 fidl::encoding::encode_in_envelope::<u32, D>(
4009 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
4010 encoder, offset + 8, _depth
4011 )
4012 }
4013 Option_::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
4014 }
4015 }
4016 }
4017
4018 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Option_ {
4019 #[inline(always)]
4020 fn new_empty() -> Self {
4021 Self::__SourceBreaking { unknown_ordinal: 0 }
4022 }
4023
4024 #[inline]
4025 unsafe fn decode(
4026 &mut self,
4027 decoder: &mut fidl::encoding::Decoder<'_, D>,
4028 offset: usize,
4029 mut depth: fidl::encoding::Depth,
4030 ) -> fidl::Result<()> {
4031 decoder.debug_check_bounds::<Self>(offset);
4032 #[allow(unused_variables)]
4033 let next_out_of_line = decoder.next_out_of_line();
4034 let handles_before = decoder.remaining_handles();
4035 let (ordinal, inlined, num_bytes, num_handles) =
4036 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4037
4038 let member_inline_size = match ordinal {
4039 1 => <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4040 2 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4041 3 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4042 4 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4043 5 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4044 6 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4045 7 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4046 8 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4047 9 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4048 10 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4049 11 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4050 12 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4051 13 => <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4052 14 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4053 15 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4054 16 => <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4055 17 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4056 18 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4057 19 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4058 20 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4059 21 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4060 22 => <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4061 23 => <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4062 24 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4063 25 => <fidl::encoding::Vector<u16, 127> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4064 26 => <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4065 27 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4066 28 => <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4067 29 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4068 30 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4069 31 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4070 32 => <fidl_fuchsia_net_common::Ipv4Address as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4071 33 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4072 34 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4073 35 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4074 36 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4075 37 => <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4076 38 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4077 39 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4078 40 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4079 41 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4080 42 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4081 43 => <fidl::encoding::Vector<u8, 255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4082 44 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4083 45 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4084 46 => <NodeTypes as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4085 47 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4086 48 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4087 49 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4088 50 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4089 51 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4090 52 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4091 53 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4092 54 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4093 55 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4094 56 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4095 57 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4096 58 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4097 59 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4098 60 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4099 61 => <OptionOverloadValue as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4100 62 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4101 63 => <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4102 64 => <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4103 65 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4104 66 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4105 0 => return Err(fidl::Error::UnknownUnionTag),
4106 _ => num_bytes as usize,
4107 };
4108
4109 if inlined != (member_inline_size <= 4) {
4110 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4111 }
4112 let _inner_offset;
4113 if inlined {
4114 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4115 _inner_offset = offset + 8;
4116 } else {
4117 depth.increment()?;
4118 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4119 }
4120 match ordinal {
4121 1 => {
4122 #[allow(irrefutable_let_patterns)]
4123 if let Option_::SubnetMask(_) = self {
4124 } else {
4126 *self = Option_::SubnetMask(fidl::new_empty!(
4128 fidl_fuchsia_net_common::Ipv4Address,
4129 D
4130 ));
4131 }
4132 #[allow(irrefutable_let_patterns)]
4133 if let Option_::SubnetMask(ref mut val) = self {
4134 fidl::decode!(
4135 fidl_fuchsia_net_common::Ipv4Address,
4136 D,
4137 val,
4138 decoder,
4139 _inner_offset,
4140 depth
4141 )?;
4142 } else {
4143 unreachable!()
4144 }
4145 }
4146 2 => {
4147 #[allow(irrefutable_let_patterns)]
4148 if let Option_::TimeOffset(_) = self {
4149 } else {
4151 *self = Option_::TimeOffset(fidl::new_empty!(i32, D));
4153 }
4154 #[allow(irrefutable_let_patterns)]
4155 if let Option_::TimeOffset(ref mut val) = self {
4156 fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
4157 } else {
4158 unreachable!()
4159 }
4160 }
4161 3 => {
4162 #[allow(irrefutable_let_patterns)]
4163 if let Option_::Router(_) = self {
4164 } else {
4166 *self = Option_::Router(
4168 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4169 );
4170 }
4171 #[allow(irrefutable_let_patterns)]
4172 if let Option_::Router(ref mut val) = self {
4173 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4174 } else {
4175 unreachable!()
4176 }
4177 }
4178 4 => {
4179 #[allow(irrefutable_let_patterns)]
4180 if let Option_::TimeServer(_) = self {
4181 } else {
4183 *self = Option_::TimeServer(
4185 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4186 );
4187 }
4188 #[allow(irrefutable_let_patterns)]
4189 if let Option_::TimeServer(ref mut val) = self {
4190 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4191 } else {
4192 unreachable!()
4193 }
4194 }
4195 5 => {
4196 #[allow(irrefutable_let_patterns)]
4197 if let Option_::NameServer(_) = self {
4198 } else {
4200 *self = Option_::NameServer(
4202 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4203 );
4204 }
4205 #[allow(irrefutable_let_patterns)]
4206 if let Option_::NameServer(ref mut val) = self {
4207 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4208 } else {
4209 unreachable!()
4210 }
4211 }
4212 6 => {
4213 #[allow(irrefutable_let_patterns)]
4214 if let Option_::DomainNameServer(_) = self {
4215 } else {
4217 *self = Option_::DomainNameServer(
4219 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4220 );
4221 }
4222 #[allow(irrefutable_let_patterns)]
4223 if let Option_::DomainNameServer(ref mut val) = self {
4224 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4225 } else {
4226 unreachable!()
4227 }
4228 }
4229 7 => {
4230 #[allow(irrefutable_let_patterns)]
4231 if let Option_::LogServer(_) = self {
4232 } else {
4234 *self = Option_::LogServer(
4236 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4237 );
4238 }
4239 #[allow(irrefutable_let_patterns)]
4240 if let Option_::LogServer(ref mut val) = self {
4241 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4242 } else {
4243 unreachable!()
4244 }
4245 }
4246 8 => {
4247 #[allow(irrefutable_let_patterns)]
4248 if let Option_::CookieServer(_) = self {
4249 } else {
4251 *self = Option_::CookieServer(
4253 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4254 );
4255 }
4256 #[allow(irrefutable_let_patterns)]
4257 if let Option_::CookieServer(ref mut val) = self {
4258 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4259 } else {
4260 unreachable!()
4261 }
4262 }
4263 9 => {
4264 #[allow(irrefutable_let_patterns)]
4265 if let Option_::LprServer(_) = self {
4266 } else {
4268 *self = Option_::LprServer(
4270 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4271 );
4272 }
4273 #[allow(irrefutable_let_patterns)]
4274 if let Option_::LprServer(ref mut val) = self {
4275 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4276 } else {
4277 unreachable!()
4278 }
4279 }
4280 10 => {
4281 #[allow(irrefutable_let_patterns)]
4282 if let Option_::ImpressServer(_) = self {
4283 } else {
4285 *self = Option_::ImpressServer(
4287 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4288 );
4289 }
4290 #[allow(irrefutable_let_patterns)]
4291 if let Option_::ImpressServer(ref mut val) = self {
4292 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4293 } else {
4294 unreachable!()
4295 }
4296 }
4297 11 => {
4298 #[allow(irrefutable_let_patterns)]
4299 if let Option_::ResourceLocationServer(_) = self {
4300 } else {
4302 *self = Option_::ResourceLocationServer(
4304 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4305 );
4306 }
4307 #[allow(irrefutable_let_patterns)]
4308 if let Option_::ResourceLocationServer(ref mut val) = self {
4309 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4310 } else {
4311 unreachable!()
4312 }
4313 }
4314 12 => {
4315 #[allow(irrefutable_let_patterns)]
4316 if let Option_::HostName(_) = self {
4317 } else {
4319 *self = Option_::HostName(fidl::new_empty!(
4321 fidl::encoding::BoundedString<255>,
4322 D
4323 ));
4324 }
4325 #[allow(irrefutable_let_patterns)]
4326 if let Option_::HostName(ref mut val) = self {
4327 fidl::decode!(
4328 fidl::encoding::BoundedString<255>,
4329 D,
4330 val,
4331 decoder,
4332 _inner_offset,
4333 depth
4334 )?;
4335 } else {
4336 unreachable!()
4337 }
4338 }
4339 13 => {
4340 #[allow(irrefutable_let_patterns)]
4341 if let Option_::BootFileSize(_) = self {
4342 } else {
4344 *self = Option_::BootFileSize(fidl::new_empty!(u16, D));
4346 }
4347 #[allow(irrefutable_let_patterns)]
4348 if let Option_::BootFileSize(ref mut val) = self {
4349 fidl::decode!(u16, D, val, decoder, _inner_offset, depth)?;
4350 } else {
4351 unreachable!()
4352 }
4353 }
4354 14 => {
4355 #[allow(irrefutable_let_patterns)]
4356 if let Option_::MeritDumpFile(_) = self {
4357 } else {
4359 *self = Option_::MeritDumpFile(fidl::new_empty!(
4361 fidl::encoding::BoundedString<255>,
4362 D
4363 ));
4364 }
4365 #[allow(irrefutable_let_patterns)]
4366 if let Option_::MeritDumpFile(ref mut val) = self {
4367 fidl::decode!(
4368 fidl::encoding::BoundedString<255>,
4369 D,
4370 val,
4371 decoder,
4372 _inner_offset,
4373 depth
4374 )?;
4375 } else {
4376 unreachable!()
4377 }
4378 }
4379 15 => {
4380 #[allow(irrefutable_let_patterns)]
4381 if let Option_::DomainName(_) = self {
4382 } else {
4384 *self = Option_::DomainName(fidl::new_empty!(
4386 fidl::encoding::BoundedString<255>,
4387 D
4388 ));
4389 }
4390 #[allow(irrefutable_let_patterns)]
4391 if let Option_::DomainName(ref mut val) = self {
4392 fidl::decode!(
4393 fidl::encoding::BoundedString<255>,
4394 D,
4395 val,
4396 decoder,
4397 _inner_offset,
4398 depth
4399 )?;
4400 } else {
4401 unreachable!()
4402 }
4403 }
4404 16 => {
4405 #[allow(irrefutable_let_patterns)]
4406 if let Option_::SwapServer(_) = self {
4407 } else {
4409 *self = Option_::SwapServer(fidl::new_empty!(
4411 fidl_fuchsia_net_common::Ipv4Address,
4412 D
4413 ));
4414 }
4415 #[allow(irrefutable_let_patterns)]
4416 if let Option_::SwapServer(ref mut val) = self {
4417 fidl::decode!(
4418 fidl_fuchsia_net_common::Ipv4Address,
4419 D,
4420 val,
4421 decoder,
4422 _inner_offset,
4423 depth
4424 )?;
4425 } else {
4426 unreachable!()
4427 }
4428 }
4429 17 => {
4430 #[allow(irrefutable_let_patterns)]
4431 if let Option_::RootPath(_) = self {
4432 } else {
4434 *self = Option_::RootPath(fidl::new_empty!(
4436 fidl::encoding::BoundedString<255>,
4437 D
4438 ));
4439 }
4440 #[allow(irrefutable_let_patterns)]
4441 if let Option_::RootPath(ref mut val) = self {
4442 fidl::decode!(
4443 fidl::encoding::BoundedString<255>,
4444 D,
4445 val,
4446 decoder,
4447 _inner_offset,
4448 depth
4449 )?;
4450 } else {
4451 unreachable!()
4452 }
4453 }
4454 18 => {
4455 #[allow(irrefutable_let_patterns)]
4456 if let Option_::ExtensionsPath(_) = self {
4457 } else {
4459 *self = Option_::ExtensionsPath(fidl::new_empty!(
4461 fidl::encoding::BoundedString<255>,
4462 D
4463 ));
4464 }
4465 #[allow(irrefutable_let_patterns)]
4466 if let Option_::ExtensionsPath(ref mut val) = self {
4467 fidl::decode!(
4468 fidl::encoding::BoundedString<255>,
4469 D,
4470 val,
4471 decoder,
4472 _inner_offset,
4473 depth
4474 )?;
4475 } else {
4476 unreachable!()
4477 }
4478 }
4479 19 => {
4480 #[allow(irrefutable_let_patterns)]
4481 if let Option_::IpForwarding(_) = self {
4482 } else {
4484 *self = Option_::IpForwarding(fidl::new_empty!(bool, D));
4486 }
4487 #[allow(irrefutable_let_patterns)]
4488 if let Option_::IpForwarding(ref mut val) = self {
4489 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4490 } else {
4491 unreachable!()
4492 }
4493 }
4494 20 => {
4495 #[allow(irrefutable_let_patterns)]
4496 if let Option_::NonLocalSourceRouting(_) = self {
4497 } else {
4499 *self = Option_::NonLocalSourceRouting(fidl::new_empty!(bool, D));
4501 }
4502 #[allow(irrefutable_let_patterns)]
4503 if let Option_::NonLocalSourceRouting(ref mut val) = self {
4504 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4505 } else {
4506 unreachable!()
4507 }
4508 }
4509 21 => {
4510 #[allow(irrefutable_let_patterns)]
4511 if let Option_::PolicyFilter(_) = self {
4512 } else {
4514 *self = Option_::PolicyFilter(
4516 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4517 );
4518 }
4519 #[allow(irrefutable_let_patterns)]
4520 if let Option_::PolicyFilter(ref mut val) = self {
4521 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4522 } else {
4523 unreachable!()
4524 }
4525 }
4526 22 => {
4527 #[allow(irrefutable_let_patterns)]
4528 if let Option_::MaxDatagramReassemblySize(_) = self {
4529 } else {
4531 *self = Option_::MaxDatagramReassemblySize(fidl::new_empty!(u16, D));
4533 }
4534 #[allow(irrefutable_let_patterns)]
4535 if let Option_::MaxDatagramReassemblySize(ref mut val) = self {
4536 fidl::decode!(u16, D, val, decoder, _inner_offset, depth)?;
4537 } else {
4538 unreachable!()
4539 }
4540 }
4541 23 => {
4542 #[allow(irrefutable_let_patterns)]
4543 if let Option_::DefaultIpTtl(_) = self {
4544 } else {
4546 *self = Option_::DefaultIpTtl(fidl::new_empty!(u8, D));
4548 }
4549 #[allow(irrefutable_let_patterns)]
4550 if let Option_::DefaultIpTtl(ref mut val) = self {
4551 fidl::decode!(u8, D, val, decoder, _inner_offset, depth)?;
4552 } else {
4553 unreachable!()
4554 }
4555 }
4556 24 => {
4557 #[allow(irrefutable_let_patterns)]
4558 if let Option_::PathMtuAgingTimeout(_) = self {
4559 } else {
4561 *self = Option_::PathMtuAgingTimeout(fidl::new_empty!(u32, D));
4563 }
4564 #[allow(irrefutable_let_patterns)]
4565 if let Option_::PathMtuAgingTimeout(ref mut val) = self {
4566 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
4567 } else {
4568 unreachable!()
4569 }
4570 }
4571 25 => {
4572 #[allow(irrefutable_let_patterns)]
4573 if let Option_::PathMtuPlateauTable(_) = self {
4574 } else {
4576 *self = Option_::PathMtuPlateauTable(
4578 fidl::new_empty!(fidl::encoding::Vector<u16, 127>, D),
4579 );
4580 }
4581 #[allow(irrefutable_let_patterns)]
4582 if let Option_::PathMtuPlateauTable(ref mut val) = self {
4583 fidl::decode!(fidl::encoding::Vector<u16, 127>, D, val, decoder, _inner_offset, depth)?;
4584 } else {
4585 unreachable!()
4586 }
4587 }
4588 26 => {
4589 #[allow(irrefutable_let_patterns)]
4590 if let Option_::InterfaceMtu(_) = self {
4591 } else {
4593 *self = Option_::InterfaceMtu(fidl::new_empty!(u16, D));
4595 }
4596 #[allow(irrefutable_let_patterns)]
4597 if let Option_::InterfaceMtu(ref mut val) = self {
4598 fidl::decode!(u16, D, val, decoder, _inner_offset, depth)?;
4599 } else {
4600 unreachable!()
4601 }
4602 }
4603 27 => {
4604 #[allow(irrefutable_let_patterns)]
4605 if let Option_::AllSubnetsLocal(_) = self {
4606 } else {
4608 *self = Option_::AllSubnetsLocal(fidl::new_empty!(bool, D));
4610 }
4611 #[allow(irrefutable_let_patterns)]
4612 if let Option_::AllSubnetsLocal(ref mut val) = self {
4613 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4614 } else {
4615 unreachable!()
4616 }
4617 }
4618 28 => {
4619 #[allow(irrefutable_let_patterns)]
4620 if let Option_::BroadcastAddress(_) = self {
4621 } else {
4623 *self = Option_::BroadcastAddress(fidl::new_empty!(
4625 fidl_fuchsia_net_common::Ipv4Address,
4626 D
4627 ));
4628 }
4629 #[allow(irrefutable_let_patterns)]
4630 if let Option_::BroadcastAddress(ref mut val) = self {
4631 fidl::decode!(
4632 fidl_fuchsia_net_common::Ipv4Address,
4633 D,
4634 val,
4635 decoder,
4636 _inner_offset,
4637 depth
4638 )?;
4639 } else {
4640 unreachable!()
4641 }
4642 }
4643 29 => {
4644 #[allow(irrefutable_let_patterns)]
4645 if let Option_::PerformMaskDiscovery(_) = self {
4646 } else {
4648 *self = Option_::PerformMaskDiscovery(fidl::new_empty!(bool, D));
4650 }
4651 #[allow(irrefutable_let_patterns)]
4652 if let Option_::PerformMaskDiscovery(ref mut val) = self {
4653 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4654 } else {
4655 unreachable!()
4656 }
4657 }
4658 30 => {
4659 #[allow(irrefutable_let_patterns)]
4660 if let Option_::MaskSupplier(_) = self {
4661 } else {
4663 *self = Option_::MaskSupplier(fidl::new_empty!(bool, D));
4665 }
4666 #[allow(irrefutable_let_patterns)]
4667 if let Option_::MaskSupplier(ref mut val) = self {
4668 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4669 } else {
4670 unreachable!()
4671 }
4672 }
4673 31 => {
4674 #[allow(irrefutable_let_patterns)]
4675 if let Option_::PerformRouterDiscovery(_) = self {
4676 } else {
4678 *self = Option_::PerformRouterDiscovery(fidl::new_empty!(bool, D));
4680 }
4681 #[allow(irrefutable_let_patterns)]
4682 if let Option_::PerformRouterDiscovery(ref mut val) = self {
4683 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4684 } else {
4685 unreachable!()
4686 }
4687 }
4688 32 => {
4689 #[allow(irrefutable_let_patterns)]
4690 if let Option_::RouterSolicitationAddress(_) = self {
4691 } else {
4693 *self = Option_::RouterSolicitationAddress(fidl::new_empty!(
4695 fidl_fuchsia_net_common::Ipv4Address,
4696 D
4697 ));
4698 }
4699 #[allow(irrefutable_let_patterns)]
4700 if let Option_::RouterSolicitationAddress(ref mut val) = self {
4701 fidl::decode!(
4702 fidl_fuchsia_net_common::Ipv4Address,
4703 D,
4704 val,
4705 decoder,
4706 _inner_offset,
4707 depth
4708 )?;
4709 } else {
4710 unreachable!()
4711 }
4712 }
4713 33 => {
4714 #[allow(irrefutable_let_patterns)]
4715 if let Option_::StaticRoute(_) = self {
4716 } else {
4718 *self = Option_::StaticRoute(
4720 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4721 );
4722 }
4723 #[allow(irrefutable_let_patterns)]
4724 if let Option_::StaticRoute(ref mut val) = self {
4725 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4726 } else {
4727 unreachable!()
4728 }
4729 }
4730 34 => {
4731 #[allow(irrefutable_let_patterns)]
4732 if let Option_::TrailerEncapsulation(_) = self {
4733 } else {
4735 *self = Option_::TrailerEncapsulation(fidl::new_empty!(bool, D));
4737 }
4738 #[allow(irrefutable_let_patterns)]
4739 if let Option_::TrailerEncapsulation(ref mut val) = self {
4740 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4741 } else {
4742 unreachable!()
4743 }
4744 }
4745 35 => {
4746 #[allow(irrefutable_let_patterns)]
4747 if let Option_::ArpCacheTimeout(_) = self {
4748 } else {
4750 *self = Option_::ArpCacheTimeout(fidl::new_empty!(u32, D));
4752 }
4753 #[allow(irrefutable_let_patterns)]
4754 if let Option_::ArpCacheTimeout(ref mut val) = self {
4755 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
4756 } else {
4757 unreachable!()
4758 }
4759 }
4760 36 => {
4761 #[allow(irrefutable_let_patterns)]
4762 if let Option_::EthernetEncapsulation(_) = self {
4763 } else {
4765 *self = Option_::EthernetEncapsulation(fidl::new_empty!(bool, D));
4767 }
4768 #[allow(irrefutable_let_patterns)]
4769 if let Option_::EthernetEncapsulation(ref mut val) = self {
4770 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4771 } else {
4772 unreachable!()
4773 }
4774 }
4775 37 => {
4776 #[allow(irrefutable_let_patterns)]
4777 if let Option_::TcpDefaultTtl(_) = self {
4778 } else {
4780 *self = Option_::TcpDefaultTtl(fidl::new_empty!(u8, D));
4782 }
4783 #[allow(irrefutable_let_patterns)]
4784 if let Option_::TcpDefaultTtl(ref mut val) = self {
4785 fidl::decode!(u8, D, val, decoder, _inner_offset, depth)?;
4786 } else {
4787 unreachable!()
4788 }
4789 }
4790 38 => {
4791 #[allow(irrefutable_let_patterns)]
4792 if let Option_::TcpKeepaliveInterval(_) = self {
4793 } else {
4795 *self = Option_::TcpKeepaliveInterval(fidl::new_empty!(u32, D));
4797 }
4798 #[allow(irrefutable_let_patterns)]
4799 if let Option_::TcpKeepaliveInterval(ref mut val) = self {
4800 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
4801 } else {
4802 unreachable!()
4803 }
4804 }
4805 39 => {
4806 #[allow(irrefutable_let_patterns)]
4807 if let Option_::TcpKeepaliveGarbage(_) = self {
4808 } else {
4810 *self = Option_::TcpKeepaliveGarbage(fidl::new_empty!(bool, D));
4812 }
4813 #[allow(irrefutable_let_patterns)]
4814 if let Option_::TcpKeepaliveGarbage(ref mut val) = self {
4815 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
4816 } else {
4817 unreachable!()
4818 }
4819 }
4820 40 => {
4821 #[allow(irrefutable_let_patterns)]
4822 if let Option_::NetworkInformationServiceDomain(_) = self {
4823 } else {
4825 *self = Option_::NetworkInformationServiceDomain(fidl::new_empty!(
4827 fidl::encoding::BoundedString<255>,
4828 D
4829 ));
4830 }
4831 #[allow(irrefutable_let_patterns)]
4832 if let Option_::NetworkInformationServiceDomain(ref mut val) = self {
4833 fidl::decode!(
4834 fidl::encoding::BoundedString<255>,
4835 D,
4836 val,
4837 decoder,
4838 _inner_offset,
4839 depth
4840 )?;
4841 } else {
4842 unreachable!()
4843 }
4844 }
4845 41 => {
4846 #[allow(irrefutable_let_patterns)]
4847 if let Option_::NetworkInformationServers(_) = self {
4848 } else {
4850 *self = Option_::NetworkInformationServers(
4852 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4853 );
4854 }
4855 #[allow(irrefutable_let_patterns)]
4856 if let Option_::NetworkInformationServers(ref mut val) = self {
4857 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4858 } else {
4859 unreachable!()
4860 }
4861 }
4862 42 => {
4863 #[allow(irrefutable_let_patterns)]
4864 if let Option_::NetworkTimeProtocolServers(_) = self {
4865 } else {
4867 *self = Option_::NetworkTimeProtocolServers(
4869 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4870 );
4871 }
4872 #[allow(irrefutable_let_patterns)]
4873 if let Option_::NetworkTimeProtocolServers(ref mut val) = self {
4874 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4875 } else {
4876 unreachable!()
4877 }
4878 }
4879 43 => {
4880 #[allow(irrefutable_let_patterns)]
4881 if let Option_::VendorSpecificInformation(_) = self {
4882 } else {
4884 *self = Option_::VendorSpecificInformation(
4886 fidl::new_empty!(fidl::encoding::Vector<u8, 255>, D),
4887 );
4888 }
4889 #[allow(irrefutable_let_patterns)]
4890 if let Option_::VendorSpecificInformation(ref mut val) = self {
4891 fidl::decode!(fidl::encoding::Vector<u8, 255>, D, val, decoder, _inner_offset, depth)?;
4892 } else {
4893 unreachable!()
4894 }
4895 }
4896 44 => {
4897 #[allow(irrefutable_let_patterns)]
4898 if let Option_::NetbiosOverTcpipNameServer(_) = self {
4899 } else {
4901 *self = Option_::NetbiosOverTcpipNameServer(
4903 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4904 );
4905 }
4906 #[allow(irrefutable_let_patterns)]
4907 if let Option_::NetbiosOverTcpipNameServer(ref mut val) = self {
4908 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4909 } else {
4910 unreachable!()
4911 }
4912 }
4913 45 => {
4914 #[allow(irrefutable_let_patterns)]
4915 if let Option_::NetbiosOverTcpipDatagramDistributionServer(_) = self {
4916 } else {
4918 *self = Option_::NetbiosOverTcpipDatagramDistributionServer(
4920 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4921 );
4922 }
4923 #[allow(irrefutable_let_patterns)]
4924 if let Option_::NetbiosOverTcpipDatagramDistributionServer(ref mut val) = self {
4925 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4926 } else {
4927 unreachable!()
4928 }
4929 }
4930 46 => {
4931 #[allow(irrefutable_let_patterns)]
4932 if let Option_::NetbiosOverTcpipNodeType(_) = self {
4933 } else {
4935 *self = Option_::NetbiosOverTcpipNodeType(fidl::new_empty!(NodeTypes, D));
4937 }
4938 #[allow(irrefutable_let_patterns)]
4939 if let Option_::NetbiosOverTcpipNodeType(ref mut val) = self {
4940 fidl::decode!(NodeTypes, D, val, decoder, _inner_offset, depth)?;
4941 } else {
4942 unreachable!()
4943 }
4944 }
4945 47 => {
4946 #[allow(irrefutable_let_patterns)]
4947 if let Option_::NetbiosOverTcpipScope(_) = self {
4948 } else {
4950 *self = Option_::NetbiosOverTcpipScope(fidl::new_empty!(
4952 fidl::encoding::BoundedString<255>,
4953 D
4954 ));
4955 }
4956 #[allow(irrefutable_let_patterns)]
4957 if let Option_::NetbiosOverTcpipScope(ref mut val) = self {
4958 fidl::decode!(
4959 fidl::encoding::BoundedString<255>,
4960 D,
4961 val,
4962 decoder,
4963 _inner_offset,
4964 depth
4965 )?;
4966 } else {
4967 unreachable!()
4968 }
4969 }
4970 48 => {
4971 #[allow(irrefutable_let_patterns)]
4972 if let Option_::XWindowSystemFontServer(_) = self {
4973 } else {
4975 *self = Option_::XWindowSystemFontServer(
4977 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4978 );
4979 }
4980 #[allow(irrefutable_let_patterns)]
4981 if let Option_::XWindowSystemFontServer(ref mut val) = self {
4982 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
4983 } else {
4984 unreachable!()
4985 }
4986 }
4987 49 => {
4988 #[allow(irrefutable_let_patterns)]
4989 if let Option_::XWindowSystemDisplayManager(_) = self {
4990 } else {
4992 *self = Option_::XWindowSystemDisplayManager(
4994 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
4995 );
4996 }
4997 #[allow(irrefutable_let_patterns)]
4998 if let Option_::XWindowSystemDisplayManager(ref mut val) = self {
4999 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5000 } else {
5001 unreachable!()
5002 }
5003 }
5004 50 => {
5005 #[allow(irrefutable_let_patterns)]
5006 if let Option_::NetworkInformationServicePlusDomain(_) = self {
5007 } else {
5009 *self = Option_::NetworkInformationServicePlusDomain(fidl::new_empty!(
5011 fidl::encoding::BoundedString<255>,
5012 D
5013 ));
5014 }
5015 #[allow(irrefutable_let_patterns)]
5016 if let Option_::NetworkInformationServicePlusDomain(ref mut val) = self {
5017 fidl::decode!(
5018 fidl::encoding::BoundedString<255>,
5019 D,
5020 val,
5021 decoder,
5022 _inner_offset,
5023 depth
5024 )?;
5025 } else {
5026 unreachable!()
5027 }
5028 }
5029 51 => {
5030 #[allow(irrefutable_let_patterns)]
5031 if let Option_::NetworkInformationServicePlusServers(_) = self {
5032 } else {
5034 *self = Option_::NetworkInformationServicePlusServers(
5036 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5037 );
5038 }
5039 #[allow(irrefutable_let_patterns)]
5040 if let Option_::NetworkInformationServicePlusServers(ref mut val) = self {
5041 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5042 } else {
5043 unreachable!()
5044 }
5045 }
5046 52 => {
5047 #[allow(irrefutable_let_patterns)]
5048 if let Option_::MobileIpHomeAgent(_) = self {
5049 } else {
5051 *self = Option_::MobileIpHomeAgent(
5053 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5054 );
5055 }
5056 #[allow(irrefutable_let_patterns)]
5057 if let Option_::MobileIpHomeAgent(ref mut val) = self {
5058 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5059 } else {
5060 unreachable!()
5061 }
5062 }
5063 53 => {
5064 #[allow(irrefutable_let_patterns)]
5065 if let Option_::SmtpServer(_) = self {
5066 } else {
5068 *self = Option_::SmtpServer(
5070 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5071 );
5072 }
5073 #[allow(irrefutable_let_patterns)]
5074 if let Option_::SmtpServer(ref mut val) = self {
5075 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5076 } else {
5077 unreachable!()
5078 }
5079 }
5080 54 => {
5081 #[allow(irrefutable_let_patterns)]
5082 if let Option_::Pop3Server(_) = self {
5083 } else {
5085 *self = Option_::Pop3Server(
5087 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5088 );
5089 }
5090 #[allow(irrefutable_let_patterns)]
5091 if let Option_::Pop3Server(ref mut val) = self {
5092 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5093 } else {
5094 unreachable!()
5095 }
5096 }
5097 55 => {
5098 #[allow(irrefutable_let_patterns)]
5099 if let Option_::NntpServer(_) = self {
5100 } else {
5102 *self = Option_::NntpServer(
5104 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5105 );
5106 }
5107 #[allow(irrefutable_let_patterns)]
5108 if let Option_::NntpServer(ref mut val) = self {
5109 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5110 } else {
5111 unreachable!()
5112 }
5113 }
5114 56 => {
5115 #[allow(irrefutable_let_patterns)]
5116 if let Option_::DefaultWwwServer(_) = self {
5117 } else {
5119 *self = Option_::DefaultWwwServer(
5121 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5122 );
5123 }
5124 #[allow(irrefutable_let_patterns)]
5125 if let Option_::DefaultWwwServer(ref mut val) = self {
5126 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5127 } else {
5128 unreachable!()
5129 }
5130 }
5131 57 => {
5132 #[allow(irrefutable_let_patterns)]
5133 if let Option_::DefaultFingerServer(_) = self {
5134 } else {
5136 *self = Option_::DefaultFingerServer(
5138 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5139 );
5140 }
5141 #[allow(irrefutable_let_patterns)]
5142 if let Option_::DefaultFingerServer(ref mut val) = self {
5143 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5144 } else {
5145 unreachable!()
5146 }
5147 }
5148 58 => {
5149 #[allow(irrefutable_let_patterns)]
5150 if let Option_::DefaultIrcServer(_) = self {
5151 } else {
5153 *self = Option_::DefaultIrcServer(
5155 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5156 );
5157 }
5158 #[allow(irrefutable_let_patterns)]
5159 if let Option_::DefaultIrcServer(ref mut val) = self {
5160 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5161 } else {
5162 unreachable!()
5163 }
5164 }
5165 59 => {
5166 #[allow(irrefutable_let_patterns)]
5167 if let Option_::StreettalkServer(_) = self {
5168 } else {
5170 *self = Option_::StreettalkServer(
5172 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5173 );
5174 }
5175 #[allow(irrefutable_let_patterns)]
5176 if let Option_::StreettalkServer(ref mut val) = self {
5177 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5178 } else {
5179 unreachable!()
5180 }
5181 }
5182 60 => {
5183 #[allow(irrefutable_let_patterns)]
5184 if let Option_::StreettalkDirectoryAssistanceServer(_) = self {
5185 } else {
5187 *self = Option_::StreettalkDirectoryAssistanceServer(
5189 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D),
5190 );
5191 }
5192 #[allow(irrefutable_let_patterns)]
5193 if let Option_::StreettalkDirectoryAssistanceServer(ref mut val) = self {
5194 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 63>, D, val, decoder, _inner_offset, depth)?;
5195 } else {
5196 unreachable!()
5197 }
5198 }
5199 61 => {
5200 #[allow(irrefutable_let_patterns)]
5201 if let Option_::OptionOverload(_) = self {
5202 } else {
5204 *self = Option_::OptionOverload(fidl::new_empty!(OptionOverloadValue, D));
5206 }
5207 #[allow(irrefutable_let_patterns)]
5208 if let Option_::OptionOverload(ref mut val) = self {
5209 fidl::decode!(OptionOverloadValue, D, val, decoder, _inner_offset, depth)?;
5210 } else {
5211 unreachable!()
5212 }
5213 }
5214 62 => {
5215 #[allow(irrefutable_let_patterns)]
5216 if let Option_::TftpServerName(_) = self {
5217 } else {
5219 *self = Option_::TftpServerName(fidl::new_empty!(
5221 fidl::encoding::BoundedString<255>,
5222 D
5223 ));
5224 }
5225 #[allow(irrefutable_let_patterns)]
5226 if let Option_::TftpServerName(ref mut val) = self {
5227 fidl::decode!(
5228 fidl::encoding::BoundedString<255>,
5229 D,
5230 val,
5231 decoder,
5232 _inner_offset,
5233 depth
5234 )?;
5235 } else {
5236 unreachable!()
5237 }
5238 }
5239 63 => {
5240 #[allow(irrefutable_let_patterns)]
5241 if let Option_::BootfileName(_) = self {
5242 } else {
5244 *self = Option_::BootfileName(fidl::new_empty!(
5246 fidl::encoding::BoundedString<255>,
5247 D
5248 ));
5249 }
5250 #[allow(irrefutable_let_patterns)]
5251 if let Option_::BootfileName(ref mut val) = self {
5252 fidl::decode!(
5253 fidl::encoding::BoundedString<255>,
5254 D,
5255 val,
5256 decoder,
5257 _inner_offset,
5258 depth
5259 )?;
5260 } else {
5261 unreachable!()
5262 }
5263 }
5264 64 => {
5265 #[allow(irrefutable_let_patterns)]
5266 if let Option_::MaxDhcpMessageSize(_) = self {
5267 } else {
5269 *self = Option_::MaxDhcpMessageSize(fidl::new_empty!(u16, D));
5271 }
5272 #[allow(irrefutable_let_patterns)]
5273 if let Option_::MaxDhcpMessageSize(ref mut val) = self {
5274 fidl::decode!(u16, D, val, decoder, _inner_offset, depth)?;
5275 } else {
5276 unreachable!()
5277 }
5278 }
5279 65 => {
5280 #[allow(irrefutable_let_patterns)]
5281 if let Option_::RenewalTimeValue(_) = self {
5282 } else {
5284 *self = Option_::RenewalTimeValue(fidl::new_empty!(u32, D));
5286 }
5287 #[allow(irrefutable_let_patterns)]
5288 if let Option_::RenewalTimeValue(ref mut val) = self {
5289 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
5290 } else {
5291 unreachable!()
5292 }
5293 }
5294 66 => {
5295 #[allow(irrefutable_let_patterns)]
5296 if let Option_::RebindingTimeValue(_) = self {
5297 } else {
5299 *self = Option_::RebindingTimeValue(fidl::new_empty!(u32, D));
5301 }
5302 #[allow(irrefutable_let_patterns)]
5303 if let Option_::RebindingTimeValue(ref mut val) = self {
5304 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
5305 } else {
5306 unreachable!()
5307 }
5308 }
5309 #[allow(deprecated)]
5310 ordinal => {
5311 for _ in 0..num_handles {
5312 decoder.drop_next_handle()?;
5313 }
5314 *self = Option_::__SourceBreaking { unknown_ordinal: ordinal };
5315 }
5316 }
5317 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
5318 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5319 }
5320 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5321 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5322 }
5323 Ok(())
5324 }
5325 }
5326
5327 impl fidl::encoding::ValueTypeMarker for Parameter {
5328 type Borrowed<'a> = &'a Self;
5329 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5330 value
5331 }
5332 }
5333
5334 unsafe impl fidl::encoding::TypeMarker for Parameter {
5335 type Owned = Self;
5336
5337 #[inline(always)]
5338 fn inline_align(_context: fidl::encoding::Context) -> usize {
5339 8
5340 }
5341
5342 #[inline(always)]
5343 fn inline_size(_context: fidl::encoding::Context) -> usize {
5344 16
5345 }
5346 }
5347
5348 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Parameter, D>
5349 for &Parameter
5350 {
5351 #[inline]
5352 unsafe fn encode(
5353 self,
5354 encoder: &mut fidl::encoding::Encoder<'_, D>,
5355 offset: usize,
5356 _depth: fidl::encoding::Depth,
5357 ) -> fidl::Result<()> {
5358 encoder.debug_check_bounds::<Parameter>(offset);
5359 encoder.write_num::<u64>(self.ordinal(), offset);
5360 match self {
5361 Parameter::IpAddrs(ref val) => {
5362 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 256>, D>(
5363 <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 256> as fidl::encoding::ValueTypeMarker>::borrow(val),
5364 encoder, offset + 8, _depth
5365 )
5366 }
5367 Parameter::AddressPool(ref val) => {
5368 fidl::encoding::encode_in_envelope::<AddressPool, D>(
5369 <AddressPool as fidl::encoding::ValueTypeMarker>::borrow(val),
5370 encoder, offset + 8, _depth
5371 )
5372 }
5373 Parameter::Lease(ref val) => {
5374 fidl::encoding::encode_in_envelope::<LeaseLength, D>(
5375 <LeaseLength as fidl::encoding::ValueTypeMarker>::borrow(val),
5376 encoder, offset + 8, _depth
5377 )
5378 }
5379 Parameter::PermittedMacs(ref val) => {
5380 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl_fuchsia_net_common::MacAddress, 256>, D>(
5381 <fidl::encoding::Vector<fidl_fuchsia_net_common::MacAddress, 256> as fidl::encoding::ValueTypeMarker>::borrow(val),
5382 encoder, offset + 8, _depth
5383 )
5384 }
5385 Parameter::StaticallyAssignedAddrs(ref val) => {
5386 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<StaticAssignment, 256>, D>(
5387 <fidl::encoding::Vector<StaticAssignment, 256> as fidl::encoding::ValueTypeMarker>::borrow(val),
5388 encoder, offset + 8, _depth
5389 )
5390 }
5391 Parameter::ArpProbe(ref val) => {
5392 fidl::encoding::encode_in_envelope::<bool, D>(
5393 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
5394 encoder, offset + 8, _depth
5395 )
5396 }
5397 Parameter::BoundDeviceNames(ref val) => {
5398 fidl::encoding::encode_in_envelope::<fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 256>, D>(
5399 <fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 256> as fidl::encoding::ValueTypeMarker>::borrow(val),
5400 encoder, offset + 8, _depth
5401 )
5402 }
5403 Parameter::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
5404 }
5405 }
5406 }
5407
5408 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Parameter {
5409 #[inline(always)]
5410 fn new_empty() -> Self {
5411 Self::__SourceBreaking { unknown_ordinal: 0 }
5412 }
5413
5414 #[inline]
5415 unsafe fn decode(
5416 &mut self,
5417 decoder: &mut fidl::encoding::Decoder<'_, D>,
5418 offset: usize,
5419 mut depth: fidl::encoding::Depth,
5420 ) -> fidl::Result<()> {
5421 decoder.debug_check_bounds::<Self>(offset);
5422 #[allow(unused_variables)]
5423 let next_out_of_line = decoder.next_out_of_line();
5424 let handles_before = decoder.remaining_handles();
5425 let (ordinal, inlined, num_bytes, num_handles) =
5426 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
5427
5428 let member_inline_size = match ordinal {
5429 1 => <fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 256> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5430 2 => <AddressPool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5431 3 => <LeaseLength as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5432 4 => <fidl::encoding::Vector<fidl_fuchsia_net_common::MacAddress, 256> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5433 5 => <fidl::encoding::Vector<StaticAssignment, 256> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5434 6 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5435 7 => <fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 256> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
5436 0 => return Err(fidl::Error::UnknownUnionTag),
5437 _ => num_bytes as usize,
5438 };
5439
5440 if inlined != (member_inline_size <= 4) {
5441 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5442 }
5443 let _inner_offset;
5444 if inlined {
5445 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
5446 _inner_offset = offset + 8;
5447 } else {
5448 depth.increment()?;
5449 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5450 }
5451 match ordinal {
5452 1 => {
5453 #[allow(irrefutable_let_patterns)]
5454 if let Parameter::IpAddrs(_) = self {
5455 } else {
5457 *self = Parameter::IpAddrs(
5459 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 256>, D),
5460 );
5461 }
5462 #[allow(irrefutable_let_patterns)]
5463 if let Parameter::IpAddrs(ref mut val) = self {
5464 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::Ipv4Address, 256>, D, val, decoder, _inner_offset, depth)?;
5465 } else {
5466 unreachable!()
5467 }
5468 }
5469 2 => {
5470 #[allow(irrefutable_let_patterns)]
5471 if let Parameter::AddressPool(_) = self {
5472 } else {
5474 *self = Parameter::AddressPool(fidl::new_empty!(AddressPool, D));
5476 }
5477 #[allow(irrefutable_let_patterns)]
5478 if let Parameter::AddressPool(ref mut val) = self {
5479 fidl::decode!(AddressPool, D, val, decoder, _inner_offset, depth)?;
5480 } else {
5481 unreachable!()
5482 }
5483 }
5484 3 => {
5485 #[allow(irrefutable_let_patterns)]
5486 if let Parameter::Lease(_) = self {
5487 } else {
5489 *self = Parameter::Lease(fidl::new_empty!(LeaseLength, D));
5491 }
5492 #[allow(irrefutable_let_patterns)]
5493 if let Parameter::Lease(ref mut val) = self {
5494 fidl::decode!(LeaseLength, D, val, decoder, _inner_offset, depth)?;
5495 } else {
5496 unreachable!()
5497 }
5498 }
5499 4 => {
5500 #[allow(irrefutable_let_patterns)]
5501 if let Parameter::PermittedMacs(_) = self {
5502 } else {
5504 *self = Parameter::PermittedMacs(
5506 fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::MacAddress, 256>, D),
5507 );
5508 }
5509 #[allow(irrefutable_let_patterns)]
5510 if let Parameter::PermittedMacs(ref mut val) = self {
5511 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::MacAddress, 256>, D, val, decoder, _inner_offset, depth)?;
5512 } else {
5513 unreachable!()
5514 }
5515 }
5516 5 => {
5517 #[allow(irrefutable_let_patterns)]
5518 if let Parameter::StaticallyAssignedAddrs(_) = self {
5519 } else {
5521 *self = Parameter::StaticallyAssignedAddrs(
5523 fidl::new_empty!(fidl::encoding::Vector<StaticAssignment, 256>, D),
5524 );
5525 }
5526 #[allow(irrefutable_let_patterns)]
5527 if let Parameter::StaticallyAssignedAddrs(ref mut val) = self {
5528 fidl::decode!(fidl::encoding::Vector<StaticAssignment, 256>, D, val, decoder, _inner_offset, depth)?;
5529 } else {
5530 unreachable!()
5531 }
5532 }
5533 6 => {
5534 #[allow(irrefutable_let_patterns)]
5535 if let Parameter::ArpProbe(_) = self {
5536 } else {
5538 *self = Parameter::ArpProbe(fidl::new_empty!(bool, D));
5540 }
5541 #[allow(irrefutable_let_patterns)]
5542 if let Parameter::ArpProbe(ref mut val) = self {
5543 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
5544 } else {
5545 unreachable!()
5546 }
5547 }
5548 7 => {
5549 #[allow(irrefutable_let_patterns)]
5550 if let Parameter::BoundDeviceNames(_) = self {
5551 } else {
5553 *self = Parameter::BoundDeviceNames(fidl::new_empty!(
5555 fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 256>,
5556 D
5557 ));
5558 }
5559 #[allow(irrefutable_let_patterns)]
5560 if let Parameter::BoundDeviceNames(ref mut val) = self {
5561 fidl::decode!(
5562 fidl::encoding::Vector<fidl::encoding::BoundedString<256>, 256>,
5563 D,
5564 val,
5565 decoder,
5566 _inner_offset,
5567 depth
5568 )?;
5569 } else {
5570 unreachable!()
5571 }
5572 }
5573 #[allow(deprecated)]
5574 ordinal => {
5575 for _ in 0..num_handles {
5576 decoder.drop_next_handle()?;
5577 }
5578 *self = Parameter::__SourceBreaking { unknown_ordinal: ordinal };
5579 }
5580 }
5581 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
5582 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5583 }
5584 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5585 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5586 }
5587 Ok(())
5588 }
5589 }
5590}