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 HostName = String;
16
17pub type InstanceName = String;
21
22pub type ServiceName = String;
29
30pub type SubtypeName = String;
34
35pub type TxtCharacterString = Vec<u8>;
39
40pub type TxtString = String;
44
45pub const DEFAULT_PTR_TTL: i64 = 120000000000;
46
47pub const DEFAULT_SRV_PRIORITY: u16 = 0;
48
49pub const DEFAULT_SRV_TTL: i64 = 120000000000;
50
51pub const DEFAULT_SRV_WEIGHT: u16 = 0;
52
53pub const DEFAULT_TXT_TTL: i64 = 4500000000000;
54
55pub const MAX_ADDRESSES: u32 = 64;
56
57pub const MAX_SUBTYPES: u32 = 256;
58
59pub const MAX_TEXT_STRINGS: u32 = 256;
60
61bitflags! {
62 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
64 pub struct IpVersions: u32 {
65 const V4 = 1;
67 const V6 = 2;
69 }
70}
71
72impl IpVersions {}
73
74bitflags! {
75 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
77 pub struct Media: u32 {
78 const WIRED = 1;
80 const WIRELESS = 2;
82 }
83}
84
85impl Media {}
86
87#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
89#[repr(u32)]
90pub enum Error {
91 InvalidServiceName = 1,
93 InvalidInstanceName = 2,
95 AlreadyPublishedOnSubnet = 4,
99 InvalidMedia = 5,
100}
101
102impl Error {
103 #[inline]
104 pub fn from_primitive(prim: u32) -> Option<Self> {
105 match prim {
106 1 => Some(Self::InvalidServiceName),
107 2 => Some(Self::InvalidInstanceName),
108 4 => Some(Self::AlreadyPublishedOnSubnet),
109 5 => Some(Self::InvalidMedia),
110 _ => None,
111 }
112 }
113
114 #[inline]
115 pub const fn into_primitive(self) -> u32 {
116 self as u32
117 }
118}
119
120#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
122#[repr(u32)]
123pub enum OnPublicationError {
124 DoNotRespond = 1,
126}
127
128impl OnPublicationError {
129 #[inline]
130 pub fn from_primitive(prim: u32) -> Option<Self> {
131 match prim {
132 1 => Some(Self::DoNotRespond),
133 _ => None,
134 }
135 }
136
137 #[inline]
138 pub const fn into_primitive(self) -> u32 {
139 self as u32
140 }
141}
142
143#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
145#[repr(u32)]
146pub enum PublicationCause {
147 Announcement = 1,
149 QueryMulticastResponse = 2,
152 QueryUnicastResponse = 3,
155}
156
157impl PublicationCause {
158 #[inline]
159 pub fn from_primitive(prim: u32) -> Option<Self> {
160 match prim {
161 1 => Some(Self::Announcement),
162 2 => Some(Self::QueryMulticastResponse),
163 3 => Some(Self::QueryUnicastResponse),
164 _ => None,
165 }
166 }
167
168 #[inline]
169 pub const fn into_primitive(self) -> u32 {
170 self as u32
171 }
172}
173
174#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
176pub enum PublishProxyHostError {
177 AlreadyPublishedLocally,
179 AlreadyPublishedOnSubnet,
182 #[doc(hidden)]
183 __SourceBreaking { unknown_ordinal: u32 },
184}
185
186#[macro_export]
188macro_rules! PublishProxyHostErrorUnknown {
189 () => {
190 _
191 };
192}
193
194impl PublishProxyHostError {
195 #[inline]
196 pub fn from_primitive(prim: u32) -> Option<Self> {
197 match prim {
198 1 => Some(Self::AlreadyPublishedLocally),
199 2 => Some(Self::AlreadyPublishedOnSubnet),
200 _ => None,
201 }
202 }
203
204 #[inline]
205 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
206 match prim {
207 1 => Self::AlreadyPublishedLocally,
208 2 => Self::AlreadyPublishedOnSubnet,
209 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
210 }
211 }
212
213 #[inline]
214 pub fn unknown() -> Self {
215 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
216 }
217
218 #[inline]
219 pub const fn into_primitive(self) -> u32 {
220 match self {
221 Self::AlreadyPublishedLocally => 1,
222 Self::AlreadyPublishedOnSubnet => 2,
223 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
224 }
225 }
226
227 #[inline]
228 pub fn is_unknown(&self) -> bool {
229 match self {
230 Self::__SourceBreaking { unknown_ordinal: _ } => true,
231 _ => false,
232 }
233 }
234}
235
236#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
238#[repr(u32)]
239pub enum PublishServiceInstanceError {
240 AlreadyPublishedLocally = 1,
242 AlreadyPublishedOnSubnet = 2,
245}
246
247impl PublishServiceInstanceError {
248 #[inline]
249 pub fn from_primitive(prim: u32) -> Option<Self> {
250 match prim {
251 1 => Some(Self::AlreadyPublishedLocally),
252 2 => Some(Self::AlreadyPublishedOnSubnet),
253 _ => None,
254 }
255 }
256
257 #[inline]
258 pub const fn into_primitive(self) -> u32 {
259 self as u32
260 }
261}
262
263#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
265#[repr(u32)]
266pub enum ResourceType {
267 Ptr = 12,
269 Any = 255,
271}
272
273impl ResourceType {
274 #[inline]
275 pub fn from_primitive(prim: u32) -> Option<Self> {
276 match prim {
277 12 => Some(Self::Ptr),
278 255 => Some(Self::Any),
279 _ => None,
280 }
281 }
282
283 #[inline]
284 pub const fn into_primitive(self) -> u32 {
285 self as u32
286 }
287}
288
289#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
291#[repr(u32)]
292pub enum ServiceInstancePublicationCause {
293 Announcement = 1,
295 QueryMulticastResponse = 2,
298 QueryUnicastResponse = 3,
301}
302
303impl ServiceInstancePublicationCause {
304 #[inline]
305 pub fn from_primitive(prim: u32) -> Option<Self> {
306 match prim {
307 1 => Some(Self::Announcement),
308 2 => Some(Self::QueryMulticastResponse),
309 3 => Some(Self::QueryUnicastResponse),
310 _ => None,
311 }
312 }
313
314 #[inline]
315 pub const fn into_primitive(self) -> u32 {
316 self as u32
317 }
318}
319
320#[derive(Clone, Debug, PartialEq)]
323pub struct HostAddress {
324 pub address: fidl_fuchsia_net_common::IpAddress,
328 pub interface: u64,
332 pub ttl: i64,
335}
336
337impl fidl::Persistable for HostAddress {}
338
339#[derive(Clone, Debug, PartialEq)]
340pub struct HostNameResolverResolveHostNameRequest {
341 pub host: String,
342 pub timeout: i64,
343 pub options: HostNameResolutionOptions,
344}
345
346impl fidl::Persistable for HostNameResolverResolveHostNameRequest {}
347
348#[derive(Clone, Debug, PartialEq)]
349pub struct HostNameResolverResolveHostNameResponse {
350 pub addresses: Vec<HostAddress>,
351}
352
353impl fidl::Persistable for HostNameResolverResolveHostNameResponse {}
354
355#[derive(Clone, Debug, PartialEq)]
356pub struct HostNameSubscriptionListenerOnAddressesChangedRequest {
357 pub addresses: Vec<HostAddress>,
358}
359
360impl fidl::Persistable for HostNameSubscriptionListenerOnAddressesChangedRequest {}
361
362#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
368pub struct Publication {
369 pub port: u16,
371 pub text: Vec<String>,
373 pub srv_priority: u16,
376 pub srv_weight: u16,
379 pub ptr_ttl: i64,
381 pub srv_ttl: i64,
383 pub txt_ttl: i64,
385}
386
387impl fidl::Persistable for Publication {}
388
389#[derive(Clone, Debug, PartialEq)]
390pub struct PublicationResponderOnPublicationRequest {
391 pub publication_cause: PublicationCause,
392 pub subtype: Option<String>,
393 pub source_addresses: Vec<fidl_fuchsia_net_common::IpAddress>,
394}
395
396impl fidl::Persistable for PublicationResponderOnPublicationRequest {}
397
398#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
399pub struct PublicationResponderOnPublicationResponse {
400 pub publication: Option<Box<Publication>>,
401}
402
403impl fidl::Persistable for PublicationResponderOnPublicationResponse {}
404
405#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
406pub struct PublicationResponderSetSubtypesRequest {
407 pub subtypes: Vec<String>,
408}
409
410impl fidl::Persistable for PublicationResponderSetSubtypesRequest {}
411
412#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
413pub struct ResolverResolveHostNameRequest {
414 pub host: String,
415 pub timeout: i64,
416}
417
418impl fidl::Persistable for ResolverResolveHostNameRequest {}
419
420#[derive(Clone, Debug, PartialEq)]
421pub struct ResolverResolveHostNameResponse {
422 pub v4_address: Option<Box<fidl_fuchsia_net_common::Ipv4Address>>,
423 pub v6_address: Option<Box<fidl_fuchsia_net_common::Ipv6Address>>,
424}
425
426impl fidl::Persistable for ResolverResolveHostNameResponse {}
427
428#[derive(Clone, Debug, PartialEq)]
429pub struct ServiceInstancePublicationResponderOnPublicationRequest {
430 pub publication_cause: ServiceInstancePublicationCause,
431 pub subtype: Option<String>,
432 pub source_addresses: Vec<fidl_fuchsia_net_common::IpAddress>,
433}
434
435impl fidl::Persistable for ServiceInstancePublicationResponderOnPublicationRequest {}
436
437#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
438pub struct ServiceInstancePublicationResponderSetSubtypesRequest {
439 pub subtypes: Vec<String>,
440}
441
442impl fidl::Persistable for ServiceInstancePublicationResponderSetSubtypesRequest {}
443
444#[derive(Clone, Debug, PartialEq)]
445pub struct ServiceInstancePublicationResponderOnPublicationResponse {
446 pub publication: ServiceInstancePublication,
447}
448
449impl fidl::Persistable for ServiceInstancePublicationResponderOnPublicationResponse {}
450
451#[derive(Clone, Debug, PartialEq)]
452pub struct ServiceInstanceResolverResolveServiceInstanceRequest {
453 pub service: String,
454 pub instance: String,
455 pub timeout: i64,
456 pub options: ServiceInstanceResolutionOptions,
457}
458
459impl fidl::Persistable for ServiceInstanceResolverResolveServiceInstanceRequest {}
460
461#[derive(Clone, Debug, PartialEq)]
462pub struct ServiceInstanceResolverResolveServiceInstanceResponse {
463 pub instance: ServiceInstance,
464}
465
466impl fidl::Persistable for ServiceInstanceResolverResolveServiceInstanceResponse {}
467
468#[derive(Clone, Debug, PartialEq)]
469pub struct ServiceSubscriberOnInstanceChangedRequest {
470 pub instance: ServiceInstance,
471}
472
473impl fidl::Persistable for ServiceSubscriberOnInstanceChangedRequest {}
474
475#[derive(Clone, Debug, PartialEq)]
476pub struct ServiceSubscriberOnInstanceDiscoveredRequest {
477 pub instance: ServiceInstance,
478}
479
480impl fidl::Persistable for ServiceSubscriberOnInstanceDiscoveredRequest {}
481
482#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
483pub struct ServiceSubscriberOnInstanceLostRequest {
484 pub service: String,
485 pub instance: String,
486}
487
488impl fidl::Persistable for ServiceSubscriberOnInstanceLostRequest {}
489
490#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
491pub struct ServiceSubscriberOnQueryRequest {
492 pub resource_type: ResourceType,
493}
494
495impl fidl::Persistable for ServiceSubscriberOnQueryRequest {}
496
497#[derive(Clone, Debug, PartialEq)]
498pub struct ServiceSubscriptionListenerOnInstanceChangedRequest {
499 pub instance: ServiceInstance,
500}
501
502impl fidl::Persistable for ServiceSubscriptionListenerOnInstanceChangedRequest {}
503
504#[derive(Clone, Debug, PartialEq)]
505pub struct ServiceSubscriptionListenerOnInstanceDiscoveredRequest {
506 pub instance: ServiceInstance,
507}
508
509impl fidl::Persistable for ServiceSubscriptionListenerOnInstanceDiscoveredRequest {}
510
511#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
512pub struct ServiceSubscriptionListenerOnInstanceLostRequest {
513 pub service: String,
514 pub instance: String,
515}
516
517impl fidl::Persistable for ServiceSubscriptionListenerOnInstanceLostRequest {}
518
519#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
520pub struct ServiceSubscriptionListenerOnQueryRequest {
521 pub resource_type: ResourceType,
522}
523
524impl fidl::Persistable for ServiceSubscriptionListenerOnQueryRequest {}
525
526#[derive(Clone, Debug, Default, PartialEq)]
528pub struct HostNameResolutionOptions {
529 pub media: Option<Media>,
532 pub ip_versions: Option<IpVersions>,
535 pub exclude_local: Option<bool>,
536 pub exclude_local_proxies: Option<bool>,
537 #[doc(hidden)]
538 pub __source_breaking: fidl::marker::SourceBreaking,
539}
540
541impl fidl::Persistable for HostNameResolutionOptions {}
542
543#[derive(Clone, Debug, Default, PartialEq)]
545pub struct HostNameSubscriptionOptions {
546 pub media: Option<Media>,
549 pub ip_versions: Option<IpVersions>,
552 pub exclude_local: Option<bool>,
553 pub exclude_local_proxies: Option<bool>,
554 #[doc(hidden)]
555 pub __source_breaking: fidl::marker::SourceBreaking,
556}
557
558impl fidl::Persistable for HostNameSubscriptionOptions {}
559
560#[derive(Clone, Debug, Default, PartialEq)]
562pub struct ProxyHostPublicationOptions {
563 pub media: Option<Media>,
567 pub ip_versions: Option<IpVersions>,
571 pub perform_probe: Option<bool>,
574 #[doc(hidden)]
575 pub __source_breaking: fidl::marker::SourceBreaking,
576}
577
578impl fidl::Persistable for ProxyHostPublicationOptions {}
579
580#[derive(Clone, Debug, Default, PartialEq)]
582pub struct ServiceInstance {
583 pub service: Option<String>,
585 pub instance: Option<String>,
587 pub ipv4_endpoint: Option<fidl_fuchsia_net_common::Ipv4SocketAddress>,
589 pub ipv6_endpoint: Option<fidl_fuchsia_net_common::Ipv6SocketAddress>,
591 pub text: Option<Vec<String>>,
593 pub srv_priority: Option<u16>,
596 pub srv_weight: Option<u16>,
599 pub target: Option<String>,
601 pub addresses: Option<Vec<fidl_fuchsia_net_common::SocketAddress>>,
603 pub text_strings: Option<Vec<Vec<u8>>>,
605 #[doc(hidden)]
606 pub __source_breaking: fidl::marker::SourceBreaking,
607}
608
609impl fidl::Persistable for ServiceInstance {}
610
611#[derive(Clone, Debug, Default, PartialEq)]
617pub struct ServiceInstancePublication {
618 pub port: Option<u16>,
620 pub text: Option<Vec<Vec<u8>>>,
623 pub srv_priority: Option<u16>,
627 pub srv_weight: Option<u16>,
631 pub ptr_ttl: Option<i64>,
634 pub srv_ttl: Option<i64>,
637 pub txt_ttl: Option<i64>,
640 #[doc(hidden)]
641 pub __source_breaking: fidl::marker::SourceBreaking,
642}
643
644impl fidl::Persistable for ServiceInstancePublication {}
645
646#[derive(Clone, Debug, Default, PartialEq)]
648pub struct ServiceInstancePublicationOptions {
649 pub media: Option<Media>,
655 pub ip_versions: Option<IpVersions>,
661 pub perform_probe: Option<bool>,
664 #[doc(hidden)]
665 pub __source_breaking: fidl::marker::SourceBreaking,
666}
667
668impl fidl::Persistable for ServiceInstancePublicationOptions {}
669
670#[derive(Clone, Debug, Default, PartialEq)]
672pub struct ServiceInstanceResolutionOptions {
673 pub media: Option<Media>,
676 pub ip_versions: Option<IpVersions>,
679 pub exclude_local: Option<bool>,
680 pub exclude_local_proxies: Option<bool>,
681 #[doc(hidden)]
682 pub __source_breaking: fidl::marker::SourceBreaking,
683}
684
685impl fidl::Persistable for ServiceInstanceResolutionOptions {}
686
687#[derive(Clone, Debug, Default, PartialEq)]
689pub struct ServiceSubscriptionOptions {
690 pub media: Option<Media>,
693 pub ip_versions: Option<IpVersions>,
696 pub exclude_local: Option<bool>,
697 pub exclude_local_proxies: Option<bool>,
698 #[doc(hidden)]
699 pub __source_breaking: fidl::marker::SourceBreaking,
700}
701
702impl fidl::Persistable for ServiceSubscriptionOptions {}
703
704pub mod host_name_resolver_ordinals {
705 pub const RESOLVE_HOST_NAME: u64 = 0x54f422692b53c46d;
706}
707
708pub mod host_name_subscriber_ordinals {
709 pub const SUBSCRIBE_TO_HOST_NAME: u64 = 0x23b6c5f4954f40ea;
710}
711
712pub mod host_name_subscription_listener_ordinals {
713 pub const ON_ADDRESSES_CHANGED: u64 = 0x44f5e70b2e8c1472;
714}
715
716pub mod proxy_host_publisher_ordinals {
717 pub const PUBLISH_PROXY_HOST: u64 = 0x639bfff950f973c2;
718}
719
720pub mod publication_responder__ordinals {
721 pub const ON_PUBLICATION: u64 = 0x71d805aee2907d06;
722 pub const SET_SUBTYPES: u64 = 0x5593e156370b19df;
723 pub const REANNOUNCE: u64 = 0x2550cc2a43aa838b;
724}
725
726pub mod publisher_ordinals {
727 pub const PUBLISH_SERVICE_INSTANCE: u64 = 0x3712171c42878797;
728}
729
730pub mod resolver_ordinals {
731 pub const RESOLVE_HOST_NAME: u64 = 0x3c8b2b50aad28e4a;
732}
733
734pub mod service_instance_publication_responder__ordinals {
735 pub const ON_PUBLICATION: u64 = 0x71753d79b12571ca;
736 pub const SET_SUBTYPES: u64 = 0x217fed6e404312a9;
737 pub const REANNOUNCE: u64 = 0x1b48d9ed30dce1a8;
738}
739
740pub mod service_instance_publisher_ordinals {
741 pub const PUBLISH_SERVICE_INSTANCE: u64 = 0x25d5fd0912cb5a9e;
742}
743
744pub mod service_instance_resolver_ordinals {
745 pub const RESOLVE_SERVICE_INSTANCE: u64 = 0x1a0d0c9fc6f2fd7;
746}
747
748pub mod service_subscriber_ordinals {
749 pub const ON_INSTANCE_DISCOVERED: u64 = 0x74aa039fd81dcab2;
750 pub const ON_INSTANCE_CHANGED: u64 = 0x24da258aad929434;
751 pub const ON_INSTANCE_LOST: u64 = 0x5beddb781791773f;
752 pub const ON_QUERY: u64 = 0x1d0496189fdb23f5;
753}
754
755pub mod service_subscriber2_ordinals {
756 pub const SUBSCRIBE_TO_SERVICE: u64 = 0x78f713d88dcf34aa;
757 pub const SUBSCRIBE_TO_ALL_SERVICES: u64 = 0x7c5192d46e380468;
758}
759
760pub mod service_subscription_listener_ordinals {
761 pub const ON_INSTANCE_DISCOVERED: u64 = 0x82f861e0b26a186;
762 pub const ON_INSTANCE_CHANGED: u64 = 0x7da325aa758d8929;
763 pub const ON_INSTANCE_LOST: u64 = 0x2ecb2f1600c5c6dc;
764 pub const ON_QUERY: u64 = 0x4f4eb8e3d10db611;
765}
766
767pub mod subscriber_ordinals {
768 pub const SUBSCRIBE_TO_SERVICE: u64 = 0x3a1a3b02c1809e3f;
769}
770
771mod internal {
772 use super::*;
773 unsafe impl fidl::encoding::TypeMarker for IpVersions {
774 type Owned = Self;
775
776 #[inline(always)]
777 fn inline_align(_context: fidl::encoding::Context) -> usize {
778 4
779 }
780
781 #[inline(always)]
782 fn inline_size(_context: fidl::encoding::Context) -> usize {
783 4
784 }
785 }
786
787 impl fidl::encoding::ValueTypeMarker for IpVersions {
788 type Borrowed<'a> = Self;
789 #[inline(always)]
790 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
791 *value
792 }
793 }
794
795 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for IpVersions {
796 #[inline]
797 unsafe fn encode(
798 self,
799 encoder: &mut fidl::encoding::Encoder<'_, D>,
800 offset: usize,
801 _depth: fidl::encoding::Depth,
802 ) -> fidl::Result<()> {
803 encoder.debug_check_bounds::<Self>(offset);
804 if self.bits() & Self::all().bits() != self.bits() {
805 return Err(fidl::Error::InvalidBitsValue);
806 }
807 encoder.write_num(self.bits(), offset);
808 Ok(())
809 }
810 }
811
812 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IpVersions {
813 #[inline(always)]
814 fn new_empty() -> Self {
815 Self::empty()
816 }
817
818 #[inline]
819 unsafe fn decode(
820 &mut self,
821 decoder: &mut fidl::encoding::Decoder<'_, D>,
822 offset: usize,
823 _depth: fidl::encoding::Depth,
824 ) -> fidl::Result<()> {
825 decoder.debug_check_bounds::<Self>(offset);
826 let prim = decoder.read_num::<u32>(offset);
827 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
828 Ok(())
829 }
830 }
831 unsafe impl fidl::encoding::TypeMarker for Media {
832 type Owned = Self;
833
834 #[inline(always)]
835 fn inline_align(_context: fidl::encoding::Context) -> usize {
836 4
837 }
838
839 #[inline(always)]
840 fn inline_size(_context: fidl::encoding::Context) -> usize {
841 4
842 }
843 }
844
845 impl fidl::encoding::ValueTypeMarker for Media {
846 type Borrowed<'a> = Self;
847 #[inline(always)]
848 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
849 *value
850 }
851 }
852
853 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Media {
854 #[inline]
855 unsafe fn encode(
856 self,
857 encoder: &mut fidl::encoding::Encoder<'_, D>,
858 offset: usize,
859 _depth: fidl::encoding::Depth,
860 ) -> fidl::Result<()> {
861 encoder.debug_check_bounds::<Self>(offset);
862 if self.bits() & Self::all().bits() != self.bits() {
863 return Err(fidl::Error::InvalidBitsValue);
864 }
865 encoder.write_num(self.bits(), offset);
866 Ok(())
867 }
868 }
869
870 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Media {
871 #[inline(always)]
872 fn new_empty() -> Self {
873 Self::empty()
874 }
875
876 #[inline]
877 unsafe fn decode(
878 &mut self,
879 decoder: &mut fidl::encoding::Decoder<'_, D>,
880 offset: usize,
881 _depth: fidl::encoding::Depth,
882 ) -> fidl::Result<()> {
883 decoder.debug_check_bounds::<Self>(offset);
884 let prim = decoder.read_num::<u32>(offset);
885 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
886 Ok(())
887 }
888 }
889 unsafe impl fidl::encoding::TypeMarker for Error {
890 type Owned = Self;
891
892 #[inline(always)]
893 fn inline_align(_context: fidl::encoding::Context) -> usize {
894 std::mem::align_of::<u32>()
895 }
896
897 #[inline(always)]
898 fn inline_size(_context: fidl::encoding::Context) -> usize {
899 std::mem::size_of::<u32>()
900 }
901
902 #[inline(always)]
903 fn encode_is_copy() -> bool {
904 true
905 }
906
907 #[inline(always)]
908 fn decode_is_copy() -> bool {
909 false
910 }
911 }
912
913 impl fidl::encoding::ValueTypeMarker for Error {
914 type Borrowed<'a> = Self;
915 #[inline(always)]
916 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
917 *value
918 }
919 }
920
921 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Error {
922 #[inline]
923 unsafe fn encode(
924 self,
925 encoder: &mut fidl::encoding::Encoder<'_, D>,
926 offset: usize,
927 _depth: fidl::encoding::Depth,
928 ) -> fidl::Result<()> {
929 encoder.debug_check_bounds::<Self>(offset);
930 encoder.write_num(self.into_primitive(), offset);
931 Ok(())
932 }
933 }
934
935 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Error {
936 #[inline(always)]
937 fn new_empty() -> Self {
938 Self::InvalidServiceName
939 }
940
941 #[inline]
942 unsafe fn decode(
943 &mut self,
944 decoder: &mut fidl::encoding::Decoder<'_, D>,
945 offset: usize,
946 _depth: fidl::encoding::Depth,
947 ) -> fidl::Result<()> {
948 decoder.debug_check_bounds::<Self>(offset);
949 let prim = decoder.read_num::<u32>(offset);
950
951 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
952 Ok(())
953 }
954 }
955 unsafe impl fidl::encoding::TypeMarker for OnPublicationError {
956 type Owned = Self;
957
958 #[inline(always)]
959 fn inline_align(_context: fidl::encoding::Context) -> usize {
960 std::mem::align_of::<u32>()
961 }
962
963 #[inline(always)]
964 fn inline_size(_context: fidl::encoding::Context) -> usize {
965 std::mem::size_of::<u32>()
966 }
967
968 #[inline(always)]
969 fn encode_is_copy() -> bool {
970 true
971 }
972
973 #[inline(always)]
974 fn decode_is_copy() -> bool {
975 false
976 }
977 }
978
979 impl fidl::encoding::ValueTypeMarker for OnPublicationError {
980 type Borrowed<'a> = Self;
981 #[inline(always)]
982 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
983 *value
984 }
985 }
986
987 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
988 for OnPublicationError
989 {
990 #[inline]
991 unsafe fn encode(
992 self,
993 encoder: &mut fidl::encoding::Encoder<'_, D>,
994 offset: usize,
995 _depth: fidl::encoding::Depth,
996 ) -> fidl::Result<()> {
997 encoder.debug_check_bounds::<Self>(offset);
998 encoder.write_num(self.into_primitive(), offset);
999 Ok(())
1000 }
1001 }
1002
1003 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OnPublicationError {
1004 #[inline(always)]
1005 fn new_empty() -> Self {
1006 Self::DoNotRespond
1007 }
1008
1009 #[inline]
1010 unsafe fn decode(
1011 &mut self,
1012 decoder: &mut fidl::encoding::Decoder<'_, D>,
1013 offset: usize,
1014 _depth: fidl::encoding::Depth,
1015 ) -> fidl::Result<()> {
1016 decoder.debug_check_bounds::<Self>(offset);
1017 let prim = decoder.read_num::<u32>(offset);
1018
1019 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1020 Ok(())
1021 }
1022 }
1023 unsafe impl fidl::encoding::TypeMarker for PublicationCause {
1024 type Owned = Self;
1025
1026 #[inline(always)]
1027 fn inline_align(_context: fidl::encoding::Context) -> usize {
1028 std::mem::align_of::<u32>()
1029 }
1030
1031 #[inline(always)]
1032 fn inline_size(_context: fidl::encoding::Context) -> usize {
1033 std::mem::size_of::<u32>()
1034 }
1035
1036 #[inline(always)]
1037 fn encode_is_copy() -> bool {
1038 true
1039 }
1040
1041 #[inline(always)]
1042 fn decode_is_copy() -> bool {
1043 false
1044 }
1045 }
1046
1047 impl fidl::encoding::ValueTypeMarker for PublicationCause {
1048 type Borrowed<'a> = Self;
1049 #[inline(always)]
1050 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1051 *value
1052 }
1053 }
1054
1055 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1056 for PublicationCause
1057 {
1058 #[inline]
1059 unsafe fn encode(
1060 self,
1061 encoder: &mut fidl::encoding::Encoder<'_, D>,
1062 offset: usize,
1063 _depth: fidl::encoding::Depth,
1064 ) -> fidl::Result<()> {
1065 encoder.debug_check_bounds::<Self>(offset);
1066 encoder.write_num(self.into_primitive(), offset);
1067 Ok(())
1068 }
1069 }
1070
1071 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PublicationCause {
1072 #[inline(always)]
1073 fn new_empty() -> Self {
1074 Self::Announcement
1075 }
1076
1077 #[inline]
1078 unsafe fn decode(
1079 &mut self,
1080 decoder: &mut fidl::encoding::Decoder<'_, D>,
1081 offset: usize,
1082 _depth: fidl::encoding::Depth,
1083 ) -> fidl::Result<()> {
1084 decoder.debug_check_bounds::<Self>(offset);
1085 let prim = decoder.read_num::<u32>(offset);
1086
1087 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1088 Ok(())
1089 }
1090 }
1091 unsafe impl fidl::encoding::TypeMarker for PublishProxyHostError {
1092 type Owned = Self;
1093
1094 #[inline(always)]
1095 fn inline_align(_context: fidl::encoding::Context) -> usize {
1096 std::mem::align_of::<u32>()
1097 }
1098
1099 #[inline(always)]
1100 fn inline_size(_context: fidl::encoding::Context) -> usize {
1101 std::mem::size_of::<u32>()
1102 }
1103
1104 #[inline(always)]
1105 fn encode_is_copy() -> bool {
1106 false
1107 }
1108
1109 #[inline(always)]
1110 fn decode_is_copy() -> bool {
1111 false
1112 }
1113 }
1114
1115 impl fidl::encoding::ValueTypeMarker for PublishProxyHostError {
1116 type Borrowed<'a> = Self;
1117 #[inline(always)]
1118 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1119 *value
1120 }
1121 }
1122
1123 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1124 for PublishProxyHostError
1125 {
1126 #[inline]
1127 unsafe fn encode(
1128 self,
1129 encoder: &mut fidl::encoding::Encoder<'_, D>,
1130 offset: usize,
1131 _depth: fidl::encoding::Depth,
1132 ) -> fidl::Result<()> {
1133 encoder.debug_check_bounds::<Self>(offset);
1134 encoder.write_num(self.into_primitive(), offset);
1135 Ok(())
1136 }
1137 }
1138
1139 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PublishProxyHostError {
1140 #[inline(always)]
1141 fn new_empty() -> Self {
1142 Self::unknown()
1143 }
1144
1145 #[inline]
1146 unsafe fn decode(
1147 &mut self,
1148 decoder: &mut fidl::encoding::Decoder<'_, D>,
1149 offset: usize,
1150 _depth: fidl::encoding::Depth,
1151 ) -> fidl::Result<()> {
1152 decoder.debug_check_bounds::<Self>(offset);
1153 let prim = decoder.read_num::<u32>(offset);
1154
1155 *self = Self::from_primitive_allow_unknown(prim);
1156 Ok(())
1157 }
1158 }
1159 unsafe impl fidl::encoding::TypeMarker for PublishServiceInstanceError {
1160 type Owned = Self;
1161
1162 #[inline(always)]
1163 fn inline_align(_context: fidl::encoding::Context) -> usize {
1164 std::mem::align_of::<u32>()
1165 }
1166
1167 #[inline(always)]
1168 fn inline_size(_context: fidl::encoding::Context) -> usize {
1169 std::mem::size_of::<u32>()
1170 }
1171
1172 #[inline(always)]
1173 fn encode_is_copy() -> bool {
1174 true
1175 }
1176
1177 #[inline(always)]
1178 fn decode_is_copy() -> bool {
1179 false
1180 }
1181 }
1182
1183 impl fidl::encoding::ValueTypeMarker for PublishServiceInstanceError {
1184 type Borrowed<'a> = Self;
1185 #[inline(always)]
1186 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1187 *value
1188 }
1189 }
1190
1191 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1192 for PublishServiceInstanceError
1193 {
1194 #[inline]
1195 unsafe fn encode(
1196 self,
1197 encoder: &mut fidl::encoding::Encoder<'_, D>,
1198 offset: usize,
1199 _depth: fidl::encoding::Depth,
1200 ) -> fidl::Result<()> {
1201 encoder.debug_check_bounds::<Self>(offset);
1202 encoder.write_num(self.into_primitive(), offset);
1203 Ok(())
1204 }
1205 }
1206
1207 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1208 for PublishServiceInstanceError
1209 {
1210 #[inline(always)]
1211 fn new_empty() -> Self {
1212 Self::AlreadyPublishedLocally
1213 }
1214
1215 #[inline]
1216 unsafe fn decode(
1217 &mut self,
1218 decoder: &mut fidl::encoding::Decoder<'_, D>,
1219 offset: usize,
1220 _depth: fidl::encoding::Depth,
1221 ) -> fidl::Result<()> {
1222 decoder.debug_check_bounds::<Self>(offset);
1223 let prim = decoder.read_num::<u32>(offset);
1224
1225 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1226 Ok(())
1227 }
1228 }
1229 unsafe impl fidl::encoding::TypeMarker for ResourceType {
1230 type Owned = Self;
1231
1232 #[inline(always)]
1233 fn inline_align(_context: fidl::encoding::Context) -> usize {
1234 std::mem::align_of::<u32>()
1235 }
1236
1237 #[inline(always)]
1238 fn inline_size(_context: fidl::encoding::Context) -> usize {
1239 std::mem::size_of::<u32>()
1240 }
1241
1242 #[inline(always)]
1243 fn encode_is_copy() -> bool {
1244 true
1245 }
1246
1247 #[inline(always)]
1248 fn decode_is_copy() -> bool {
1249 false
1250 }
1251 }
1252
1253 impl fidl::encoding::ValueTypeMarker for ResourceType {
1254 type Borrowed<'a> = Self;
1255 #[inline(always)]
1256 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1257 *value
1258 }
1259 }
1260
1261 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ResourceType {
1262 #[inline]
1263 unsafe fn encode(
1264 self,
1265 encoder: &mut fidl::encoding::Encoder<'_, D>,
1266 offset: usize,
1267 _depth: fidl::encoding::Depth,
1268 ) -> fidl::Result<()> {
1269 encoder.debug_check_bounds::<Self>(offset);
1270 encoder.write_num(self.into_primitive(), offset);
1271 Ok(())
1272 }
1273 }
1274
1275 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ResourceType {
1276 #[inline(always)]
1277 fn new_empty() -> Self {
1278 Self::Ptr
1279 }
1280
1281 #[inline]
1282 unsafe fn decode(
1283 &mut self,
1284 decoder: &mut fidl::encoding::Decoder<'_, D>,
1285 offset: usize,
1286 _depth: fidl::encoding::Depth,
1287 ) -> fidl::Result<()> {
1288 decoder.debug_check_bounds::<Self>(offset);
1289 let prim = decoder.read_num::<u32>(offset);
1290
1291 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1292 Ok(())
1293 }
1294 }
1295 unsafe impl fidl::encoding::TypeMarker for ServiceInstancePublicationCause {
1296 type Owned = Self;
1297
1298 #[inline(always)]
1299 fn inline_align(_context: fidl::encoding::Context) -> usize {
1300 std::mem::align_of::<u32>()
1301 }
1302
1303 #[inline(always)]
1304 fn inline_size(_context: fidl::encoding::Context) -> usize {
1305 std::mem::size_of::<u32>()
1306 }
1307
1308 #[inline(always)]
1309 fn encode_is_copy() -> bool {
1310 true
1311 }
1312
1313 #[inline(always)]
1314 fn decode_is_copy() -> bool {
1315 false
1316 }
1317 }
1318
1319 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublicationCause {
1320 type Borrowed<'a> = Self;
1321 #[inline(always)]
1322 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1323 *value
1324 }
1325 }
1326
1327 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
1328 for ServiceInstancePublicationCause
1329 {
1330 #[inline]
1331 unsafe fn encode(
1332 self,
1333 encoder: &mut fidl::encoding::Encoder<'_, D>,
1334 offset: usize,
1335 _depth: fidl::encoding::Depth,
1336 ) -> fidl::Result<()> {
1337 encoder.debug_check_bounds::<Self>(offset);
1338 encoder.write_num(self.into_primitive(), offset);
1339 Ok(())
1340 }
1341 }
1342
1343 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1344 for ServiceInstancePublicationCause
1345 {
1346 #[inline(always)]
1347 fn new_empty() -> Self {
1348 Self::Announcement
1349 }
1350
1351 #[inline]
1352 unsafe fn decode(
1353 &mut self,
1354 decoder: &mut fidl::encoding::Decoder<'_, D>,
1355 offset: usize,
1356 _depth: fidl::encoding::Depth,
1357 ) -> fidl::Result<()> {
1358 decoder.debug_check_bounds::<Self>(offset);
1359 let prim = decoder.read_num::<u32>(offset);
1360
1361 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
1362 Ok(())
1363 }
1364 }
1365
1366 impl fidl::encoding::ValueTypeMarker for HostAddress {
1367 type Borrowed<'a> = &'a Self;
1368 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1369 value
1370 }
1371 }
1372
1373 unsafe impl fidl::encoding::TypeMarker for HostAddress {
1374 type Owned = Self;
1375
1376 #[inline(always)]
1377 fn inline_align(_context: fidl::encoding::Context) -> usize {
1378 8
1379 }
1380
1381 #[inline(always)]
1382 fn inline_size(_context: fidl::encoding::Context) -> usize {
1383 32
1384 }
1385 }
1386
1387 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HostAddress, D>
1388 for &HostAddress
1389 {
1390 #[inline]
1391 unsafe fn encode(
1392 self,
1393 encoder: &mut fidl::encoding::Encoder<'_, D>,
1394 offset: usize,
1395 _depth: fidl::encoding::Depth,
1396 ) -> fidl::Result<()> {
1397 encoder.debug_check_bounds::<HostAddress>(offset);
1398 fidl::encoding::Encode::<HostAddress, D>::encode(
1400 (
1401 <fidl_fuchsia_net_common::IpAddress as fidl::encoding::ValueTypeMarker>::borrow(
1402 &self.address,
1403 ),
1404 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.interface),
1405 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.ttl),
1406 ),
1407 encoder,
1408 offset,
1409 _depth,
1410 )
1411 }
1412 }
1413 unsafe impl<
1414 D: fidl::encoding::ResourceDialect,
1415 T0: fidl::encoding::Encode<fidl_fuchsia_net_common::IpAddress, D>,
1416 T1: fidl::encoding::Encode<u64, D>,
1417 T2: fidl::encoding::Encode<i64, D>,
1418 > fidl::encoding::Encode<HostAddress, D> for (T0, T1, T2)
1419 {
1420 #[inline]
1421 unsafe fn encode(
1422 self,
1423 encoder: &mut fidl::encoding::Encoder<'_, D>,
1424 offset: usize,
1425 depth: fidl::encoding::Depth,
1426 ) -> fidl::Result<()> {
1427 encoder.debug_check_bounds::<HostAddress>(offset);
1428 self.0.encode(encoder, offset + 0, depth)?;
1432 self.1.encode(encoder, offset + 16, depth)?;
1433 self.2.encode(encoder, offset + 24, depth)?;
1434 Ok(())
1435 }
1436 }
1437
1438 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HostAddress {
1439 #[inline(always)]
1440 fn new_empty() -> Self {
1441 Self {
1442 address: fidl::new_empty!(fidl_fuchsia_net_common::IpAddress, D),
1443 interface: fidl::new_empty!(u64, D),
1444 ttl: fidl::new_empty!(i64, D),
1445 }
1446 }
1447
1448 #[inline]
1449 unsafe fn decode(
1450 &mut self,
1451 decoder: &mut fidl::encoding::Decoder<'_, D>,
1452 offset: usize,
1453 _depth: fidl::encoding::Depth,
1454 ) -> fidl::Result<()> {
1455 decoder.debug_check_bounds::<Self>(offset);
1456 fidl::decode!(
1458 fidl_fuchsia_net_common::IpAddress,
1459 D,
1460 &mut self.address,
1461 decoder,
1462 offset + 0,
1463 _depth
1464 )?;
1465 fidl::decode!(u64, D, &mut self.interface, decoder, offset + 16, _depth)?;
1466 fidl::decode!(i64, D, &mut self.ttl, decoder, offset + 24, _depth)?;
1467 Ok(())
1468 }
1469 }
1470
1471 impl fidl::encoding::ValueTypeMarker for HostNameResolverResolveHostNameRequest {
1472 type Borrowed<'a> = &'a Self;
1473 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1474 value
1475 }
1476 }
1477
1478 unsafe impl fidl::encoding::TypeMarker for HostNameResolverResolveHostNameRequest {
1479 type Owned = Self;
1480
1481 #[inline(always)]
1482 fn inline_align(_context: fidl::encoding::Context) -> usize {
1483 8
1484 }
1485
1486 #[inline(always)]
1487 fn inline_size(_context: fidl::encoding::Context) -> usize {
1488 40
1489 }
1490 }
1491
1492 unsafe impl<D: fidl::encoding::ResourceDialect>
1493 fidl::encoding::Encode<HostNameResolverResolveHostNameRequest, D>
1494 for &HostNameResolverResolveHostNameRequest
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::<HostNameResolverResolveHostNameRequest>(offset);
1504 fidl::encoding::Encode::<HostNameResolverResolveHostNameRequest, D>::encode(
1506 (
1507 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
1508 &self.host,
1509 ),
1510 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.timeout),
1511 <HostNameResolutionOptions as fidl::encoding::ValueTypeMarker>::borrow(
1512 &self.options,
1513 ),
1514 ),
1515 encoder,
1516 offset,
1517 _depth,
1518 )
1519 }
1520 }
1521 unsafe impl<
1522 D: fidl::encoding::ResourceDialect,
1523 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
1524 T1: fidl::encoding::Encode<i64, D>,
1525 T2: fidl::encoding::Encode<HostNameResolutionOptions, D>,
1526 > fidl::encoding::Encode<HostNameResolverResolveHostNameRequest, D> for (T0, T1, T2)
1527 {
1528 #[inline]
1529 unsafe fn encode(
1530 self,
1531 encoder: &mut fidl::encoding::Encoder<'_, D>,
1532 offset: usize,
1533 depth: fidl::encoding::Depth,
1534 ) -> fidl::Result<()> {
1535 encoder.debug_check_bounds::<HostNameResolverResolveHostNameRequest>(offset);
1536 self.0.encode(encoder, offset + 0, depth)?;
1540 self.1.encode(encoder, offset + 16, depth)?;
1541 self.2.encode(encoder, offset + 24, depth)?;
1542 Ok(())
1543 }
1544 }
1545
1546 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1547 for HostNameResolverResolveHostNameRequest
1548 {
1549 #[inline(always)]
1550 fn new_empty() -> Self {
1551 Self {
1552 host: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
1553 timeout: fidl::new_empty!(i64, D),
1554 options: fidl::new_empty!(HostNameResolutionOptions, D),
1555 }
1556 }
1557
1558 #[inline]
1559 unsafe fn decode(
1560 &mut self,
1561 decoder: &mut fidl::encoding::Decoder<'_, D>,
1562 offset: usize,
1563 _depth: fidl::encoding::Depth,
1564 ) -> fidl::Result<()> {
1565 decoder.debug_check_bounds::<Self>(offset);
1566 fidl::decode!(
1568 fidl::encoding::BoundedString<255>,
1569 D,
1570 &mut self.host,
1571 decoder,
1572 offset + 0,
1573 _depth
1574 )?;
1575 fidl::decode!(i64, D, &mut self.timeout, decoder, offset + 16, _depth)?;
1576 fidl::decode!(
1577 HostNameResolutionOptions,
1578 D,
1579 &mut self.options,
1580 decoder,
1581 offset + 24,
1582 _depth
1583 )?;
1584 Ok(())
1585 }
1586 }
1587
1588 impl fidl::encoding::ValueTypeMarker for HostNameResolverResolveHostNameResponse {
1589 type Borrowed<'a> = &'a Self;
1590 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1591 value
1592 }
1593 }
1594
1595 unsafe impl fidl::encoding::TypeMarker for HostNameResolverResolveHostNameResponse {
1596 type Owned = Self;
1597
1598 #[inline(always)]
1599 fn inline_align(_context: fidl::encoding::Context) -> usize {
1600 8
1601 }
1602
1603 #[inline(always)]
1604 fn inline_size(_context: fidl::encoding::Context) -> usize {
1605 16
1606 }
1607 }
1608
1609 unsafe impl<D: fidl::encoding::ResourceDialect>
1610 fidl::encoding::Encode<HostNameResolverResolveHostNameResponse, D>
1611 for &HostNameResolverResolveHostNameResponse
1612 {
1613 #[inline]
1614 unsafe fn encode(
1615 self,
1616 encoder: &mut fidl::encoding::Encoder<'_, D>,
1617 offset: usize,
1618 _depth: fidl::encoding::Depth,
1619 ) -> fidl::Result<()> {
1620 encoder.debug_check_bounds::<HostNameResolverResolveHostNameResponse>(offset);
1621 fidl::encoding::Encode::<HostNameResolverResolveHostNameResponse, D>::encode(
1623 (
1624 <fidl::encoding::Vector<HostAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.addresses),
1625 ),
1626 encoder, offset, _depth
1627 )
1628 }
1629 }
1630 unsafe impl<
1631 D: fidl::encoding::ResourceDialect,
1632 T0: fidl::encoding::Encode<fidl::encoding::Vector<HostAddress, 64>, D>,
1633 > fidl::encoding::Encode<HostNameResolverResolveHostNameResponse, D> for (T0,)
1634 {
1635 #[inline]
1636 unsafe fn encode(
1637 self,
1638 encoder: &mut fidl::encoding::Encoder<'_, D>,
1639 offset: usize,
1640 depth: fidl::encoding::Depth,
1641 ) -> fidl::Result<()> {
1642 encoder.debug_check_bounds::<HostNameResolverResolveHostNameResponse>(offset);
1643 self.0.encode(encoder, offset + 0, depth)?;
1647 Ok(())
1648 }
1649 }
1650
1651 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1652 for HostNameResolverResolveHostNameResponse
1653 {
1654 #[inline(always)]
1655 fn new_empty() -> Self {
1656 Self { addresses: fidl::new_empty!(fidl::encoding::Vector<HostAddress, 64>, D) }
1657 }
1658
1659 #[inline]
1660 unsafe fn decode(
1661 &mut self,
1662 decoder: &mut fidl::encoding::Decoder<'_, D>,
1663 offset: usize,
1664 _depth: fidl::encoding::Depth,
1665 ) -> fidl::Result<()> {
1666 decoder.debug_check_bounds::<Self>(offset);
1667 fidl::decode!(fidl::encoding::Vector<HostAddress, 64>, D, &mut self.addresses, decoder, offset + 0, _depth)?;
1669 Ok(())
1670 }
1671 }
1672
1673 impl fidl::encoding::ValueTypeMarker for HostNameSubscriptionListenerOnAddressesChangedRequest {
1674 type Borrowed<'a> = &'a Self;
1675 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1676 value
1677 }
1678 }
1679
1680 unsafe impl fidl::encoding::TypeMarker for HostNameSubscriptionListenerOnAddressesChangedRequest {
1681 type Owned = Self;
1682
1683 #[inline(always)]
1684 fn inline_align(_context: fidl::encoding::Context) -> usize {
1685 8
1686 }
1687
1688 #[inline(always)]
1689 fn inline_size(_context: fidl::encoding::Context) -> usize {
1690 16
1691 }
1692 }
1693
1694 unsafe impl<D: fidl::encoding::ResourceDialect>
1695 fidl::encoding::Encode<HostNameSubscriptionListenerOnAddressesChangedRequest, D>
1696 for &HostNameSubscriptionListenerOnAddressesChangedRequest
1697 {
1698 #[inline]
1699 unsafe fn encode(
1700 self,
1701 encoder: &mut fidl::encoding::Encoder<'_, D>,
1702 offset: usize,
1703 _depth: fidl::encoding::Depth,
1704 ) -> fidl::Result<()> {
1705 encoder.debug_check_bounds::<HostNameSubscriptionListenerOnAddressesChangedRequest>(
1706 offset,
1707 );
1708 fidl::encoding::Encode::<HostNameSubscriptionListenerOnAddressesChangedRequest, D>::encode(
1710 (
1711 <fidl::encoding::Vector<HostAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.addresses),
1712 ),
1713 encoder, offset, _depth
1714 )
1715 }
1716 }
1717 unsafe impl<
1718 D: fidl::encoding::ResourceDialect,
1719 T0: fidl::encoding::Encode<fidl::encoding::Vector<HostAddress, 64>, D>,
1720 > fidl::encoding::Encode<HostNameSubscriptionListenerOnAddressesChangedRequest, D> for (T0,)
1721 {
1722 #[inline]
1723 unsafe fn encode(
1724 self,
1725 encoder: &mut fidl::encoding::Encoder<'_, D>,
1726 offset: usize,
1727 depth: fidl::encoding::Depth,
1728 ) -> fidl::Result<()> {
1729 encoder.debug_check_bounds::<HostNameSubscriptionListenerOnAddressesChangedRequest>(
1730 offset,
1731 );
1732 self.0.encode(encoder, offset + 0, depth)?;
1736 Ok(())
1737 }
1738 }
1739
1740 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1741 for HostNameSubscriptionListenerOnAddressesChangedRequest
1742 {
1743 #[inline(always)]
1744 fn new_empty() -> Self {
1745 Self { addresses: fidl::new_empty!(fidl::encoding::Vector<HostAddress, 64>, D) }
1746 }
1747
1748 #[inline]
1749 unsafe fn decode(
1750 &mut self,
1751 decoder: &mut fidl::encoding::Decoder<'_, D>,
1752 offset: usize,
1753 _depth: fidl::encoding::Depth,
1754 ) -> fidl::Result<()> {
1755 decoder.debug_check_bounds::<Self>(offset);
1756 fidl::decode!(fidl::encoding::Vector<HostAddress, 64>, D, &mut self.addresses, decoder, offset + 0, _depth)?;
1758 Ok(())
1759 }
1760 }
1761
1762 impl fidl::encoding::ValueTypeMarker for Publication {
1763 type Borrowed<'a> = &'a Self;
1764 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1765 value
1766 }
1767 }
1768
1769 unsafe impl fidl::encoding::TypeMarker for Publication {
1770 type Owned = Self;
1771
1772 #[inline(always)]
1773 fn inline_align(_context: fidl::encoding::Context) -> usize {
1774 8
1775 }
1776
1777 #[inline(always)]
1778 fn inline_size(_context: fidl::encoding::Context) -> usize {
1779 56
1780 }
1781 }
1782
1783 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Publication, D>
1784 for &Publication
1785 {
1786 #[inline]
1787 unsafe fn encode(
1788 self,
1789 encoder: &mut fidl::encoding::Encoder<'_, D>,
1790 offset: usize,
1791 _depth: fidl::encoding::Depth,
1792 ) -> fidl::Result<()> {
1793 encoder.debug_check_bounds::<Publication>(offset);
1794 fidl::encoding::Encode::<Publication, D>::encode(
1796 (
1797 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.port),
1798 <fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.text),
1799 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.srv_priority),
1800 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.srv_weight),
1801 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.ptr_ttl),
1802 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.srv_ttl),
1803 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.txt_ttl),
1804 ),
1805 encoder, offset, _depth
1806 )
1807 }
1808 }
1809 unsafe impl<
1810 D: fidl::encoding::ResourceDialect,
1811 T0: fidl::encoding::Encode<u16, D>,
1812 T1: fidl::encoding::Encode<fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>, D>,
1813 T2: fidl::encoding::Encode<u16, D>,
1814 T3: fidl::encoding::Encode<u16, D>,
1815 T4: fidl::encoding::Encode<i64, D>,
1816 T5: fidl::encoding::Encode<i64, D>,
1817 T6: fidl::encoding::Encode<i64, D>,
1818 > fidl::encoding::Encode<Publication, D> for (T0, T1, T2, T3, T4, T5, T6)
1819 {
1820 #[inline]
1821 unsafe fn encode(
1822 self,
1823 encoder: &mut fidl::encoding::Encoder<'_, D>,
1824 offset: usize,
1825 depth: fidl::encoding::Depth,
1826 ) -> fidl::Result<()> {
1827 encoder.debug_check_bounds::<Publication>(offset);
1828 unsafe {
1831 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1832 (ptr as *mut u64).write_unaligned(0);
1833 }
1834 unsafe {
1835 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
1836 (ptr as *mut u64).write_unaligned(0);
1837 }
1838 self.0.encode(encoder, offset + 0, depth)?;
1840 self.1.encode(encoder, offset + 8, depth)?;
1841 self.2.encode(encoder, offset + 24, depth)?;
1842 self.3.encode(encoder, offset + 26, depth)?;
1843 self.4.encode(encoder, offset + 32, depth)?;
1844 self.5.encode(encoder, offset + 40, depth)?;
1845 self.6.encode(encoder, offset + 48, depth)?;
1846 Ok(())
1847 }
1848 }
1849
1850 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Publication {
1851 #[inline(always)]
1852 fn new_empty() -> Self {
1853 Self {
1854 port: fidl::new_empty!(u16, D),
1855 text: fidl::new_empty!(
1856 fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>,
1857 D
1858 ),
1859 srv_priority: fidl::new_empty!(u16, D),
1860 srv_weight: fidl::new_empty!(u16, D),
1861 ptr_ttl: fidl::new_empty!(i64, D),
1862 srv_ttl: fidl::new_empty!(i64, D),
1863 txt_ttl: fidl::new_empty!(i64, D),
1864 }
1865 }
1866
1867 #[inline]
1868 unsafe fn decode(
1869 &mut self,
1870 decoder: &mut fidl::encoding::Decoder<'_, D>,
1871 offset: usize,
1872 _depth: fidl::encoding::Depth,
1873 ) -> fidl::Result<()> {
1874 decoder.debug_check_bounds::<Self>(offset);
1875 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1877 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1878 let mask = 0xffffffffffff0000u64;
1879 let maskedval = padval & mask;
1880 if maskedval != 0 {
1881 return Err(fidl::Error::NonZeroPadding {
1882 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1883 });
1884 }
1885 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
1886 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1887 let mask = 0xffffffff00000000u64;
1888 let maskedval = padval & mask;
1889 if maskedval != 0 {
1890 return Err(fidl::Error::NonZeroPadding {
1891 padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
1892 });
1893 }
1894 fidl::decode!(u16, D, &mut self.port, decoder, offset + 0, _depth)?;
1895 fidl::decode!(
1896 fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>,
1897 D,
1898 &mut self.text,
1899 decoder,
1900 offset + 8,
1901 _depth
1902 )?;
1903 fidl::decode!(u16, D, &mut self.srv_priority, decoder, offset + 24, _depth)?;
1904 fidl::decode!(u16, D, &mut self.srv_weight, decoder, offset + 26, _depth)?;
1905 fidl::decode!(i64, D, &mut self.ptr_ttl, decoder, offset + 32, _depth)?;
1906 fidl::decode!(i64, D, &mut self.srv_ttl, decoder, offset + 40, _depth)?;
1907 fidl::decode!(i64, D, &mut self.txt_ttl, decoder, offset + 48, _depth)?;
1908 Ok(())
1909 }
1910 }
1911
1912 impl fidl::encoding::ValueTypeMarker for PublicationResponderOnPublicationRequest {
1913 type Borrowed<'a> = &'a Self;
1914 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1915 value
1916 }
1917 }
1918
1919 unsafe impl fidl::encoding::TypeMarker for PublicationResponderOnPublicationRequest {
1920 type Owned = Self;
1921
1922 #[inline(always)]
1923 fn inline_align(_context: fidl::encoding::Context) -> usize {
1924 8
1925 }
1926
1927 #[inline(always)]
1928 fn inline_size(_context: fidl::encoding::Context) -> usize {
1929 40
1930 }
1931 }
1932
1933 unsafe impl<D: fidl::encoding::ResourceDialect>
1934 fidl::encoding::Encode<PublicationResponderOnPublicationRequest, D>
1935 for &PublicationResponderOnPublicationRequest
1936 {
1937 #[inline]
1938 unsafe fn encode(
1939 self,
1940 encoder: &mut fidl::encoding::Encoder<'_, D>,
1941 offset: usize,
1942 _depth: fidl::encoding::Depth,
1943 ) -> fidl::Result<()> {
1944 encoder.debug_check_bounds::<PublicationResponderOnPublicationRequest>(offset);
1945 fidl::encoding::Encode::<PublicationResponderOnPublicationRequest, D>::encode(
1947 (
1948 <PublicationCause as fidl::encoding::ValueTypeMarker>::borrow(&self.publication_cause),
1949 <fidl::encoding::Optional<fidl::encoding::BoundedString<63>> as fidl::encoding::ValueTypeMarker>::borrow(&self.subtype),
1950 <fidl::encoding::Vector<fidl_fuchsia_net_common::IpAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.source_addresses),
1951 ),
1952 encoder, offset, _depth
1953 )
1954 }
1955 }
1956 unsafe impl<
1957 D: fidl::encoding::ResourceDialect,
1958 T0: fidl::encoding::Encode<PublicationCause, D>,
1959 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<63>>, D>,
1960 T2: fidl::encoding::Encode<fidl::encoding::Vector<fidl_fuchsia_net_common::IpAddress, 64>, D>,
1961 > fidl::encoding::Encode<PublicationResponderOnPublicationRequest, D> for (T0, T1, T2)
1962 {
1963 #[inline]
1964 unsafe fn encode(
1965 self,
1966 encoder: &mut fidl::encoding::Encoder<'_, D>,
1967 offset: usize,
1968 depth: fidl::encoding::Depth,
1969 ) -> fidl::Result<()> {
1970 encoder.debug_check_bounds::<PublicationResponderOnPublicationRequest>(offset);
1971 unsafe {
1974 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1975 (ptr as *mut u64).write_unaligned(0);
1976 }
1977 self.0.encode(encoder, offset + 0, depth)?;
1979 self.1.encode(encoder, offset + 8, depth)?;
1980 self.2.encode(encoder, offset + 24, depth)?;
1981 Ok(())
1982 }
1983 }
1984
1985 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1986 for PublicationResponderOnPublicationRequest
1987 {
1988 #[inline(always)]
1989 fn new_empty() -> Self {
1990 Self {
1991 publication_cause: fidl::new_empty!(PublicationCause, D),
1992 subtype: fidl::new_empty!(
1993 fidl::encoding::Optional<fidl::encoding::BoundedString<63>>,
1994 D
1995 ),
1996 source_addresses: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::IpAddress, 64>, D),
1997 }
1998 }
1999
2000 #[inline]
2001 unsafe fn decode(
2002 &mut self,
2003 decoder: &mut fidl::encoding::Decoder<'_, D>,
2004 offset: usize,
2005 _depth: fidl::encoding::Depth,
2006 ) -> fidl::Result<()> {
2007 decoder.debug_check_bounds::<Self>(offset);
2008 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2010 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2011 let mask = 0xffffffff00000000u64;
2012 let maskedval = padval & mask;
2013 if maskedval != 0 {
2014 return Err(fidl::Error::NonZeroPadding {
2015 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2016 });
2017 }
2018 fidl::decode!(
2019 PublicationCause,
2020 D,
2021 &mut self.publication_cause,
2022 decoder,
2023 offset + 0,
2024 _depth
2025 )?;
2026 fidl::decode!(
2027 fidl::encoding::Optional<fidl::encoding::BoundedString<63>>,
2028 D,
2029 &mut self.subtype,
2030 decoder,
2031 offset + 8,
2032 _depth
2033 )?;
2034 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::IpAddress, 64>, D, &mut self.source_addresses, decoder, offset + 24, _depth)?;
2035 Ok(())
2036 }
2037 }
2038
2039 impl fidl::encoding::ValueTypeMarker for PublicationResponderOnPublicationResponse {
2040 type Borrowed<'a> = &'a Self;
2041 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2042 value
2043 }
2044 }
2045
2046 unsafe impl fidl::encoding::TypeMarker for PublicationResponderOnPublicationResponse {
2047 type Owned = Self;
2048
2049 #[inline(always)]
2050 fn inline_align(_context: fidl::encoding::Context) -> usize {
2051 8
2052 }
2053
2054 #[inline(always)]
2055 fn inline_size(_context: fidl::encoding::Context) -> usize {
2056 8
2057 }
2058 }
2059
2060 unsafe impl<D: fidl::encoding::ResourceDialect>
2061 fidl::encoding::Encode<PublicationResponderOnPublicationResponse, D>
2062 for &PublicationResponderOnPublicationResponse
2063 {
2064 #[inline]
2065 unsafe fn encode(
2066 self,
2067 encoder: &mut fidl::encoding::Encoder<'_, D>,
2068 offset: usize,
2069 _depth: fidl::encoding::Depth,
2070 ) -> fidl::Result<()> {
2071 encoder.debug_check_bounds::<PublicationResponderOnPublicationResponse>(offset);
2072 fidl::encoding::Encode::<PublicationResponderOnPublicationResponse, D>::encode(
2074 (<fidl::encoding::Boxed<Publication> as fidl::encoding::ValueTypeMarker>::borrow(
2075 &self.publication,
2076 ),),
2077 encoder,
2078 offset,
2079 _depth,
2080 )
2081 }
2082 }
2083 unsafe impl<
2084 D: fidl::encoding::ResourceDialect,
2085 T0: fidl::encoding::Encode<fidl::encoding::Boxed<Publication>, D>,
2086 > fidl::encoding::Encode<PublicationResponderOnPublicationResponse, 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::<PublicationResponderOnPublicationResponse>(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 PublicationResponderOnPublicationResponse
2106 {
2107 #[inline(always)]
2108 fn new_empty() -> Self {
2109 Self { publication: fidl::new_empty!(fidl::encoding::Boxed<Publication>, 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!(
2122 fidl::encoding::Boxed<Publication>,
2123 D,
2124 &mut self.publication,
2125 decoder,
2126 offset + 0,
2127 _depth
2128 )?;
2129 Ok(())
2130 }
2131 }
2132
2133 impl fidl::encoding::ValueTypeMarker for PublicationResponderSetSubtypesRequest {
2134 type Borrowed<'a> = &'a Self;
2135 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2136 value
2137 }
2138 }
2139
2140 unsafe impl fidl::encoding::TypeMarker for PublicationResponderSetSubtypesRequest {
2141 type Owned = Self;
2142
2143 #[inline(always)]
2144 fn inline_align(_context: fidl::encoding::Context) -> usize {
2145 8
2146 }
2147
2148 #[inline(always)]
2149 fn inline_size(_context: fidl::encoding::Context) -> usize {
2150 16
2151 }
2152 }
2153
2154 unsafe impl<D: fidl::encoding::ResourceDialect>
2155 fidl::encoding::Encode<PublicationResponderSetSubtypesRequest, D>
2156 for &PublicationResponderSetSubtypesRequest
2157 {
2158 #[inline]
2159 unsafe fn encode(
2160 self,
2161 encoder: &mut fidl::encoding::Encoder<'_, D>,
2162 offset: usize,
2163 _depth: fidl::encoding::Depth,
2164 ) -> fidl::Result<()> {
2165 encoder.debug_check_bounds::<PublicationResponderSetSubtypesRequest>(offset);
2166 fidl::encoding::Encode::<PublicationResponderSetSubtypesRequest, D>::encode(
2168 (
2169 <fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.subtypes),
2170 ),
2171 encoder, offset, _depth
2172 )
2173 }
2174 }
2175 unsafe impl<
2176 D: fidl::encoding::ResourceDialect,
2177 T0: fidl::encoding::Encode<fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>, D>,
2178 > fidl::encoding::Encode<PublicationResponderSetSubtypesRequest, D> for (T0,)
2179 {
2180 #[inline]
2181 unsafe fn encode(
2182 self,
2183 encoder: &mut fidl::encoding::Encoder<'_, D>,
2184 offset: usize,
2185 depth: fidl::encoding::Depth,
2186 ) -> fidl::Result<()> {
2187 encoder.debug_check_bounds::<PublicationResponderSetSubtypesRequest>(offset);
2188 self.0.encode(encoder, offset + 0, depth)?;
2192 Ok(())
2193 }
2194 }
2195
2196 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2197 for PublicationResponderSetSubtypesRequest
2198 {
2199 #[inline(always)]
2200 fn new_empty() -> Self {
2201 Self {
2202 subtypes: fidl::new_empty!(
2203 fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>,
2204 D
2205 ),
2206 }
2207 }
2208
2209 #[inline]
2210 unsafe fn decode(
2211 &mut self,
2212 decoder: &mut fidl::encoding::Decoder<'_, D>,
2213 offset: usize,
2214 _depth: fidl::encoding::Depth,
2215 ) -> fidl::Result<()> {
2216 decoder.debug_check_bounds::<Self>(offset);
2217 fidl::decode!(
2219 fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>,
2220 D,
2221 &mut self.subtypes,
2222 decoder,
2223 offset + 0,
2224 _depth
2225 )?;
2226 Ok(())
2227 }
2228 }
2229
2230 impl fidl::encoding::ValueTypeMarker for ResolverResolveHostNameRequest {
2231 type Borrowed<'a> = &'a Self;
2232 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2233 value
2234 }
2235 }
2236
2237 unsafe impl fidl::encoding::TypeMarker for ResolverResolveHostNameRequest {
2238 type Owned = Self;
2239
2240 #[inline(always)]
2241 fn inline_align(_context: fidl::encoding::Context) -> usize {
2242 8
2243 }
2244
2245 #[inline(always)]
2246 fn inline_size(_context: fidl::encoding::Context) -> usize {
2247 24
2248 }
2249 }
2250
2251 unsafe impl<D: fidl::encoding::ResourceDialect>
2252 fidl::encoding::Encode<ResolverResolveHostNameRequest, D>
2253 for &ResolverResolveHostNameRequest
2254 {
2255 #[inline]
2256 unsafe fn encode(
2257 self,
2258 encoder: &mut fidl::encoding::Encoder<'_, D>,
2259 offset: usize,
2260 _depth: fidl::encoding::Depth,
2261 ) -> fidl::Result<()> {
2262 encoder.debug_check_bounds::<ResolverResolveHostNameRequest>(offset);
2263 fidl::encoding::Encode::<ResolverResolveHostNameRequest, D>::encode(
2265 (
2266 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
2267 &self.host,
2268 ),
2269 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.timeout),
2270 ),
2271 encoder,
2272 offset,
2273 _depth,
2274 )
2275 }
2276 }
2277 unsafe impl<
2278 D: fidl::encoding::ResourceDialect,
2279 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
2280 T1: fidl::encoding::Encode<i64, D>,
2281 > fidl::encoding::Encode<ResolverResolveHostNameRequest, D> for (T0, T1)
2282 {
2283 #[inline]
2284 unsafe fn encode(
2285 self,
2286 encoder: &mut fidl::encoding::Encoder<'_, D>,
2287 offset: usize,
2288 depth: fidl::encoding::Depth,
2289 ) -> fidl::Result<()> {
2290 encoder.debug_check_bounds::<ResolverResolveHostNameRequest>(offset);
2291 self.0.encode(encoder, offset + 0, depth)?;
2295 self.1.encode(encoder, offset + 16, depth)?;
2296 Ok(())
2297 }
2298 }
2299
2300 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2301 for ResolverResolveHostNameRequest
2302 {
2303 #[inline(always)]
2304 fn new_empty() -> Self {
2305 Self {
2306 host: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
2307 timeout: fidl::new_empty!(i64, D),
2308 }
2309 }
2310
2311 #[inline]
2312 unsafe fn decode(
2313 &mut self,
2314 decoder: &mut fidl::encoding::Decoder<'_, D>,
2315 offset: usize,
2316 _depth: fidl::encoding::Depth,
2317 ) -> fidl::Result<()> {
2318 decoder.debug_check_bounds::<Self>(offset);
2319 fidl::decode!(
2321 fidl::encoding::BoundedString<255>,
2322 D,
2323 &mut self.host,
2324 decoder,
2325 offset + 0,
2326 _depth
2327 )?;
2328 fidl::decode!(i64, D, &mut self.timeout, decoder, offset + 16, _depth)?;
2329 Ok(())
2330 }
2331 }
2332
2333 impl fidl::encoding::ValueTypeMarker for ResolverResolveHostNameResponse {
2334 type Borrowed<'a> = &'a Self;
2335 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2336 value
2337 }
2338 }
2339
2340 unsafe impl fidl::encoding::TypeMarker for ResolverResolveHostNameResponse {
2341 type Owned = Self;
2342
2343 #[inline(always)]
2344 fn inline_align(_context: fidl::encoding::Context) -> usize {
2345 8
2346 }
2347
2348 #[inline(always)]
2349 fn inline_size(_context: fidl::encoding::Context) -> usize {
2350 16
2351 }
2352 }
2353
2354 unsafe impl<D: fidl::encoding::ResourceDialect>
2355 fidl::encoding::Encode<ResolverResolveHostNameResponse, D>
2356 for &ResolverResolveHostNameResponse
2357 {
2358 #[inline]
2359 unsafe fn encode(
2360 self,
2361 encoder: &mut fidl::encoding::Encoder<'_, D>,
2362 offset: usize,
2363 _depth: fidl::encoding::Depth,
2364 ) -> fidl::Result<()> {
2365 encoder.debug_check_bounds::<ResolverResolveHostNameResponse>(offset);
2366 fidl::encoding::Encode::<ResolverResolveHostNameResponse, D>::encode(
2368 (
2369 <fidl::encoding::Boxed<fidl_fuchsia_net_common::Ipv4Address> as fidl::encoding::ValueTypeMarker>::borrow(&self.v4_address),
2370 <fidl::encoding::Boxed<fidl_fuchsia_net_common::Ipv6Address> as fidl::encoding::ValueTypeMarker>::borrow(&self.v6_address),
2371 ),
2372 encoder, offset, _depth
2373 )
2374 }
2375 }
2376 unsafe impl<
2377 D: fidl::encoding::ResourceDialect,
2378 T0: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_net_common::Ipv4Address>, D>,
2379 T1: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_net_common::Ipv6Address>, D>,
2380 > fidl::encoding::Encode<ResolverResolveHostNameResponse, D> for (T0, T1)
2381 {
2382 #[inline]
2383 unsafe fn encode(
2384 self,
2385 encoder: &mut fidl::encoding::Encoder<'_, D>,
2386 offset: usize,
2387 depth: fidl::encoding::Depth,
2388 ) -> fidl::Result<()> {
2389 encoder.debug_check_bounds::<ResolverResolveHostNameResponse>(offset);
2390 self.0.encode(encoder, offset + 0, depth)?;
2394 self.1.encode(encoder, offset + 8, depth)?;
2395 Ok(())
2396 }
2397 }
2398
2399 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2400 for ResolverResolveHostNameResponse
2401 {
2402 #[inline(always)]
2403 fn new_empty() -> Self {
2404 Self {
2405 v4_address: fidl::new_empty!(
2406 fidl::encoding::Boxed<fidl_fuchsia_net_common::Ipv4Address>,
2407 D
2408 ),
2409 v6_address: fidl::new_empty!(
2410 fidl::encoding::Boxed<fidl_fuchsia_net_common::Ipv6Address>,
2411 D
2412 ),
2413 }
2414 }
2415
2416 #[inline]
2417 unsafe fn decode(
2418 &mut self,
2419 decoder: &mut fidl::encoding::Decoder<'_, D>,
2420 offset: usize,
2421 _depth: fidl::encoding::Depth,
2422 ) -> fidl::Result<()> {
2423 decoder.debug_check_bounds::<Self>(offset);
2424 fidl::decode!(
2426 fidl::encoding::Boxed<fidl_fuchsia_net_common::Ipv4Address>,
2427 D,
2428 &mut self.v4_address,
2429 decoder,
2430 offset + 0,
2431 _depth
2432 )?;
2433 fidl::decode!(
2434 fidl::encoding::Boxed<fidl_fuchsia_net_common::Ipv6Address>,
2435 D,
2436 &mut self.v6_address,
2437 decoder,
2438 offset + 8,
2439 _depth
2440 )?;
2441 Ok(())
2442 }
2443 }
2444
2445 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublicationResponderOnPublicationRequest {
2446 type Borrowed<'a> = &'a Self;
2447 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2448 value
2449 }
2450 }
2451
2452 unsafe impl fidl::encoding::TypeMarker for ServiceInstancePublicationResponderOnPublicationRequest {
2453 type Owned = Self;
2454
2455 #[inline(always)]
2456 fn inline_align(_context: fidl::encoding::Context) -> usize {
2457 8
2458 }
2459
2460 #[inline(always)]
2461 fn inline_size(_context: fidl::encoding::Context) -> usize {
2462 40
2463 }
2464 }
2465
2466 unsafe impl<D: fidl::encoding::ResourceDialect>
2467 fidl::encoding::Encode<ServiceInstancePublicationResponderOnPublicationRequest, D>
2468 for &ServiceInstancePublicationResponderOnPublicationRequest
2469 {
2470 #[inline]
2471 unsafe fn encode(
2472 self,
2473 encoder: &mut fidl::encoding::Encoder<'_, D>,
2474 offset: usize,
2475 _depth: fidl::encoding::Depth,
2476 ) -> fidl::Result<()> {
2477 encoder.debug_check_bounds::<ServiceInstancePublicationResponderOnPublicationRequest>(
2478 offset,
2479 );
2480 fidl::encoding::Encode::<ServiceInstancePublicationResponderOnPublicationRequest, D>::encode(
2482 (
2483 <ServiceInstancePublicationCause as fidl::encoding::ValueTypeMarker>::borrow(&self.publication_cause),
2484 <fidl::encoding::Optional<fidl::encoding::BoundedString<63>> as fidl::encoding::ValueTypeMarker>::borrow(&self.subtype),
2485 <fidl::encoding::Vector<fidl_fuchsia_net_common::IpAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.source_addresses),
2486 ),
2487 encoder, offset, _depth
2488 )
2489 }
2490 }
2491 unsafe impl<
2492 D: fidl::encoding::ResourceDialect,
2493 T0: fidl::encoding::Encode<ServiceInstancePublicationCause, D>,
2494 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<63>>, D>,
2495 T2: fidl::encoding::Encode<fidl::encoding::Vector<fidl_fuchsia_net_common::IpAddress, 64>, D>,
2496 > fidl::encoding::Encode<ServiceInstancePublicationResponderOnPublicationRequest, D>
2497 for (T0, T1, T2)
2498 {
2499 #[inline]
2500 unsafe fn encode(
2501 self,
2502 encoder: &mut fidl::encoding::Encoder<'_, D>,
2503 offset: usize,
2504 depth: fidl::encoding::Depth,
2505 ) -> fidl::Result<()> {
2506 encoder.debug_check_bounds::<ServiceInstancePublicationResponderOnPublicationRequest>(
2507 offset,
2508 );
2509 unsafe {
2512 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2513 (ptr as *mut u64).write_unaligned(0);
2514 }
2515 self.0.encode(encoder, offset + 0, depth)?;
2517 self.1.encode(encoder, offset + 8, depth)?;
2518 self.2.encode(encoder, offset + 24, depth)?;
2519 Ok(())
2520 }
2521 }
2522
2523 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2524 for ServiceInstancePublicationResponderOnPublicationRequest
2525 {
2526 #[inline(always)]
2527 fn new_empty() -> Self {
2528 Self {
2529 publication_cause: fidl::new_empty!(ServiceInstancePublicationCause, D),
2530 subtype: fidl::new_empty!(
2531 fidl::encoding::Optional<fidl::encoding::BoundedString<63>>,
2532 D
2533 ),
2534 source_addresses: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::IpAddress, 64>, D),
2535 }
2536 }
2537
2538 #[inline]
2539 unsafe fn decode(
2540 &mut self,
2541 decoder: &mut fidl::encoding::Decoder<'_, D>,
2542 offset: usize,
2543 _depth: fidl::encoding::Depth,
2544 ) -> fidl::Result<()> {
2545 decoder.debug_check_bounds::<Self>(offset);
2546 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2548 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2549 let mask = 0xffffffff00000000u64;
2550 let maskedval = padval & mask;
2551 if maskedval != 0 {
2552 return Err(fidl::Error::NonZeroPadding {
2553 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2554 });
2555 }
2556 fidl::decode!(
2557 ServiceInstancePublicationCause,
2558 D,
2559 &mut self.publication_cause,
2560 decoder,
2561 offset + 0,
2562 _depth
2563 )?;
2564 fidl::decode!(
2565 fidl::encoding::Optional<fidl::encoding::BoundedString<63>>,
2566 D,
2567 &mut self.subtype,
2568 decoder,
2569 offset + 8,
2570 _depth
2571 )?;
2572 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::IpAddress, 64>, D, &mut self.source_addresses, decoder, offset + 24, _depth)?;
2573 Ok(())
2574 }
2575 }
2576
2577 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublicationResponderSetSubtypesRequest {
2578 type Borrowed<'a> = &'a Self;
2579 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2580 value
2581 }
2582 }
2583
2584 unsafe impl fidl::encoding::TypeMarker for ServiceInstancePublicationResponderSetSubtypesRequest {
2585 type Owned = Self;
2586
2587 #[inline(always)]
2588 fn inline_align(_context: fidl::encoding::Context) -> usize {
2589 8
2590 }
2591
2592 #[inline(always)]
2593 fn inline_size(_context: fidl::encoding::Context) -> usize {
2594 16
2595 }
2596 }
2597
2598 unsafe impl<D: fidl::encoding::ResourceDialect>
2599 fidl::encoding::Encode<ServiceInstancePublicationResponderSetSubtypesRequest, D>
2600 for &ServiceInstancePublicationResponderSetSubtypesRequest
2601 {
2602 #[inline]
2603 unsafe fn encode(
2604 self,
2605 encoder: &mut fidl::encoding::Encoder<'_, D>,
2606 offset: usize,
2607 _depth: fidl::encoding::Depth,
2608 ) -> fidl::Result<()> {
2609 encoder.debug_check_bounds::<ServiceInstancePublicationResponderSetSubtypesRequest>(
2610 offset,
2611 );
2612 fidl::encoding::Encode::<ServiceInstancePublicationResponderSetSubtypesRequest, D>::encode(
2614 (
2615 <fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.subtypes),
2616 ),
2617 encoder, offset, _depth
2618 )
2619 }
2620 }
2621 unsafe impl<
2622 D: fidl::encoding::ResourceDialect,
2623 T0: fidl::encoding::Encode<fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>, D>,
2624 > fidl::encoding::Encode<ServiceInstancePublicationResponderSetSubtypesRequest, D> for (T0,)
2625 {
2626 #[inline]
2627 unsafe fn encode(
2628 self,
2629 encoder: &mut fidl::encoding::Encoder<'_, D>,
2630 offset: usize,
2631 depth: fidl::encoding::Depth,
2632 ) -> fidl::Result<()> {
2633 encoder.debug_check_bounds::<ServiceInstancePublicationResponderSetSubtypesRequest>(
2634 offset,
2635 );
2636 self.0.encode(encoder, offset + 0, depth)?;
2640 Ok(())
2641 }
2642 }
2643
2644 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2645 for ServiceInstancePublicationResponderSetSubtypesRequest
2646 {
2647 #[inline(always)]
2648 fn new_empty() -> Self {
2649 Self {
2650 subtypes: fidl::new_empty!(
2651 fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>,
2652 D
2653 ),
2654 }
2655 }
2656
2657 #[inline]
2658 unsafe fn decode(
2659 &mut self,
2660 decoder: &mut fidl::encoding::Decoder<'_, D>,
2661 offset: usize,
2662 _depth: fidl::encoding::Depth,
2663 ) -> fidl::Result<()> {
2664 decoder.debug_check_bounds::<Self>(offset);
2665 fidl::decode!(
2667 fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>,
2668 D,
2669 &mut self.subtypes,
2670 decoder,
2671 offset + 0,
2672 _depth
2673 )?;
2674 Ok(())
2675 }
2676 }
2677
2678 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublicationResponderOnPublicationResponse {
2679 type Borrowed<'a> = &'a Self;
2680 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2681 value
2682 }
2683 }
2684
2685 unsafe impl fidl::encoding::TypeMarker
2686 for ServiceInstancePublicationResponderOnPublicationResponse
2687 {
2688 type Owned = Self;
2689
2690 #[inline(always)]
2691 fn inline_align(_context: fidl::encoding::Context) -> usize {
2692 8
2693 }
2694
2695 #[inline(always)]
2696 fn inline_size(_context: fidl::encoding::Context) -> usize {
2697 16
2698 }
2699 }
2700
2701 unsafe impl<D: fidl::encoding::ResourceDialect>
2702 fidl::encoding::Encode<ServiceInstancePublicationResponderOnPublicationResponse, D>
2703 for &ServiceInstancePublicationResponderOnPublicationResponse
2704 {
2705 #[inline]
2706 unsafe fn encode(
2707 self,
2708 encoder: &mut fidl::encoding::Encoder<'_, D>,
2709 offset: usize,
2710 _depth: fidl::encoding::Depth,
2711 ) -> fidl::Result<()> {
2712 encoder.debug_check_bounds::<ServiceInstancePublicationResponderOnPublicationResponse>(
2713 offset,
2714 );
2715 fidl::encoding::Encode::<ServiceInstancePublicationResponderOnPublicationResponse, D>::encode(
2717 (
2718 <ServiceInstancePublication as fidl::encoding::ValueTypeMarker>::borrow(&self.publication),
2719 ),
2720 encoder, offset, _depth
2721 )
2722 }
2723 }
2724 unsafe impl<
2725 D: fidl::encoding::ResourceDialect,
2726 T0: fidl::encoding::Encode<ServiceInstancePublication, D>,
2727 > fidl::encoding::Encode<ServiceInstancePublicationResponderOnPublicationResponse, D> for (T0,)
2728 {
2729 #[inline]
2730 unsafe fn encode(
2731 self,
2732 encoder: &mut fidl::encoding::Encoder<'_, D>,
2733 offset: usize,
2734 depth: fidl::encoding::Depth,
2735 ) -> fidl::Result<()> {
2736 encoder.debug_check_bounds::<ServiceInstancePublicationResponderOnPublicationResponse>(
2737 offset,
2738 );
2739 self.0.encode(encoder, offset + 0, depth)?;
2743 Ok(())
2744 }
2745 }
2746
2747 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2748 for ServiceInstancePublicationResponderOnPublicationResponse
2749 {
2750 #[inline(always)]
2751 fn new_empty() -> Self {
2752 Self { publication: fidl::new_empty!(ServiceInstancePublication, D) }
2753 }
2754
2755 #[inline]
2756 unsafe fn decode(
2757 &mut self,
2758 decoder: &mut fidl::encoding::Decoder<'_, D>,
2759 offset: usize,
2760 _depth: fidl::encoding::Depth,
2761 ) -> fidl::Result<()> {
2762 decoder.debug_check_bounds::<Self>(offset);
2763 fidl::decode!(
2765 ServiceInstancePublication,
2766 D,
2767 &mut self.publication,
2768 decoder,
2769 offset + 0,
2770 _depth
2771 )?;
2772 Ok(())
2773 }
2774 }
2775
2776 impl fidl::encoding::ValueTypeMarker for ServiceInstanceResolverResolveServiceInstanceRequest {
2777 type Borrowed<'a> = &'a Self;
2778 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2779 value
2780 }
2781 }
2782
2783 unsafe impl fidl::encoding::TypeMarker for ServiceInstanceResolverResolveServiceInstanceRequest {
2784 type Owned = Self;
2785
2786 #[inline(always)]
2787 fn inline_align(_context: fidl::encoding::Context) -> usize {
2788 8
2789 }
2790
2791 #[inline(always)]
2792 fn inline_size(_context: fidl::encoding::Context) -> usize {
2793 56
2794 }
2795 }
2796
2797 unsafe impl<D: fidl::encoding::ResourceDialect>
2798 fidl::encoding::Encode<ServiceInstanceResolverResolveServiceInstanceRequest, D>
2799 for &ServiceInstanceResolverResolveServiceInstanceRequest
2800 {
2801 #[inline]
2802 unsafe fn encode(
2803 self,
2804 encoder: &mut fidl::encoding::Encoder<'_, D>,
2805 offset: usize,
2806 _depth: fidl::encoding::Depth,
2807 ) -> fidl::Result<()> {
2808 encoder
2809 .debug_check_bounds::<ServiceInstanceResolverResolveServiceInstanceRequest>(offset);
2810 fidl::encoding::Encode::<ServiceInstanceResolverResolveServiceInstanceRequest, D>::encode(
2812 (
2813 <fidl::encoding::BoundedString<22> as fidl::encoding::ValueTypeMarker>::borrow(&self.service),
2814 <fidl::encoding::BoundedString<63> as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),
2815 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.timeout),
2816 <ServiceInstanceResolutionOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
2817 ),
2818 encoder, offset, _depth
2819 )
2820 }
2821 }
2822 unsafe impl<
2823 D: fidl::encoding::ResourceDialect,
2824 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<22>, D>,
2825 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<63>, D>,
2826 T2: fidl::encoding::Encode<i64, D>,
2827 T3: fidl::encoding::Encode<ServiceInstanceResolutionOptions, D>,
2828 > fidl::encoding::Encode<ServiceInstanceResolverResolveServiceInstanceRequest, D>
2829 for (T0, T1, T2, T3)
2830 {
2831 #[inline]
2832 unsafe fn encode(
2833 self,
2834 encoder: &mut fidl::encoding::Encoder<'_, D>,
2835 offset: usize,
2836 depth: fidl::encoding::Depth,
2837 ) -> fidl::Result<()> {
2838 encoder
2839 .debug_check_bounds::<ServiceInstanceResolverResolveServiceInstanceRequest>(offset);
2840 self.0.encode(encoder, offset + 0, depth)?;
2844 self.1.encode(encoder, offset + 16, depth)?;
2845 self.2.encode(encoder, offset + 32, depth)?;
2846 self.3.encode(encoder, offset + 40, depth)?;
2847 Ok(())
2848 }
2849 }
2850
2851 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2852 for ServiceInstanceResolverResolveServiceInstanceRequest
2853 {
2854 #[inline(always)]
2855 fn new_empty() -> Self {
2856 Self {
2857 service: fidl::new_empty!(fidl::encoding::BoundedString<22>, D),
2858 instance: fidl::new_empty!(fidl::encoding::BoundedString<63>, D),
2859 timeout: fidl::new_empty!(i64, D),
2860 options: fidl::new_empty!(ServiceInstanceResolutionOptions, D),
2861 }
2862 }
2863
2864 #[inline]
2865 unsafe fn decode(
2866 &mut self,
2867 decoder: &mut fidl::encoding::Decoder<'_, D>,
2868 offset: usize,
2869 _depth: fidl::encoding::Depth,
2870 ) -> fidl::Result<()> {
2871 decoder.debug_check_bounds::<Self>(offset);
2872 fidl::decode!(
2874 fidl::encoding::BoundedString<22>,
2875 D,
2876 &mut self.service,
2877 decoder,
2878 offset + 0,
2879 _depth
2880 )?;
2881 fidl::decode!(
2882 fidl::encoding::BoundedString<63>,
2883 D,
2884 &mut self.instance,
2885 decoder,
2886 offset + 16,
2887 _depth
2888 )?;
2889 fidl::decode!(i64, D, &mut self.timeout, decoder, offset + 32, _depth)?;
2890 fidl::decode!(
2891 ServiceInstanceResolutionOptions,
2892 D,
2893 &mut self.options,
2894 decoder,
2895 offset + 40,
2896 _depth
2897 )?;
2898 Ok(())
2899 }
2900 }
2901
2902 impl fidl::encoding::ValueTypeMarker for ServiceInstanceResolverResolveServiceInstanceResponse {
2903 type Borrowed<'a> = &'a Self;
2904 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2905 value
2906 }
2907 }
2908
2909 unsafe impl fidl::encoding::TypeMarker for ServiceInstanceResolverResolveServiceInstanceResponse {
2910 type Owned = Self;
2911
2912 #[inline(always)]
2913 fn inline_align(_context: fidl::encoding::Context) -> usize {
2914 8
2915 }
2916
2917 #[inline(always)]
2918 fn inline_size(_context: fidl::encoding::Context) -> usize {
2919 16
2920 }
2921 }
2922
2923 unsafe impl<D: fidl::encoding::ResourceDialect>
2924 fidl::encoding::Encode<ServiceInstanceResolverResolveServiceInstanceResponse, D>
2925 for &ServiceInstanceResolverResolveServiceInstanceResponse
2926 {
2927 #[inline]
2928 unsafe fn encode(
2929 self,
2930 encoder: &mut fidl::encoding::Encoder<'_, D>,
2931 offset: usize,
2932 _depth: fidl::encoding::Depth,
2933 ) -> fidl::Result<()> {
2934 encoder.debug_check_bounds::<ServiceInstanceResolverResolveServiceInstanceResponse>(
2935 offset,
2936 );
2937 fidl::encoding::Encode::<ServiceInstanceResolverResolveServiceInstanceResponse, D>::encode(
2939 (
2940 <ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),
2941 ),
2942 encoder, offset, _depth
2943 )
2944 }
2945 }
2946 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
2947 fidl::encoding::Encode<ServiceInstanceResolverResolveServiceInstanceResponse, D> for (T0,)
2948 {
2949 #[inline]
2950 unsafe fn encode(
2951 self,
2952 encoder: &mut fidl::encoding::Encoder<'_, D>,
2953 offset: usize,
2954 depth: fidl::encoding::Depth,
2955 ) -> fidl::Result<()> {
2956 encoder.debug_check_bounds::<ServiceInstanceResolverResolveServiceInstanceResponse>(
2957 offset,
2958 );
2959 self.0.encode(encoder, offset + 0, depth)?;
2963 Ok(())
2964 }
2965 }
2966
2967 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2968 for ServiceInstanceResolverResolveServiceInstanceResponse
2969 {
2970 #[inline(always)]
2971 fn new_empty() -> Self {
2972 Self { instance: fidl::new_empty!(ServiceInstance, D) }
2973 }
2974
2975 #[inline]
2976 unsafe fn decode(
2977 &mut self,
2978 decoder: &mut fidl::encoding::Decoder<'_, D>,
2979 offset: usize,
2980 _depth: fidl::encoding::Depth,
2981 ) -> fidl::Result<()> {
2982 decoder.debug_check_bounds::<Self>(offset);
2983 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
2985 Ok(())
2986 }
2987 }
2988
2989 impl fidl::encoding::ValueTypeMarker for ServiceSubscriberOnInstanceChangedRequest {
2990 type Borrowed<'a> = &'a Self;
2991 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2992 value
2993 }
2994 }
2995
2996 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriberOnInstanceChangedRequest {
2997 type Owned = Self;
2998
2999 #[inline(always)]
3000 fn inline_align(_context: fidl::encoding::Context) -> usize {
3001 8
3002 }
3003
3004 #[inline(always)]
3005 fn inline_size(_context: fidl::encoding::Context) -> usize {
3006 16
3007 }
3008 }
3009
3010 unsafe impl<D: fidl::encoding::ResourceDialect>
3011 fidl::encoding::Encode<ServiceSubscriberOnInstanceChangedRequest, D>
3012 for &ServiceSubscriberOnInstanceChangedRequest
3013 {
3014 #[inline]
3015 unsafe fn encode(
3016 self,
3017 encoder: &mut fidl::encoding::Encoder<'_, D>,
3018 offset: usize,
3019 _depth: fidl::encoding::Depth,
3020 ) -> fidl::Result<()> {
3021 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceChangedRequest>(offset);
3022 fidl::encoding::Encode::<ServiceSubscriberOnInstanceChangedRequest, D>::encode(
3024 (<ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),),
3025 encoder,
3026 offset,
3027 _depth,
3028 )
3029 }
3030 }
3031 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
3032 fidl::encoding::Encode<ServiceSubscriberOnInstanceChangedRequest, D> for (T0,)
3033 {
3034 #[inline]
3035 unsafe fn encode(
3036 self,
3037 encoder: &mut fidl::encoding::Encoder<'_, D>,
3038 offset: usize,
3039 depth: fidl::encoding::Depth,
3040 ) -> fidl::Result<()> {
3041 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceChangedRequest>(offset);
3042 self.0.encode(encoder, offset + 0, depth)?;
3046 Ok(())
3047 }
3048 }
3049
3050 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3051 for ServiceSubscriberOnInstanceChangedRequest
3052 {
3053 #[inline(always)]
3054 fn new_empty() -> Self {
3055 Self { instance: fidl::new_empty!(ServiceInstance, D) }
3056 }
3057
3058 #[inline]
3059 unsafe fn decode(
3060 &mut self,
3061 decoder: &mut fidl::encoding::Decoder<'_, D>,
3062 offset: usize,
3063 _depth: fidl::encoding::Depth,
3064 ) -> fidl::Result<()> {
3065 decoder.debug_check_bounds::<Self>(offset);
3066 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
3068 Ok(())
3069 }
3070 }
3071
3072 impl fidl::encoding::ValueTypeMarker for ServiceSubscriberOnInstanceDiscoveredRequest {
3073 type Borrowed<'a> = &'a Self;
3074 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3075 value
3076 }
3077 }
3078
3079 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriberOnInstanceDiscoveredRequest {
3080 type Owned = Self;
3081
3082 #[inline(always)]
3083 fn inline_align(_context: fidl::encoding::Context) -> usize {
3084 8
3085 }
3086
3087 #[inline(always)]
3088 fn inline_size(_context: fidl::encoding::Context) -> usize {
3089 16
3090 }
3091 }
3092
3093 unsafe impl<D: fidl::encoding::ResourceDialect>
3094 fidl::encoding::Encode<ServiceSubscriberOnInstanceDiscoveredRequest, D>
3095 for &ServiceSubscriberOnInstanceDiscoveredRequest
3096 {
3097 #[inline]
3098 unsafe fn encode(
3099 self,
3100 encoder: &mut fidl::encoding::Encoder<'_, D>,
3101 offset: usize,
3102 _depth: fidl::encoding::Depth,
3103 ) -> fidl::Result<()> {
3104 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceDiscoveredRequest>(offset);
3105 fidl::encoding::Encode::<ServiceSubscriberOnInstanceDiscoveredRequest, D>::encode(
3107 (<ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),),
3108 encoder,
3109 offset,
3110 _depth,
3111 )
3112 }
3113 }
3114 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
3115 fidl::encoding::Encode<ServiceSubscriberOnInstanceDiscoveredRequest, D> for (T0,)
3116 {
3117 #[inline]
3118 unsafe fn encode(
3119 self,
3120 encoder: &mut fidl::encoding::Encoder<'_, D>,
3121 offset: usize,
3122 depth: fidl::encoding::Depth,
3123 ) -> fidl::Result<()> {
3124 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceDiscoveredRequest>(offset);
3125 self.0.encode(encoder, offset + 0, depth)?;
3129 Ok(())
3130 }
3131 }
3132
3133 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3134 for ServiceSubscriberOnInstanceDiscoveredRequest
3135 {
3136 #[inline(always)]
3137 fn new_empty() -> Self {
3138 Self { instance: fidl::new_empty!(ServiceInstance, D) }
3139 }
3140
3141 #[inline]
3142 unsafe fn decode(
3143 &mut self,
3144 decoder: &mut fidl::encoding::Decoder<'_, D>,
3145 offset: usize,
3146 _depth: fidl::encoding::Depth,
3147 ) -> fidl::Result<()> {
3148 decoder.debug_check_bounds::<Self>(offset);
3149 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
3151 Ok(())
3152 }
3153 }
3154
3155 impl fidl::encoding::ValueTypeMarker for ServiceSubscriberOnInstanceLostRequest {
3156 type Borrowed<'a> = &'a Self;
3157 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3158 value
3159 }
3160 }
3161
3162 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriberOnInstanceLostRequest {
3163 type Owned = Self;
3164
3165 #[inline(always)]
3166 fn inline_align(_context: fidl::encoding::Context) -> usize {
3167 8
3168 }
3169
3170 #[inline(always)]
3171 fn inline_size(_context: fidl::encoding::Context) -> usize {
3172 32
3173 }
3174 }
3175
3176 unsafe impl<D: fidl::encoding::ResourceDialect>
3177 fidl::encoding::Encode<ServiceSubscriberOnInstanceLostRequest, D>
3178 for &ServiceSubscriberOnInstanceLostRequest
3179 {
3180 #[inline]
3181 unsafe fn encode(
3182 self,
3183 encoder: &mut fidl::encoding::Encoder<'_, D>,
3184 offset: usize,
3185 _depth: fidl::encoding::Depth,
3186 ) -> fidl::Result<()> {
3187 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceLostRequest>(offset);
3188 fidl::encoding::Encode::<ServiceSubscriberOnInstanceLostRequest, D>::encode(
3190 (
3191 <fidl::encoding::BoundedString<22> as fidl::encoding::ValueTypeMarker>::borrow(
3192 &self.service,
3193 ),
3194 <fidl::encoding::BoundedString<63> as fidl::encoding::ValueTypeMarker>::borrow(
3195 &self.instance,
3196 ),
3197 ),
3198 encoder,
3199 offset,
3200 _depth,
3201 )
3202 }
3203 }
3204 unsafe impl<
3205 D: fidl::encoding::ResourceDialect,
3206 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<22>, D>,
3207 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<63>, D>,
3208 > fidl::encoding::Encode<ServiceSubscriberOnInstanceLostRequest, D> for (T0, T1)
3209 {
3210 #[inline]
3211 unsafe fn encode(
3212 self,
3213 encoder: &mut fidl::encoding::Encoder<'_, D>,
3214 offset: usize,
3215 depth: fidl::encoding::Depth,
3216 ) -> fidl::Result<()> {
3217 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceLostRequest>(offset);
3218 self.0.encode(encoder, offset + 0, depth)?;
3222 self.1.encode(encoder, offset + 16, depth)?;
3223 Ok(())
3224 }
3225 }
3226
3227 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3228 for ServiceSubscriberOnInstanceLostRequest
3229 {
3230 #[inline(always)]
3231 fn new_empty() -> Self {
3232 Self {
3233 service: fidl::new_empty!(fidl::encoding::BoundedString<22>, D),
3234 instance: fidl::new_empty!(fidl::encoding::BoundedString<63>, D),
3235 }
3236 }
3237
3238 #[inline]
3239 unsafe fn decode(
3240 &mut self,
3241 decoder: &mut fidl::encoding::Decoder<'_, D>,
3242 offset: usize,
3243 _depth: fidl::encoding::Depth,
3244 ) -> fidl::Result<()> {
3245 decoder.debug_check_bounds::<Self>(offset);
3246 fidl::decode!(
3248 fidl::encoding::BoundedString<22>,
3249 D,
3250 &mut self.service,
3251 decoder,
3252 offset + 0,
3253 _depth
3254 )?;
3255 fidl::decode!(
3256 fidl::encoding::BoundedString<63>,
3257 D,
3258 &mut self.instance,
3259 decoder,
3260 offset + 16,
3261 _depth
3262 )?;
3263 Ok(())
3264 }
3265 }
3266
3267 impl fidl::encoding::ValueTypeMarker for ServiceSubscriberOnQueryRequest {
3268 type Borrowed<'a> = &'a Self;
3269 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3270 value
3271 }
3272 }
3273
3274 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriberOnQueryRequest {
3275 type Owned = Self;
3276
3277 #[inline(always)]
3278 fn inline_align(_context: fidl::encoding::Context) -> usize {
3279 4
3280 }
3281
3282 #[inline(always)]
3283 fn inline_size(_context: fidl::encoding::Context) -> usize {
3284 4
3285 }
3286 }
3287
3288 unsafe impl<D: fidl::encoding::ResourceDialect>
3289 fidl::encoding::Encode<ServiceSubscriberOnQueryRequest, D>
3290 for &ServiceSubscriberOnQueryRequest
3291 {
3292 #[inline]
3293 unsafe fn encode(
3294 self,
3295 encoder: &mut fidl::encoding::Encoder<'_, D>,
3296 offset: usize,
3297 _depth: fidl::encoding::Depth,
3298 ) -> fidl::Result<()> {
3299 encoder.debug_check_bounds::<ServiceSubscriberOnQueryRequest>(offset);
3300 fidl::encoding::Encode::<ServiceSubscriberOnQueryRequest, D>::encode(
3302 (<ResourceType as fidl::encoding::ValueTypeMarker>::borrow(&self.resource_type),),
3303 encoder,
3304 offset,
3305 _depth,
3306 )
3307 }
3308 }
3309 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ResourceType, D>>
3310 fidl::encoding::Encode<ServiceSubscriberOnQueryRequest, D> for (T0,)
3311 {
3312 #[inline]
3313 unsafe fn encode(
3314 self,
3315 encoder: &mut fidl::encoding::Encoder<'_, D>,
3316 offset: usize,
3317 depth: fidl::encoding::Depth,
3318 ) -> fidl::Result<()> {
3319 encoder.debug_check_bounds::<ServiceSubscriberOnQueryRequest>(offset);
3320 self.0.encode(encoder, offset + 0, depth)?;
3324 Ok(())
3325 }
3326 }
3327
3328 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3329 for ServiceSubscriberOnQueryRequest
3330 {
3331 #[inline(always)]
3332 fn new_empty() -> Self {
3333 Self { resource_type: fidl::new_empty!(ResourceType, D) }
3334 }
3335
3336 #[inline]
3337 unsafe fn decode(
3338 &mut self,
3339 decoder: &mut fidl::encoding::Decoder<'_, D>,
3340 offset: usize,
3341 _depth: fidl::encoding::Depth,
3342 ) -> fidl::Result<()> {
3343 decoder.debug_check_bounds::<Self>(offset);
3344 fidl::decode!(ResourceType, D, &mut self.resource_type, decoder, offset + 0, _depth)?;
3346 Ok(())
3347 }
3348 }
3349
3350 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionListenerOnInstanceChangedRequest {
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 ServiceSubscriptionListenerOnInstanceChangedRequest {
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>
3372 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceChangedRequest, D>
3373 for &ServiceSubscriptionListenerOnInstanceChangedRequest
3374 {
3375 #[inline]
3376 unsafe fn encode(
3377 self,
3378 encoder: &mut fidl::encoding::Encoder<'_, D>,
3379 offset: usize,
3380 _depth: fidl::encoding::Depth,
3381 ) -> fidl::Result<()> {
3382 encoder
3383 .debug_check_bounds::<ServiceSubscriptionListenerOnInstanceChangedRequest>(offset);
3384 fidl::encoding::Encode::<ServiceSubscriptionListenerOnInstanceChangedRequest, D>::encode(
3386 (<ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),),
3387 encoder,
3388 offset,
3389 _depth,
3390 )
3391 }
3392 }
3393 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
3394 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceChangedRequest, D> for (T0,)
3395 {
3396 #[inline]
3397 unsafe fn encode(
3398 self,
3399 encoder: &mut fidl::encoding::Encoder<'_, D>,
3400 offset: usize,
3401 depth: fidl::encoding::Depth,
3402 ) -> fidl::Result<()> {
3403 encoder
3404 .debug_check_bounds::<ServiceSubscriptionListenerOnInstanceChangedRequest>(offset);
3405 self.0.encode(encoder, offset + 0, depth)?;
3409 Ok(())
3410 }
3411 }
3412
3413 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3414 for ServiceSubscriptionListenerOnInstanceChangedRequest
3415 {
3416 #[inline(always)]
3417 fn new_empty() -> Self {
3418 Self { instance: fidl::new_empty!(ServiceInstance, D) }
3419 }
3420
3421 #[inline]
3422 unsafe fn decode(
3423 &mut self,
3424 decoder: &mut fidl::encoding::Decoder<'_, D>,
3425 offset: usize,
3426 _depth: fidl::encoding::Depth,
3427 ) -> fidl::Result<()> {
3428 decoder.debug_check_bounds::<Self>(offset);
3429 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
3431 Ok(())
3432 }
3433 }
3434
3435 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionListenerOnInstanceDiscoveredRequest {
3436 type Borrowed<'a> = &'a Self;
3437 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3438 value
3439 }
3440 }
3441
3442 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriptionListenerOnInstanceDiscoveredRequest {
3443 type Owned = Self;
3444
3445 #[inline(always)]
3446 fn inline_align(_context: fidl::encoding::Context) -> usize {
3447 8
3448 }
3449
3450 #[inline(always)]
3451 fn inline_size(_context: fidl::encoding::Context) -> usize {
3452 16
3453 }
3454 }
3455
3456 unsafe impl<D: fidl::encoding::ResourceDialect>
3457 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceDiscoveredRequest, D>
3458 for &ServiceSubscriptionListenerOnInstanceDiscoveredRequest
3459 {
3460 #[inline]
3461 unsafe fn encode(
3462 self,
3463 encoder: &mut fidl::encoding::Encoder<'_, D>,
3464 offset: usize,
3465 _depth: fidl::encoding::Depth,
3466 ) -> fidl::Result<()> {
3467 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnInstanceDiscoveredRequest>(
3468 offset,
3469 );
3470 fidl::encoding::Encode::<ServiceSubscriptionListenerOnInstanceDiscoveredRequest, D>::encode(
3472 (
3473 <ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),
3474 ),
3475 encoder, offset, _depth
3476 )
3477 }
3478 }
3479 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
3480 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceDiscoveredRequest, D> for (T0,)
3481 {
3482 #[inline]
3483 unsafe fn encode(
3484 self,
3485 encoder: &mut fidl::encoding::Encoder<'_, D>,
3486 offset: usize,
3487 depth: fidl::encoding::Depth,
3488 ) -> fidl::Result<()> {
3489 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnInstanceDiscoveredRequest>(
3490 offset,
3491 );
3492 self.0.encode(encoder, offset + 0, depth)?;
3496 Ok(())
3497 }
3498 }
3499
3500 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3501 for ServiceSubscriptionListenerOnInstanceDiscoveredRequest
3502 {
3503 #[inline(always)]
3504 fn new_empty() -> Self {
3505 Self { instance: fidl::new_empty!(ServiceInstance, D) }
3506 }
3507
3508 #[inline]
3509 unsafe fn decode(
3510 &mut self,
3511 decoder: &mut fidl::encoding::Decoder<'_, D>,
3512 offset: usize,
3513 _depth: fidl::encoding::Depth,
3514 ) -> fidl::Result<()> {
3515 decoder.debug_check_bounds::<Self>(offset);
3516 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
3518 Ok(())
3519 }
3520 }
3521
3522 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionListenerOnInstanceLostRequest {
3523 type Borrowed<'a> = &'a Self;
3524 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3525 value
3526 }
3527 }
3528
3529 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriptionListenerOnInstanceLostRequest {
3530 type Owned = Self;
3531
3532 #[inline(always)]
3533 fn inline_align(_context: fidl::encoding::Context) -> usize {
3534 8
3535 }
3536
3537 #[inline(always)]
3538 fn inline_size(_context: fidl::encoding::Context) -> usize {
3539 32
3540 }
3541 }
3542
3543 unsafe impl<D: fidl::encoding::ResourceDialect>
3544 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceLostRequest, D>
3545 for &ServiceSubscriptionListenerOnInstanceLostRequest
3546 {
3547 #[inline]
3548 unsafe fn encode(
3549 self,
3550 encoder: &mut fidl::encoding::Encoder<'_, D>,
3551 offset: usize,
3552 _depth: fidl::encoding::Depth,
3553 ) -> fidl::Result<()> {
3554 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnInstanceLostRequest>(offset);
3555 fidl::encoding::Encode::<ServiceSubscriptionListenerOnInstanceLostRequest, D>::encode(
3557 (
3558 <fidl::encoding::BoundedString<22> as fidl::encoding::ValueTypeMarker>::borrow(
3559 &self.service,
3560 ),
3561 <fidl::encoding::BoundedString<63> as fidl::encoding::ValueTypeMarker>::borrow(
3562 &self.instance,
3563 ),
3564 ),
3565 encoder,
3566 offset,
3567 _depth,
3568 )
3569 }
3570 }
3571 unsafe impl<
3572 D: fidl::encoding::ResourceDialect,
3573 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<22>, D>,
3574 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<63>, D>,
3575 > fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceLostRequest, D> for (T0, T1)
3576 {
3577 #[inline]
3578 unsafe fn encode(
3579 self,
3580 encoder: &mut fidl::encoding::Encoder<'_, D>,
3581 offset: usize,
3582 depth: fidl::encoding::Depth,
3583 ) -> fidl::Result<()> {
3584 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnInstanceLostRequest>(offset);
3585 self.0.encode(encoder, offset + 0, depth)?;
3589 self.1.encode(encoder, offset + 16, depth)?;
3590 Ok(())
3591 }
3592 }
3593
3594 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3595 for ServiceSubscriptionListenerOnInstanceLostRequest
3596 {
3597 #[inline(always)]
3598 fn new_empty() -> Self {
3599 Self {
3600 service: fidl::new_empty!(fidl::encoding::BoundedString<22>, D),
3601 instance: fidl::new_empty!(fidl::encoding::BoundedString<63>, D),
3602 }
3603 }
3604
3605 #[inline]
3606 unsafe fn decode(
3607 &mut self,
3608 decoder: &mut fidl::encoding::Decoder<'_, D>,
3609 offset: usize,
3610 _depth: fidl::encoding::Depth,
3611 ) -> fidl::Result<()> {
3612 decoder.debug_check_bounds::<Self>(offset);
3613 fidl::decode!(
3615 fidl::encoding::BoundedString<22>,
3616 D,
3617 &mut self.service,
3618 decoder,
3619 offset + 0,
3620 _depth
3621 )?;
3622 fidl::decode!(
3623 fidl::encoding::BoundedString<63>,
3624 D,
3625 &mut self.instance,
3626 decoder,
3627 offset + 16,
3628 _depth
3629 )?;
3630 Ok(())
3631 }
3632 }
3633
3634 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionListenerOnQueryRequest {
3635 type Borrowed<'a> = &'a Self;
3636 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3637 value
3638 }
3639 }
3640
3641 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriptionListenerOnQueryRequest {
3642 type Owned = Self;
3643
3644 #[inline(always)]
3645 fn inline_align(_context: fidl::encoding::Context) -> usize {
3646 4
3647 }
3648
3649 #[inline(always)]
3650 fn inline_size(_context: fidl::encoding::Context) -> usize {
3651 4
3652 }
3653 }
3654
3655 unsafe impl<D: fidl::encoding::ResourceDialect>
3656 fidl::encoding::Encode<ServiceSubscriptionListenerOnQueryRequest, D>
3657 for &ServiceSubscriptionListenerOnQueryRequest
3658 {
3659 #[inline]
3660 unsafe fn encode(
3661 self,
3662 encoder: &mut fidl::encoding::Encoder<'_, D>,
3663 offset: usize,
3664 _depth: fidl::encoding::Depth,
3665 ) -> fidl::Result<()> {
3666 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnQueryRequest>(offset);
3667 fidl::encoding::Encode::<ServiceSubscriptionListenerOnQueryRequest, D>::encode(
3669 (<ResourceType as fidl::encoding::ValueTypeMarker>::borrow(&self.resource_type),),
3670 encoder,
3671 offset,
3672 _depth,
3673 )
3674 }
3675 }
3676 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ResourceType, D>>
3677 fidl::encoding::Encode<ServiceSubscriptionListenerOnQueryRequest, D> for (T0,)
3678 {
3679 #[inline]
3680 unsafe fn encode(
3681 self,
3682 encoder: &mut fidl::encoding::Encoder<'_, D>,
3683 offset: usize,
3684 depth: fidl::encoding::Depth,
3685 ) -> fidl::Result<()> {
3686 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnQueryRequest>(offset);
3687 self.0.encode(encoder, offset + 0, depth)?;
3691 Ok(())
3692 }
3693 }
3694
3695 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3696 for ServiceSubscriptionListenerOnQueryRequest
3697 {
3698 #[inline(always)]
3699 fn new_empty() -> Self {
3700 Self { resource_type: fidl::new_empty!(ResourceType, D) }
3701 }
3702
3703 #[inline]
3704 unsafe fn decode(
3705 &mut self,
3706 decoder: &mut fidl::encoding::Decoder<'_, D>,
3707 offset: usize,
3708 _depth: fidl::encoding::Depth,
3709 ) -> fidl::Result<()> {
3710 decoder.debug_check_bounds::<Self>(offset);
3711 fidl::decode!(ResourceType, D, &mut self.resource_type, decoder, offset + 0, _depth)?;
3713 Ok(())
3714 }
3715 }
3716
3717 impl HostNameResolutionOptions {
3718 #[inline(always)]
3719 fn max_ordinal_present(&self) -> u64 {
3720 if let Some(_) = self.exclude_local_proxies {
3721 return 4;
3722 }
3723 if let Some(_) = self.exclude_local {
3724 return 3;
3725 }
3726 if let Some(_) = self.ip_versions {
3727 return 2;
3728 }
3729 if let Some(_) = self.media {
3730 return 1;
3731 }
3732 0
3733 }
3734 }
3735
3736 impl fidl::encoding::ValueTypeMarker for HostNameResolutionOptions {
3737 type Borrowed<'a> = &'a Self;
3738 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3739 value
3740 }
3741 }
3742
3743 unsafe impl fidl::encoding::TypeMarker for HostNameResolutionOptions {
3744 type Owned = Self;
3745
3746 #[inline(always)]
3747 fn inline_align(_context: fidl::encoding::Context) -> usize {
3748 8
3749 }
3750
3751 #[inline(always)]
3752 fn inline_size(_context: fidl::encoding::Context) -> usize {
3753 16
3754 }
3755 }
3756
3757 unsafe impl<D: fidl::encoding::ResourceDialect>
3758 fidl::encoding::Encode<HostNameResolutionOptions, D> for &HostNameResolutionOptions
3759 {
3760 unsafe fn encode(
3761 self,
3762 encoder: &mut fidl::encoding::Encoder<'_, D>,
3763 offset: usize,
3764 mut depth: fidl::encoding::Depth,
3765 ) -> fidl::Result<()> {
3766 encoder.debug_check_bounds::<HostNameResolutionOptions>(offset);
3767 let max_ordinal: u64 = self.max_ordinal_present();
3769 encoder.write_num(max_ordinal, offset);
3770 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3771 if max_ordinal == 0 {
3773 return Ok(());
3774 }
3775 depth.increment()?;
3776 let envelope_size = 8;
3777 let bytes_len = max_ordinal as usize * envelope_size;
3778 #[allow(unused_variables)]
3779 let offset = encoder.out_of_line_offset(bytes_len);
3780 let mut _prev_end_offset: usize = 0;
3781 if 1 > max_ordinal {
3782 return Ok(());
3783 }
3784
3785 let cur_offset: usize = (1 - 1) * envelope_size;
3788
3789 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3791
3792 fidl::encoding::encode_in_envelope_optional::<Media, D>(
3797 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
3798 encoder,
3799 offset + cur_offset,
3800 depth,
3801 )?;
3802
3803 _prev_end_offset = cur_offset + envelope_size;
3804 if 2 > max_ordinal {
3805 return Ok(());
3806 }
3807
3808 let cur_offset: usize = (2 - 1) * envelope_size;
3811
3812 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3814
3815 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
3820 self.ip_versions
3821 .as_ref()
3822 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
3823 encoder,
3824 offset + cur_offset,
3825 depth,
3826 )?;
3827
3828 _prev_end_offset = cur_offset + envelope_size;
3829 if 3 > max_ordinal {
3830 return Ok(());
3831 }
3832
3833 let cur_offset: usize = (3 - 1) * envelope_size;
3836
3837 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3839
3840 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3845 self.exclude_local.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3846 encoder,
3847 offset + cur_offset,
3848 depth,
3849 )?;
3850
3851 _prev_end_offset = cur_offset + envelope_size;
3852 if 4 > max_ordinal {
3853 return Ok(());
3854 }
3855
3856 let cur_offset: usize = (4 - 1) * envelope_size;
3859
3860 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3862
3863 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3868 self.exclude_local_proxies
3869 .as_ref()
3870 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3871 encoder,
3872 offset + cur_offset,
3873 depth,
3874 )?;
3875
3876 _prev_end_offset = cur_offset + envelope_size;
3877
3878 Ok(())
3879 }
3880 }
3881
3882 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3883 for HostNameResolutionOptions
3884 {
3885 #[inline(always)]
3886 fn new_empty() -> Self {
3887 Self::default()
3888 }
3889
3890 unsafe fn decode(
3891 &mut self,
3892 decoder: &mut fidl::encoding::Decoder<'_, D>,
3893 offset: usize,
3894 mut depth: fidl::encoding::Depth,
3895 ) -> fidl::Result<()> {
3896 decoder.debug_check_bounds::<Self>(offset);
3897 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3898 None => return Err(fidl::Error::NotNullable),
3899 Some(len) => len,
3900 };
3901 if len == 0 {
3903 return Ok(());
3904 };
3905 depth.increment()?;
3906 let envelope_size = 8;
3907 let bytes_len = len * envelope_size;
3908 let offset = decoder.out_of_line_offset(bytes_len)?;
3909 let mut _next_ordinal_to_read = 0;
3911 let mut next_offset = offset;
3912 let end_offset = offset + bytes_len;
3913 _next_ordinal_to_read += 1;
3914 if next_offset >= end_offset {
3915 return Ok(());
3916 }
3917
3918 while _next_ordinal_to_read < 1 {
3920 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3921 _next_ordinal_to_read += 1;
3922 next_offset += envelope_size;
3923 }
3924
3925 let next_out_of_line = decoder.next_out_of_line();
3926 let handles_before = decoder.remaining_handles();
3927 if let Some((inlined, num_bytes, num_handles)) =
3928 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3929 {
3930 let member_inline_size =
3931 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3932 if inlined != (member_inline_size <= 4) {
3933 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3934 }
3935 let inner_offset;
3936 let mut inner_depth = depth.clone();
3937 if inlined {
3938 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3939 inner_offset = next_offset;
3940 } else {
3941 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3942 inner_depth.increment()?;
3943 }
3944 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
3945 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
3946 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3947 {
3948 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3949 }
3950 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3951 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3952 }
3953 }
3954
3955 next_offset += envelope_size;
3956 _next_ordinal_to_read += 1;
3957 if next_offset >= end_offset {
3958 return Ok(());
3959 }
3960
3961 while _next_ordinal_to_read < 2 {
3963 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3964 _next_ordinal_to_read += 1;
3965 next_offset += envelope_size;
3966 }
3967
3968 let next_out_of_line = decoder.next_out_of_line();
3969 let handles_before = decoder.remaining_handles();
3970 if let Some((inlined, num_bytes, num_handles)) =
3971 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3972 {
3973 let member_inline_size =
3974 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3975 if inlined != (member_inline_size <= 4) {
3976 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3977 }
3978 let inner_offset;
3979 let mut inner_depth = depth.clone();
3980 if inlined {
3981 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3982 inner_offset = next_offset;
3983 } else {
3984 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3985 inner_depth.increment()?;
3986 }
3987 let val_ref =
3988 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
3989 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
3990 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3991 {
3992 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3993 }
3994 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3995 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3996 }
3997 }
3998
3999 next_offset += envelope_size;
4000 _next_ordinal_to_read += 1;
4001 if next_offset >= end_offset {
4002 return Ok(());
4003 }
4004
4005 while _next_ordinal_to_read < 3 {
4007 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4008 _next_ordinal_to_read += 1;
4009 next_offset += envelope_size;
4010 }
4011
4012 let next_out_of_line = decoder.next_out_of_line();
4013 let handles_before = decoder.remaining_handles();
4014 if let Some((inlined, num_bytes, num_handles)) =
4015 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4016 {
4017 let member_inline_size =
4018 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4019 if inlined != (member_inline_size <= 4) {
4020 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4021 }
4022 let inner_offset;
4023 let mut inner_depth = depth.clone();
4024 if inlined {
4025 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4026 inner_offset = next_offset;
4027 } else {
4028 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4029 inner_depth.increment()?;
4030 }
4031 let val_ref = self.exclude_local.get_or_insert_with(|| fidl::new_empty!(bool, D));
4032 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4033 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4034 {
4035 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4036 }
4037 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4038 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4039 }
4040 }
4041
4042 next_offset += envelope_size;
4043 _next_ordinal_to_read += 1;
4044 if next_offset >= end_offset {
4045 return Ok(());
4046 }
4047
4048 while _next_ordinal_to_read < 4 {
4050 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4051 _next_ordinal_to_read += 1;
4052 next_offset += envelope_size;
4053 }
4054
4055 let next_out_of_line = decoder.next_out_of_line();
4056 let handles_before = decoder.remaining_handles();
4057 if let Some((inlined, num_bytes, num_handles)) =
4058 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4059 {
4060 let member_inline_size =
4061 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4062 if inlined != (member_inline_size <= 4) {
4063 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4064 }
4065 let inner_offset;
4066 let mut inner_depth = depth.clone();
4067 if inlined {
4068 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4069 inner_offset = next_offset;
4070 } else {
4071 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4072 inner_depth.increment()?;
4073 }
4074 let val_ref =
4075 self.exclude_local_proxies.get_or_insert_with(|| fidl::new_empty!(bool, D));
4076 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4077 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4078 {
4079 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4080 }
4081 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4082 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4083 }
4084 }
4085
4086 next_offset += envelope_size;
4087
4088 while next_offset < end_offset {
4090 _next_ordinal_to_read += 1;
4091 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4092 next_offset += envelope_size;
4093 }
4094
4095 Ok(())
4096 }
4097 }
4098
4099 impl HostNameSubscriptionOptions {
4100 #[inline(always)]
4101 fn max_ordinal_present(&self) -> u64 {
4102 if let Some(_) = self.exclude_local_proxies {
4103 return 4;
4104 }
4105 if let Some(_) = self.exclude_local {
4106 return 3;
4107 }
4108 if let Some(_) = self.ip_versions {
4109 return 2;
4110 }
4111 if let Some(_) = self.media {
4112 return 1;
4113 }
4114 0
4115 }
4116 }
4117
4118 impl fidl::encoding::ValueTypeMarker for HostNameSubscriptionOptions {
4119 type Borrowed<'a> = &'a Self;
4120 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4121 value
4122 }
4123 }
4124
4125 unsafe impl fidl::encoding::TypeMarker for HostNameSubscriptionOptions {
4126 type Owned = Self;
4127
4128 #[inline(always)]
4129 fn inline_align(_context: fidl::encoding::Context) -> usize {
4130 8
4131 }
4132
4133 #[inline(always)]
4134 fn inline_size(_context: fidl::encoding::Context) -> usize {
4135 16
4136 }
4137 }
4138
4139 unsafe impl<D: fidl::encoding::ResourceDialect>
4140 fidl::encoding::Encode<HostNameSubscriptionOptions, D> for &HostNameSubscriptionOptions
4141 {
4142 unsafe fn encode(
4143 self,
4144 encoder: &mut fidl::encoding::Encoder<'_, D>,
4145 offset: usize,
4146 mut depth: fidl::encoding::Depth,
4147 ) -> fidl::Result<()> {
4148 encoder.debug_check_bounds::<HostNameSubscriptionOptions>(offset);
4149 let max_ordinal: u64 = self.max_ordinal_present();
4151 encoder.write_num(max_ordinal, offset);
4152 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4153 if max_ordinal == 0 {
4155 return Ok(());
4156 }
4157 depth.increment()?;
4158 let envelope_size = 8;
4159 let bytes_len = max_ordinal as usize * envelope_size;
4160 #[allow(unused_variables)]
4161 let offset = encoder.out_of_line_offset(bytes_len);
4162 let mut _prev_end_offset: usize = 0;
4163 if 1 > max_ordinal {
4164 return Ok(());
4165 }
4166
4167 let cur_offset: usize = (1 - 1) * envelope_size;
4170
4171 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4173
4174 fidl::encoding::encode_in_envelope_optional::<Media, D>(
4179 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
4180 encoder,
4181 offset + cur_offset,
4182 depth,
4183 )?;
4184
4185 _prev_end_offset = cur_offset + envelope_size;
4186 if 2 > max_ordinal {
4187 return Ok(());
4188 }
4189
4190 let cur_offset: usize = (2 - 1) * envelope_size;
4193
4194 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4196
4197 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
4202 self.ip_versions
4203 .as_ref()
4204 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
4205 encoder,
4206 offset + cur_offset,
4207 depth,
4208 )?;
4209
4210 _prev_end_offset = cur_offset + envelope_size;
4211 if 3 > max_ordinal {
4212 return Ok(());
4213 }
4214
4215 let cur_offset: usize = (3 - 1) * envelope_size;
4218
4219 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4221
4222 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4227 self.exclude_local.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4228 encoder,
4229 offset + cur_offset,
4230 depth,
4231 )?;
4232
4233 _prev_end_offset = cur_offset + envelope_size;
4234 if 4 > max_ordinal {
4235 return Ok(());
4236 }
4237
4238 let cur_offset: usize = (4 - 1) * envelope_size;
4241
4242 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4244
4245 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4250 self.exclude_local_proxies
4251 .as_ref()
4252 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4253 encoder,
4254 offset + cur_offset,
4255 depth,
4256 )?;
4257
4258 _prev_end_offset = cur_offset + envelope_size;
4259
4260 Ok(())
4261 }
4262 }
4263
4264 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4265 for HostNameSubscriptionOptions
4266 {
4267 #[inline(always)]
4268 fn new_empty() -> Self {
4269 Self::default()
4270 }
4271
4272 unsafe fn decode(
4273 &mut self,
4274 decoder: &mut fidl::encoding::Decoder<'_, D>,
4275 offset: usize,
4276 mut depth: fidl::encoding::Depth,
4277 ) -> fidl::Result<()> {
4278 decoder.debug_check_bounds::<Self>(offset);
4279 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4280 None => return Err(fidl::Error::NotNullable),
4281 Some(len) => len,
4282 };
4283 if len == 0 {
4285 return Ok(());
4286 };
4287 depth.increment()?;
4288 let envelope_size = 8;
4289 let bytes_len = len * envelope_size;
4290 let offset = decoder.out_of_line_offset(bytes_len)?;
4291 let mut _next_ordinal_to_read = 0;
4293 let mut next_offset = offset;
4294 let end_offset = offset + bytes_len;
4295 _next_ordinal_to_read += 1;
4296 if next_offset >= end_offset {
4297 return Ok(());
4298 }
4299
4300 while _next_ordinal_to_read < 1 {
4302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4303 _next_ordinal_to_read += 1;
4304 next_offset += envelope_size;
4305 }
4306
4307 let next_out_of_line = decoder.next_out_of_line();
4308 let handles_before = decoder.remaining_handles();
4309 if let Some((inlined, num_bytes, num_handles)) =
4310 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4311 {
4312 let member_inline_size =
4313 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4314 if inlined != (member_inline_size <= 4) {
4315 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4316 }
4317 let inner_offset;
4318 let mut inner_depth = depth.clone();
4319 if inlined {
4320 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4321 inner_offset = next_offset;
4322 } else {
4323 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4324 inner_depth.increment()?;
4325 }
4326 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
4327 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
4328 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4329 {
4330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4331 }
4332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4334 }
4335 }
4336
4337 next_offset += envelope_size;
4338 _next_ordinal_to_read += 1;
4339 if next_offset >= end_offset {
4340 return Ok(());
4341 }
4342
4343 while _next_ordinal_to_read < 2 {
4345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4346 _next_ordinal_to_read += 1;
4347 next_offset += envelope_size;
4348 }
4349
4350 let next_out_of_line = decoder.next_out_of_line();
4351 let handles_before = decoder.remaining_handles();
4352 if let Some((inlined, num_bytes, num_handles)) =
4353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4354 {
4355 let member_inline_size =
4356 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4357 if inlined != (member_inline_size <= 4) {
4358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4359 }
4360 let inner_offset;
4361 let mut inner_depth = depth.clone();
4362 if inlined {
4363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4364 inner_offset = next_offset;
4365 } else {
4366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4367 inner_depth.increment()?;
4368 }
4369 let val_ref =
4370 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
4371 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
4372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4373 {
4374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4375 }
4376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4378 }
4379 }
4380
4381 next_offset += envelope_size;
4382 _next_ordinal_to_read += 1;
4383 if next_offset >= end_offset {
4384 return Ok(());
4385 }
4386
4387 while _next_ordinal_to_read < 3 {
4389 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4390 _next_ordinal_to_read += 1;
4391 next_offset += envelope_size;
4392 }
4393
4394 let next_out_of_line = decoder.next_out_of_line();
4395 let handles_before = decoder.remaining_handles();
4396 if let Some((inlined, num_bytes, num_handles)) =
4397 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4398 {
4399 let member_inline_size =
4400 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4401 if inlined != (member_inline_size <= 4) {
4402 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4403 }
4404 let inner_offset;
4405 let mut inner_depth = depth.clone();
4406 if inlined {
4407 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4408 inner_offset = next_offset;
4409 } else {
4410 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4411 inner_depth.increment()?;
4412 }
4413 let val_ref = self.exclude_local.get_or_insert_with(|| fidl::new_empty!(bool, D));
4414 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4415 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4416 {
4417 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4418 }
4419 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4420 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4421 }
4422 }
4423
4424 next_offset += envelope_size;
4425 _next_ordinal_to_read += 1;
4426 if next_offset >= end_offset {
4427 return Ok(());
4428 }
4429
4430 while _next_ordinal_to_read < 4 {
4432 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4433 _next_ordinal_to_read += 1;
4434 next_offset += envelope_size;
4435 }
4436
4437 let next_out_of_line = decoder.next_out_of_line();
4438 let handles_before = decoder.remaining_handles();
4439 if let Some((inlined, num_bytes, num_handles)) =
4440 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4441 {
4442 let member_inline_size =
4443 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4444 if inlined != (member_inline_size <= 4) {
4445 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4446 }
4447 let inner_offset;
4448 let mut inner_depth = depth.clone();
4449 if inlined {
4450 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4451 inner_offset = next_offset;
4452 } else {
4453 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4454 inner_depth.increment()?;
4455 }
4456 let val_ref =
4457 self.exclude_local_proxies.get_or_insert_with(|| fidl::new_empty!(bool, D));
4458 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4459 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4460 {
4461 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4462 }
4463 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4464 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4465 }
4466 }
4467
4468 next_offset += envelope_size;
4469
4470 while next_offset < end_offset {
4472 _next_ordinal_to_read += 1;
4473 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4474 next_offset += envelope_size;
4475 }
4476
4477 Ok(())
4478 }
4479 }
4480
4481 impl ProxyHostPublicationOptions {
4482 #[inline(always)]
4483 fn max_ordinal_present(&self) -> u64 {
4484 if let Some(_) = self.perform_probe {
4485 return 3;
4486 }
4487 if let Some(_) = self.ip_versions {
4488 return 2;
4489 }
4490 if let Some(_) = self.media {
4491 return 1;
4492 }
4493 0
4494 }
4495 }
4496
4497 impl fidl::encoding::ValueTypeMarker for ProxyHostPublicationOptions {
4498 type Borrowed<'a> = &'a Self;
4499 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4500 value
4501 }
4502 }
4503
4504 unsafe impl fidl::encoding::TypeMarker for ProxyHostPublicationOptions {
4505 type Owned = Self;
4506
4507 #[inline(always)]
4508 fn inline_align(_context: fidl::encoding::Context) -> usize {
4509 8
4510 }
4511
4512 #[inline(always)]
4513 fn inline_size(_context: fidl::encoding::Context) -> usize {
4514 16
4515 }
4516 }
4517
4518 unsafe impl<D: fidl::encoding::ResourceDialect>
4519 fidl::encoding::Encode<ProxyHostPublicationOptions, D> for &ProxyHostPublicationOptions
4520 {
4521 unsafe fn encode(
4522 self,
4523 encoder: &mut fidl::encoding::Encoder<'_, D>,
4524 offset: usize,
4525 mut depth: fidl::encoding::Depth,
4526 ) -> fidl::Result<()> {
4527 encoder.debug_check_bounds::<ProxyHostPublicationOptions>(offset);
4528 let max_ordinal: u64 = self.max_ordinal_present();
4530 encoder.write_num(max_ordinal, offset);
4531 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4532 if max_ordinal == 0 {
4534 return Ok(());
4535 }
4536 depth.increment()?;
4537 let envelope_size = 8;
4538 let bytes_len = max_ordinal as usize * envelope_size;
4539 #[allow(unused_variables)]
4540 let offset = encoder.out_of_line_offset(bytes_len);
4541 let mut _prev_end_offset: usize = 0;
4542 if 1 > max_ordinal {
4543 return Ok(());
4544 }
4545
4546 let cur_offset: usize = (1 - 1) * envelope_size;
4549
4550 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4552
4553 fidl::encoding::encode_in_envelope_optional::<Media, D>(
4558 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
4559 encoder,
4560 offset + cur_offset,
4561 depth,
4562 )?;
4563
4564 _prev_end_offset = cur_offset + envelope_size;
4565 if 2 > max_ordinal {
4566 return Ok(());
4567 }
4568
4569 let cur_offset: usize = (2 - 1) * envelope_size;
4572
4573 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4575
4576 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
4581 self.ip_versions
4582 .as_ref()
4583 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
4584 encoder,
4585 offset + cur_offset,
4586 depth,
4587 )?;
4588
4589 _prev_end_offset = cur_offset + envelope_size;
4590 if 3 > max_ordinal {
4591 return Ok(());
4592 }
4593
4594 let cur_offset: usize = (3 - 1) * envelope_size;
4597
4598 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4600
4601 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4606 self.perform_probe.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4607 encoder,
4608 offset + cur_offset,
4609 depth,
4610 )?;
4611
4612 _prev_end_offset = cur_offset + envelope_size;
4613
4614 Ok(())
4615 }
4616 }
4617
4618 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4619 for ProxyHostPublicationOptions
4620 {
4621 #[inline(always)]
4622 fn new_empty() -> Self {
4623 Self::default()
4624 }
4625
4626 unsafe fn decode(
4627 &mut self,
4628 decoder: &mut fidl::encoding::Decoder<'_, D>,
4629 offset: usize,
4630 mut depth: fidl::encoding::Depth,
4631 ) -> fidl::Result<()> {
4632 decoder.debug_check_bounds::<Self>(offset);
4633 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4634 None => return Err(fidl::Error::NotNullable),
4635 Some(len) => len,
4636 };
4637 if len == 0 {
4639 return Ok(());
4640 };
4641 depth.increment()?;
4642 let envelope_size = 8;
4643 let bytes_len = len * envelope_size;
4644 let offset = decoder.out_of_line_offset(bytes_len)?;
4645 let mut _next_ordinal_to_read = 0;
4647 let mut next_offset = offset;
4648 let end_offset = offset + bytes_len;
4649 _next_ordinal_to_read += 1;
4650 if next_offset >= end_offset {
4651 return Ok(());
4652 }
4653
4654 while _next_ordinal_to_read < 1 {
4656 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4657 _next_ordinal_to_read += 1;
4658 next_offset += envelope_size;
4659 }
4660
4661 let next_out_of_line = decoder.next_out_of_line();
4662 let handles_before = decoder.remaining_handles();
4663 if let Some((inlined, num_bytes, num_handles)) =
4664 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4665 {
4666 let member_inline_size =
4667 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4668 if inlined != (member_inline_size <= 4) {
4669 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4670 }
4671 let inner_offset;
4672 let mut inner_depth = depth.clone();
4673 if inlined {
4674 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4675 inner_offset = next_offset;
4676 } else {
4677 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4678 inner_depth.increment()?;
4679 }
4680 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
4681 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
4682 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4683 {
4684 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4685 }
4686 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4687 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4688 }
4689 }
4690
4691 next_offset += envelope_size;
4692 _next_ordinal_to_read += 1;
4693 if next_offset >= end_offset {
4694 return Ok(());
4695 }
4696
4697 while _next_ordinal_to_read < 2 {
4699 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4700 _next_ordinal_to_read += 1;
4701 next_offset += envelope_size;
4702 }
4703
4704 let next_out_of_line = decoder.next_out_of_line();
4705 let handles_before = decoder.remaining_handles();
4706 if let Some((inlined, num_bytes, num_handles)) =
4707 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4708 {
4709 let member_inline_size =
4710 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4711 if inlined != (member_inline_size <= 4) {
4712 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4713 }
4714 let inner_offset;
4715 let mut inner_depth = depth.clone();
4716 if inlined {
4717 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4718 inner_offset = next_offset;
4719 } else {
4720 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4721 inner_depth.increment()?;
4722 }
4723 let val_ref =
4724 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
4725 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
4726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4727 {
4728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4729 }
4730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4732 }
4733 }
4734
4735 next_offset += envelope_size;
4736 _next_ordinal_to_read += 1;
4737 if next_offset >= end_offset {
4738 return Ok(());
4739 }
4740
4741 while _next_ordinal_to_read < 3 {
4743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4744 _next_ordinal_to_read += 1;
4745 next_offset += envelope_size;
4746 }
4747
4748 let next_out_of_line = decoder.next_out_of_line();
4749 let handles_before = decoder.remaining_handles();
4750 if let Some((inlined, num_bytes, num_handles)) =
4751 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4752 {
4753 let member_inline_size =
4754 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4755 if inlined != (member_inline_size <= 4) {
4756 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4757 }
4758 let inner_offset;
4759 let mut inner_depth = depth.clone();
4760 if inlined {
4761 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4762 inner_offset = next_offset;
4763 } else {
4764 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4765 inner_depth.increment()?;
4766 }
4767 let val_ref = self.perform_probe.get_or_insert_with(|| fidl::new_empty!(bool, D));
4768 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4769 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4770 {
4771 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4772 }
4773 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4774 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4775 }
4776 }
4777
4778 next_offset += envelope_size;
4779
4780 while next_offset < end_offset {
4782 _next_ordinal_to_read += 1;
4783 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4784 next_offset += envelope_size;
4785 }
4786
4787 Ok(())
4788 }
4789 }
4790
4791 impl ServiceInstance {
4792 #[inline(always)]
4793 fn max_ordinal_present(&self) -> u64 {
4794 if let Some(_) = self.text_strings {
4795 return 10;
4796 }
4797 if let Some(_) = self.addresses {
4798 return 9;
4799 }
4800 if let Some(_) = self.target {
4801 return 8;
4802 }
4803 if let Some(_) = self.srv_weight {
4804 return 7;
4805 }
4806 if let Some(_) = self.srv_priority {
4807 return 6;
4808 }
4809 if let Some(_) = self.text {
4810 return 5;
4811 }
4812 if let Some(_) = self.ipv6_endpoint {
4813 return 4;
4814 }
4815 if let Some(_) = self.ipv4_endpoint {
4816 return 3;
4817 }
4818 if let Some(_) = self.instance {
4819 return 2;
4820 }
4821 if let Some(_) = self.service {
4822 return 1;
4823 }
4824 0
4825 }
4826 }
4827
4828 impl fidl::encoding::ValueTypeMarker for ServiceInstance {
4829 type Borrowed<'a> = &'a Self;
4830 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4831 value
4832 }
4833 }
4834
4835 unsafe impl fidl::encoding::TypeMarker for ServiceInstance {
4836 type Owned = Self;
4837
4838 #[inline(always)]
4839 fn inline_align(_context: fidl::encoding::Context) -> usize {
4840 8
4841 }
4842
4843 #[inline(always)]
4844 fn inline_size(_context: fidl::encoding::Context) -> usize {
4845 16
4846 }
4847 }
4848
4849 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceInstance, D>
4850 for &ServiceInstance
4851 {
4852 unsafe fn encode(
4853 self,
4854 encoder: &mut fidl::encoding::Encoder<'_, D>,
4855 offset: usize,
4856 mut depth: fidl::encoding::Depth,
4857 ) -> fidl::Result<()> {
4858 encoder.debug_check_bounds::<ServiceInstance>(offset);
4859 let max_ordinal: u64 = self.max_ordinal_present();
4861 encoder.write_num(max_ordinal, offset);
4862 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4863 if max_ordinal == 0 {
4865 return Ok(());
4866 }
4867 depth.increment()?;
4868 let envelope_size = 8;
4869 let bytes_len = max_ordinal as usize * envelope_size;
4870 #[allow(unused_variables)]
4871 let offset = encoder.out_of_line_offset(bytes_len);
4872 let mut _prev_end_offset: usize = 0;
4873 if 1 > max_ordinal {
4874 return Ok(());
4875 }
4876
4877 let cur_offset: usize = (1 - 1) * envelope_size;
4880
4881 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4883
4884 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<22>, D>(
4889 self.service.as_ref().map(
4890 <fidl::encoding::BoundedString<22> as fidl::encoding::ValueTypeMarker>::borrow,
4891 ),
4892 encoder,
4893 offset + cur_offset,
4894 depth,
4895 )?;
4896
4897 _prev_end_offset = cur_offset + envelope_size;
4898 if 2 > max_ordinal {
4899 return Ok(());
4900 }
4901
4902 let cur_offset: usize = (2 - 1) * envelope_size;
4905
4906 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4908
4909 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<63>, D>(
4914 self.instance.as_ref().map(
4915 <fidl::encoding::BoundedString<63> as fidl::encoding::ValueTypeMarker>::borrow,
4916 ),
4917 encoder,
4918 offset + cur_offset,
4919 depth,
4920 )?;
4921
4922 _prev_end_offset = cur_offset + envelope_size;
4923 if 3 > max_ordinal {
4924 return Ok(());
4925 }
4926
4927 let cur_offset: usize = (3 - 1) * envelope_size;
4930
4931 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4933
4934 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_common::Ipv4SocketAddress, D>(
4939 self.ipv4_endpoint.as_ref().map(<fidl_fuchsia_net_common::Ipv4SocketAddress as fidl::encoding::ValueTypeMarker>::borrow),
4940 encoder, offset + cur_offset, depth
4941 )?;
4942
4943 _prev_end_offset = cur_offset + envelope_size;
4944 if 4 > max_ordinal {
4945 return Ok(());
4946 }
4947
4948 let cur_offset: usize = (4 - 1) * envelope_size;
4951
4952 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4954
4955 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net_common::Ipv6SocketAddress, D>(
4960 self.ipv6_endpoint.as_ref().map(<fidl_fuchsia_net_common::Ipv6SocketAddress as fidl::encoding::ValueTypeMarker>::borrow),
4961 encoder, offset + cur_offset, depth
4962 )?;
4963
4964 _prev_end_offset = cur_offset + envelope_size;
4965 if 5 > max_ordinal {
4966 return Ok(());
4967 }
4968
4969 let cur_offset: usize = (5 - 1) * envelope_size;
4972
4973 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4975
4976 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>, D>(
4981 self.text.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256> as fidl::encoding::ValueTypeMarker>::borrow),
4982 encoder, offset + cur_offset, depth
4983 )?;
4984
4985 _prev_end_offset = cur_offset + envelope_size;
4986 if 6 > max_ordinal {
4987 return Ok(());
4988 }
4989
4990 let cur_offset: usize = (6 - 1) * envelope_size;
4993
4994 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4996
4997 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5002 self.srv_priority.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5003 encoder,
5004 offset + cur_offset,
5005 depth,
5006 )?;
5007
5008 _prev_end_offset = cur_offset + envelope_size;
5009 if 7 > max_ordinal {
5010 return Ok(());
5011 }
5012
5013 let cur_offset: usize = (7 - 1) * envelope_size;
5016
5017 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5019
5020 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5025 self.srv_weight.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5026 encoder,
5027 offset + cur_offset,
5028 depth,
5029 )?;
5030
5031 _prev_end_offset = cur_offset + envelope_size;
5032 if 8 > max_ordinal {
5033 return Ok(());
5034 }
5035
5036 let cur_offset: usize = (8 - 1) * envelope_size;
5039
5040 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5042
5043 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5048 self.target.as_ref().map(
5049 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5050 ),
5051 encoder,
5052 offset + cur_offset,
5053 depth,
5054 )?;
5055
5056 _prev_end_offset = cur_offset + envelope_size;
5057 if 9 > max_ordinal {
5058 return Ok(());
5059 }
5060
5061 let cur_offset: usize = (9 - 1) * envelope_size;
5064
5065 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5067
5068 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_net_common::SocketAddress, 64>, D>(
5073 self.addresses.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_net_common::SocketAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow),
5074 encoder, offset + cur_offset, depth
5075 )?;
5076
5077 _prev_end_offset = cur_offset + envelope_size;
5078 if 10 > max_ordinal {
5079 return Ok(());
5080 }
5081
5082 let cur_offset: usize = (10 - 1) * envelope_size;
5085
5086 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5088
5089 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>, D>(
5094 self.text_strings.as_ref().map(<fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256> as fidl::encoding::ValueTypeMarker>::borrow),
5095 encoder, offset + cur_offset, depth
5096 )?;
5097
5098 _prev_end_offset = cur_offset + envelope_size;
5099
5100 Ok(())
5101 }
5102 }
5103
5104 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceInstance {
5105 #[inline(always)]
5106 fn new_empty() -> Self {
5107 Self::default()
5108 }
5109
5110 unsafe fn decode(
5111 &mut self,
5112 decoder: &mut fidl::encoding::Decoder<'_, D>,
5113 offset: usize,
5114 mut depth: fidl::encoding::Depth,
5115 ) -> fidl::Result<()> {
5116 decoder.debug_check_bounds::<Self>(offset);
5117 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5118 None => return Err(fidl::Error::NotNullable),
5119 Some(len) => len,
5120 };
5121 if len == 0 {
5123 return Ok(());
5124 };
5125 depth.increment()?;
5126 let envelope_size = 8;
5127 let bytes_len = len * envelope_size;
5128 let offset = decoder.out_of_line_offset(bytes_len)?;
5129 let mut _next_ordinal_to_read = 0;
5131 let mut next_offset = offset;
5132 let end_offset = offset + bytes_len;
5133 _next_ordinal_to_read += 1;
5134 if next_offset >= end_offset {
5135 return Ok(());
5136 }
5137
5138 while _next_ordinal_to_read < 1 {
5140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5141 _next_ordinal_to_read += 1;
5142 next_offset += envelope_size;
5143 }
5144
5145 let next_out_of_line = decoder.next_out_of_line();
5146 let handles_before = decoder.remaining_handles();
5147 if let Some((inlined, num_bytes, num_handles)) =
5148 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5149 {
5150 let member_inline_size =
5151 <fidl::encoding::BoundedString<22> as fidl::encoding::TypeMarker>::inline_size(
5152 decoder.context,
5153 );
5154 if inlined != (member_inline_size <= 4) {
5155 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5156 }
5157 let inner_offset;
5158 let mut inner_depth = depth.clone();
5159 if inlined {
5160 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5161 inner_offset = next_offset;
5162 } else {
5163 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5164 inner_depth.increment()?;
5165 }
5166 let val_ref = self
5167 .service
5168 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<22>, D));
5169 fidl::decode!(
5170 fidl::encoding::BoundedString<22>,
5171 D,
5172 val_ref,
5173 decoder,
5174 inner_offset,
5175 inner_depth
5176 )?;
5177 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5178 {
5179 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5180 }
5181 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5182 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5183 }
5184 }
5185
5186 next_offset += envelope_size;
5187 _next_ordinal_to_read += 1;
5188 if next_offset >= end_offset {
5189 return Ok(());
5190 }
5191
5192 while _next_ordinal_to_read < 2 {
5194 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5195 _next_ordinal_to_read += 1;
5196 next_offset += envelope_size;
5197 }
5198
5199 let next_out_of_line = decoder.next_out_of_line();
5200 let handles_before = decoder.remaining_handles();
5201 if let Some((inlined, num_bytes, num_handles)) =
5202 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5203 {
5204 let member_inline_size =
5205 <fidl::encoding::BoundedString<63> as fidl::encoding::TypeMarker>::inline_size(
5206 decoder.context,
5207 );
5208 if inlined != (member_inline_size <= 4) {
5209 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5210 }
5211 let inner_offset;
5212 let mut inner_depth = depth.clone();
5213 if inlined {
5214 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5215 inner_offset = next_offset;
5216 } else {
5217 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5218 inner_depth.increment()?;
5219 }
5220 let val_ref = self
5221 .instance
5222 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<63>, D));
5223 fidl::decode!(
5224 fidl::encoding::BoundedString<63>,
5225 D,
5226 val_ref,
5227 decoder,
5228 inner_offset,
5229 inner_depth
5230 )?;
5231 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5232 {
5233 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5234 }
5235 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5236 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5237 }
5238 }
5239
5240 next_offset += envelope_size;
5241 _next_ordinal_to_read += 1;
5242 if next_offset >= end_offset {
5243 return Ok(());
5244 }
5245
5246 while _next_ordinal_to_read < 3 {
5248 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5249 _next_ordinal_to_read += 1;
5250 next_offset += envelope_size;
5251 }
5252
5253 let next_out_of_line = decoder.next_out_of_line();
5254 let handles_before = decoder.remaining_handles();
5255 if let Some((inlined, num_bytes, num_handles)) =
5256 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5257 {
5258 let member_inline_size = <fidl_fuchsia_net_common::Ipv4SocketAddress as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5259 if inlined != (member_inline_size <= 4) {
5260 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5261 }
5262 let inner_offset;
5263 let mut inner_depth = depth.clone();
5264 if inlined {
5265 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5266 inner_offset = next_offset;
5267 } else {
5268 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5269 inner_depth.increment()?;
5270 }
5271 let val_ref = self.ipv4_endpoint.get_or_insert_with(|| {
5272 fidl::new_empty!(fidl_fuchsia_net_common::Ipv4SocketAddress, D)
5273 });
5274 fidl::decode!(
5275 fidl_fuchsia_net_common::Ipv4SocketAddress,
5276 D,
5277 val_ref,
5278 decoder,
5279 inner_offset,
5280 inner_depth
5281 )?;
5282 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5283 {
5284 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5285 }
5286 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5287 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5288 }
5289 }
5290
5291 next_offset += envelope_size;
5292 _next_ordinal_to_read += 1;
5293 if next_offset >= end_offset {
5294 return Ok(());
5295 }
5296
5297 while _next_ordinal_to_read < 4 {
5299 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5300 _next_ordinal_to_read += 1;
5301 next_offset += envelope_size;
5302 }
5303
5304 let next_out_of_line = decoder.next_out_of_line();
5305 let handles_before = decoder.remaining_handles();
5306 if let Some((inlined, num_bytes, num_handles)) =
5307 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5308 {
5309 let member_inline_size = <fidl_fuchsia_net_common::Ipv6SocketAddress as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5310 if inlined != (member_inline_size <= 4) {
5311 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5312 }
5313 let inner_offset;
5314 let mut inner_depth = depth.clone();
5315 if inlined {
5316 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5317 inner_offset = next_offset;
5318 } else {
5319 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5320 inner_depth.increment()?;
5321 }
5322 let val_ref = self.ipv6_endpoint.get_or_insert_with(|| {
5323 fidl::new_empty!(fidl_fuchsia_net_common::Ipv6SocketAddress, D)
5324 });
5325 fidl::decode!(
5326 fidl_fuchsia_net_common::Ipv6SocketAddress,
5327 D,
5328 val_ref,
5329 decoder,
5330 inner_offset,
5331 inner_depth
5332 )?;
5333 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5334 {
5335 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5336 }
5337 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5338 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5339 }
5340 }
5341
5342 next_offset += envelope_size;
5343 _next_ordinal_to_read += 1;
5344 if next_offset >= end_offset {
5345 return Ok(());
5346 }
5347
5348 while _next_ordinal_to_read < 5 {
5350 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5351 _next_ordinal_to_read += 1;
5352 next_offset += envelope_size;
5353 }
5354
5355 let next_out_of_line = decoder.next_out_of_line();
5356 let handles_before = decoder.remaining_handles();
5357 if let Some((inlined, num_bytes, num_handles)) =
5358 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5359 {
5360 let member_inline_size = <fidl::encoding::Vector<
5361 fidl::encoding::BoundedString<255>,
5362 256,
5363 > as fidl::encoding::TypeMarker>::inline_size(
5364 decoder.context
5365 );
5366 if inlined != (member_inline_size <= 4) {
5367 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5368 }
5369 let inner_offset;
5370 let mut inner_depth = depth.clone();
5371 if inlined {
5372 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5373 inner_offset = next_offset;
5374 } else {
5375 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5376 inner_depth.increment()?;
5377 }
5378 let val_ref = self.text.get_or_insert_with(|| {
5379 fidl::new_empty!(
5380 fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>,
5381 D
5382 )
5383 });
5384 fidl::decode!(
5385 fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>,
5386 D,
5387 val_ref,
5388 decoder,
5389 inner_offset,
5390 inner_depth
5391 )?;
5392 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5393 {
5394 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5395 }
5396 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5397 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5398 }
5399 }
5400
5401 next_offset += envelope_size;
5402 _next_ordinal_to_read += 1;
5403 if next_offset >= end_offset {
5404 return Ok(());
5405 }
5406
5407 while _next_ordinal_to_read < 6 {
5409 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5410 _next_ordinal_to_read += 1;
5411 next_offset += envelope_size;
5412 }
5413
5414 let next_out_of_line = decoder.next_out_of_line();
5415 let handles_before = decoder.remaining_handles();
5416 if let Some((inlined, num_bytes, num_handles)) =
5417 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5418 {
5419 let member_inline_size =
5420 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5421 if inlined != (member_inline_size <= 4) {
5422 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5423 }
5424 let inner_offset;
5425 let mut inner_depth = depth.clone();
5426 if inlined {
5427 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5428 inner_offset = next_offset;
5429 } else {
5430 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5431 inner_depth.increment()?;
5432 }
5433 let val_ref = self.srv_priority.get_or_insert_with(|| fidl::new_empty!(u16, D));
5434 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5435 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5436 {
5437 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5438 }
5439 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5440 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5441 }
5442 }
5443
5444 next_offset += envelope_size;
5445 _next_ordinal_to_read += 1;
5446 if next_offset >= end_offset {
5447 return Ok(());
5448 }
5449
5450 while _next_ordinal_to_read < 7 {
5452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5453 _next_ordinal_to_read += 1;
5454 next_offset += envelope_size;
5455 }
5456
5457 let next_out_of_line = decoder.next_out_of_line();
5458 let handles_before = decoder.remaining_handles();
5459 if let Some((inlined, num_bytes, num_handles)) =
5460 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5461 {
5462 let member_inline_size =
5463 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5464 if inlined != (member_inline_size <= 4) {
5465 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5466 }
5467 let inner_offset;
5468 let mut inner_depth = depth.clone();
5469 if inlined {
5470 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5471 inner_offset = next_offset;
5472 } else {
5473 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5474 inner_depth.increment()?;
5475 }
5476 let val_ref = self.srv_weight.get_or_insert_with(|| fidl::new_empty!(u16, D));
5477 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5478 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5479 {
5480 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5481 }
5482 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5483 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5484 }
5485 }
5486
5487 next_offset += envelope_size;
5488 _next_ordinal_to_read += 1;
5489 if next_offset >= end_offset {
5490 return Ok(());
5491 }
5492
5493 while _next_ordinal_to_read < 8 {
5495 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5496 _next_ordinal_to_read += 1;
5497 next_offset += envelope_size;
5498 }
5499
5500 let next_out_of_line = decoder.next_out_of_line();
5501 let handles_before = decoder.remaining_handles();
5502 if let Some((inlined, num_bytes, num_handles)) =
5503 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5504 {
5505 let member_inline_size =
5506 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5507 decoder.context,
5508 );
5509 if inlined != (member_inline_size <= 4) {
5510 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5511 }
5512 let inner_offset;
5513 let mut inner_depth = depth.clone();
5514 if inlined {
5515 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5516 inner_offset = next_offset;
5517 } else {
5518 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5519 inner_depth.increment()?;
5520 }
5521 let val_ref = self
5522 .target
5523 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5524 fidl::decode!(
5525 fidl::encoding::BoundedString<255>,
5526 D,
5527 val_ref,
5528 decoder,
5529 inner_offset,
5530 inner_depth
5531 )?;
5532 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5533 {
5534 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5535 }
5536 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5537 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5538 }
5539 }
5540
5541 next_offset += envelope_size;
5542 _next_ordinal_to_read += 1;
5543 if next_offset >= end_offset {
5544 return Ok(());
5545 }
5546
5547 while _next_ordinal_to_read < 9 {
5549 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5550 _next_ordinal_to_read += 1;
5551 next_offset += envelope_size;
5552 }
5553
5554 let next_out_of_line = decoder.next_out_of_line();
5555 let handles_before = decoder.remaining_handles();
5556 if let Some((inlined, num_bytes, num_handles)) =
5557 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5558 {
5559 let member_inline_size = <fidl::encoding::Vector<
5560 fidl_fuchsia_net_common::SocketAddress,
5561 64,
5562 > as fidl::encoding::TypeMarker>::inline_size(
5563 decoder.context
5564 );
5565 if inlined != (member_inline_size <= 4) {
5566 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5567 }
5568 let inner_offset;
5569 let mut inner_depth = depth.clone();
5570 if inlined {
5571 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5572 inner_offset = next_offset;
5573 } else {
5574 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5575 inner_depth.increment()?;
5576 }
5577 let val_ref =
5578 self.addresses.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net_common::SocketAddress, 64>, D));
5579 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net_common::SocketAddress, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
5580 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5581 {
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 }
5588
5589 next_offset += envelope_size;
5590 _next_ordinal_to_read += 1;
5591 if next_offset >= end_offset {
5592 return Ok(());
5593 }
5594
5595 while _next_ordinal_to_read < 10 {
5597 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5598 _next_ordinal_to_read += 1;
5599 next_offset += envelope_size;
5600 }
5601
5602 let next_out_of_line = decoder.next_out_of_line();
5603 let handles_before = decoder.remaining_handles();
5604 if let Some((inlined, num_bytes, num_handles)) =
5605 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5606 {
5607 let member_inline_size = <fidl::encoding::Vector<
5608 fidl::encoding::Vector<u8, 255>,
5609 256,
5610 > as fidl::encoding::TypeMarker>::inline_size(
5611 decoder.context
5612 );
5613 if inlined != (member_inline_size <= 4) {
5614 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5615 }
5616 let inner_offset;
5617 let mut inner_depth = depth.clone();
5618 if inlined {
5619 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5620 inner_offset = next_offset;
5621 } else {
5622 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5623 inner_depth.increment()?;
5624 }
5625 let val_ref = self.text_strings.get_or_insert_with(|| {
5626 fidl::new_empty!(
5627 fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>,
5628 D
5629 )
5630 });
5631 fidl::decode!(
5632 fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>,
5633 D,
5634 val_ref,
5635 decoder,
5636 inner_offset,
5637 inner_depth
5638 )?;
5639 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5640 {
5641 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5642 }
5643 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5644 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5645 }
5646 }
5647
5648 next_offset += envelope_size;
5649
5650 while next_offset < end_offset {
5652 _next_ordinal_to_read += 1;
5653 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5654 next_offset += envelope_size;
5655 }
5656
5657 Ok(())
5658 }
5659 }
5660
5661 impl ServiceInstancePublication {
5662 #[inline(always)]
5663 fn max_ordinal_present(&self) -> u64 {
5664 if let Some(_) = self.txt_ttl {
5665 return 7;
5666 }
5667 if let Some(_) = self.srv_ttl {
5668 return 6;
5669 }
5670 if let Some(_) = self.ptr_ttl {
5671 return 5;
5672 }
5673 if let Some(_) = self.srv_weight {
5674 return 4;
5675 }
5676 if let Some(_) = self.srv_priority {
5677 return 3;
5678 }
5679 if let Some(_) = self.text {
5680 return 2;
5681 }
5682 if let Some(_) = self.port {
5683 return 1;
5684 }
5685 0
5686 }
5687 }
5688
5689 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublication {
5690 type Borrowed<'a> = &'a Self;
5691 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5692 value
5693 }
5694 }
5695
5696 unsafe impl fidl::encoding::TypeMarker for ServiceInstancePublication {
5697 type Owned = Self;
5698
5699 #[inline(always)]
5700 fn inline_align(_context: fidl::encoding::Context) -> usize {
5701 8
5702 }
5703
5704 #[inline(always)]
5705 fn inline_size(_context: fidl::encoding::Context) -> usize {
5706 16
5707 }
5708 }
5709
5710 unsafe impl<D: fidl::encoding::ResourceDialect>
5711 fidl::encoding::Encode<ServiceInstancePublication, D> for &ServiceInstancePublication
5712 {
5713 unsafe fn encode(
5714 self,
5715 encoder: &mut fidl::encoding::Encoder<'_, D>,
5716 offset: usize,
5717 mut depth: fidl::encoding::Depth,
5718 ) -> fidl::Result<()> {
5719 encoder.debug_check_bounds::<ServiceInstancePublication>(offset);
5720 let max_ordinal: u64 = self.max_ordinal_present();
5722 encoder.write_num(max_ordinal, offset);
5723 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5724 if max_ordinal == 0 {
5726 return Ok(());
5727 }
5728 depth.increment()?;
5729 let envelope_size = 8;
5730 let bytes_len = max_ordinal as usize * envelope_size;
5731 #[allow(unused_variables)]
5732 let offset = encoder.out_of_line_offset(bytes_len);
5733 let mut _prev_end_offset: usize = 0;
5734 if 1 > max_ordinal {
5735 return Ok(());
5736 }
5737
5738 let cur_offset: usize = (1 - 1) * envelope_size;
5741
5742 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5744
5745 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5750 self.port.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5751 encoder,
5752 offset + cur_offset,
5753 depth,
5754 )?;
5755
5756 _prev_end_offset = cur_offset + envelope_size;
5757 if 2 > max_ordinal {
5758 return Ok(());
5759 }
5760
5761 let cur_offset: usize = (2 - 1) * envelope_size;
5764
5765 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5767
5768 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>, D>(
5773 self.text.as_ref().map(<fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256> as fidl::encoding::ValueTypeMarker>::borrow),
5774 encoder, offset + cur_offset, depth
5775 )?;
5776
5777 _prev_end_offset = cur_offset + envelope_size;
5778 if 3 > max_ordinal {
5779 return Ok(());
5780 }
5781
5782 let cur_offset: usize = (3 - 1) * envelope_size;
5785
5786 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5788
5789 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5794 self.srv_priority.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5795 encoder,
5796 offset + cur_offset,
5797 depth,
5798 )?;
5799
5800 _prev_end_offset = cur_offset + envelope_size;
5801 if 4 > max_ordinal {
5802 return Ok(());
5803 }
5804
5805 let cur_offset: usize = (4 - 1) * envelope_size;
5808
5809 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5811
5812 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5817 self.srv_weight.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5818 encoder,
5819 offset + cur_offset,
5820 depth,
5821 )?;
5822
5823 _prev_end_offset = cur_offset + envelope_size;
5824 if 5 > max_ordinal {
5825 return Ok(());
5826 }
5827
5828 let cur_offset: usize = (5 - 1) * envelope_size;
5831
5832 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5834
5835 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5840 self.ptr_ttl.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5841 encoder,
5842 offset + cur_offset,
5843 depth,
5844 )?;
5845
5846 _prev_end_offset = cur_offset + envelope_size;
5847 if 6 > max_ordinal {
5848 return Ok(());
5849 }
5850
5851 let cur_offset: usize = (6 - 1) * envelope_size;
5854
5855 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5857
5858 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5863 self.srv_ttl.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5864 encoder,
5865 offset + cur_offset,
5866 depth,
5867 )?;
5868
5869 _prev_end_offset = cur_offset + envelope_size;
5870 if 7 > max_ordinal {
5871 return Ok(());
5872 }
5873
5874 let cur_offset: usize = (7 - 1) * envelope_size;
5877
5878 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5880
5881 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5886 self.txt_ttl.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5887 encoder,
5888 offset + cur_offset,
5889 depth,
5890 )?;
5891
5892 _prev_end_offset = cur_offset + envelope_size;
5893
5894 Ok(())
5895 }
5896 }
5897
5898 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5899 for ServiceInstancePublication
5900 {
5901 #[inline(always)]
5902 fn new_empty() -> Self {
5903 Self::default()
5904 }
5905
5906 unsafe fn decode(
5907 &mut self,
5908 decoder: &mut fidl::encoding::Decoder<'_, D>,
5909 offset: usize,
5910 mut depth: fidl::encoding::Depth,
5911 ) -> fidl::Result<()> {
5912 decoder.debug_check_bounds::<Self>(offset);
5913 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5914 None => return Err(fidl::Error::NotNullable),
5915 Some(len) => len,
5916 };
5917 if len == 0 {
5919 return Ok(());
5920 };
5921 depth.increment()?;
5922 let envelope_size = 8;
5923 let bytes_len = len * envelope_size;
5924 let offset = decoder.out_of_line_offset(bytes_len)?;
5925 let mut _next_ordinal_to_read = 0;
5927 let mut next_offset = offset;
5928 let end_offset = offset + bytes_len;
5929 _next_ordinal_to_read += 1;
5930 if next_offset >= end_offset {
5931 return Ok(());
5932 }
5933
5934 while _next_ordinal_to_read < 1 {
5936 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5937 _next_ordinal_to_read += 1;
5938 next_offset += envelope_size;
5939 }
5940
5941 let next_out_of_line = decoder.next_out_of_line();
5942 let handles_before = decoder.remaining_handles();
5943 if let Some((inlined, num_bytes, num_handles)) =
5944 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5945 {
5946 let member_inline_size =
5947 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5948 if inlined != (member_inline_size <= 4) {
5949 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5950 }
5951 let inner_offset;
5952 let mut inner_depth = depth.clone();
5953 if inlined {
5954 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5955 inner_offset = next_offset;
5956 } else {
5957 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5958 inner_depth.increment()?;
5959 }
5960 let val_ref = self.port.get_or_insert_with(|| fidl::new_empty!(u16, D));
5961 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5962 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5963 {
5964 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5965 }
5966 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5967 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5968 }
5969 }
5970
5971 next_offset += envelope_size;
5972 _next_ordinal_to_read += 1;
5973 if next_offset >= end_offset {
5974 return Ok(());
5975 }
5976
5977 while _next_ordinal_to_read < 2 {
5979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5980 _next_ordinal_to_read += 1;
5981 next_offset += envelope_size;
5982 }
5983
5984 let next_out_of_line = decoder.next_out_of_line();
5985 let handles_before = decoder.remaining_handles();
5986 if let Some((inlined, num_bytes, num_handles)) =
5987 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5988 {
5989 let member_inline_size = <fidl::encoding::Vector<
5990 fidl::encoding::Vector<u8, 255>,
5991 256,
5992 > as fidl::encoding::TypeMarker>::inline_size(
5993 decoder.context
5994 );
5995 if inlined != (member_inline_size <= 4) {
5996 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5997 }
5998 let inner_offset;
5999 let mut inner_depth = depth.clone();
6000 if inlined {
6001 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6002 inner_offset = next_offset;
6003 } else {
6004 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6005 inner_depth.increment()?;
6006 }
6007 let val_ref = self.text.get_or_insert_with(|| {
6008 fidl::new_empty!(
6009 fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>,
6010 D
6011 )
6012 });
6013 fidl::decode!(
6014 fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>,
6015 D,
6016 val_ref,
6017 decoder,
6018 inner_offset,
6019 inner_depth
6020 )?;
6021 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6022 {
6023 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6024 }
6025 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6026 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6027 }
6028 }
6029
6030 next_offset += envelope_size;
6031 _next_ordinal_to_read += 1;
6032 if next_offset >= end_offset {
6033 return Ok(());
6034 }
6035
6036 while _next_ordinal_to_read < 3 {
6038 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6039 _next_ordinal_to_read += 1;
6040 next_offset += envelope_size;
6041 }
6042
6043 let next_out_of_line = decoder.next_out_of_line();
6044 let handles_before = decoder.remaining_handles();
6045 if let Some((inlined, num_bytes, num_handles)) =
6046 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6047 {
6048 let member_inline_size =
6049 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6050 if inlined != (member_inline_size <= 4) {
6051 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6052 }
6053 let inner_offset;
6054 let mut inner_depth = depth.clone();
6055 if inlined {
6056 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6057 inner_offset = next_offset;
6058 } else {
6059 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6060 inner_depth.increment()?;
6061 }
6062 let val_ref = self.srv_priority.get_or_insert_with(|| fidl::new_empty!(u16, D));
6063 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6064 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6065 {
6066 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6067 }
6068 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6069 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6070 }
6071 }
6072
6073 next_offset += envelope_size;
6074 _next_ordinal_to_read += 1;
6075 if next_offset >= end_offset {
6076 return Ok(());
6077 }
6078
6079 while _next_ordinal_to_read < 4 {
6081 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6082 _next_ordinal_to_read += 1;
6083 next_offset += envelope_size;
6084 }
6085
6086 let next_out_of_line = decoder.next_out_of_line();
6087 let handles_before = decoder.remaining_handles();
6088 if let Some((inlined, num_bytes, num_handles)) =
6089 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6090 {
6091 let member_inline_size =
6092 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6093 if inlined != (member_inline_size <= 4) {
6094 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6095 }
6096 let inner_offset;
6097 let mut inner_depth = depth.clone();
6098 if inlined {
6099 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6100 inner_offset = next_offset;
6101 } else {
6102 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6103 inner_depth.increment()?;
6104 }
6105 let val_ref = self.srv_weight.get_or_insert_with(|| fidl::new_empty!(u16, D));
6106 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6107 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6108 {
6109 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6110 }
6111 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6112 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6113 }
6114 }
6115
6116 next_offset += envelope_size;
6117 _next_ordinal_to_read += 1;
6118 if next_offset >= end_offset {
6119 return Ok(());
6120 }
6121
6122 while _next_ordinal_to_read < 5 {
6124 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6125 _next_ordinal_to_read += 1;
6126 next_offset += envelope_size;
6127 }
6128
6129 let next_out_of_line = decoder.next_out_of_line();
6130 let handles_before = decoder.remaining_handles();
6131 if let Some((inlined, num_bytes, num_handles)) =
6132 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6133 {
6134 let member_inline_size =
6135 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6136 if inlined != (member_inline_size <= 4) {
6137 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6138 }
6139 let inner_offset;
6140 let mut inner_depth = depth.clone();
6141 if inlined {
6142 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6143 inner_offset = next_offset;
6144 } else {
6145 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6146 inner_depth.increment()?;
6147 }
6148 let val_ref = self.ptr_ttl.get_or_insert_with(|| fidl::new_empty!(i64, D));
6149 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6150 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6151 {
6152 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6153 }
6154 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6155 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6156 }
6157 }
6158
6159 next_offset += envelope_size;
6160 _next_ordinal_to_read += 1;
6161 if next_offset >= end_offset {
6162 return Ok(());
6163 }
6164
6165 while _next_ordinal_to_read < 6 {
6167 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6168 _next_ordinal_to_read += 1;
6169 next_offset += envelope_size;
6170 }
6171
6172 let next_out_of_line = decoder.next_out_of_line();
6173 let handles_before = decoder.remaining_handles();
6174 if let Some((inlined, num_bytes, num_handles)) =
6175 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6176 {
6177 let member_inline_size =
6178 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6179 if inlined != (member_inline_size <= 4) {
6180 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6181 }
6182 let inner_offset;
6183 let mut inner_depth = depth.clone();
6184 if inlined {
6185 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6186 inner_offset = next_offset;
6187 } else {
6188 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6189 inner_depth.increment()?;
6190 }
6191 let val_ref = self.srv_ttl.get_or_insert_with(|| fidl::new_empty!(i64, D));
6192 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6193 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6194 {
6195 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6196 }
6197 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6198 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6199 }
6200 }
6201
6202 next_offset += envelope_size;
6203 _next_ordinal_to_read += 1;
6204 if next_offset >= end_offset {
6205 return Ok(());
6206 }
6207
6208 while _next_ordinal_to_read < 7 {
6210 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6211 _next_ordinal_to_read += 1;
6212 next_offset += envelope_size;
6213 }
6214
6215 let next_out_of_line = decoder.next_out_of_line();
6216 let handles_before = decoder.remaining_handles();
6217 if let Some((inlined, num_bytes, num_handles)) =
6218 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6219 {
6220 let member_inline_size =
6221 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6222 if inlined != (member_inline_size <= 4) {
6223 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6224 }
6225 let inner_offset;
6226 let mut inner_depth = depth.clone();
6227 if inlined {
6228 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6229 inner_offset = next_offset;
6230 } else {
6231 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6232 inner_depth.increment()?;
6233 }
6234 let val_ref = self.txt_ttl.get_or_insert_with(|| fidl::new_empty!(i64, D));
6235 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6236 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6237 {
6238 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6239 }
6240 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6241 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6242 }
6243 }
6244
6245 next_offset += envelope_size;
6246
6247 while next_offset < end_offset {
6249 _next_ordinal_to_read += 1;
6250 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6251 next_offset += envelope_size;
6252 }
6253
6254 Ok(())
6255 }
6256 }
6257
6258 impl ServiceInstancePublicationOptions {
6259 #[inline(always)]
6260 fn max_ordinal_present(&self) -> u64 {
6261 if let Some(_) = self.perform_probe {
6262 return 3;
6263 }
6264 if let Some(_) = self.ip_versions {
6265 return 2;
6266 }
6267 if let Some(_) = self.media {
6268 return 1;
6269 }
6270 0
6271 }
6272 }
6273
6274 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublicationOptions {
6275 type Borrowed<'a> = &'a Self;
6276 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6277 value
6278 }
6279 }
6280
6281 unsafe impl fidl::encoding::TypeMarker for ServiceInstancePublicationOptions {
6282 type Owned = Self;
6283
6284 #[inline(always)]
6285 fn inline_align(_context: fidl::encoding::Context) -> usize {
6286 8
6287 }
6288
6289 #[inline(always)]
6290 fn inline_size(_context: fidl::encoding::Context) -> usize {
6291 16
6292 }
6293 }
6294
6295 unsafe impl<D: fidl::encoding::ResourceDialect>
6296 fidl::encoding::Encode<ServiceInstancePublicationOptions, D>
6297 for &ServiceInstancePublicationOptions
6298 {
6299 unsafe fn encode(
6300 self,
6301 encoder: &mut fidl::encoding::Encoder<'_, D>,
6302 offset: usize,
6303 mut depth: fidl::encoding::Depth,
6304 ) -> fidl::Result<()> {
6305 encoder.debug_check_bounds::<ServiceInstancePublicationOptions>(offset);
6306 let max_ordinal: u64 = self.max_ordinal_present();
6308 encoder.write_num(max_ordinal, offset);
6309 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6310 if max_ordinal == 0 {
6312 return Ok(());
6313 }
6314 depth.increment()?;
6315 let envelope_size = 8;
6316 let bytes_len = max_ordinal as usize * envelope_size;
6317 #[allow(unused_variables)]
6318 let offset = encoder.out_of_line_offset(bytes_len);
6319 let mut _prev_end_offset: usize = 0;
6320 if 1 > max_ordinal {
6321 return Ok(());
6322 }
6323
6324 let cur_offset: usize = (1 - 1) * envelope_size;
6327
6328 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6330
6331 fidl::encoding::encode_in_envelope_optional::<Media, D>(
6336 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
6337 encoder,
6338 offset + cur_offset,
6339 depth,
6340 )?;
6341
6342 _prev_end_offset = cur_offset + envelope_size;
6343 if 2 > max_ordinal {
6344 return Ok(());
6345 }
6346
6347 let cur_offset: usize = (2 - 1) * envelope_size;
6350
6351 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6353
6354 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
6359 self.ip_versions
6360 .as_ref()
6361 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
6362 encoder,
6363 offset + cur_offset,
6364 depth,
6365 )?;
6366
6367 _prev_end_offset = cur_offset + envelope_size;
6368 if 3 > max_ordinal {
6369 return Ok(());
6370 }
6371
6372 let cur_offset: usize = (3 - 1) * envelope_size;
6375
6376 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6378
6379 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6384 self.perform_probe.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6385 encoder,
6386 offset + cur_offset,
6387 depth,
6388 )?;
6389
6390 _prev_end_offset = cur_offset + envelope_size;
6391
6392 Ok(())
6393 }
6394 }
6395
6396 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6397 for ServiceInstancePublicationOptions
6398 {
6399 #[inline(always)]
6400 fn new_empty() -> Self {
6401 Self::default()
6402 }
6403
6404 unsafe fn decode(
6405 &mut self,
6406 decoder: &mut fidl::encoding::Decoder<'_, D>,
6407 offset: usize,
6408 mut depth: fidl::encoding::Depth,
6409 ) -> fidl::Result<()> {
6410 decoder.debug_check_bounds::<Self>(offset);
6411 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6412 None => return Err(fidl::Error::NotNullable),
6413 Some(len) => len,
6414 };
6415 if len == 0 {
6417 return Ok(());
6418 };
6419 depth.increment()?;
6420 let envelope_size = 8;
6421 let bytes_len = len * envelope_size;
6422 let offset = decoder.out_of_line_offset(bytes_len)?;
6423 let mut _next_ordinal_to_read = 0;
6425 let mut next_offset = offset;
6426 let end_offset = offset + bytes_len;
6427 _next_ordinal_to_read += 1;
6428 if next_offset >= end_offset {
6429 return Ok(());
6430 }
6431
6432 while _next_ordinal_to_read < 1 {
6434 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6435 _next_ordinal_to_read += 1;
6436 next_offset += envelope_size;
6437 }
6438
6439 let next_out_of_line = decoder.next_out_of_line();
6440 let handles_before = decoder.remaining_handles();
6441 if let Some((inlined, num_bytes, num_handles)) =
6442 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6443 {
6444 let member_inline_size =
6445 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6446 if inlined != (member_inline_size <= 4) {
6447 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6448 }
6449 let inner_offset;
6450 let mut inner_depth = depth.clone();
6451 if inlined {
6452 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6453 inner_offset = next_offset;
6454 } else {
6455 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6456 inner_depth.increment()?;
6457 }
6458 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
6459 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
6460 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6461 {
6462 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6463 }
6464 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6465 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6466 }
6467 }
6468
6469 next_offset += envelope_size;
6470 _next_ordinal_to_read += 1;
6471 if next_offset >= end_offset {
6472 return Ok(());
6473 }
6474
6475 while _next_ordinal_to_read < 2 {
6477 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6478 _next_ordinal_to_read += 1;
6479 next_offset += envelope_size;
6480 }
6481
6482 let next_out_of_line = decoder.next_out_of_line();
6483 let handles_before = decoder.remaining_handles();
6484 if let Some((inlined, num_bytes, num_handles)) =
6485 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6486 {
6487 let member_inline_size =
6488 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6489 if inlined != (member_inline_size <= 4) {
6490 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6491 }
6492 let inner_offset;
6493 let mut inner_depth = depth.clone();
6494 if inlined {
6495 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6496 inner_offset = next_offset;
6497 } else {
6498 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6499 inner_depth.increment()?;
6500 }
6501 let val_ref =
6502 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
6503 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
6504 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6505 {
6506 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6507 }
6508 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6509 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6510 }
6511 }
6512
6513 next_offset += envelope_size;
6514 _next_ordinal_to_read += 1;
6515 if next_offset >= end_offset {
6516 return Ok(());
6517 }
6518
6519 while _next_ordinal_to_read < 3 {
6521 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6522 _next_ordinal_to_read += 1;
6523 next_offset += envelope_size;
6524 }
6525
6526 let next_out_of_line = decoder.next_out_of_line();
6527 let handles_before = decoder.remaining_handles();
6528 if let Some((inlined, num_bytes, num_handles)) =
6529 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6530 {
6531 let member_inline_size =
6532 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6533 if inlined != (member_inline_size <= 4) {
6534 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6535 }
6536 let inner_offset;
6537 let mut inner_depth = depth.clone();
6538 if inlined {
6539 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6540 inner_offset = next_offset;
6541 } else {
6542 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6543 inner_depth.increment()?;
6544 }
6545 let val_ref = self.perform_probe.get_or_insert_with(|| fidl::new_empty!(bool, D));
6546 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6547 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6548 {
6549 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6550 }
6551 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6552 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6553 }
6554 }
6555
6556 next_offset += envelope_size;
6557
6558 while next_offset < end_offset {
6560 _next_ordinal_to_read += 1;
6561 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6562 next_offset += envelope_size;
6563 }
6564
6565 Ok(())
6566 }
6567 }
6568
6569 impl ServiceInstanceResolutionOptions {
6570 #[inline(always)]
6571 fn max_ordinal_present(&self) -> u64 {
6572 if let Some(_) = self.exclude_local_proxies {
6573 return 4;
6574 }
6575 if let Some(_) = self.exclude_local {
6576 return 3;
6577 }
6578 if let Some(_) = self.ip_versions {
6579 return 2;
6580 }
6581 if let Some(_) = self.media {
6582 return 1;
6583 }
6584 0
6585 }
6586 }
6587
6588 impl fidl::encoding::ValueTypeMarker for ServiceInstanceResolutionOptions {
6589 type Borrowed<'a> = &'a Self;
6590 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6591 value
6592 }
6593 }
6594
6595 unsafe impl fidl::encoding::TypeMarker for ServiceInstanceResolutionOptions {
6596 type Owned = Self;
6597
6598 #[inline(always)]
6599 fn inline_align(_context: fidl::encoding::Context) -> usize {
6600 8
6601 }
6602
6603 #[inline(always)]
6604 fn inline_size(_context: fidl::encoding::Context) -> usize {
6605 16
6606 }
6607 }
6608
6609 unsafe impl<D: fidl::encoding::ResourceDialect>
6610 fidl::encoding::Encode<ServiceInstanceResolutionOptions, D>
6611 for &ServiceInstanceResolutionOptions
6612 {
6613 unsafe fn encode(
6614 self,
6615 encoder: &mut fidl::encoding::Encoder<'_, D>,
6616 offset: usize,
6617 mut depth: fidl::encoding::Depth,
6618 ) -> fidl::Result<()> {
6619 encoder.debug_check_bounds::<ServiceInstanceResolutionOptions>(offset);
6620 let max_ordinal: u64 = self.max_ordinal_present();
6622 encoder.write_num(max_ordinal, offset);
6623 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6624 if max_ordinal == 0 {
6626 return Ok(());
6627 }
6628 depth.increment()?;
6629 let envelope_size = 8;
6630 let bytes_len = max_ordinal as usize * envelope_size;
6631 #[allow(unused_variables)]
6632 let offset = encoder.out_of_line_offset(bytes_len);
6633 let mut _prev_end_offset: usize = 0;
6634 if 1 > max_ordinal {
6635 return Ok(());
6636 }
6637
6638 let cur_offset: usize = (1 - 1) * envelope_size;
6641
6642 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6644
6645 fidl::encoding::encode_in_envelope_optional::<Media, D>(
6650 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
6651 encoder,
6652 offset + cur_offset,
6653 depth,
6654 )?;
6655
6656 _prev_end_offset = cur_offset + envelope_size;
6657 if 2 > max_ordinal {
6658 return Ok(());
6659 }
6660
6661 let cur_offset: usize = (2 - 1) * envelope_size;
6664
6665 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6667
6668 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
6673 self.ip_versions
6674 .as_ref()
6675 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
6676 encoder,
6677 offset + cur_offset,
6678 depth,
6679 )?;
6680
6681 _prev_end_offset = cur_offset + envelope_size;
6682 if 3 > max_ordinal {
6683 return Ok(());
6684 }
6685
6686 let cur_offset: usize = (3 - 1) * envelope_size;
6689
6690 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6692
6693 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6698 self.exclude_local.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6699 encoder,
6700 offset + cur_offset,
6701 depth,
6702 )?;
6703
6704 _prev_end_offset = cur_offset + envelope_size;
6705 if 4 > max_ordinal {
6706 return Ok(());
6707 }
6708
6709 let cur_offset: usize = (4 - 1) * envelope_size;
6712
6713 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6715
6716 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6721 self.exclude_local_proxies
6722 .as_ref()
6723 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6724 encoder,
6725 offset + cur_offset,
6726 depth,
6727 )?;
6728
6729 _prev_end_offset = cur_offset + envelope_size;
6730
6731 Ok(())
6732 }
6733 }
6734
6735 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6736 for ServiceInstanceResolutionOptions
6737 {
6738 #[inline(always)]
6739 fn new_empty() -> Self {
6740 Self::default()
6741 }
6742
6743 unsafe fn decode(
6744 &mut self,
6745 decoder: &mut fidl::encoding::Decoder<'_, D>,
6746 offset: usize,
6747 mut depth: fidl::encoding::Depth,
6748 ) -> fidl::Result<()> {
6749 decoder.debug_check_bounds::<Self>(offset);
6750 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6751 None => return Err(fidl::Error::NotNullable),
6752 Some(len) => len,
6753 };
6754 if len == 0 {
6756 return Ok(());
6757 };
6758 depth.increment()?;
6759 let envelope_size = 8;
6760 let bytes_len = len * envelope_size;
6761 let offset = decoder.out_of_line_offset(bytes_len)?;
6762 let mut _next_ordinal_to_read = 0;
6764 let mut next_offset = offset;
6765 let end_offset = offset + bytes_len;
6766 _next_ordinal_to_read += 1;
6767 if next_offset >= end_offset {
6768 return Ok(());
6769 }
6770
6771 while _next_ordinal_to_read < 1 {
6773 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6774 _next_ordinal_to_read += 1;
6775 next_offset += envelope_size;
6776 }
6777
6778 let next_out_of_line = decoder.next_out_of_line();
6779 let handles_before = decoder.remaining_handles();
6780 if let Some((inlined, num_bytes, num_handles)) =
6781 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6782 {
6783 let member_inline_size =
6784 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6785 if inlined != (member_inline_size <= 4) {
6786 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6787 }
6788 let inner_offset;
6789 let mut inner_depth = depth.clone();
6790 if inlined {
6791 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6792 inner_offset = next_offset;
6793 } else {
6794 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6795 inner_depth.increment()?;
6796 }
6797 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
6798 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
6799 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6800 {
6801 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6802 }
6803 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6804 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6805 }
6806 }
6807
6808 next_offset += envelope_size;
6809 _next_ordinal_to_read += 1;
6810 if next_offset >= end_offset {
6811 return Ok(());
6812 }
6813
6814 while _next_ordinal_to_read < 2 {
6816 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6817 _next_ordinal_to_read += 1;
6818 next_offset += envelope_size;
6819 }
6820
6821 let next_out_of_line = decoder.next_out_of_line();
6822 let handles_before = decoder.remaining_handles();
6823 if let Some((inlined, num_bytes, num_handles)) =
6824 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6825 {
6826 let member_inline_size =
6827 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6828 if inlined != (member_inline_size <= 4) {
6829 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6830 }
6831 let inner_offset;
6832 let mut inner_depth = depth.clone();
6833 if inlined {
6834 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6835 inner_offset = next_offset;
6836 } else {
6837 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6838 inner_depth.increment()?;
6839 }
6840 let val_ref =
6841 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
6842 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
6843 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6844 {
6845 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6846 }
6847 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6848 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6849 }
6850 }
6851
6852 next_offset += envelope_size;
6853 _next_ordinal_to_read += 1;
6854 if next_offset >= end_offset {
6855 return Ok(());
6856 }
6857
6858 while _next_ordinal_to_read < 3 {
6860 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6861 _next_ordinal_to_read += 1;
6862 next_offset += envelope_size;
6863 }
6864
6865 let next_out_of_line = decoder.next_out_of_line();
6866 let handles_before = decoder.remaining_handles();
6867 if let Some((inlined, num_bytes, num_handles)) =
6868 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6869 {
6870 let member_inline_size =
6871 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6872 if inlined != (member_inline_size <= 4) {
6873 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6874 }
6875 let inner_offset;
6876 let mut inner_depth = depth.clone();
6877 if inlined {
6878 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6879 inner_offset = next_offset;
6880 } else {
6881 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6882 inner_depth.increment()?;
6883 }
6884 let val_ref = self.exclude_local.get_or_insert_with(|| fidl::new_empty!(bool, D));
6885 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6886 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6887 {
6888 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6889 }
6890 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6891 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6892 }
6893 }
6894
6895 next_offset += envelope_size;
6896 _next_ordinal_to_read += 1;
6897 if next_offset >= end_offset {
6898 return Ok(());
6899 }
6900
6901 while _next_ordinal_to_read < 4 {
6903 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6904 _next_ordinal_to_read += 1;
6905 next_offset += envelope_size;
6906 }
6907
6908 let next_out_of_line = decoder.next_out_of_line();
6909 let handles_before = decoder.remaining_handles();
6910 if let Some((inlined, num_bytes, num_handles)) =
6911 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6912 {
6913 let member_inline_size =
6914 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6915 if inlined != (member_inline_size <= 4) {
6916 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6917 }
6918 let inner_offset;
6919 let mut inner_depth = depth.clone();
6920 if inlined {
6921 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6922 inner_offset = next_offset;
6923 } else {
6924 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6925 inner_depth.increment()?;
6926 }
6927 let val_ref =
6928 self.exclude_local_proxies.get_or_insert_with(|| fidl::new_empty!(bool, D));
6929 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6930 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6931 {
6932 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6933 }
6934 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6935 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6936 }
6937 }
6938
6939 next_offset += envelope_size;
6940
6941 while next_offset < end_offset {
6943 _next_ordinal_to_read += 1;
6944 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6945 next_offset += envelope_size;
6946 }
6947
6948 Ok(())
6949 }
6950 }
6951
6952 impl ServiceSubscriptionOptions {
6953 #[inline(always)]
6954 fn max_ordinal_present(&self) -> u64 {
6955 if let Some(_) = self.exclude_local_proxies {
6956 return 4;
6957 }
6958 if let Some(_) = self.exclude_local {
6959 return 3;
6960 }
6961 if let Some(_) = self.ip_versions {
6962 return 2;
6963 }
6964 if let Some(_) = self.media {
6965 return 1;
6966 }
6967 0
6968 }
6969 }
6970
6971 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionOptions {
6972 type Borrowed<'a> = &'a Self;
6973 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6974 value
6975 }
6976 }
6977
6978 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriptionOptions {
6979 type Owned = Self;
6980
6981 #[inline(always)]
6982 fn inline_align(_context: fidl::encoding::Context) -> usize {
6983 8
6984 }
6985
6986 #[inline(always)]
6987 fn inline_size(_context: fidl::encoding::Context) -> usize {
6988 16
6989 }
6990 }
6991
6992 unsafe impl<D: fidl::encoding::ResourceDialect>
6993 fidl::encoding::Encode<ServiceSubscriptionOptions, D> for &ServiceSubscriptionOptions
6994 {
6995 unsafe fn encode(
6996 self,
6997 encoder: &mut fidl::encoding::Encoder<'_, D>,
6998 offset: usize,
6999 mut depth: fidl::encoding::Depth,
7000 ) -> fidl::Result<()> {
7001 encoder.debug_check_bounds::<ServiceSubscriptionOptions>(offset);
7002 let max_ordinal: u64 = self.max_ordinal_present();
7004 encoder.write_num(max_ordinal, offset);
7005 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7006 if max_ordinal == 0 {
7008 return Ok(());
7009 }
7010 depth.increment()?;
7011 let envelope_size = 8;
7012 let bytes_len = max_ordinal as usize * envelope_size;
7013 #[allow(unused_variables)]
7014 let offset = encoder.out_of_line_offset(bytes_len);
7015 let mut _prev_end_offset: usize = 0;
7016 if 1 > max_ordinal {
7017 return Ok(());
7018 }
7019
7020 let cur_offset: usize = (1 - 1) * envelope_size;
7023
7024 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7026
7027 fidl::encoding::encode_in_envelope_optional::<Media, D>(
7032 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
7033 encoder,
7034 offset + cur_offset,
7035 depth,
7036 )?;
7037
7038 _prev_end_offset = cur_offset + envelope_size;
7039 if 2 > max_ordinal {
7040 return Ok(());
7041 }
7042
7043 let cur_offset: usize = (2 - 1) * envelope_size;
7046
7047 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7049
7050 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
7055 self.ip_versions
7056 .as_ref()
7057 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
7058 encoder,
7059 offset + cur_offset,
7060 depth,
7061 )?;
7062
7063 _prev_end_offset = cur_offset + envelope_size;
7064 if 3 > max_ordinal {
7065 return Ok(());
7066 }
7067
7068 let cur_offset: usize = (3 - 1) * envelope_size;
7071
7072 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7074
7075 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7080 self.exclude_local.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7081 encoder,
7082 offset + cur_offset,
7083 depth,
7084 )?;
7085
7086 _prev_end_offset = cur_offset + envelope_size;
7087 if 4 > max_ordinal {
7088 return Ok(());
7089 }
7090
7091 let cur_offset: usize = (4 - 1) * envelope_size;
7094
7095 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7097
7098 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7103 self.exclude_local_proxies
7104 .as_ref()
7105 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7106 encoder,
7107 offset + cur_offset,
7108 depth,
7109 )?;
7110
7111 _prev_end_offset = cur_offset + envelope_size;
7112
7113 Ok(())
7114 }
7115 }
7116
7117 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7118 for ServiceSubscriptionOptions
7119 {
7120 #[inline(always)]
7121 fn new_empty() -> Self {
7122 Self::default()
7123 }
7124
7125 unsafe fn decode(
7126 &mut self,
7127 decoder: &mut fidl::encoding::Decoder<'_, D>,
7128 offset: usize,
7129 mut depth: fidl::encoding::Depth,
7130 ) -> fidl::Result<()> {
7131 decoder.debug_check_bounds::<Self>(offset);
7132 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7133 None => return Err(fidl::Error::NotNullable),
7134 Some(len) => len,
7135 };
7136 if len == 0 {
7138 return Ok(());
7139 };
7140 depth.increment()?;
7141 let envelope_size = 8;
7142 let bytes_len = len * envelope_size;
7143 let offset = decoder.out_of_line_offset(bytes_len)?;
7144 let mut _next_ordinal_to_read = 0;
7146 let mut next_offset = offset;
7147 let end_offset = offset + bytes_len;
7148 _next_ordinal_to_read += 1;
7149 if next_offset >= end_offset {
7150 return Ok(());
7151 }
7152
7153 while _next_ordinal_to_read < 1 {
7155 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7156 _next_ordinal_to_read += 1;
7157 next_offset += envelope_size;
7158 }
7159
7160 let next_out_of_line = decoder.next_out_of_line();
7161 let handles_before = decoder.remaining_handles();
7162 if let Some((inlined, num_bytes, num_handles)) =
7163 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7164 {
7165 let member_inline_size =
7166 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7167 if inlined != (member_inline_size <= 4) {
7168 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7169 }
7170 let inner_offset;
7171 let mut inner_depth = depth.clone();
7172 if inlined {
7173 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7174 inner_offset = next_offset;
7175 } else {
7176 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7177 inner_depth.increment()?;
7178 }
7179 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
7180 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
7181 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7182 {
7183 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7184 }
7185 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7186 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7187 }
7188 }
7189
7190 next_offset += envelope_size;
7191 _next_ordinal_to_read += 1;
7192 if next_offset >= end_offset {
7193 return Ok(());
7194 }
7195
7196 while _next_ordinal_to_read < 2 {
7198 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7199 _next_ordinal_to_read += 1;
7200 next_offset += envelope_size;
7201 }
7202
7203 let next_out_of_line = decoder.next_out_of_line();
7204 let handles_before = decoder.remaining_handles();
7205 if let Some((inlined, num_bytes, num_handles)) =
7206 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7207 {
7208 let member_inline_size =
7209 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7210 if inlined != (member_inline_size <= 4) {
7211 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7212 }
7213 let inner_offset;
7214 let mut inner_depth = depth.clone();
7215 if inlined {
7216 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7217 inner_offset = next_offset;
7218 } else {
7219 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7220 inner_depth.increment()?;
7221 }
7222 let val_ref =
7223 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
7224 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
7225 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7226 {
7227 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7228 }
7229 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7230 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7231 }
7232 }
7233
7234 next_offset += envelope_size;
7235 _next_ordinal_to_read += 1;
7236 if next_offset >= end_offset {
7237 return Ok(());
7238 }
7239
7240 while _next_ordinal_to_read < 3 {
7242 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7243 _next_ordinal_to_read += 1;
7244 next_offset += envelope_size;
7245 }
7246
7247 let next_out_of_line = decoder.next_out_of_line();
7248 let handles_before = decoder.remaining_handles();
7249 if let Some((inlined, num_bytes, num_handles)) =
7250 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7251 {
7252 let member_inline_size =
7253 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7254 if inlined != (member_inline_size <= 4) {
7255 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7256 }
7257 let inner_offset;
7258 let mut inner_depth = depth.clone();
7259 if inlined {
7260 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7261 inner_offset = next_offset;
7262 } else {
7263 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7264 inner_depth.increment()?;
7265 }
7266 let val_ref = self.exclude_local.get_or_insert_with(|| fidl::new_empty!(bool, D));
7267 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7268 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7269 {
7270 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7271 }
7272 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7273 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7274 }
7275 }
7276
7277 next_offset += envelope_size;
7278 _next_ordinal_to_read += 1;
7279 if next_offset >= end_offset {
7280 return Ok(());
7281 }
7282
7283 while _next_ordinal_to_read < 4 {
7285 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7286 _next_ordinal_to_read += 1;
7287 next_offset += envelope_size;
7288 }
7289
7290 let next_out_of_line = decoder.next_out_of_line();
7291 let handles_before = decoder.remaining_handles();
7292 if let Some((inlined, num_bytes, num_handles)) =
7293 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7294 {
7295 let member_inline_size =
7296 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7297 if inlined != (member_inline_size <= 4) {
7298 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7299 }
7300 let inner_offset;
7301 let mut inner_depth = depth.clone();
7302 if inlined {
7303 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7304 inner_offset = next_offset;
7305 } else {
7306 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7307 inner_depth.increment()?;
7308 }
7309 let val_ref =
7310 self.exclude_local_proxies.get_or_insert_with(|| fidl::new_empty!(bool, D));
7311 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7312 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7313 {
7314 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7315 }
7316 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7317 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7318 }
7319 }
7320
7321 next_offset += envelope_size;
7322
7323 while next_offset < end_offset {
7325 _next_ordinal_to_read += 1;
7326 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7327 next_offset += envelope_size;
7328 }
7329
7330 Ok(())
7331 }
7332 }
7333}