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(&self.address),
1402 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.interface),
1403 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.ttl),
1404 ),
1405 encoder, offset, _depth
1406 )
1407 }
1408 }
1409 unsafe impl<
1410 D: fidl::encoding::ResourceDialect,
1411 T0: fidl::encoding::Encode<fidl_fuchsia_net__common::IpAddress, D>,
1412 T1: fidl::encoding::Encode<u64, D>,
1413 T2: fidl::encoding::Encode<i64, D>,
1414 > fidl::encoding::Encode<HostAddress, D> for (T0, T1, T2)
1415 {
1416 #[inline]
1417 unsafe fn encode(
1418 self,
1419 encoder: &mut fidl::encoding::Encoder<'_, D>,
1420 offset: usize,
1421 depth: fidl::encoding::Depth,
1422 ) -> fidl::Result<()> {
1423 encoder.debug_check_bounds::<HostAddress>(offset);
1424 self.0.encode(encoder, offset + 0, depth)?;
1428 self.1.encode(encoder, offset + 16, depth)?;
1429 self.2.encode(encoder, offset + 24, depth)?;
1430 Ok(())
1431 }
1432 }
1433
1434 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HostAddress {
1435 #[inline(always)]
1436 fn new_empty() -> Self {
1437 Self {
1438 address: fidl::new_empty!(fidl_fuchsia_net__common::IpAddress, D),
1439 interface: fidl::new_empty!(u64, D),
1440 ttl: fidl::new_empty!(i64, D),
1441 }
1442 }
1443
1444 #[inline]
1445 unsafe fn decode(
1446 &mut self,
1447 decoder: &mut fidl::encoding::Decoder<'_, D>,
1448 offset: usize,
1449 _depth: fidl::encoding::Depth,
1450 ) -> fidl::Result<()> {
1451 decoder.debug_check_bounds::<Self>(offset);
1452 fidl::decode!(
1454 fidl_fuchsia_net__common::IpAddress,
1455 D,
1456 &mut self.address,
1457 decoder,
1458 offset + 0,
1459 _depth
1460 )?;
1461 fidl::decode!(u64, D, &mut self.interface, decoder, offset + 16, _depth)?;
1462 fidl::decode!(i64, D, &mut self.ttl, decoder, offset + 24, _depth)?;
1463 Ok(())
1464 }
1465 }
1466
1467 impl fidl::encoding::ValueTypeMarker for HostNameResolverResolveHostNameRequest {
1468 type Borrowed<'a> = &'a Self;
1469 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1470 value
1471 }
1472 }
1473
1474 unsafe impl fidl::encoding::TypeMarker for HostNameResolverResolveHostNameRequest {
1475 type Owned = Self;
1476
1477 #[inline(always)]
1478 fn inline_align(_context: fidl::encoding::Context) -> usize {
1479 8
1480 }
1481
1482 #[inline(always)]
1483 fn inline_size(_context: fidl::encoding::Context) -> usize {
1484 40
1485 }
1486 }
1487
1488 unsafe impl<D: fidl::encoding::ResourceDialect>
1489 fidl::encoding::Encode<HostNameResolverResolveHostNameRequest, D>
1490 for &HostNameResolverResolveHostNameRequest
1491 {
1492 #[inline]
1493 unsafe fn encode(
1494 self,
1495 encoder: &mut fidl::encoding::Encoder<'_, D>,
1496 offset: usize,
1497 _depth: fidl::encoding::Depth,
1498 ) -> fidl::Result<()> {
1499 encoder.debug_check_bounds::<HostNameResolverResolveHostNameRequest>(offset);
1500 fidl::encoding::Encode::<HostNameResolverResolveHostNameRequest, D>::encode(
1502 (
1503 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
1504 &self.host,
1505 ),
1506 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.timeout),
1507 <HostNameResolutionOptions as fidl::encoding::ValueTypeMarker>::borrow(
1508 &self.options,
1509 ),
1510 ),
1511 encoder,
1512 offset,
1513 _depth,
1514 )
1515 }
1516 }
1517 unsafe impl<
1518 D: fidl::encoding::ResourceDialect,
1519 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
1520 T1: fidl::encoding::Encode<i64, D>,
1521 T2: fidl::encoding::Encode<HostNameResolutionOptions, D>,
1522 > fidl::encoding::Encode<HostNameResolverResolveHostNameRequest, D> for (T0, T1, T2)
1523 {
1524 #[inline]
1525 unsafe fn encode(
1526 self,
1527 encoder: &mut fidl::encoding::Encoder<'_, D>,
1528 offset: usize,
1529 depth: fidl::encoding::Depth,
1530 ) -> fidl::Result<()> {
1531 encoder.debug_check_bounds::<HostNameResolverResolveHostNameRequest>(offset);
1532 self.0.encode(encoder, offset + 0, depth)?;
1536 self.1.encode(encoder, offset + 16, depth)?;
1537 self.2.encode(encoder, offset + 24, depth)?;
1538 Ok(())
1539 }
1540 }
1541
1542 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1543 for HostNameResolverResolveHostNameRequest
1544 {
1545 #[inline(always)]
1546 fn new_empty() -> Self {
1547 Self {
1548 host: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
1549 timeout: fidl::new_empty!(i64, D),
1550 options: fidl::new_empty!(HostNameResolutionOptions, D),
1551 }
1552 }
1553
1554 #[inline]
1555 unsafe fn decode(
1556 &mut self,
1557 decoder: &mut fidl::encoding::Decoder<'_, D>,
1558 offset: usize,
1559 _depth: fidl::encoding::Depth,
1560 ) -> fidl::Result<()> {
1561 decoder.debug_check_bounds::<Self>(offset);
1562 fidl::decode!(
1564 fidl::encoding::BoundedString<255>,
1565 D,
1566 &mut self.host,
1567 decoder,
1568 offset + 0,
1569 _depth
1570 )?;
1571 fidl::decode!(i64, D, &mut self.timeout, decoder, offset + 16, _depth)?;
1572 fidl::decode!(
1573 HostNameResolutionOptions,
1574 D,
1575 &mut self.options,
1576 decoder,
1577 offset + 24,
1578 _depth
1579 )?;
1580 Ok(())
1581 }
1582 }
1583
1584 impl fidl::encoding::ValueTypeMarker for HostNameResolverResolveHostNameResponse {
1585 type Borrowed<'a> = &'a Self;
1586 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1587 value
1588 }
1589 }
1590
1591 unsafe impl fidl::encoding::TypeMarker for HostNameResolverResolveHostNameResponse {
1592 type Owned = Self;
1593
1594 #[inline(always)]
1595 fn inline_align(_context: fidl::encoding::Context) -> usize {
1596 8
1597 }
1598
1599 #[inline(always)]
1600 fn inline_size(_context: fidl::encoding::Context) -> usize {
1601 16
1602 }
1603 }
1604
1605 unsafe impl<D: fidl::encoding::ResourceDialect>
1606 fidl::encoding::Encode<HostNameResolverResolveHostNameResponse, D>
1607 for &HostNameResolverResolveHostNameResponse
1608 {
1609 #[inline]
1610 unsafe fn encode(
1611 self,
1612 encoder: &mut fidl::encoding::Encoder<'_, D>,
1613 offset: usize,
1614 _depth: fidl::encoding::Depth,
1615 ) -> fidl::Result<()> {
1616 encoder.debug_check_bounds::<HostNameResolverResolveHostNameResponse>(offset);
1617 fidl::encoding::Encode::<HostNameResolverResolveHostNameResponse, D>::encode(
1619 (
1620 <fidl::encoding::Vector<HostAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.addresses),
1621 ),
1622 encoder, offset, _depth
1623 )
1624 }
1625 }
1626 unsafe impl<
1627 D: fidl::encoding::ResourceDialect,
1628 T0: fidl::encoding::Encode<fidl::encoding::Vector<HostAddress, 64>, D>,
1629 > fidl::encoding::Encode<HostNameResolverResolveHostNameResponse, D> for (T0,)
1630 {
1631 #[inline]
1632 unsafe fn encode(
1633 self,
1634 encoder: &mut fidl::encoding::Encoder<'_, D>,
1635 offset: usize,
1636 depth: fidl::encoding::Depth,
1637 ) -> fidl::Result<()> {
1638 encoder.debug_check_bounds::<HostNameResolverResolveHostNameResponse>(offset);
1639 self.0.encode(encoder, offset + 0, depth)?;
1643 Ok(())
1644 }
1645 }
1646
1647 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1648 for HostNameResolverResolveHostNameResponse
1649 {
1650 #[inline(always)]
1651 fn new_empty() -> Self {
1652 Self { addresses: fidl::new_empty!(fidl::encoding::Vector<HostAddress, 64>, D) }
1653 }
1654
1655 #[inline]
1656 unsafe fn decode(
1657 &mut self,
1658 decoder: &mut fidl::encoding::Decoder<'_, D>,
1659 offset: usize,
1660 _depth: fidl::encoding::Depth,
1661 ) -> fidl::Result<()> {
1662 decoder.debug_check_bounds::<Self>(offset);
1663 fidl::decode!(fidl::encoding::Vector<HostAddress, 64>, D, &mut self.addresses, decoder, offset + 0, _depth)?;
1665 Ok(())
1666 }
1667 }
1668
1669 impl fidl::encoding::ValueTypeMarker for HostNameSubscriptionListenerOnAddressesChangedRequest {
1670 type Borrowed<'a> = &'a Self;
1671 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1672 value
1673 }
1674 }
1675
1676 unsafe impl fidl::encoding::TypeMarker for HostNameSubscriptionListenerOnAddressesChangedRequest {
1677 type Owned = Self;
1678
1679 #[inline(always)]
1680 fn inline_align(_context: fidl::encoding::Context) -> usize {
1681 8
1682 }
1683
1684 #[inline(always)]
1685 fn inline_size(_context: fidl::encoding::Context) -> usize {
1686 16
1687 }
1688 }
1689
1690 unsafe impl<D: fidl::encoding::ResourceDialect>
1691 fidl::encoding::Encode<HostNameSubscriptionListenerOnAddressesChangedRequest, D>
1692 for &HostNameSubscriptionListenerOnAddressesChangedRequest
1693 {
1694 #[inline]
1695 unsafe fn encode(
1696 self,
1697 encoder: &mut fidl::encoding::Encoder<'_, D>,
1698 offset: usize,
1699 _depth: fidl::encoding::Depth,
1700 ) -> fidl::Result<()> {
1701 encoder.debug_check_bounds::<HostNameSubscriptionListenerOnAddressesChangedRequest>(
1702 offset,
1703 );
1704 fidl::encoding::Encode::<HostNameSubscriptionListenerOnAddressesChangedRequest, D>::encode(
1706 (
1707 <fidl::encoding::Vector<HostAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.addresses),
1708 ),
1709 encoder, offset, _depth
1710 )
1711 }
1712 }
1713 unsafe impl<
1714 D: fidl::encoding::ResourceDialect,
1715 T0: fidl::encoding::Encode<fidl::encoding::Vector<HostAddress, 64>, D>,
1716 > fidl::encoding::Encode<HostNameSubscriptionListenerOnAddressesChangedRequest, D> for (T0,)
1717 {
1718 #[inline]
1719 unsafe fn encode(
1720 self,
1721 encoder: &mut fidl::encoding::Encoder<'_, D>,
1722 offset: usize,
1723 depth: fidl::encoding::Depth,
1724 ) -> fidl::Result<()> {
1725 encoder.debug_check_bounds::<HostNameSubscriptionListenerOnAddressesChangedRequest>(
1726 offset,
1727 );
1728 self.0.encode(encoder, offset + 0, depth)?;
1732 Ok(())
1733 }
1734 }
1735
1736 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1737 for HostNameSubscriptionListenerOnAddressesChangedRequest
1738 {
1739 #[inline(always)]
1740 fn new_empty() -> Self {
1741 Self { addresses: fidl::new_empty!(fidl::encoding::Vector<HostAddress, 64>, D) }
1742 }
1743
1744 #[inline]
1745 unsafe fn decode(
1746 &mut self,
1747 decoder: &mut fidl::encoding::Decoder<'_, D>,
1748 offset: usize,
1749 _depth: fidl::encoding::Depth,
1750 ) -> fidl::Result<()> {
1751 decoder.debug_check_bounds::<Self>(offset);
1752 fidl::decode!(fidl::encoding::Vector<HostAddress, 64>, D, &mut self.addresses, decoder, offset + 0, _depth)?;
1754 Ok(())
1755 }
1756 }
1757
1758 impl fidl::encoding::ValueTypeMarker for Publication {
1759 type Borrowed<'a> = &'a Self;
1760 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1761 value
1762 }
1763 }
1764
1765 unsafe impl fidl::encoding::TypeMarker for Publication {
1766 type Owned = Self;
1767
1768 #[inline(always)]
1769 fn inline_align(_context: fidl::encoding::Context) -> usize {
1770 8
1771 }
1772
1773 #[inline(always)]
1774 fn inline_size(_context: fidl::encoding::Context) -> usize {
1775 56
1776 }
1777 }
1778
1779 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Publication, D>
1780 for &Publication
1781 {
1782 #[inline]
1783 unsafe fn encode(
1784 self,
1785 encoder: &mut fidl::encoding::Encoder<'_, D>,
1786 offset: usize,
1787 _depth: fidl::encoding::Depth,
1788 ) -> fidl::Result<()> {
1789 encoder.debug_check_bounds::<Publication>(offset);
1790 fidl::encoding::Encode::<Publication, D>::encode(
1792 (
1793 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.port),
1794 <fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.text),
1795 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.srv_priority),
1796 <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.srv_weight),
1797 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.ptr_ttl),
1798 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.srv_ttl),
1799 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.txt_ttl),
1800 ),
1801 encoder, offset, _depth
1802 )
1803 }
1804 }
1805 unsafe impl<
1806 D: fidl::encoding::ResourceDialect,
1807 T0: fidl::encoding::Encode<u16, D>,
1808 T1: fidl::encoding::Encode<fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>, D>,
1809 T2: fidl::encoding::Encode<u16, D>,
1810 T3: fidl::encoding::Encode<u16, D>,
1811 T4: fidl::encoding::Encode<i64, D>,
1812 T5: fidl::encoding::Encode<i64, D>,
1813 T6: fidl::encoding::Encode<i64, D>,
1814 > fidl::encoding::Encode<Publication, D> for (T0, T1, T2, T3, T4, T5, T6)
1815 {
1816 #[inline]
1817 unsafe fn encode(
1818 self,
1819 encoder: &mut fidl::encoding::Encoder<'_, D>,
1820 offset: usize,
1821 depth: fidl::encoding::Depth,
1822 ) -> fidl::Result<()> {
1823 encoder.debug_check_bounds::<Publication>(offset);
1824 unsafe {
1827 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1828 (ptr as *mut u64).write_unaligned(0);
1829 }
1830 unsafe {
1831 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
1832 (ptr as *mut u64).write_unaligned(0);
1833 }
1834 self.0.encode(encoder, offset + 0, depth)?;
1836 self.1.encode(encoder, offset + 8, depth)?;
1837 self.2.encode(encoder, offset + 24, depth)?;
1838 self.3.encode(encoder, offset + 26, depth)?;
1839 self.4.encode(encoder, offset + 32, depth)?;
1840 self.5.encode(encoder, offset + 40, depth)?;
1841 self.6.encode(encoder, offset + 48, depth)?;
1842 Ok(())
1843 }
1844 }
1845
1846 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Publication {
1847 #[inline(always)]
1848 fn new_empty() -> Self {
1849 Self {
1850 port: fidl::new_empty!(u16, D),
1851 text: fidl::new_empty!(
1852 fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>,
1853 D
1854 ),
1855 srv_priority: fidl::new_empty!(u16, D),
1856 srv_weight: fidl::new_empty!(u16, D),
1857 ptr_ttl: fidl::new_empty!(i64, D),
1858 srv_ttl: fidl::new_empty!(i64, D),
1859 txt_ttl: fidl::new_empty!(i64, D),
1860 }
1861 }
1862
1863 #[inline]
1864 unsafe fn decode(
1865 &mut self,
1866 decoder: &mut fidl::encoding::Decoder<'_, D>,
1867 offset: usize,
1868 _depth: fidl::encoding::Depth,
1869 ) -> fidl::Result<()> {
1870 decoder.debug_check_bounds::<Self>(offset);
1871 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1873 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1874 let mask = 0xffffffffffff0000u64;
1875 let maskedval = padval & mask;
1876 if maskedval != 0 {
1877 return Err(fidl::Error::NonZeroPadding {
1878 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1879 });
1880 }
1881 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
1882 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1883 let mask = 0xffffffff00000000u64;
1884 let maskedval = padval & mask;
1885 if maskedval != 0 {
1886 return Err(fidl::Error::NonZeroPadding {
1887 padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
1888 });
1889 }
1890 fidl::decode!(u16, D, &mut self.port, decoder, offset + 0, _depth)?;
1891 fidl::decode!(
1892 fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>,
1893 D,
1894 &mut self.text,
1895 decoder,
1896 offset + 8,
1897 _depth
1898 )?;
1899 fidl::decode!(u16, D, &mut self.srv_priority, decoder, offset + 24, _depth)?;
1900 fidl::decode!(u16, D, &mut self.srv_weight, decoder, offset + 26, _depth)?;
1901 fidl::decode!(i64, D, &mut self.ptr_ttl, decoder, offset + 32, _depth)?;
1902 fidl::decode!(i64, D, &mut self.srv_ttl, decoder, offset + 40, _depth)?;
1903 fidl::decode!(i64, D, &mut self.txt_ttl, decoder, offset + 48, _depth)?;
1904 Ok(())
1905 }
1906 }
1907
1908 impl fidl::encoding::ValueTypeMarker for PublicationResponderOnPublicationRequest {
1909 type Borrowed<'a> = &'a Self;
1910 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1911 value
1912 }
1913 }
1914
1915 unsafe impl fidl::encoding::TypeMarker for PublicationResponderOnPublicationRequest {
1916 type Owned = Self;
1917
1918 #[inline(always)]
1919 fn inline_align(_context: fidl::encoding::Context) -> usize {
1920 8
1921 }
1922
1923 #[inline(always)]
1924 fn inline_size(_context: fidl::encoding::Context) -> usize {
1925 40
1926 }
1927 }
1928
1929 unsafe impl<D: fidl::encoding::ResourceDialect>
1930 fidl::encoding::Encode<PublicationResponderOnPublicationRequest, D>
1931 for &PublicationResponderOnPublicationRequest
1932 {
1933 #[inline]
1934 unsafe fn encode(
1935 self,
1936 encoder: &mut fidl::encoding::Encoder<'_, D>,
1937 offset: usize,
1938 _depth: fidl::encoding::Depth,
1939 ) -> fidl::Result<()> {
1940 encoder.debug_check_bounds::<PublicationResponderOnPublicationRequest>(offset);
1941 fidl::encoding::Encode::<PublicationResponderOnPublicationRequest, D>::encode(
1943 (
1944 <PublicationCause as fidl::encoding::ValueTypeMarker>::borrow(&self.publication_cause),
1945 <fidl::encoding::Optional<fidl::encoding::BoundedString<63>> as fidl::encoding::ValueTypeMarker>::borrow(&self.subtype),
1946 <fidl::encoding::Vector<fidl_fuchsia_net__common::IpAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.source_addresses),
1947 ),
1948 encoder, offset, _depth
1949 )
1950 }
1951 }
1952 unsafe impl<
1953 D: fidl::encoding::ResourceDialect,
1954 T0: fidl::encoding::Encode<PublicationCause, D>,
1955 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<63>>, D>,
1956 T2: fidl::encoding::Encode<fidl::encoding::Vector<fidl_fuchsia_net__common::IpAddress, 64>, D>,
1957 > fidl::encoding::Encode<PublicationResponderOnPublicationRequest, D> for (T0, T1, T2)
1958 {
1959 #[inline]
1960 unsafe fn encode(
1961 self,
1962 encoder: &mut fidl::encoding::Encoder<'_, D>,
1963 offset: usize,
1964 depth: fidl::encoding::Depth,
1965 ) -> fidl::Result<()> {
1966 encoder.debug_check_bounds::<PublicationResponderOnPublicationRequest>(offset);
1967 unsafe {
1970 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1971 (ptr as *mut u64).write_unaligned(0);
1972 }
1973 self.0.encode(encoder, offset + 0, depth)?;
1975 self.1.encode(encoder, offset + 8, depth)?;
1976 self.2.encode(encoder, offset + 24, depth)?;
1977 Ok(())
1978 }
1979 }
1980
1981 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1982 for PublicationResponderOnPublicationRequest
1983 {
1984 #[inline(always)]
1985 fn new_empty() -> Self {
1986 Self {
1987 publication_cause: fidl::new_empty!(PublicationCause, D),
1988 subtype: fidl::new_empty!(
1989 fidl::encoding::Optional<fidl::encoding::BoundedString<63>>,
1990 D
1991 ),
1992 source_addresses: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net__common::IpAddress, 64>, D),
1993 }
1994 }
1995
1996 #[inline]
1997 unsafe fn decode(
1998 &mut self,
1999 decoder: &mut fidl::encoding::Decoder<'_, D>,
2000 offset: usize,
2001 _depth: fidl::encoding::Depth,
2002 ) -> fidl::Result<()> {
2003 decoder.debug_check_bounds::<Self>(offset);
2004 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2006 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2007 let mask = 0xffffffff00000000u64;
2008 let maskedval = padval & mask;
2009 if maskedval != 0 {
2010 return Err(fidl::Error::NonZeroPadding {
2011 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2012 });
2013 }
2014 fidl::decode!(
2015 PublicationCause,
2016 D,
2017 &mut self.publication_cause,
2018 decoder,
2019 offset + 0,
2020 _depth
2021 )?;
2022 fidl::decode!(
2023 fidl::encoding::Optional<fidl::encoding::BoundedString<63>>,
2024 D,
2025 &mut self.subtype,
2026 decoder,
2027 offset + 8,
2028 _depth
2029 )?;
2030 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net__common::IpAddress, 64>, D, &mut self.source_addresses, decoder, offset + 24, _depth)?;
2031 Ok(())
2032 }
2033 }
2034
2035 impl fidl::encoding::ValueTypeMarker for PublicationResponderOnPublicationResponse {
2036 type Borrowed<'a> = &'a Self;
2037 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2038 value
2039 }
2040 }
2041
2042 unsafe impl fidl::encoding::TypeMarker for PublicationResponderOnPublicationResponse {
2043 type Owned = Self;
2044
2045 #[inline(always)]
2046 fn inline_align(_context: fidl::encoding::Context) -> usize {
2047 8
2048 }
2049
2050 #[inline(always)]
2051 fn inline_size(_context: fidl::encoding::Context) -> usize {
2052 8
2053 }
2054 }
2055
2056 unsafe impl<D: fidl::encoding::ResourceDialect>
2057 fidl::encoding::Encode<PublicationResponderOnPublicationResponse, D>
2058 for &PublicationResponderOnPublicationResponse
2059 {
2060 #[inline]
2061 unsafe fn encode(
2062 self,
2063 encoder: &mut fidl::encoding::Encoder<'_, D>,
2064 offset: usize,
2065 _depth: fidl::encoding::Depth,
2066 ) -> fidl::Result<()> {
2067 encoder.debug_check_bounds::<PublicationResponderOnPublicationResponse>(offset);
2068 fidl::encoding::Encode::<PublicationResponderOnPublicationResponse, D>::encode(
2070 (<fidl::encoding::Boxed<Publication> as fidl::encoding::ValueTypeMarker>::borrow(
2071 &self.publication,
2072 ),),
2073 encoder,
2074 offset,
2075 _depth,
2076 )
2077 }
2078 }
2079 unsafe impl<
2080 D: fidl::encoding::ResourceDialect,
2081 T0: fidl::encoding::Encode<fidl::encoding::Boxed<Publication>, D>,
2082 > fidl::encoding::Encode<PublicationResponderOnPublicationResponse, D> for (T0,)
2083 {
2084 #[inline]
2085 unsafe fn encode(
2086 self,
2087 encoder: &mut fidl::encoding::Encoder<'_, D>,
2088 offset: usize,
2089 depth: fidl::encoding::Depth,
2090 ) -> fidl::Result<()> {
2091 encoder.debug_check_bounds::<PublicationResponderOnPublicationResponse>(offset);
2092 self.0.encode(encoder, offset + 0, depth)?;
2096 Ok(())
2097 }
2098 }
2099
2100 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2101 for PublicationResponderOnPublicationResponse
2102 {
2103 #[inline(always)]
2104 fn new_empty() -> Self {
2105 Self { publication: fidl::new_empty!(fidl::encoding::Boxed<Publication>, D) }
2106 }
2107
2108 #[inline]
2109 unsafe fn decode(
2110 &mut self,
2111 decoder: &mut fidl::encoding::Decoder<'_, D>,
2112 offset: usize,
2113 _depth: fidl::encoding::Depth,
2114 ) -> fidl::Result<()> {
2115 decoder.debug_check_bounds::<Self>(offset);
2116 fidl::decode!(
2118 fidl::encoding::Boxed<Publication>,
2119 D,
2120 &mut self.publication,
2121 decoder,
2122 offset + 0,
2123 _depth
2124 )?;
2125 Ok(())
2126 }
2127 }
2128
2129 impl fidl::encoding::ValueTypeMarker for PublicationResponderSetSubtypesRequest {
2130 type Borrowed<'a> = &'a Self;
2131 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2132 value
2133 }
2134 }
2135
2136 unsafe impl fidl::encoding::TypeMarker for PublicationResponderSetSubtypesRequest {
2137 type Owned = Self;
2138
2139 #[inline(always)]
2140 fn inline_align(_context: fidl::encoding::Context) -> usize {
2141 8
2142 }
2143
2144 #[inline(always)]
2145 fn inline_size(_context: fidl::encoding::Context) -> usize {
2146 16
2147 }
2148 }
2149
2150 unsafe impl<D: fidl::encoding::ResourceDialect>
2151 fidl::encoding::Encode<PublicationResponderSetSubtypesRequest, D>
2152 for &PublicationResponderSetSubtypesRequest
2153 {
2154 #[inline]
2155 unsafe fn encode(
2156 self,
2157 encoder: &mut fidl::encoding::Encoder<'_, D>,
2158 offset: usize,
2159 _depth: fidl::encoding::Depth,
2160 ) -> fidl::Result<()> {
2161 encoder.debug_check_bounds::<PublicationResponderSetSubtypesRequest>(offset);
2162 fidl::encoding::Encode::<PublicationResponderSetSubtypesRequest, D>::encode(
2164 (
2165 <fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.subtypes),
2166 ),
2167 encoder, offset, _depth
2168 )
2169 }
2170 }
2171 unsafe impl<
2172 D: fidl::encoding::ResourceDialect,
2173 T0: fidl::encoding::Encode<fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>, D>,
2174 > fidl::encoding::Encode<PublicationResponderSetSubtypesRequest, D> for (T0,)
2175 {
2176 #[inline]
2177 unsafe fn encode(
2178 self,
2179 encoder: &mut fidl::encoding::Encoder<'_, D>,
2180 offset: usize,
2181 depth: fidl::encoding::Depth,
2182 ) -> fidl::Result<()> {
2183 encoder.debug_check_bounds::<PublicationResponderSetSubtypesRequest>(offset);
2184 self.0.encode(encoder, offset + 0, depth)?;
2188 Ok(())
2189 }
2190 }
2191
2192 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2193 for PublicationResponderSetSubtypesRequest
2194 {
2195 #[inline(always)]
2196 fn new_empty() -> Self {
2197 Self {
2198 subtypes: fidl::new_empty!(
2199 fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>,
2200 D
2201 ),
2202 }
2203 }
2204
2205 #[inline]
2206 unsafe fn decode(
2207 &mut self,
2208 decoder: &mut fidl::encoding::Decoder<'_, D>,
2209 offset: usize,
2210 _depth: fidl::encoding::Depth,
2211 ) -> fidl::Result<()> {
2212 decoder.debug_check_bounds::<Self>(offset);
2213 fidl::decode!(
2215 fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>,
2216 D,
2217 &mut self.subtypes,
2218 decoder,
2219 offset + 0,
2220 _depth
2221 )?;
2222 Ok(())
2223 }
2224 }
2225
2226 impl fidl::encoding::ValueTypeMarker for ResolverResolveHostNameRequest {
2227 type Borrowed<'a> = &'a Self;
2228 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2229 value
2230 }
2231 }
2232
2233 unsafe impl fidl::encoding::TypeMarker for ResolverResolveHostNameRequest {
2234 type Owned = Self;
2235
2236 #[inline(always)]
2237 fn inline_align(_context: fidl::encoding::Context) -> usize {
2238 8
2239 }
2240
2241 #[inline(always)]
2242 fn inline_size(_context: fidl::encoding::Context) -> usize {
2243 24
2244 }
2245 }
2246
2247 unsafe impl<D: fidl::encoding::ResourceDialect>
2248 fidl::encoding::Encode<ResolverResolveHostNameRequest, D>
2249 for &ResolverResolveHostNameRequest
2250 {
2251 #[inline]
2252 unsafe fn encode(
2253 self,
2254 encoder: &mut fidl::encoding::Encoder<'_, D>,
2255 offset: usize,
2256 _depth: fidl::encoding::Depth,
2257 ) -> fidl::Result<()> {
2258 encoder.debug_check_bounds::<ResolverResolveHostNameRequest>(offset);
2259 fidl::encoding::Encode::<ResolverResolveHostNameRequest, D>::encode(
2261 (
2262 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(
2263 &self.host,
2264 ),
2265 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.timeout),
2266 ),
2267 encoder,
2268 offset,
2269 _depth,
2270 )
2271 }
2272 }
2273 unsafe impl<
2274 D: fidl::encoding::ResourceDialect,
2275 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
2276 T1: fidl::encoding::Encode<i64, D>,
2277 > fidl::encoding::Encode<ResolverResolveHostNameRequest, D> for (T0, T1)
2278 {
2279 #[inline]
2280 unsafe fn encode(
2281 self,
2282 encoder: &mut fidl::encoding::Encoder<'_, D>,
2283 offset: usize,
2284 depth: fidl::encoding::Depth,
2285 ) -> fidl::Result<()> {
2286 encoder.debug_check_bounds::<ResolverResolveHostNameRequest>(offset);
2287 self.0.encode(encoder, offset + 0, depth)?;
2291 self.1.encode(encoder, offset + 16, depth)?;
2292 Ok(())
2293 }
2294 }
2295
2296 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2297 for ResolverResolveHostNameRequest
2298 {
2299 #[inline(always)]
2300 fn new_empty() -> Self {
2301 Self {
2302 host: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
2303 timeout: fidl::new_empty!(i64, D),
2304 }
2305 }
2306
2307 #[inline]
2308 unsafe fn decode(
2309 &mut self,
2310 decoder: &mut fidl::encoding::Decoder<'_, D>,
2311 offset: usize,
2312 _depth: fidl::encoding::Depth,
2313 ) -> fidl::Result<()> {
2314 decoder.debug_check_bounds::<Self>(offset);
2315 fidl::decode!(
2317 fidl::encoding::BoundedString<255>,
2318 D,
2319 &mut self.host,
2320 decoder,
2321 offset + 0,
2322 _depth
2323 )?;
2324 fidl::decode!(i64, D, &mut self.timeout, decoder, offset + 16, _depth)?;
2325 Ok(())
2326 }
2327 }
2328
2329 impl fidl::encoding::ValueTypeMarker for ResolverResolveHostNameResponse {
2330 type Borrowed<'a> = &'a Self;
2331 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2332 value
2333 }
2334 }
2335
2336 unsafe impl fidl::encoding::TypeMarker for ResolverResolveHostNameResponse {
2337 type Owned = Self;
2338
2339 #[inline(always)]
2340 fn inline_align(_context: fidl::encoding::Context) -> usize {
2341 8
2342 }
2343
2344 #[inline(always)]
2345 fn inline_size(_context: fidl::encoding::Context) -> usize {
2346 16
2347 }
2348 }
2349
2350 unsafe impl<D: fidl::encoding::ResourceDialect>
2351 fidl::encoding::Encode<ResolverResolveHostNameResponse, D>
2352 for &ResolverResolveHostNameResponse
2353 {
2354 #[inline]
2355 unsafe fn encode(
2356 self,
2357 encoder: &mut fidl::encoding::Encoder<'_, D>,
2358 offset: usize,
2359 _depth: fidl::encoding::Depth,
2360 ) -> fidl::Result<()> {
2361 encoder.debug_check_bounds::<ResolverResolveHostNameResponse>(offset);
2362 fidl::encoding::Encode::<ResolverResolveHostNameResponse, D>::encode(
2364 (
2365 <fidl::encoding::Boxed<fidl_fuchsia_net__common::Ipv4Address> as fidl::encoding::ValueTypeMarker>::borrow(&self.v4_address),
2366 <fidl::encoding::Boxed<fidl_fuchsia_net__common::Ipv6Address> as fidl::encoding::ValueTypeMarker>::borrow(&self.v6_address),
2367 ),
2368 encoder, offset, _depth
2369 )
2370 }
2371 }
2372 unsafe impl<
2373 D: fidl::encoding::ResourceDialect,
2374 T0: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_net__common::Ipv4Address>, D>,
2375 T1: fidl::encoding::Encode<fidl::encoding::Boxed<fidl_fuchsia_net__common::Ipv6Address>, D>,
2376 > fidl::encoding::Encode<ResolverResolveHostNameResponse, D> for (T0, T1)
2377 {
2378 #[inline]
2379 unsafe fn encode(
2380 self,
2381 encoder: &mut fidl::encoding::Encoder<'_, D>,
2382 offset: usize,
2383 depth: fidl::encoding::Depth,
2384 ) -> fidl::Result<()> {
2385 encoder.debug_check_bounds::<ResolverResolveHostNameResponse>(offset);
2386 self.0.encode(encoder, offset + 0, depth)?;
2390 self.1.encode(encoder, offset + 8, depth)?;
2391 Ok(())
2392 }
2393 }
2394
2395 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2396 for ResolverResolveHostNameResponse
2397 {
2398 #[inline(always)]
2399 fn new_empty() -> Self {
2400 Self {
2401 v4_address: fidl::new_empty!(
2402 fidl::encoding::Boxed<fidl_fuchsia_net__common::Ipv4Address>,
2403 D
2404 ),
2405 v6_address: fidl::new_empty!(
2406 fidl::encoding::Boxed<fidl_fuchsia_net__common::Ipv6Address>,
2407 D
2408 ),
2409 }
2410 }
2411
2412 #[inline]
2413 unsafe fn decode(
2414 &mut self,
2415 decoder: &mut fidl::encoding::Decoder<'_, D>,
2416 offset: usize,
2417 _depth: fidl::encoding::Depth,
2418 ) -> fidl::Result<()> {
2419 decoder.debug_check_bounds::<Self>(offset);
2420 fidl::decode!(
2422 fidl::encoding::Boxed<fidl_fuchsia_net__common::Ipv4Address>,
2423 D,
2424 &mut self.v4_address,
2425 decoder,
2426 offset + 0,
2427 _depth
2428 )?;
2429 fidl::decode!(
2430 fidl::encoding::Boxed<fidl_fuchsia_net__common::Ipv6Address>,
2431 D,
2432 &mut self.v6_address,
2433 decoder,
2434 offset + 8,
2435 _depth
2436 )?;
2437 Ok(())
2438 }
2439 }
2440
2441 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublicationResponderOnPublicationRequest {
2442 type Borrowed<'a> = &'a Self;
2443 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2444 value
2445 }
2446 }
2447
2448 unsafe impl fidl::encoding::TypeMarker for ServiceInstancePublicationResponderOnPublicationRequest {
2449 type Owned = Self;
2450
2451 #[inline(always)]
2452 fn inline_align(_context: fidl::encoding::Context) -> usize {
2453 8
2454 }
2455
2456 #[inline(always)]
2457 fn inline_size(_context: fidl::encoding::Context) -> usize {
2458 40
2459 }
2460 }
2461
2462 unsafe impl<D: fidl::encoding::ResourceDialect>
2463 fidl::encoding::Encode<ServiceInstancePublicationResponderOnPublicationRequest, D>
2464 for &ServiceInstancePublicationResponderOnPublicationRequest
2465 {
2466 #[inline]
2467 unsafe fn encode(
2468 self,
2469 encoder: &mut fidl::encoding::Encoder<'_, D>,
2470 offset: usize,
2471 _depth: fidl::encoding::Depth,
2472 ) -> fidl::Result<()> {
2473 encoder.debug_check_bounds::<ServiceInstancePublicationResponderOnPublicationRequest>(
2474 offset,
2475 );
2476 fidl::encoding::Encode::<ServiceInstancePublicationResponderOnPublicationRequest, D>::encode(
2478 (
2479 <ServiceInstancePublicationCause as fidl::encoding::ValueTypeMarker>::borrow(&self.publication_cause),
2480 <fidl::encoding::Optional<fidl::encoding::BoundedString<63>> as fidl::encoding::ValueTypeMarker>::borrow(&self.subtype),
2481 <fidl::encoding::Vector<fidl_fuchsia_net__common::IpAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.source_addresses),
2482 ),
2483 encoder, offset, _depth
2484 )
2485 }
2486 }
2487 unsafe impl<
2488 D: fidl::encoding::ResourceDialect,
2489 T0: fidl::encoding::Encode<ServiceInstancePublicationCause, D>,
2490 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<63>>, D>,
2491 T2: fidl::encoding::Encode<fidl::encoding::Vector<fidl_fuchsia_net__common::IpAddress, 64>, D>,
2492 > fidl::encoding::Encode<ServiceInstancePublicationResponderOnPublicationRequest, D>
2493 for (T0, T1, T2)
2494 {
2495 #[inline]
2496 unsafe fn encode(
2497 self,
2498 encoder: &mut fidl::encoding::Encoder<'_, D>,
2499 offset: usize,
2500 depth: fidl::encoding::Depth,
2501 ) -> fidl::Result<()> {
2502 encoder.debug_check_bounds::<ServiceInstancePublicationResponderOnPublicationRequest>(
2503 offset,
2504 );
2505 unsafe {
2508 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2509 (ptr as *mut u64).write_unaligned(0);
2510 }
2511 self.0.encode(encoder, offset + 0, depth)?;
2513 self.1.encode(encoder, offset + 8, depth)?;
2514 self.2.encode(encoder, offset + 24, depth)?;
2515 Ok(())
2516 }
2517 }
2518
2519 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2520 for ServiceInstancePublicationResponderOnPublicationRequest
2521 {
2522 #[inline(always)]
2523 fn new_empty() -> Self {
2524 Self {
2525 publication_cause: fidl::new_empty!(ServiceInstancePublicationCause, D),
2526 subtype: fidl::new_empty!(
2527 fidl::encoding::Optional<fidl::encoding::BoundedString<63>>,
2528 D
2529 ),
2530 source_addresses: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net__common::IpAddress, 64>, D),
2531 }
2532 }
2533
2534 #[inline]
2535 unsafe fn decode(
2536 &mut self,
2537 decoder: &mut fidl::encoding::Decoder<'_, D>,
2538 offset: usize,
2539 _depth: fidl::encoding::Depth,
2540 ) -> fidl::Result<()> {
2541 decoder.debug_check_bounds::<Self>(offset);
2542 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2544 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2545 let mask = 0xffffffff00000000u64;
2546 let maskedval = padval & mask;
2547 if maskedval != 0 {
2548 return Err(fidl::Error::NonZeroPadding {
2549 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2550 });
2551 }
2552 fidl::decode!(
2553 ServiceInstancePublicationCause,
2554 D,
2555 &mut self.publication_cause,
2556 decoder,
2557 offset + 0,
2558 _depth
2559 )?;
2560 fidl::decode!(
2561 fidl::encoding::Optional<fidl::encoding::BoundedString<63>>,
2562 D,
2563 &mut self.subtype,
2564 decoder,
2565 offset + 8,
2566 _depth
2567 )?;
2568 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net__common::IpAddress, 64>, D, &mut self.source_addresses, decoder, offset + 24, _depth)?;
2569 Ok(())
2570 }
2571 }
2572
2573 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublicationResponderSetSubtypesRequest {
2574 type Borrowed<'a> = &'a Self;
2575 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2576 value
2577 }
2578 }
2579
2580 unsafe impl fidl::encoding::TypeMarker for ServiceInstancePublicationResponderSetSubtypesRequest {
2581 type Owned = Self;
2582
2583 #[inline(always)]
2584 fn inline_align(_context: fidl::encoding::Context) -> usize {
2585 8
2586 }
2587
2588 #[inline(always)]
2589 fn inline_size(_context: fidl::encoding::Context) -> usize {
2590 16
2591 }
2592 }
2593
2594 unsafe impl<D: fidl::encoding::ResourceDialect>
2595 fidl::encoding::Encode<ServiceInstancePublicationResponderSetSubtypesRequest, D>
2596 for &ServiceInstancePublicationResponderSetSubtypesRequest
2597 {
2598 #[inline]
2599 unsafe fn encode(
2600 self,
2601 encoder: &mut fidl::encoding::Encoder<'_, D>,
2602 offset: usize,
2603 _depth: fidl::encoding::Depth,
2604 ) -> fidl::Result<()> {
2605 encoder.debug_check_bounds::<ServiceInstancePublicationResponderSetSubtypesRequest>(
2606 offset,
2607 );
2608 fidl::encoding::Encode::<ServiceInstancePublicationResponderSetSubtypesRequest, D>::encode(
2610 (
2611 <fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256> as fidl::encoding::ValueTypeMarker>::borrow(&self.subtypes),
2612 ),
2613 encoder, offset, _depth
2614 )
2615 }
2616 }
2617 unsafe impl<
2618 D: fidl::encoding::ResourceDialect,
2619 T0: fidl::encoding::Encode<fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>, D>,
2620 > fidl::encoding::Encode<ServiceInstancePublicationResponderSetSubtypesRequest, D> for (T0,)
2621 {
2622 #[inline]
2623 unsafe fn encode(
2624 self,
2625 encoder: &mut fidl::encoding::Encoder<'_, D>,
2626 offset: usize,
2627 depth: fidl::encoding::Depth,
2628 ) -> fidl::Result<()> {
2629 encoder.debug_check_bounds::<ServiceInstancePublicationResponderSetSubtypesRequest>(
2630 offset,
2631 );
2632 self.0.encode(encoder, offset + 0, depth)?;
2636 Ok(())
2637 }
2638 }
2639
2640 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2641 for ServiceInstancePublicationResponderSetSubtypesRequest
2642 {
2643 #[inline(always)]
2644 fn new_empty() -> Self {
2645 Self {
2646 subtypes: fidl::new_empty!(
2647 fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>,
2648 D
2649 ),
2650 }
2651 }
2652
2653 #[inline]
2654 unsafe fn decode(
2655 &mut self,
2656 decoder: &mut fidl::encoding::Decoder<'_, D>,
2657 offset: usize,
2658 _depth: fidl::encoding::Depth,
2659 ) -> fidl::Result<()> {
2660 decoder.debug_check_bounds::<Self>(offset);
2661 fidl::decode!(
2663 fidl::encoding::Vector<fidl::encoding::BoundedString<63>, 256>,
2664 D,
2665 &mut self.subtypes,
2666 decoder,
2667 offset + 0,
2668 _depth
2669 )?;
2670 Ok(())
2671 }
2672 }
2673
2674 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublicationResponderOnPublicationResponse {
2675 type Borrowed<'a> = &'a Self;
2676 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2677 value
2678 }
2679 }
2680
2681 unsafe impl fidl::encoding::TypeMarker
2682 for ServiceInstancePublicationResponderOnPublicationResponse
2683 {
2684 type Owned = Self;
2685
2686 #[inline(always)]
2687 fn inline_align(_context: fidl::encoding::Context) -> usize {
2688 8
2689 }
2690
2691 #[inline(always)]
2692 fn inline_size(_context: fidl::encoding::Context) -> usize {
2693 16
2694 }
2695 }
2696
2697 unsafe impl<D: fidl::encoding::ResourceDialect>
2698 fidl::encoding::Encode<ServiceInstancePublicationResponderOnPublicationResponse, D>
2699 for &ServiceInstancePublicationResponderOnPublicationResponse
2700 {
2701 #[inline]
2702 unsafe fn encode(
2703 self,
2704 encoder: &mut fidl::encoding::Encoder<'_, D>,
2705 offset: usize,
2706 _depth: fidl::encoding::Depth,
2707 ) -> fidl::Result<()> {
2708 encoder.debug_check_bounds::<ServiceInstancePublicationResponderOnPublicationResponse>(
2709 offset,
2710 );
2711 fidl::encoding::Encode::<ServiceInstancePublicationResponderOnPublicationResponse, D>::encode(
2713 (
2714 <ServiceInstancePublication as fidl::encoding::ValueTypeMarker>::borrow(&self.publication),
2715 ),
2716 encoder, offset, _depth
2717 )
2718 }
2719 }
2720 unsafe impl<
2721 D: fidl::encoding::ResourceDialect,
2722 T0: fidl::encoding::Encode<ServiceInstancePublication, D>,
2723 > fidl::encoding::Encode<ServiceInstancePublicationResponderOnPublicationResponse, D> for (T0,)
2724 {
2725 #[inline]
2726 unsafe fn encode(
2727 self,
2728 encoder: &mut fidl::encoding::Encoder<'_, D>,
2729 offset: usize,
2730 depth: fidl::encoding::Depth,
2731 ) -> fidl::Result<()> {
2732 encoder.debug_check_bounds::<ServiceInstancePublicationResponderOnPublicationResponse>(
2733 offset,
2734 );
2735 self.0.encode(encoder, offset + 0, depth)?;
2739 Ok(())
2740 }
2741 }
2742
2743 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2744 for ServiceInstancePublicationResponderOnPublicationResponse
2745 {
2746 #[inline(always)]
2747 fn new_empty() -> Self {
2748 Self { publication: fidl::new_empty!(ServiceInstancePublication, D) }
2749 }
2750
2751 #[inline]
2752 unsafe fn decode(
2753 &mut self,
2754 decoder: &mut fidl::encoding::Decoder<'_, D>,
2755 offset: usize,
2756 _depth: fidl::encoding::Depth,
2757 ) -> fidl::Result<()> {
2758 decoder.debug_check_bounds::<Self>(offset);
2759 fidl::decode!(
2761 ServiceInstancePublication,
2762 D,
2763 &mut self.publication,
2764 decoder,
2765 offset + 0,
2766 _depth
2767 )?;
2768 Ok(())
2769 }
2770 }
2771
2772 impl fidl::encoding::ValueTypeMarker for ServiceInstanceResolverResolveServiceInstanceRequest {
2773 type Borrowed<'a> = &'a Self;
2774 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2775 value
2776 }
2777 }
2778
2779 unsafe impl fidl::encoding::TypeMarker for ServiceInstanceResolverResolveServiceInstanceRequest {
2780 type Owned = Self;
2781
2782 #[inline(always)]
2783 fn inline_align(_context: fidl::encoding::Context) -> usize {
2784 8
2785 }
2786
2787 #[inline(always)]
2788 fn inline_size(_context: fidl::encoding::Context) -> usize {
2789 56
2790 }
2791 }
2792
2793 unsafe impl<D: fidl::encoding::ResourceDialect>
2794 fidl::encoding::Encode<ServiceInstanceResolverResolveServiceInstanceRequest, D>
2795 for &ServiceInstanceResolverResolveServiceInstanceRequest
2796 {
2797 #[inline]
2798 unsafe fn encode(
2799 self,
2800 encoder: &mut fidl::encoding::Encoder<'_, D>,
2801 offset: usize,
2802 _depth: fidl::encoding::Depth,
2803 ) -> fidl::Result<()> {
2804 encoder
2805 .debug_check_bounds::<ServiceInstanceResolverResolveServiceInstanceRequest>(offset);
2806 fidl::encoding::Encode::<ServiceInstanceResolverResolveServiceInstanceRequest, D>::encode(
2808 (
2809 <fidl::encoding::BoundedString<22> as fidl::encoding::ValueTypeMarker>::borrow(&self.service),
2810 <fidl::encoding::BoundedString<63> as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),
2811 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.timeout),
2812 <ServiceInstanceResolutionOptions as fidl::encoding::ValueTypeMarker>::borrow(&self.options),
2813 ),
2814 encoder, offset, _depth
2815 )
2816 }
2817 }
2818 unsafe impl<
2819 D: fidl::encoding::ResourceDialect,
2820 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<22>, D>,
2821 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<63>, D>,
2822 T2: fidl::encoding::Encode<i64, D>,
2823 T3: fidl::encoding::Encode<ServiceInstanceResolutionOptions, D>,
2824 > fidl::encoding::Encode<ServiceInstanceResolverResolveServiceInstanceRequest, D>
2825 for (T0, T1, T2, T3)
2826 {
2827 #[inline]
2828 unsafe fn encode(
2829 self,
2830 encoder: &mut fidl::encoding::Encoder<'_, D>,
2831 offset: usize,
2832 depth: fidl::encoding::Depth,
2833 ) -> fidl::Result<()> {
2834 encoder
2835 .debug_check_bounds::<ServiceInstanceResolverResolveServiceInstanceRequest>(offset);
2836 self.0.encode(encoder, offset + 0, depth)?;
2840 self.1.encode(encoder, offset + 16, depth)?;
2841 self.2.encode(encoder, offset + 32, depth)?;
2842 self.3.encode(encoder, offset + 40, depth)?;
2843 Ok(())
2844 }
2845 }
2846
2847 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2848 for ServiceInstanceResolverResolveServiceInstanceRequest
2849 {
2850 #[inline(always)]
2851 fn new_empty() -> Self {
2852 Self {
2853 service: fidl::new_empty!(fidl::encoding::BoundedString<22>, D),
2854 instance: fidl::new_empty!(fidl::encoding::BoundedString<63>, D),
2855 timeout: fidl::new_empty!(i64, D),
2856 options: fidl::new_empty!(ServiceInstanceResolutionOptions, D),
2857 }
2858 }
2859
2860 #[inline]
2861 unsafe fn decode(
2862 &mut self,
2863 decoder: &mut fidl::encoding::Decoder<'_, D>,
2864 offset: usize,
2865 _depth: fidl::encoding::Depth,
2866 ) -> fidl::Result<()> {
2867 decoder.debug_check_bounds::<Self>(offset);
2868 fidl::decode!(
2870 fidl::encoding::BoundedString<22>,
2871 D,
2872 &mut self.service,
2873 decoder,
2874 offset + 0,
2875 _depth
2876 )?;
2877 fidl::decode!(
2878 fidl::encoding::BoundedString<63>,
2879 D,
2880 &mut self.instance,
2881 decoder,
2882 offset + 16,
2883 _depth
2884 )?;
2885 fidl::decode!(i64, D, &mut self.timeout, decoder, offset + 32, _depth)?;
2886 fidl::decode!(
2887 ServiceInstanceResolutionOptions,
2888 D,
2889 &mut self.options,
2890 decoder,
2891 offset + 40,
2892 _depth
2893 )?;
2894 Ok(())
2895 }
2896 }
2897
2898 impl fidl::encoding::ValueTypeMarker for ServiceInstanceResolverResolveServiceInstanceResponse {
2899 type Borrowed<'a> = &'a Self;
2900 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2901 value
2902 }
2903 }
2904
2905 unsafe impl fidl::encoding::TypeMarker for ServiceInstanceResolverResolveServiceInstanceResponse {
2906 type Owned = Self;
2907
2908 #[inline(always)]
2909 fn inline_align(_context: fidl::encoding::Context) -> usize {
2910 8
2911 }
2912
2913 #[inline(always)]
2914 fn inline_size(_context: fidl::encoding::Context) -> usize {
2915 16
2916 }
2917 }
2918
2919 unsafe impl<D: fidl::encoding::ResourceDialect>
2920 fidl::encoding::Encode<ServiceInstanceResolverResolveServiceInstanceResponse, D>
2921 for &ServiceInstanceResolverResolveServiceInstanceResponse
2922 {
2923 #[inline]
2924 unsafe fn encode(
2925 self,
2926 encoder: &mut fidl::encoding::Encoder<'_, D>,
2927 offset: usize,
2928 _depth: fidl::encoding::Depth,
2929 ) -> fidl::Result<()> {
2930 encoder.debug_check_bounds::<ServiceInstanceResolverResolveServiceInstanceResponse>(
2931 offset,
2932 );
2933 fidl::encoding::Encode::<ServiceInstanceResolverResolveServiceInstanceResponse, D>::encode(
2935 (
2936 <ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),
2937 ),
2938 encoder, offset, _depth
2939 )
2940 }
2941 }
2942 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
2943 fidl::encoding::Encode<ServiceInstanceResolverResolveServiceInstanceResponse, D> for (T0,)
2944 {
2945 #[inline]
2946 unsafe fn encode(
2947 self,
2948 encoder: &mut fidl::encoding::Encoder<'_, D>,
2949 offset: usize,
2950 depth: fidl::encoding::Depth,
2951 ) -> fidl::Result<()> {
2952 encoder.debug_check_bounds::<ServiceInstanceResolverResolveServiceInstanceResponse>(
2953 offset,
2954 );
2955 self.0.encode(encoder, offset + 0, depth)?;
2959 Ok(())
2960 }
2961 }
2962
2963 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2964 for ServiceInstanceResolverResolveServiceInstanceResponse
2965 {
2966 #[inline(always)]
2967 fn new_empty() -> Self {
2968 Self { instance: fidl::new_empty!(ServiceInstance, D) }
2969 }
2970
2971 #[inline]
2972 unsafe fn decode(
2973 &mut self,
2974 decoder: &mut fidl::encoding::Decoder<'_, D>,
2975 offset: usize,
2976 _depth: fidl::encoding::Depth,
2977 ) -> fidl::Result<()> {
2978 decoder.debug_check_bounds::<Self>(offset);
2979 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
2981 Ok(())
2982 }
2983 }
2984
2985 impl fidl::encoding::ValueTypeMarker for ServiceSubscriberOnInstanceChangedRequest {
2986 type Borrowed<'a> = &'a Self;
2987 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2988 value
2989 }
2990 }
2991
2992 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriberOnInstanceChangedRequest {
2993 type Owned = Self;
2994
2995 #[inline(always)]
2996 fn inline_align(_context: fidl::encoding::Context) -> usize {
2997 8
2998 }
2999
3000 #[inline(always)]
3001 fn inline_size(_context: fidl::encoding::Context) -> usize {
3002 16
3003 }
3004 }
3005
3006 unsafe impl<D: fidl::encoding::ResourceDialect>
3007 fidl::encoding::Encode<ServiceSubscriberOnInstanceChangedRequest, D>
3008 for &ServiceSubscriberOnInstanceChangedRequest
3009 {
3010 #[inline]
3011 unsafe fn encode(
3012 self,
3013 encoder: &mut fidl::encoding::Encoder<'_, D>,
3014 offset: usize,
3015 _depth: fidl::encoding::Depth,
3016 ) -> fidl::Result<()> {
3017 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceChangedRequest>(offset);
3018 fidl::encoding::Encode::<ServiceSubscriberOnInstanceChangedRequest, D>::encode(
3020 (<ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),),
3021 encoder,
3022 offset,
3023 _depth,
3024 )
3025 }
3026 }
3027 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
3028 fidl::encoding::Encode<ServiceSubscriberOnInstanceChangedRequest, D> for (T0,)
3029 {
3030 #[inline]
3031 unsafe fn encode(
3032 self,
3033 encoder: &mut fidl::encoding::Encoder<'_, D>,
3034 offset: usize,
3035 depth: fidl::encoding::Depth,
3036 ) -> fidl::Result<()> {
3037 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceChangedRequest>(offset);
3038 self.0.encode(encoder, offset + 0, depth)?;
3042 Ok(())
3043 }
3044 }
3045
3046 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3047 for ServiceSubscriberOnInstanceChangedRequest
3048 {
3049 #[inline(always)]
3050 fn new_empty() -> Self {
3051 Self { instance: fidl::new_empty!(ServiceInstance, D) }
3052 }
3053
3054 #[inline]
3055 unsafe fn decode(
3056 &mut self,
3057 decoder: &mut fidl::encoding::Decoder<'_, D>,
3058 offset: usize,
3059 _depth: fidl::encoding::Depth,
3060 ) -> fidl::Result<()> {
3061 decoder.debug_check_bounds::<Self>(offset);
3062 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
3064 Ok(())
3065 }
3066 }
3067
3068 impl fidl::encoding::ValueTypeMarker for ServiceSubscriberOnInstanceDiscoveredRequest {
3069 type Borrowed<'a> = &'a Self;
3070 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3071 value
3072 }
3073 }
3074
3075 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriberOnInstanceDiscoveredRequest {
3076 type Owned = Self;
3077
3078 #[inline(always)]
3079 fn inline_align(_context: fidl::encoding::Context) -> usize {
3080 8
3081 }
3082
3083 #[inline(always)]
3084 fn inline_size(_context: fidl::encoding::Context) -> usize {
3085 16
3086 }
3087 }
3088
3089 unsafe impl<D: fidl::encoding::ResourceDialect>
3090 fidl::encoding::Encode<ServiceSubscriberOnInstanceDiscoveredRequest, D>
3091 for &ServiceSubscriberOnInstanceDiscoveredRequest
3092 {
3093 #[inline]
3094 unsafe fn encode(
3095 self,
3096 encoder: &mut fidl::encoding::Encoder<'_, D>,
3097 offset: usize,
3098 _depth: fidl::encoding::Depth,
3099 ) -> fidl::Result<()> {
3100 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceDiscoveredRequest>(offset);
3101 fidl::encoding::Encode::<ServiceSubscriberOnInstanceDiscoveredRequest, D>::encode(
3103 (<ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),),
3104 encoder,
3105 offset,
3106 _depth,
3107 )
3108 }
3109 }
3110 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
3111 fidl::encoding::Encode<ServiceSubscriberOnInstanceDiscoveredRequest, D> for (T0,)
3112 {
3113 #[inline]
3114 unsafe fn encode(
3115 self,
3116 encoder: &mut fidl::encoding::Encoder<'_, D>,
3117 offset: usize,
3118 depth: fidl::encoding::Depth,
3119 ) -> fidl::Result<()> {
3120 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceDiscoveredRequest>(offset);
3121 self.0.encode(encoder, offset + 0, depth)?;
3125 Ok(())
3126 }
3127 }
3128
3129 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3130 for ServiceSubscriberOnInstanceDiscoveredRequest
3131 {
3132 #[inline(always)]
3133 fn new_empty() -> Self {
3134 Self { instance: fidl::new_empty!(ServiceInstance, D) }
3135 }
3136
3137 #[inline]
3138 unsafe fn decode(
3139 &mut self,
3140 decoder: &mut fidl::encoding::Decoder<'_, D>,
3141 offset: usize,
3142 _depth: fidl::encoding::Depth,
3143 ) -> fidl::Result<()> {
3144 decoder.debug_check_bounds::<Self>(offset);
3145 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
3147 Ok(())
3148 }
3149 }
3150
3151 impl fidl::encoding::ValueTypeMarker for ServiceSubscriberOnInstanceLostRequest {
3152 type Borrowed<'a> = &'a Self;
3153 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3154 value
3155 }
3156 }
3157
3158 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriberOnInstanceLostRequest {
3159 type Owned = Self;
3160
3161 #[inline(always)]
3162 fn inline_align(_context: fidl::encoding::Context) -> usize {
3163 8
3164 }
3165
3166 #[inline(always)]
3167 fn inline_size(_context: fidl::encoding::Context) -> usize {
3168 32
3169 }
3170 }
3171
3172 unsafe impl<D: fidl::encoding::ResourceDialect>
3173 fidl::encoding::Encode<ServiceSubscriberOnInstanceLostRequest, D>
3174 for &ServiceSubscriberOnInstanceLostRequest
3175 {
3176 #[inline]
3177 unsafe fn encode(
3178 self,
3179 encoder: &mut fidl::encoding::Encoder<'_, D>,
3180 offset: usize,
3181 _depth: fidl::encoding::Depth,
3182 ) -> fidl::Result<()> {
3183 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceLostRequest>(offset);
3184 fidl::encoding::Encode::<ServiceSubscriberOnInstanceLostRequest, D>::encode(
3186 (
3187 <fidl::encoding::BoundedString<22> as fidl::encoding::ValueTypeMarker>::borrow(
3188 &self.service,
3189 ),
3190 <fidl::encoding::BoundedString<63> as fidl::encoding::ValueTypeMarker>::borrow(
3191 &self.instance,
3192 ),
3193 ),
3194 encoder,
3195 offset,
3196 _depth,
3197 )
3198 }
3199 }
3200 unsafe impl<
3201 D: fidl::encoding::ResourceDialect,
3202 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<22>, D>,
3203 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<63>, D>,
3204 > fidl::encoding::Encode<ServiceSubscriberOnInstanceLostRequest, D> for (T0, T1)
3205 {
3206 #[inline]
3207 unsafe fn encode(
3208 self,
3209 encoder: &mut fidl::encoding::Encoder<'_, D>,
3210 offset: usize,
3211 depth: fidl::encoding::Depth,
3212 ) -> fidl::Result<()> {
3213 encoder.debug_check_bounds::<ServiceSubscriberOnInstanceLostRequest>(offset);
3214 self.0.encode(encoder, offset + 0, depth)?;
3218 self.1.encode(encoder, offset + 16, depth)?;
3219 Ok(())
3220 }
3221 }
3222
3223 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3224 for ServiceSubscriberOnInstanceLostRequest
3225 {
3226 #[inline(always)]
3227 fn new_empty() -> Self {
3228 Self {
3229 service: fidl::new_empty!(fidl::encoding::BoundedString<22>, D),
3230 instance: fidl::new_empty!(fidl::encoding::BoundedString<63>, D),
3231 }
3232 }
3233
3234 #[inline]
3235 unsafe fn decode(
3236 &mut self,
3237 decoder: &mut fidl::encoding::Decoder<'_, D>,
3238 offset: usize,
3239 _depth: fidl::encoding::Depth,
3240 ) -> fidl::Result<()> {
3241 decoder.debug_check_bounds::<Self>(offset);
3242 fidl::decode!(
3244 fidl::encoding::BoundedString<22>,
3245 D,
3246 &mut self.service,
3247 decoder,
3248 offset + 0,
3249 _depth
3250 )?;
3251 fidl::decode!(
3252 fidl::encoding::BoundedString<63>,
3253 D,
3254 &mut self.instance,
3255 decoder,
3256 offset + 16,
3257 _depth
3258 )?;
3259 Ok(())
3260 }
3261 }
3262
3263 impl fidl::encoding::ValueTypeMarker for ServiceSubscriberOnQueryRequest {
3264 type Borrowed<'a> = &'a Self;
3265 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3266 value
3267 }
3268 }
3269
3270 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriberOnQueryRequest {
3271 type Owned = Self;
3272
3273 #[inline(always)]
3274 fn inline_align(_context: fidl::encoding::Context) -> usize {
3275 4
3276 }
3277
3278 #[inline(always)]
3279 fn inline_size(_context: fidl::encoding::Context) -> usize {
3280 4
3281 }
3282 }
3283
3284 unsafe impl<D: fidl::encoding::ResourceDialect>
3285 fidl::encoding::Encode<ServiceSubscriberOnQueryRequest, D>
3286 for &ServiceSubscriberOnQueryRequest
3287 {
3288 #[inline]
3289 unsafe fn encode(
3290 self,
3291 encoder: &mut fidl::encoding::Encoder<'_, D>,
3292 offset: usize,
3293 _depth: fidl::encoding::Depth,
3294 ) -> fidl::Result<()> {
3295 encoder.debug_check_bounds::<ServiceSubscriberOnQueryRequest>(offset);
3296 fidl::encoding::Encode::<ServiceSubscriberOnQueryRequest, D>::encode(
3298 (<ResourceType as fidl::encoding::ValueTypeMarker>::borrow(&self.resource_type),),
3299 encoder,
3300 offset,
3301 _depth,
3302 )
3303 }
3304 }
3305 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ResourceType, D>>
3306 fidl::encoding::Encode<ServiceSubscriberOnQueryRequest, D> for (T0,)
3307 {
3308 #[inline]
3309 unsafe fn encode(
3310 self,
3311 encoder: &mut fidl::encoding::Encoder<'_, D>,
3312 offset: usize,
3313 depth: fidl::encoding::Depth,
3314 ) -> fidl::Result<()> {
3315 encoder.debug_check_bounds::<ServiceSubscriberOnQueryRequest>(offset);
3316 self.0.encode(encoder, offset + 0, depth)?;
3320 Ok(())
3321 }
3322 }
3323
3324 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3325 for ServiceSubscriberOnQueryRequest
3326 {
3327 #[inline(always)]
3328 fn new_empty() -> Self {
3329 Self { resource_type: fidl::new_empty!(ResourceType, D) }
3330 }
3331
3332 #[inline]
3333 unsafe fn decode(
3334 &mut self,
3335 decoder: &mut fidl::encoding::Decoder<'_, D>,
3336 offset: usize,
3337 _depth: fidl::encoding::Depth,
3338 ) -> fidl::Result<()> {
3339 decoder.debug_check_bounds::<Self>(offset);
3340 fidl::decode!(ResourceType, D, &mut self.resource_type, decoder, offset + 0, _depth)?;
3342 Ok(())
3343 }
3344 }
3345
3346 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionListenerOnInstanceChangedRequest {
3347 type Borrowed<'a> = &'a Self;
3348 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3349 value
3350 }
3351 }
3352
3353 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriptionListenerOnInstanceChangedRequest {
3354 type Owned = Self;
3355
3356 #[inline(always)]
3357 fn inline_align(_context: fidl::encoding::Context) -> usize {
3358 8
3359 }
3360
3361 #[inline(always)]
3362 fn inline_size(_context: fidl::encoding::Context) -> usize {
3363 16
3364 }
3365 }
3366
3367 unsafe impl<D: fidl::encoding::ResourceDialect>
3368 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceChangedRequest, D>
3369 for &ServiceSubscriptionListenerOnInstanceChangedRequest
3370 {
3371 #[inline]
3372 unsafe fn encode(
3373 self,
3374 encoder: &mut fidl::encoding::Encoder<'_, D>,
3375 offset: usize,
3376 _depth: fidl::encoding::Depth,
3377 ) -> fidl::Result<()> {
3378 encoder
3379 .debug_check_bounds::<ServiceSubscriptionListenerOnInstanceChangedRequest>(offset);
3380 fidl::encoding::Encode::<ServiceSubscriptionListenerOnInstanceChangedRequest, D>::encode(
3382 (<ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),),
3383 encoder,
3384 offset,
3385 _depth,
3386 )
3387 }
3388 }
3389 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
3390 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceChangedRequest, D> for (T0,)
3391 {
3392 #[inline]
3393 unsafe fn encode(
3394 self,
3395 encoder: &mut fidl::encoding::Encoder<'_, D>,
3396 offset: usize,
3397 depth: fidl::encoding::Depth,
3398 ) -> fidl::Result<()> {
3399 encoder
3400 .debug_check_bounds::<ServiceSubscriptionListenerOnInstanceChangedRequest>(offset);
3401 self.0.encode(encoder, offset + 0, depth)?;
3405 Ok(())
3406 }
3407 }
3408
3409 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3410 for ServiceSubscriptionListenerOnInstanceChangedRequest
3411 {
3412 #[inline(always)]
3413 fn new_empty() -> Self {
3414 Self { instance: fidl::new_empty!(ServiceInstance, D) }
3415 }
3416
3417 #[inline]
3418 unsafe fn decode(
3419 &mut self,
3420 decoder: &mut fidl::encoding::Decoder<'_, D>,
3421 offset: usize,
3422 _depth: fidl::encoding::Depth,
3423 ) -> fidl::Result<()> {
3424 decoder.debug_check_bounds::<Self>(offset);
3425 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
3427 Ok(())
3428 }
3429 }
3430
3431 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionListenerOnInstanceDiscoveredRequest {
3432 type Borrowed<'a> = &'a Self;
3433 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3434 value
3435 }
3436 }
3437
3438 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriptionListenerOnInstanceDiscoveredRequest {
3439 type Owned = Self;
3440
3441 #[inline(always)]
3442 fn inline_align(_context: fidl::encoding::Context) -> usize {
3443 8
3444 }
3445
3446 #[inline(always)]
3447 fn inline_size(_context: fidl::encoding::Context) -> usize {
3448 16
3449 }
3450 }
3451
3452 unsafe impl<D: fidl::encoding::ResourceDialect>
3453 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceDiscoveredRequest, D>
3454 for &ServiceSubscriptionListenerOnInstanceDiscoveredRequest
3455 {
3456 #[inline]
3457 unsafe fn encode(
3458 self,
3459 encoder: &mut fidl::encoding::Encoder<'_, D>,
3460 offset: usize,
3461 _depth: fidl::encoding::Depth,
3462 ) -> fidl::Result<()> {
3463 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnInstanceDiscoveredRequest>(
3464 offset,
3465 );
3466 fidl::encoding::Encode::<ServiceSubscriptionListenerOnInstanceDiscoveredRequest, D>::encode(
3468 (
3469 <ServiceInstance as fidl::encoding::ValueTypeMarker>::borrow(&self.instance),
3470 ),
3471 encoder, offset, _depth
3472 )
3473 }
3474 }
3475 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ServiceInstance, D>>
3476 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceDiscoveredRequest, D> for (T0,)
3477 {
3478 #[inline]
3479 unsafe fn encode(
3480 self,
3481 encoder: &mut fidl::encoding::Encoder<'_, D>,
3482 offset: usize,
3483 depth: fidl::encoding::Depth,
3484 ) -> fidl::Result<()> {
3485 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnInstanceDiscoveredRequest>(
3486 offset,
3487 );
3488 self.0.encode(encoder, offset + 0, depth)?;
3492 Ok(())
3493 }
3494 }
3495
3496 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3497 for ServiceSubscriptionListenerOnInstanceDiscoveredRequest
3498 {
3499 #[inline(always)]
3500 fn new_empty() -> Self {
3501 Self { instance: fidl::new_empty!(ServiceInstance, D) }
3502 }
3503
3504 #[inline]
3505 unsafe fn decode(
3506 &mut self,
3507 decoder: &mut fidl::encoding::Decoder<'_, D>,
3508 offset: usize,
3509 _depth: fidl::encoding::Depth,
3510 ) -> fidl::Result<()> {
3511 decoder.debug_check_bounds::<Self>(offset);
3512 fidl::decode!(ServiceInstance, D, &mut self.instance, decoder, offset + 0, _depth)?;
3514 Ok(())
3515 }
3516 }
3517
3518 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionListenerOnInstanceLostRequest {
3519 type Borrowed<'a> = &'a Self;
3520 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3521 value
3522 }
3523 }
3524
3525 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriptionListenerOnInstanceLostRequest {
3526 type Owned = Self;
3527
3528 #[inline(always)]
3529 fn inline_align(_context: fidl::encoding::Context) -> usize {
3530 8
3531 }
3532
3533 #[inline(always)]
3534 fn inline_size(_context: fidl::encoding::Context) -> usize {
3535 32
3536 }
3537 }
3538
3539 unsafe impl<D: fidl::encoding::ResourceDialect>
3540 fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceLostRequest, D>
3541 for &ServiceSubscriptionListenerOnInstanceLostRequest
3542 {
3543 #[inline]
3544 unsafe fn encode(
3545 self,
3546 encoder: &mut fidl::encoding::Encoder<'_, D>,
3547 offset: usize,
3548 _depth: fidl::encoding::Depth,
3549 ) -> fidl::Result<()> {
3550 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnInstanceLostRequest>(offset);
3551 fidl::encoding::Encode::<ServiceSubscriptionListenerOnInstanceLostRequest, D>::encode(
3553 (
3554 <fidl::encoding::BoundedString<22> as fidl::encoding::ValueTypeMarker>::borrow(
3555 &self.service,
3556 ),
3557 <fidl::encoding::BoundedString<63> as fidl::encoding::ValueTypeMarker>::borrow(
3558 &self.instance,
3559 ),
3560 ),
3561 encoder,
3562 offset,
3563 _depth,
3564 )
3565 }
3566 }
3567 unsafe impl<
3568 D: fidl::encoding::ResourceDialect,
3569 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<22>, D>,
3570 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<63>, D>,
3571 > fidl::encoding::Encode<ServiceSubscriptionListenerOnInstanceLostRequest, D> for (T0, T1)
3572 {
3573 #[inline]
3574 unsafe fn encode(
3575 self,
3576 encoder: &mut fidl::encoding::Encoder<'_, D>,
3577 offset: usize,
3578 depth: fidl::encoding::Depth,
3579 ) -> fidl::Result<()> {
3580 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnInstanceLostRequest>(offset);
3581 self.0.encode(encoder, offset + 0, depth)?;
3585 self.1.encode(encoder, offset + 16, depth)?;
3586 Ok(())
3587 }
3588 }
3589
3590 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3591 for ServiceSubscriptionListenerOnInstanceLostRequest
3592 {
3593 #[inline(always)]
3594 fn new_empty() -> Self {
3595 Self {
3596 service: fidl::new_empty!(fidl::encoding::BoundedString<22>, D),
3597 instance: fidl::new_empty!(fidl::encoding::BoundedString<63>, D),
3598 }
3599 }
3600
3601 #[inline]
3602 unsafe fn decode(
3603 &mut self,
3604 decoder: &mut fidl::encoding::Decoder<'_, D>,
3605 offset: usize,
3606 _depth: fidl::encoding::Depth,
3607 ) -> fidl::Result<()> {
3608 decoder.debug_check_bounds::<Self>(offset);
3609 fidl::decode!(
3611 fidl::encoding::BoundedString<22>,
3612 D,
3613 &mut self.service,
3614 decoder,
3615 offset + 0,
3616 _depth
3617 )?;
3618 fidl::decode!(
3619 fidl::encoding::BoundedString<63>,
3620 D,
3621 &mut self.instance,
3622 decoder,
3623 offset + 16,
3624 _depth
3625 )?;
3626 Ok(())
3627 }
3628 }
3629
3630 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionListenerOnQueryRequest {
3631 type Borrowed<'a> = &'a Self;
3632 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3633 value
3634 }
3635 }
3636
3637 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriptionListenerOnQueryRequest {
3638 type Owned = Self;
3639
3640 #[inline(always)]
3641 fn inline_align(_context: fidl::encoding::Context) -> usize {
3642 4
3643 }
3644
3645 #[inline(always)]
3646 fn inline_size(_context: fidl::encoding::Context) -> usize {
3647 4
3648 }
3649 }
3650
3651 unsafe impl<D: fidl::encoding::ResourceDialect>
3652 fidl::encoding::Encode<ServiceSubscriptionListenerOnQueryRequest, D>
3653 for &ServiceSubscriptionListenerOnQueryRequest
3654 {
3655 #[inline]
3656 unsafe fn encode(
3657 self,
3658 encoder: &mut fidl::encoding::Encoder<'_, D>,
3659 offset: usize,
3660 _depth: fidl::encoding::Depth,
3661 ) -> fidl::Result<()> {
3662 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnQueryRequest>(offset);
3663 fidl::encoding::Encode::<ServiceSubscriptionListenerOnQueryRequest, D>::encode(
3665 (<ResourceType as fidl::encoding::ValueTypeMarker>::borrow(&self.resource_type),),
3666 encoder,
3667 offset,
3668 _depth,
3669 )
3670 }
3671 }
3672 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<ResourceType, D>>
3673 fidl::encoding::Encode<ServiceSubscriptionListenerOnQueryRequest, D> for (T0,)
3674 {
3675 #[inline]
3676 unsafe fn encode(
3677 self,
3678 encoder: &mut fidl::encoding::Encoder<'_, D>,
3679 offset: usize,
3680 depth: fidl::encoding::Depth,
3681 ) -> fidl::Result<()> {
3682 encoder.debug_check_bounds::<ServiceSubscriptionListenerOnQueryRequest>(offset);
3683 self.0.encode(encoder, offset + 0, depth)?;
3687 Ok(())
3688 }
3689 }
3690
3691 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3692 for ServiceSubscriptionListenerOnQueryRequest
3693 {
3694 #[inline(always)]
3695 fn new_empty() -> Self {
3696 Self { resource_type: fidl::new_empty!(ResourceType, D) }
3697 }
3698
3699 #[inline]
3700 unsafe fn decode(
3701 &mut self,
3702 decoder: &mut fidl::encoding::Decoder<'_, D>,
3703 offset: usize,
3704 _depth: fidl::encoding::Depth,
3705 ) -> fidl::Result<()> {
3706 decoder.debug_check_bounds::<Self>(offset);
3707 fidl::decode!(ResourceType, D, &mut self.resource_type, decoder, offset + 0, _depth)?;
3709 Ok(())
3710 }
3711 }
3712
3713 impl HostNameResolutionOptions {
3714 #[inline(always)]
3715 fn max_ordinal_present(&self) -> u64 {
3716 if let Some(_) = self.exclude_local_proxies {
3717 return 4;
3718 }
3719 if let Some(_) = self.exclude_local {
3720 return 3;
3721 }
3722 if let Some(_) = self.ip_versions {
3723 return 2;
3724 }
3725 if let Some(_) = self.media {
3726 return 1;
3727 }
3728 0
3729 }
3730 }
3731
3732 impl fidl::encoding::ValueTypeMarker for HostNameResolutionOptions {
3733 type Borrowed<'a> = &'a Self;
3734 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3735 value
3736 }
3737 }
3738
3739 unsafe impl fidl::encoding::TypeMarker for HostNameResolutionOptions {
3740 type Owned = Self;
3741
3742 #[inline(always)]
3743 fn inline_align(_context: fidl::encoding::Context) -> usize {
3744 8
3745 }
3746
3747 #[inline(always)]
3748 fn inline_size(_context: fidl::encoding::Context) -> usize {
3749 16
3750 }
3751 }
3752
3753 unsafe impl<D: fidl::encoding::ResourceDialect>
3754 fidl::encoding::Encode<HostNameResolutionOptions, D> for &HostNameResolutionOptions
3755 {
3756 unsafe fn encode(
3757 self,
3758 encoder: &mut fidl::encoding::Encoder<'_, D>,
3759 offset: usize,
3760 mut depth: fidl::encoding::Depth,
3761 ) -> fidl::Result<()> {
3762 encoder.debug_check_bounds::<HostNameResolutionOptions>(offset);
3763 let max_ordinal: u64 = self.max_ordinal_present();
3765 encoder.write_num(max_ordinal, offset);
3766 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3767 if max_ordinal == 0 {
3769 return Ok(());
3770 }
3771 depth.increment()?;
3772 let envelope_size = 8;
3773 let bytes_len = max_ordinal as usize * envelope_size;
3774 #[allow(unused_variables)]
3775 let offset = encoder.out_of_line_offset(bytes_len);
3776 let mut _prev_end_offset: usize = 0;
3777 if 1 > max_ordinal {
3778 return Ok(());
3779 }
3780
3781 let cur_offset: usize = (1 - 1) * envelope_size;
3784
3785 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3787
3788 fidl::encoding::encode_in_envelope_optional::<Media, D>(
3793 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
3794 encoder,
3795 offset + cur_offset,
3796 depth,
3797 )?;
3798
3799 _prev_end_offset = cur_offset + envelope_size;
3800 if 2 > max_ordinal {
3801 return Ok(());
3802 }
3803
3804 let cur_offset: usize = (2 - 1) * envelope_size;
3807
3808 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3810
3811 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
3816 self.ip_versions
3817 .as_ref()
3818 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
3819 encoder,
3820 offset + cur_offset,
3821 depth,
3822 )?;
3823
3824 _prev_end_offset = cur_offset + envelope_size;
3825 if 3 > max_ordinal {
3826 return Ok(());
3827 }
3828
3829 let cur_offset: usize = (3 - 1) * envelope_size;
3832
3833 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3835
3836 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3841 self.exclude_local.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3842 encoder,
3843 offset + cur_offset,
3844 depth,
3845 )?;
3846
3847 _prev_end_offset = cur_offset + envelope_size;
3848 if 4 > max_ordinal {
3849 return Ok(());
3850 }
3851
3852 let cur_offset: usize = (4 - 1) * envelope_size;
3855
3856 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3858
3859 fidl::encoding::encode_in_envelope_optional::<bool, D>(
3864 self.exclude_local_proxies
3865 .as_ref()
3866 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
3867 encoder,
3868 offset + cur_offset,
3869 depth,
3870 )?;
3871
3872 _prev_end_offset = cur_offset + envelope_size;
3873
3874 Ok(())
3875 }
3876 }
3877
3878 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3879 for HostNameResolutionOptions
3880 {
3881 #[inline(always)]
3882 fn new_empty() -> Self {
3883 Self::default()
3884 }
3885
3886 unsafe fn decode(
3887 &mut self,
3888 decoder: &mut fidl::encoding::Decoder<'_, D>,
3889 offset: usize,
3890 mut depth: fidl::encoding::Depth,
3891 ) -> fidl::Result<()> {
3892 decoder.debug_check_bounds::<Self>(offset);
3893 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3894 None => return Err(fidl::Error::NotNullable),
3895 Some(len) => len,
3896 };
3897 if len == 0 {
3899 return Ok(());
3900 };
3901 depth.increment()?;
3902 let envelope_size = 8;
3903 let bytes_len = len * envelope_size;
3904 let offset = decoder.out_of_line_offset(bytes_len)?;
3905 let mut _next_ordinal_to_read = 0;
3907 let mut next_offset = offset;
3908 let end_offset = offset + bytes_len;
3909 _next_ordinal_to_read += 1;
3910 if next_offset >= end_offset {
3911 return Ok(());
3912 }
3913
3914 while _next_ordinal_to_read < 1 {
3916 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3917 _next_ordinal_to_read += 1;
3918 next_offset += envelope_size;
3919 }
3920
3921 let next_out_of_line = decoder.next_out_of_line();
3922 let handles_before = decoder.remaining_handles();
3923 if let Some((inlined, num_bytes, num_handles)) =
3924 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3925 {
3926 let member_inline_size =
3927 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3928 if inlined != (member_inline_size <= 4) {
3929 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3930 }
3931 let inner_offset;
3932 let mut inner_depth = depth.clone();
3933 if inlined {
3934 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3935 inner_offset = next_offset;
3936 } else {
3937 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3938 inner_depth.increment()?;
3939 }
3940 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
3941 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
3942 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3943 {
3944 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3945 }
3946 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3947 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3948 }
3949 }
3950
3951 next_offset += envelope_size;
3952 _next_ordinal_to_read += 1;
3953 if next_offset >= end_offset {
3954 return Ok(());
3955 }
3956
3957 while _next_ordinal_to_read < 2 {
3959 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3960 _next_ordinal_to_read += 1;
3961 next_offset += envelope_size;
3962 }
3963
3964 let next_out_of_line = decoder.next_out_of_line();
3965 let handles_before = decoder.remaining_handles();
3966 if let Some((inlined, num_bytes, num_handles)) =
3967 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3968 {
3969 let member_inline_size =
3970 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3971 if inlined != (member_inline_size <= 4) {
3972 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3973 }
3974 let inner_offset;
3975 let mut inner_depth = depth.clone();
3976 if inlined {
3977 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3978 inner_offset = next_offset;
3979 } else {
3980 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3981 inner_depth.increment()?;
3982 }
3983 let val_ref =
3984 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
3985 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
3986 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3987 {
3988 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3989 }
3990 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3991 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3992 }
3993 }
3994
3995 next_offset += envelope_size;
3996 _next_ordinal_to_read += 1;
3997 if next_offset >= end_offset {
3998 return Ok(());
3999 }
4000
4001 while _next_ordinal_to_read < 3 {
4003 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4004 _next_ordinal_to_read += 1;
4005 next_offset += envelope_size;
4006 }
4007
4008 let next_out_of_line = decoder.next_out_of_line();
4009 let handles_before = decoder.remaining_handles();
4010 if let Some((inlined, num_bytes, num_handles)) =
4011 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4012 {
4013 let member_inline_size =
4014 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4015 if inlined != (member_inline_size <= 4) {
4016 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4017 }
4018 let inner_offset;
4019 let mut inner_depth = depth.clone();
4020 if inlined {
4021 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4022 inner_offset = next_offset;
4023 } else {
4024 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4025 inner_depth.increment()?;
4026 }
4027 let val_ref = self.exclude_local.get_or_insert_with(|| fidl::new_empty!(bool, D));
4028 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4029 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4030 {
4031 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4032 }
4033 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4034 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4035 }
4036 }
4037
4038 next_offset += envelope_size;
4039 _next_ordinal_to_read += 1;
4040 if next_offset >= end_offset {
4041 return Ok(());
4042 }
4043
4044 while _next_ordinal_to_read < 4 {
4046 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4047 _next_ordinal_to_read += 1;
4048 next_offset += envelope_size;
4049 }
4050
4051 let next_out_of_line = decoder.next_out_of_line();
4052 let handles_before = decoder.remaining_handles();
4053 if let Some((inlined, num_bytes, num_handles)) =
4054 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4055 {
4056 let member_inline_size =
4057 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4058 if inlined != (member_inline_size <= 4) {
4059 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4060 }
4061 let inner_offset;
4062 let mut inner_depth = depth.clone();
4063 if inlined {
4064 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4065 inner_offset = next_offset;
4066 } else {
4067 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4068 inner_depth.increment()?;
4069 }
4070 let val_ref =
4071 self.exclude_local_proxies.get_or_insert_with(|| fidl::new_empty!(bool, D));
4072 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4073 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4074 {
4075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4076 }
4077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4079 }
4080 }
4081
4082 next_offset += envelope_size;
4083
4084 while next_offset < end_offset {
4086 _next_ordinal_to_read += 1;
4087 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4088 next_offset += envelope_size;
4089 }
4090
4091 Ok(())
4092 }
4093 }
4094
4095 impl HostNameSubscriptionOptions {
4096 #[inline(always)]
4097 fn max_ordinal_present(&self) -> u64 {
4098 if let Some(_) = self.exclude_local_proxies {
4099 return 4;
4100 }
4101 if let Some(_) = self.exclude_local {
4102 return 3;
4103 }
4104 if let Some(_) = self.ip_versions {
4105 return 2;
4106 }
4107 if let Some(_) = self.media {
4108 return 1;
4109 }
4110 0
4111 }
4112 }
4113
4114 impl fidl::encoding::ValueTypeMarker for HostNameSubscriptionOptions {
4115 type Borrowed<'a> = &'a Self;
4116 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4117 value
4118 }
4119 }
4120
4121 unsafe impl fidl::encoding::TypeMarker for HostNameSubscriptionOptions {
4122 type Owned = Self;
4123
4124 #[inline(always)]
4125 fn inline_align(_context: fidl::encoding::Context) -> usize {
4126 8
4127 }
4128
4129 #[inline(always)]
4130 fn inline_size(_context: fidl::encoding::Context) -> usize {
4131 16
4132 }
4133 }
4134
4135 unsafe impl<D: fidl::encoding::ResourceDialect>
4136 fidl::encoding::Encode<HostNameSubscriptionOptions, D> for &HostNameSubscriptionOptions
4137 {
4138 unsafe fn encode(
4139 self,
4140 encoder: &mut fidl::encoding::Encoder<'_, D>,
4141 offset: usize,
4142 mut depth: fidl::encoding::Depth,
4143 ) -> fidl::Result<()> {
4144 encoder.debug_check_bounds::<HostNameSubscriptionOptions>(offset);
4145 let max_ordinal: u64 = self.max_ordinal_present();
4147 encoder.write_num(max_ordinal, offset);
4148 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4149 if max_ordinal == 0 {
4151 return Ok(());
4152 }
4153 depth.increment()?;
4154 let envelope_size = 8;
4155 let bytes_len = max_ordinal as usize * envelope_size;
4156 #[allow(unused_variables)]
4157 let offset = encoder.out_of_line_offset(bytes_len);
4158 let mut _prev_end_offset: usize = 0;
4159 if 1 > max_ordinal {
4160 return Ok(());
4161 }
4162
4163 let cur_offset: usize = (1 - 1) * envelope_size;
4166
4167 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4169
4170 fidl::encoding::encode_in_envelope_optional::<Media, D>(
4175 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
4176 encoder,
4177 offset + cur_offset,
4178 depth,
4179 )?;
4180
4181 _prev_end_offset = cur_offset + envelope_size;
4182 if 2 > max_ordinal {
4183 return Ok(());
4184 }
4185
4186 let cur_offset: usize = (2 - 1) * envelope_size;
4189
4190 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4192
4193 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
4198 self.ip_versions
4199 .as_ref()
4200 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
4201 encoder,
4202 offset + cur_offset,
4203 depth,
4204 )?;
4205
4206 _prev_end_offset = cur_offset + envelope_size;
4207 if 3 > max_ordinal {
4208 return Ok(());
4209 }
4210
4211 let cur_offset: usize = (3 - 1) * envelope_size;
4214
4215 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4217
4218 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4223 self.exclude_local.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4224 encoder,
4225 offset + cur_offset,
4226 depth,
4227 )?;
4228
4229 _prev_end_offset = cur_offset + envelope_size;
4230 if 4 > max_ordinal {
4231 return Ok(());
4232 }
4233
4234 let cur_offset: usize = (4 - 1) * envelope_size;
4237
4238 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4240
4241 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4246 self.exclude_local_proxies
4247 .as_ref()
4248 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4249 encoder,
4250 offset + cur_offset,
4251 depth,
4252 )?;
4253
4254 _prev_end_offset = cur_offset + envelope_size;
4255
4256 Ok(())
4257 }
4258 }
4259
4260 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4261 for HostNameSubscriptionOptions
4262 {
4263 #[inline(always)]
4264 fn new_empty() -> Self {
4265 Self::default()
4266 }
4267
4268 unsafe fn decode(
4269 &mut self,
4270 decoder: &mut fidl::encoding::Decoder<'_, D>,
4271 offset: usize,
4272 mut depth: fidl::encoding::Depth,
4273 ) -> fidl::Result<()> {
4274 decoder.debug_check_bounds::<Self>(offset);
4275 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4276 None => return Err(fidl::Error::NotNullable),
4277 Some(len) => len,
4278 };
4279 if len == 0 {
4281 return Ok(());
4282 };
4283 depth.increment()?;
4284 let envelope_size = 8;
4285 let bytes_len = len * envelope_size;
4286 let offset = decoder.out_of_line_offset(bytes_len)?;
4287 let mut _next_ordinal_to_read = 0;
4289 let mut next_offset = offset;
4290 let end_offset = offset + bytes_len;
4291 _next_ordinal_to_read += 1;
4292 if next_offset >= end_offset {
4293 return Ok(());
4294 }
4295
4296 while _next_ordinal_to_read < 1 {
4298 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4299 _next_ordinal_to_read += 1;
4300 next_offset += envelope_size;
4301 }
4302
4303 let next_out_of_line = decoder.next_out_of_line();
4304 let handles_before = decoder.remaining_handles();
4305 if let Some((inlined, num_bytes, num_handles)) =
4306 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4307 {
4308 let member_inline_size =
4309 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4310 if inlined != (member_inline_size <= 4) {
4311 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4312 }
4313 let inner_offset;
4314 let mut inner_depth = depth.clone();
4315 if inlined {
4316 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4317 inner_offset = next_offset;
4318 } else {
4319 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4320 inner_depth.increment()?;
4321 }
4322 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
4323 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
4324 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4325 {
4326 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4327 }
4328 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4329 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4330 }
4331 }
4332
4333 next_offset += envelope_size;
4334 _next_ordinal_to_read += 1;
4335 if next_offset >= end_offset {
4336 return Ok(());
4337 }
4338
4339 while _next_ordinal_to_read < 2 {
4341 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4342 _next_ordinal_to_read += 1;
4343 next_offset += envelope_size;
4344 }
4345
4346 let next_out_of_line = decoder.next_out_of_line();
4347 let handles_before = decoder.remaining_handles();
4348 if let Some((inlined, num_bytes, num_handles)) =
4349 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4350 {
4351 let member_inline_size =
4352 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4353 if inlined != (member_inline_size <= 4) {
4354 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4355 }
4356 let inner_offset;
4357 let mut inner_depth = depth.clone();
4358 if inlined {
4359 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4360 inner_offset = next_offset;
4361 } else {
4362 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4363 inner_depth.increment()?;
4364 }
4365 let val_ref =
4366 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
4367 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
4368 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4369 {
4370 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4371 }
4372 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4373 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4374 }
4375 }
4376
4377 next_offset += envelope_size;
4378 _next_ordinal_to_read += 1;
4379 if next_offset >= end_offset {
4380 return Ok(());
4381 }
4382
4383 while _next_ordinal_to_read < 3 {
4385 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4386 _next_ordinal_to_read += 1;
4387 next_offset += envelope_size;
4388 }
4389
4390 let next_out_of_line = decoder.next_out_of_line();
4391 let handles_before = decoder.remaining_handles();
4392 if let Some((inlined, num_bytes, num_handles)) =
4393 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4394 {
4395 let member_inline_size =
4396 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4397 if inlined != (member_inline_size <= 4) {
4398 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4399 }
4400 let inner_offset;
4401 let mut inner_depth = depth.clone();
4402 if inlined {
4403 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4404 inner_offset = next_offset;
4405 } else {
4406 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4407 inner_depth.increment()?;
4408 }
4409 let val_ref = self.exclude_local.get_or_insert_with(|| fidl::new_empty!(bool, D));
4410 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4411 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4412 {
4413 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4414 }
4415 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4416 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4417 }
4418 }
4419
4420 next_offset += envelope_size;
4421 _next_ordinal_to_read += 1;
4422 if next_offset >= end_offset {
4423 return Ok(());
4424 }
4425
4426 while _next_ordinal_to_read < 4 {
4428 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4429 _next_ordinal_to_read += 1;
4430 next_offset += envelope_size;
4431 }
4432
4433 let next_out_of_line = decoder.next_out_of_line();
4434 let handles_before = decoder.remaining_handles();
4435 if let Some((inlined, num_bytes, num_handles)) =
4436 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4437 {
4438 let member_inline_size =
4439 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4440 if inlined != (member_inline_size <= 4) {
4441 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4442 }
4443 let inner_offset;
4444 let mut inner_depth = depth.clone();
4445 if inlined {
4446 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4447 inner_offset = next_offset;
4448 } else {
4449 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4450 inner_depth.increment()?;
4451 }
4452 let val_ref =
4453 self.exclude_local_proxies.get_or_insert_with(|| fidl::new_empty!(bool, D));
4454 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4455 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4456 {
4457 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4458 }
4459 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4460 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4461 }
4462 }
4463
4464 next_offset += envelope_size;
4465
4466 while next_offset < end_offset {
4468 _next_ordinal_to_read += 1;
4469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4470 next_offset += envelope_size;
4471 }
4472
4473 Ok(())
4474 }
4475 }
4476
4477 impl ProxyHostPublicationOptions {
4478 #[inline(always)]
4479 fn max_ordinal_present(&self) -> u64 {
4480 if let Some(_) = self.perform_probe {
4481 return 3;
4482 }
4483 if let Some(_) = self.ip_versions {
4484 return 2;
4485 }
4486 if let Some(_) = self.media {
4487 return 1;
4488 }
4489 0
4490 }
4491 }
4492
4493 impl fidl::encoding::ValueTypeMarker for ProxyHostPublicationOptions {
4494 type Borrowed<'a> = &'a Self;
4495 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4496 value
4497 }
4498 }
4499
4500 unsafe impl fidl::encoding::TypeMarker for ProxyHostPublicationOptions {
4501 type Owned = Self;
4502
4503 #[inline(always)]
4504 fn inline_align(_context: fidl::encoding::Context) -> usize {
4505 8
4506 }
4507
4508 #[inline(always)]
4509 fn inline_size(_context: fidl::encoding::Context) -> usize {
4510 16
4511 }
4512 }
4513
4514 unsafe impl<D: fidl::encoding::ResourceDialect>
4515 fidl::encoding::Encode<ProxyHostPublicationOptions, D> for &ProxyHostPublicationOptions
4516 {
4517 unsafe fn encode(
4518 self,
4519 encoder: &mut fidl::encoding::Encoder<'_, D>,
4520 offset: usize,
4521 mut depth: fidl::encoding::Depth,
4522 ) -> fidl::Result<()> {
4523 encoder.debug_check_bounds::<ProxyHostPublicationOptions>(offset);
4524 let max_ordinal: u64 = self.max_ordinal_present();
4526 encoder.write_num(max_ordinal, offset);
4527 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4528 if max_ordinal == 0 {
4530 return Ok(());
4531 }
4532 depth.increment()?;
4533 let envelope_size = 8;
4534 let bytes_len = max_ordinal as usize * envelope_size;
4535 #[allow(unused_variables)]
4536 let offset = encoder.out_of_line_offset(bytes_len);
4537 let mut _prev_end_offset: usize = 0;
4538 if 1 > max_ordinal {
4539 return Ok(());
4540 }
4541
4542 let cur_offset: usize = (1 - 1) * envelope_size;
4545
4546 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4548
4549 fidl::encoding::encode_in_envelope_optional::<Media, D>(
4554 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
4555 encoder,
4556 offset + cur_offset,
4557 depth,
4558 )?;
4559
4560 _prev_end_offset = cur_offset + envelope_size;
4561 if 2 > max_ordinal {
4562 return Ok(());
4563 }
4564
4565 let cur_offset: usize = (2 - 1) * envelope_size;
4568
4569 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4571
4572 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
4577 self.ip_versions
4578 .as_ref()
4579 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
4580 encoder,
4581 offset + cur_offset,
4582 depth,
4583 )?;
4584
4585 _prev_end_offset = cur_offset + envelope_size;
4586 if 3 > max_ordinal {
4587 return Ok(());
4588 }
4589
4590 let cur_offset: usize = (3 - 1) * envelope_size;
4593
4594 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4596
4597 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4602 self.perform_probe.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4603 encoder,
4604 offset + cur_offset,
4605 depth,
4606 )?;
4607
4608 _prev_end_offset = cur_offset + envelope_size;
4609
4610 Ok(())
4611 }
4612 }
4613
4614 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4615 for ProxyHostPublicationOptions
4616 {
4617 #[inline(always)]
4618 fn new_empty() -> Self {
4619 Self::default()
4620 }
4621
4622 unsafe fn decode(
4623 &mut self,
4624 decoder: &mut fidl::encoding::Decoder<'_, D>,
4625 offset: usize,
4626 mut depth: fidl::encoding::Depth,
4627 ) -> fidl::Result<()> {
4628 decoder.debug_check_bounds::<Self>(offset);
4629 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4630 None => return Err(fidl::Error::NotNullable),
4631 Some(len) => len,
4632 };
4633 if len == 0 {
4635 return Ok(());
4636 };
4637 depth.increment()?;
4638 let envelope_size = 8;
4639 let bytes_len = len * envelope_size;
4640 let offset = decoder.out_of_line_offset(bytes_len)?;
4641 let mut _next_ordinal_to_read = 0;
4643 let mut next_offset = offset;
4644 let end_offset = offset + bytes_len;
4645 _next_ordinal_to_read += 1;
4646 if next_offset >= end_offset {
4647 return Ok(());
4648 }
4649
4650 while _next_ordinal_to_read < 1 {
4652 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4653 _next_ordinal_to_read += 1;
4654 next_offset += envelope_size;
4655 }
4656
4657 let next_out_of_line = decoder.next_out_of_line();
4658 let handles_before = decoder.remaining_handles();
4659 if let Some((inlined, num_bytes, num_handles)) =
4660 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4661 {
4662 let member_inline_size =
4663 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4664 if inlined != (member_inline_size <= 4) {
4665 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4666 }
4667 let inner_offset;
4668 let mut inner_depth = depth.clone();
4669 if inlined {
4670 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4671 inner_offset = next_offset;
4672 } else {
4673 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4674 inner_depth.increment()?;
4675 }
4676 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
4677 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
4678 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4679 {
4680 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4681 }
4682 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4683 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4684 }
4685 }
4686
4687 next_offset += envelope_size;
4688 _next_ordinal_to_read += 1;
4689 if next_offset >= end_offset {
4690 return Ok(());
4691 }
4692
4693 while _next_ordinal_to_read < 2 {
4695 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4696 _next_ordinal_to_read += 1;
4697 next_offset += envelope_size;
4698 }
4699
4700 let next_out_of_line = decoder.next_out_of_line();
4701 let handles_before = decoder.remaining_handles();
4702 if let Some((inlined, num_bytes, num_handles)) =
4703 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4704 {
4705 let member_inline_size =
4706 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4707 if inlined != (member_inline_size <= 4) {
4708 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4709 }
4710 let inner_offset;
4711 let mut inner_depth = depth.clone();
4712 if inlined {
4713 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4714 inner_offset = next_offset;
4715 } else {
4716 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4717 inner_depth.increment()?;
4718 }
4719 let val_ref =
4720 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
4721 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
4722 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4723 {
4724 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4725 }
4726 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4727 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4728 }
4729 }
4730
4731 next_offset += envelope_size;
4732 _next_ordinal_to_read += 1;
4733 if next_offset >= end_offset {
4734 return Ok(());
4735 }
4736
4737 while _next_ordinal_to_read < 3 {
4739 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4740 _next_ordinal_to_read += 1;
4741 next_offset += envelope_size;
4742 }
4743
4744 let next_out_of_line = decoder.next_out_of_line();
4745 let handles_before = decoder.remaining_handles();
4746 if let Some((inlined, num_bytes, num_handles)) =
4747 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4748 {
4749 let member_inline_size =
4750 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4751 if inlined != (member_inline_size <= 4) {
4752 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4753 }
4754 let inner_offset;
4755 let mut inner_depth = depth.clone();
4756 if inlined {
4757 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4758 inner_offset = next_offset;
4759 } else {
4760 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4761 inner_depth.increment()?;
4762 }
4763 let val_ref = self.perform_probe.get_or_insert_with(|| fidl::new_empty!(bool, D));
4764 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4765 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4766 {
4767 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4768 }
4769 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4770 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4771 }
4772 }
4773
4774 next_offset += envelope_size;
4775
4776 while next_offset < end_offset {
4778 _next_ordinal_to_read += 1;
4779 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4780 next_offset += envelope_size;
4781 }
4782
4783 Ok(())
4784 }
4785 }
4786
4787 impl ServiceInstance {
4788 #[inline(always)]
4789 fn max_ordinal_present(&self) -> u64 {
4790 if let Some(_) = self.text_strings {
4791 return 10;
4792 }
4793 if let Some(_) = self.addresses {
4794 return 9;
4795 }
4796 if let Some(_) = self.target {
4797 return 8;
4798 }
4799 if let Some(_) = self.srv_weight {
4800 return 7;
4801 }
4802 if let Some(_) = self.srv_priority {
4803 return 6;
4804 }
4805 if let Some(_) = self.text {
4806 return 5;
4807 }
4808 if let Some(_) = self.ipv6_endpoint {
4809 return 4;
4810 }
4811 if let Some(_) = self.ipv4_endpoint {
4812 return 3;
4813 }
4814 if let Some(_) = self.instance {
4815 return 2;
4816 }
4817 if let Some(_) = self.service {
4818 return 1;
4819 }
4820 0
4821 }
4822 }
4823
4824 impl fidl::encoding::ValueTypeMarker for ServiceInstance {
4825 type Borrowed<'a> = &'a Self;
4826 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4827 value
4828 }
4829 }
4830
4831 unsafe impl fidl::encoding::TypeMarker for ServiceInstance {
4832 type Owned = Self;
4833
4834 #[inline(always)]
4835 fn inline_align(_context: fidl::encoding::Context) -> usize {
4836 8
4837 }
4838
4839 #[inline(always)]
4840 fn inline_size(_context: fidl::encoding::Context) -> usize {
4841 16
4842 }
4843 }
4844
4845 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ServiceInstance, D>
4846 for &ServiceInstance
4847 {
4848 unsafe fn encode(
4849 self,
4850 encoder: &mut fidl::encoding::Encoder<'_, D>,
4851 offset: usize,
4852 mut depth: fidl::encoding::Depth,
4853 ) -> fidl::Result<()> {
4854 encoder.debug_check_bounds::<ServiceInstance>(offset);
4855 let max_ordinal: u64 = self.max_ordinal_present();
4857 encoder.write_num(max_ordinal, offset);
4858 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4859 if max_ordinal == 0 {
4861 return Ok(());
4862 }
4863 depth.increment()?;
4864 let envelope_size = 8;
4865 let bytes_len = max_ordinal as usize * envelope_size;
4866 #[allow(unused_variables)]
4867 let offset = encoder.out_of_line_offset(bytes_len);
4868 let mut _prev_end_offset: usize = 0;
4869 if 1 > max_ordinal {
4870 return Ok(());
4871 }
4872
4873 let cur_offset: usize = (1 - 1) * envelope_size;
4876
4877 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4879
4880 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<22>, D>(
4885 self.service.as_ref().map(
4886 <fidl::encoding::BoundedString<22> as fidl::encoding::ValueTypeMarker>::borrow,
4887 ),
4888 encoder,
4889 offset + cur_offset,
4890 depth,
4891 )?;
4892
4893 _prev_end_offset = cur_offset + envelope_size;
4894 if 2 > max_ordinal {
4895 return Ok(());
4896 }
4897
4898 let cur_offset: usize = (2 - 1) * envelope_size;
4901
4902 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4904
4905 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<63>, D>(
4910 self.instance.as_ref().map(
4911 <fidl::encoding::BoundedString<63> as fidl::encoding::ValueTypeMarker>::borrow,
4912 ),
4913 encoder,
4914 offset + cur_offset,
4915 depth,
4916 )?;
4917
4918 _prev_end_offset = cur_offset + envelope_size;
4919 if 3 > max_ordinal {
4920 return Ok(());
4921 }
4922
4923 let cur_offset: usize = (3 - 1) * envelope_size;
4926
4927 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4929
4930 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net__common::Ipv4SocketAddress, D>(
4935 self.ipv4_endpoint.as_ref().map(<fidl_fuchsia_net__common::Ipv4SocketAddress as fidl::encoding::ValueTypeMarker>::borrow),
4936 encoder, offset + cur_offset, depth
4937 )?;
4938
4939 _prev_end_offset = cur_offset + envelope_size;
4940 if 4 > max_ordinal {
4941 return Ok(());
4942 }
4943
4944 let cur_offset: usize = (4 - 1) * envelope_size;
4947
4948 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4950
4951 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_net__common::Ipv6SocketAddress, D>(
4956 self.ipv6_endpoint.as_ref().map(<fidl_fuchsia_net__common::Ipv6SocketAddress as fidl::encoding::ValueTypeMarker>::borrow),
4957 encoder, offset + cur_offset, depth
4958 )?;
4959
4960 _prev_end_offset = cur_offset + envelope_size;
4961 if 5 > max_ordinal {
4962 return Ok(());
4963 }
4964
4965 let cur_offset: usize = (5 - 1) * envelope_size;
4968
4969 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4971
4972 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>, D>(
4977 self.text.as_ref().map(<fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256> as fidl::encoding::ValueTypeMarker>::borrow),
4978 encoder, offset + cur_offset, depth
4979 )?;
4980
4981 _prev_end_offset = cur_offset + envelope_size;
4982 if 6 > max_ordinal {
4983 return Ok(());
4984 }
4985
4986 let cur_offset: usize = (6 - 1) * envelope_size;
4989
4990 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4992
4993 fidl::encoding::encode_in_envelope_optional::<u16, D>(
4998 self.srv_priority.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
4999 encoder,
5000 offset + cur_offset,
5001 depth,
5002 )?;
5003
5004 _prev_end_offset = cur_offset + envelope_size;
5005 if 7 > max_ordinal {
5006 return Ok(());
5007 }
5008
5009 let cur_offset: usize = (7 - 1) * envelope_size;
5012
5013 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5015
5016 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5021 self.srv_weight.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5022 encoder,
5023 offset + cur_offset,
5024 depth,
5025 )?;
5026
5027 _prev_end_offset = cur_offset + envelope_size;
5028 if 8 > max_ordinal {
5029 return Ok(());
5030 }
5031
5032 let cur_offset: usize = (8 - 1) * envelope_size;
5035
5036 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5038
5039 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
5044 self.target.as_ref().map(
5045 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
5046 ),
5047 encoder,
5048 offset + cur_offset,
5049 depth,
5050 )?;
5051
5052 _prev_end_offset = cur_offset + envelope_size;
5053 if 9 > max_ordinal {
5054 return Ok(());
5055 }
5056
5057 let cur_offset: usize = (9 - 1) * envelope_size;
5060
5061 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5063
5064 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl_fuchsia_net__common::SocketAddress, 64>, D>(
5069 self.addresses.as_ref().map(<fidl::encoding::Vector<fidl_fuchsia_net__common::SocketAddress, 64> as fidl::encoding::ValueTypeMarker>::borrow),
5070 encoder, offset + cur_offset, depth
5071 )?;
5072
5073 _prev_end_offset = cur_offset + envelope_size;
5074 if 10 > max_ordinal {
5075 return Ok(());
5076 }
5077
5078 let cur_offset: usize = (10 - 1) * envelope_size;
5081
5082 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5084
5085 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>, D>(
5090 self.text_strings.as_ref().map(<fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256> as fidl::encoding::ValueTypeMarker>::borrow),
5091 encoder, offset + cur_offset, depth
5092 )?;
5093
5094 _prev_end_offset = cur_offset + envelope_size;
5095
5096 Ok(())
5097 }
5098 }
5099
5100 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ServiceInstance {
5101 #[inline(always)]
5102 fn new_empty() -> Self {
5103 Self::default()
5104 }
5105
5106 unsafe fn decode(
5107 &mut self,
5108 decoder: &mut fidl::encoding::Decoder<'_, D>,
5109 offset: usize,
5110 mut depth: fidl::encoding::Depth,
5111 ) -> fidl::Result<()> {
5112 decoder.debug_check_bounds::<Self>(offset);
5113 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5114 None => return Err(fidl::Error::NotNullable),
5115 Some(len) => len,
5116 };
5117 if len == 0 {
5119 return Ok(());
5120 };
5121 depth.increment()?;
5122 let envelope_size = 8;
5123 let bytes_len = len * envelope_size;
5124 let offset = decoder.out_of_line_offset(bytes_len)?;
5125 let mut _next_ordinal_to_read = 0;
5127 let mut next_offset = offset;
5128 let end_offset = offset + bytes_len;
5129 _next_ordinal_to_read += 1;
5130 if next_offset >= end_offset {
5131 return Ok(());
5132 }
5133
5134 while _next_ordinal_to_read < 1 {
5136 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5137 _next_ordinal_to_read += 1;
5138 next_offset += envelope_size;
5139 }
5140
5141 let next_out_of_line = decoder.next_out_of_line();
5142 let handles_before = decoder.remaining_handles();
5143 if let Some((inlined, num_bytes, num_handles)) =
5144 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5145 {
5146 let member_inline_size =
5147 <fidl::encoding::BoundedString<22> as fidl::encoding::TypeMarker>::inline_size(
5148 decoder.context,
5149 );
5150 if inlined != (member_inline_size <= 4) {
5151 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5152 }
5153 let inner_offset;
5154 let mut inner_depth = depth.clone();
5155 if inlined {
5156 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5157 inner_offset = next_offset;
5158 } else {
5159 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5160 inner_depth.increment()?;
5161 }
5162 let val_ref = self
5163 .service
5164 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<22>, D));
5165 fidl::decode!(
5166 fidl::encoding::BoundedString<22>,
5167 D,
5168 val_ref,
5169 decoder,
5170 inner_offset,
5171 inner_depth
5172 )?;
5173 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5174 {
5175 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5176 }
5177 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5178 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5179 }
5180 }
5181
5182 next_offset += envelope_size;
5183 _next_ordinal_to_read += 1;
5184 if next_offset >= end_offset {
5185 return Ok(());
5186 }
5187
5188 while _next_ordinal_to_read < 2 {
5190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5191 _next_ordinal_to_read += 1;
5192 next_offset += envelope_size;
5193 }
5194
5195 let next_out_of_line = decoder.next_out_of_line();
5196 let handles_before = decoder.remaining_handles();
5197 if let Some((inlined, num_bytes, num_handles)) =
5198 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5199 {
5200 let member_inline_size =
5201 <fidl::encoding::BoundedString<63> as fidl::encoding::TypeMarker>::inline_size(
5202 decoder.context,
5203 );
5204 if inlined != (member_inline_size <= 4) {
5205 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5206 }
5207 let inner_offset;
5208 let mut inner_depth = depth.clone();
5209 if inlined {
5210 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5211 inner_offset = next_offset;
5212 } else {
5213 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5214 inner_depth.increment()?;
5215 }
5216 let val_ref = self
5217 .instance
5218 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<63>, D));
5219 fidl::decode!(
5220 fidl::encoding::BoundedString<63>,
5221 D,
5222 val_ref,
5223 decoder,
5224 inner_offset,
5225 inner_depth
5226 )?;
5227 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5228 {
5229 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5230 }
5231 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5232 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5233 }
5234 }
5235
5236 next_offset += envelope_size;
5237 _next_ordinal_to_read += 1;
5238 if next_offset >= end_offset {
5239 return Ok(());
5240 }
5241
5242 while _next_ordinal_to_read < 3 {
5244 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5245 _next_ordinal_to_read += 1;
5246 next_offset += envelope_size;
5247 }
5248
5249 let next_out_of_line = decoder.next_out_of_line();
5250 let handles_before = decoder.remaining_handles();
5251 if let Some((inlined, num_bytes, num_handles)) =
5252 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5253 {
5254 let member_inline_size = <fidl_fuchsia_net__common::Ipv4SocketAddress as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5255 if inlined != (member_inline_size <= 4) {
5256 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5257 }
5258 let inner_offset;
5259 let mut inner_depth = depth.clone();
5260 if inlined {
5261 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5262 inner_offset = next_offset;
5263 } else {
5264 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5265 inner_depth.increment()?;
5266 }
5267 let val_ref = self.ipv4_endpoint.get_or_insert_with(|| {
5268 fidl::new_empty!(fidl_fuchsia_net__common::Ipv4SocketAddress, D)
5269 });
5270 fidl::decode!(
5271 fidl_fuchsia_net__common::Ipv4SocketAddress,
5272 D,
5273 val_ref,
5274 decoder,
5275 inner_offset,
5276 inner_depth
5277 )?;
5278 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5279 {
5280 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5281 }
5282 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5283 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5284 }
5285 }
5286
5287 next_offset += envelope_size;
5288 _next_ordinal_to_read += 1;
5289 if next_offset >= end_offset {
5290 return Ok(());
5291 }
5292
5293 while _next_ordinal_to_read < 4 {
5295 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5296 _next_ordinal_to_read += 1;
5297 next_offset += envelope_size;
5298 }
5299
5300 let next_out_of_line = decoder.next_out_of_line();
5301 let handles_before = decoder.remaining_handles();
5302 if let Some((inlined, num_bytes, num_handles)) =
5303 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5304 {
5305 let member_inline_size = <fidl_fuchsia_net__common::Ipv6SocketAddress as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5306 if inlined != (member_inline_size <= 4) {
5307 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5308 }
5309 let inner_offset;
5310 let mut inner_depth = depth.clone();
5311 if inlined {
5312 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5313 inner_offset = next_offset;
5314 } else {
5315 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5316 inner_depth.increment()?;
5317 }
5318 let val_ref = self.ipv6_endpoint.get_or_insert_with(|| {
5319 fidl::new_empty!(fidl_fuchsia_net__common::Ipv6SocketAddress, D)
5320 });
5321 fidl::decode!(
5322 fidl_fuchsia_net__common::Ipv6SocketAddress,
5323 D,
5324 val_ref,
5325 decoder,
5326 inner_offset,
5327 inner_depth
5328 )?;
5329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5330 {
5331 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5332 }
5333 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5334 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5335 }
5336 }
5337
5338 next_offset += envelope_size;
5339 _next_ordinal_to_read += 1;
5340 if next_offset >= end_offset {
5341 return Ok(());
5342 }
5343
5344 while _next_ordinal_to_read < 5 {
5346 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5347 _next_ordinal_to_read += 1;
5348 next_offset += envelope_size;
5349 }
5350
5351 let next_out_of_line = decoder.next_out_of_line();
5352 let handles_before = decoder.remaining_handles();
5353 if let Some((inlined, num_bytes, num_handles)) =
5354 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5355 {
5356 let member_inline_size = <fidl::encoding::Vector<
5357 fidl::encoding::BoundedString<255>,
5358 256,
5359 > as fidl::encoding::TypeMarker>::inline_size(
5360 decoder.context
5361 );
5362 if inlined != (member_inline_size <= 4) {
5363 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5364 }
5365 let inner_offset;
5366 let mut inner_depth = depth.clone();
5367 if inlined {
5368 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5369 inner_offset = next_offset;
5370 } else {
5371 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5372 inner_depth.increment()?;
5373 }
5374 let val_ref = self.text.get_or_insert_with(|| {
5375 fidl::new_empty!(
5376 fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>,
5377 D
5378 )
5379 });
5380 fidl::decode!(
5381 fidl::encoding::Vector<fidl::encoding::BoundedString<255>, 256>,
5382 D,
5383 val_ref,
5384 decoder,
5385 inner_offset,
5386 inner_depth
5387 )?;
5388 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5389 {
5390 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5391 }
5392 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5393 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5394 }
5395 }
5396
5397 next_offset += envelope_size;
5398 _next_ordinal_to_read += 1;
5399 if next_offset >= end_offset {
5400 return Ok(());
5401 }
5402
5403 while _next_ordinal_to_read < 6 {
5405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5406 _next_ordinal_to_read += 1;
5407 next_offset += envelope_size;
5408 }
5409
5410 let next_out_of_line = decoder.next_out_of_line();
5411 let handles_before = decoder.remaining_handles();
5412 if let Some((inlined, num_bytes, num_handles)) =
5413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5414 {
5415 let member_inline_size =
5416 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5417 if inlined != (member_inline_size <= 4) {
5418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5419 }
5420 let inner_offset;
5421 let mut inner_depth = depth.clone();
5422 if inlined {
5423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5424 inner_offset = next_offset;
5425 } else {
5426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5427 inner_depth.increment()?;
5428 }
5429 let val_ref = self.srv_priority.get_or_insert_with(|| fidl::new_empty!(u16, D));
5430 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5431 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5432 {
5433 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5434 }
5435 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5436 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5437 }
5438 }
5439
5440 next_offset += envelope_size;
5441 _next_ordinal_to_read += 1;
5442 if next_offset >= end_offset {
5443 return Ok(());
5444 }
5445
5446 while _next_ordinal_to_read < 7 {
5448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5449 _next_ordinal_to_read += 1;
5450 next_offset += envelope_size;
5451 }
5452
5453 let next_out_of_line = decoder.next_out_of_line();
5454 let handles_before = decoder.remaining_handles();
5455 if let Some((inlined, num_bytes, num_handles)) =
5456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5457 {
5458 let member_inline_size =
5459 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5460 if inlined != (member_inline_size <= 4) {
5461 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5462 }
5463 let inner_offset;
5464 let mut inner_depth = depth.clone();
5465 if inlined {
5466 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5467 inner_offset = next_offset;
5468 } else {
5469 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5470 inner_depth.increment()?;
5471 }
5472 let val_ref = self.srv_weight.get_or_insert_with(|| fidl::new_empty!(u16, D));
5473 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5474 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5475 {
5476 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5477 }
5478 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5479 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5480 }
5481 }
5482
5483 next_offset += envelope_size;
5484 _next_ordinal_to_read += 1;
5485 if next_offset >= end_offset {
5486 return Ok(());
5487 }
5488
5489 while _next_ordinal_to_read < 8 {
5491 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5492 _next_ordinal_to_read += 1;
5493 next_offset += envelope_size;
5494 }
5495
5496 let next_out_of_line = decoder.next_out_of_line();
5497 let handles_before = decoder.remaining_handles();
5498 if let Some((inlined, num_bytes, num_handles)) =
5499 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5500 {
5501 let member_inline_size =
5502 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
5503 decoder.context,
5504 );
5505 if inlined != (member_inline_size <= 4) {
5506 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5507 }
5508 let inner_offset;
5509 let mut inner_depth = depth.clone();
5510 if inlined {
5511 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5512 inner_offset = next_offset;
5513 } else {
5514 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5515 inner_depth.increment()?;
5516 }
5517 let val_ref = self
5518 .target
5519 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
5520 fidl::decode!(
5521 fidl::encoding::BoundedString<255>,
5522 D,
5523 val_ref,
5524 decoder,
5525 inner_offset,
5526 inner_depth
5527 )?;
5528 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5529 {
5530 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5531 }
5532 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5533 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5534 }
5535 }
5536
5537 next_offset += envelope_size;
5538 _next_ordinal_to_read += 1;
5539 if next_offset >= end_offset {
5540 return Ok(());
5541 }
5542
5543 while _next_ordinal_to_read < 9 {
5545 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5546 _next_ordinal_to_read += 1;
5547 next_offset += envelope_size;
5548 }
5549
5550 let next_out_of_line = decoder.next_out_of_line();
5551 let handles_before = decoder.remaining_handles();
5552 if let Some((inlined, num_bytes, num_handles)) =
5553 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5554 {
5555 let member_inline_size = <fidl::encoding::Vector<
5556 fidl_fuchsia_net__common::SocketAddress,
5557 64,
5558 > as fidl::encoding::TypeMarker>::inline_size(
5559 decoder.context
5560 );
5561 if inlined != (member_inline_size <= 4) {
5562 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5563 }
5564 let inner_offset;
5565 let mut inner_depth = depth.clone();
5566 if inlined {
5567 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5568 inner_offset = next_offset;
5569 } else {
5570 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5571 inner_depth.increment()?;
5572 }
5573 let val_ref =
5574 self.addresses.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_net__common::SocketAddress, 64>, D));
5575 fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_net__common::SocketAddress, 64>, D, val_ref, decoder, inner_offset, inner_depth)?;
5576 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5577 {
5578 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5579 }
5580 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5581 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5582 }
5583 }
5584
5585 next_offset += envelope_size;
5586 _next_ordinal_to_read += 1;
5587 if next_offset >= end_offset {
5588 return Ok(());
5589 }
5590
5591 while _next_ordinal_to_read < 10 {
5593 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5594 _next_ordinal_to_read += 1;
5595 next_offset += envelope_size;
5596 }
5597
5598 let next_out_of_line = decoder.next_out_of_line();
5599 let handles_before = decoder.remaining_handles();
5600 if let Some((inlined, num_bytes, num_handles)) =
5601 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5602 {
5603 let member_inline_size = <fidl::encoding::Vector<
5604 fidl::encoding::Vector<u8, 255>,
5605 256,
5606 > as fidl::encoding::TypeMarker>::inline_size(
5607 decoder.context
5608 );
5609 if inlined != (member_inline_size <= 4) {
5610 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5611 }
5612 let inner_offset;
5613 let mut inner_depth = depth.clone();
5614 if inlined {
5615 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5616 inner_offset = next_offset;
5617 } else {
5618 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5619 inner_depth.increment()?;
5620 }
5621 let val_ref = self.text_strings.get_or_insert_with(|| {
5622 fidl::new_empty!(
5623 fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>,
5624 D
5625 )
5626 });
5627 fidl::decode!(
5628 fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>,
5629 D,
5630 val_ref,
5631 decoder,
5632 inner_offset,
5633 inner_depth
5634 )?;
5635 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5636 {
5637 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5638 }
5639 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5640 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5641 }
5642 }
5643
5644 next_offset += envelope_size;
5645
5646 while next_offset < end_offset {
5648 _next_ordinal_to_read += 1;
5649 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5650 next_offset += envelope_size;
5651 }
5652
5653 Ok(())
5654 }
5655 }
5656
5657 impl ServiceInstancePublication {
5658 #[inline(always)]
5659 fn max_ordinal_present(&self) -> u64 {
5660 if let Some(_) = self.txt_ttl {
5661 return 7;
5662 }
5663 if let Some(_) = self.srv_ttl {
5664 return 6;
5665 }
5666 if let Some(_) = self.ptr_ttl {
5667 return 5;
5668 }
5669 if let Some(_) = self.srv_weight {
5670 return 4;
5671 }
5672 if let Some(_) = self.srv_priority {
5673 return 3;
5674 }
5675 if let Some(_) = self.text {
5676 return 2;
5677 }
5678 if let Some(_) = self.port {
5679 return 1;
5680 }
5681 0
5682 }
5683 }
5684
5685 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublication {
5686 type Borrowed<'a> = &'a Self;
5687 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5688 value
5689 }
5690 }
5691
5692 unsafe impl fidl::encoding::TypeMarker for ServiceInstancePublication {
5693 type Owned = Self;
5694
5695 #[inline(always)]
5696 fn inline_align(_context: fidl::encoding::Context) -> usize {
5697 8
5698 }
5699
5700 #[inline(always)]
5701 fn inline_size(_context: fidl::encoding::Context) -> usize {
5702 16
5703 }
5704 }
5705
5706 unsafe impl<D: fidl::encoding::ResourceDialect>
5707 fidl::encoding::Encode<ServiceInstancePublication, D> for &ServiceInstancePublication
5708 {
5709 unsafe fn encode(
5710 self,
5711 encoder: &mut fidl::encoding::Encoder<'_, D>,
5712 offset: usize,
5713 mut depth: fidl::encoding::Depth,
5714 ) -> fidl::Result<()> {
5715 encoder.debug_check_bounds::<ServiceInstancePublication>(offset);
5716 let max_ordinal: u64 = self.max_ordinal_present();
5718 encoder.write_num(max_ordinal, offset);
5719 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5720 if max_ordinal == 0 {
5722 return Ok(());
5723 }
5724 depth.increment()?;
5725 let envelope_size = 8;
5726 let bytes_len = max_ordinal as usize * envelope_size;
5727 #[allow(unused_variables)]
5728 let offset = encoder.out_of_line_offset(bytes_len);
5729 let mut _prev_end_offset: usize = 0;
5730 if 1 > max_ordinal {
5731 return Ok(());
5732 }
5733
5734 let cur_offset: usize = (1 - 1) * envelope_size;
5737
5738 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5740
5741 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5746 self.port.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5747 encoder,
5748 offset + cur_offset,
5749 depth,
5750 )?;
5751
5752 _prev_end_offset = cur_offset + envelope_size;
5753 if 2 > max_ordinal {
5754 return Ok(());
5755 }
5756
5757 let cur_offset: usize = (2 - 1) * envelope_size;
5760
5761 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5763
5764 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>, D>(
5769 self.text.as_ref().map(<fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256> as fidl::encoding::ValueTypeMarker>::borrow),
5770 encoder, offset + cur_offset, depth
5771 )?;
5772
5773 _prev_end_offset = cur_offset + envelope_size;
5774 if 3 > max_ordinal {
5775 return Ok(());
5776 }
5777
5778 let cur_offset: usize = (3 - 1) * envelope_size;
5781
5782 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5784
5785 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5790 self.srv_priority.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5791 encoder,
5792 offset + cur_offset,
5793 depth,
5794 )?;
5795
5796 _prev_end_offset = cur_offset + envelope_size;
5797 if 4 > max_ordinal {
5798 return Ok(());
5799 }
5800
5801 let cur_offset: usize = (4 - 1) * envelope_size;
5804
5805 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5807
5808 fidl::encoding::encode_in_envelope_optional::<u16, D>(
5813 self.srv_weight.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
5814 encoder,
5815 offset + cur_offset,
5816 depth,
5817 )?;
5818
5819 _prev_end_offset = cur_offset + envelope_size;
5820 if 5 > max_ordinal {
5821 return Ok(());
5822 }
5823
5824 let cur_offset: usize = (5 - 1) * envelope_size;
5827
5828 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5830
5831 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5836 self.ptr_ttl.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5837 encoder,
5838 offset + cur_offset,
5839 depth,
5840 )?;
5841
5842 _prev_end_offset = cur_offset + envelope_size;
5843 if 6 > max_ordinal {
5844 return Ok(());
5845 }
5846
5847 let cur_offset: usize = (6 - 1) * envelope_size;
5850
5851 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5853
5854 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5859 self.srv_ttl.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5860 encoder,
5861 offset + cur_offset,
5862 depth,
5863 )?;
5864
5865 _prev_end_offset = cur_offset + envelope_size;
5866 if 7 > max_ordinal {
5867 return Ok(());
5868 }
5869
5870 let cur_offset: usize = (7 - 1) * envelope_size;
5873
5874 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5876
5877 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5882 self.txt_ttl.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5883 encoder,
5884 offset + cur_offset,
5885 depth,
5886 )?;
5887
5888 _prev_end_offset = cur_offset + envelope_size;
5889
5890 Ok(())
5891 }
5892 }
5893
5894 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5895 for ServiceInstancePublication
5896 {
5897 #[inline(always)]
5898 fn new_empty() -> Self {
5899 Self::default()
5900 }
5901
5902 unsafe fn decode(
5903 &mut self,
5904 decoder: &mut fidl::encoding::Decoder<'_, D>,
5905 offset: usize,
5906 mut depth: fidl::encoding::Depth,
5907 ) -> fidl::Result<()> {
5908 decoder.debug_check_bounds::<Self>(offset);
5909 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5910 None => return Err(fidl::Error::NotNullable),
5911 Some(len) => len,
5912 };
5913 if len == 0 {
5915 return Ok(());
5916 };
5917 depth.increment()?;
5918 let envelope_size = 8;
5919 let bytes_len = len * envelope_size;
5920 let offset = decoder.out_of_line_offset(bytes_len)?;
5921 let mut _next_ordinal_to_read = 0;
5923 let mut next_offset = offset;
5924 let end_offset = offset + bytes_len;
5925 _next_ordinal_to_read += 1;
5926 if next_offset >= end_offset {
5927 return Ok(());
5928 }
5929
5930 while _next_ordinal_to_read < 1 {
5932 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5933 _next_ordinal_to_read += 1;
5934 next_offset += envelope_size;
5935 }
5936
5937 let next_out_of_line = decoder.next_out_of_line();
5938 let handles_before = decoder.remaining_handles();
5939 if let Some((inlined, num_bytes, num_handles)) =
5940 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5941 {
5942 let member_inline_size =
5943 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5944 if inlined != (member_inline_size <= 4) {
5945 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5946 }
5947 let inner_offset;
5948 let mut inner_depth = depth.clone();
5949 if inlined {
5950 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5951 inner_offset = next_offset;
5952 } else {
5953 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5954 inner_depth.increment()?;
5955 }
5956 let val_ref = self.port.get_or_insert_with(|| fidl::new_empty!(u16, D));
5957 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
5958 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5959 {
5960 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5961 }
5962 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5963 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5964 }
5965 }
5966
5967 next_offset += envelope_size;
5968 _next_ordinal_to_read += 1;
5969 if next_offset >= end_offset {
5970 return Ok(());
5971 }
5972
5973 while _next_ordinal_to_read < 2 {
5975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5976 _next_ordinal_to_read += 1;
5977 next_offset += envelope_size;
5978 }
5979
5980 let next_out_of_line = decoder.next_out_of_line();
5981 let handles_before = decoder.remaining_handles();
5982 if let Some((inlined, num_bytes, num_handles)) =
5983 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5984 {
5985 let member_inline_size = <fidl::encoding::Vector<
5986 fidl::encoding::Vector<u8, 255>,
5987 256,
5988 > as fidl::encoding::TypeMarker>::inline_size(
5989 decoder.context
5990 );
5991 if inlined != (member_inline_size <= 4) {
5992 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5993 }
5994 let inner_offset;
5995 let mut inner_depth = depth.clone();
5996 if inlined {
5997 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5998 inner_offset = next_offset;
5999 } else {
6000 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6001 inner_depth.increment()?;
6002 }
6003 let val_ref = self.text.get_or_insert_with(|| {
6004 fidl::new_empty!(
6005 fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>,
6006 D
6007 )
6008 });
6009 fidl::decode!(
6010 fidl::encoding::Vector<fidl::encoding::Vector<u8, 255>, 256>,
6011 D,
6012 val_ref,
6013 decoder,
6014 inner_offset,
6015 inner_depth
6016 )?;
6017 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6018 {
6019 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6020 }
6021 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6022 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6023 }
6024 }
6025
6026 next_offset += envelope_size;
6027 _next_ordinal_to_read += 1;
6028 if next_offset >= end_offset {
6029 return Ok(());
6030 }
6031
6032 while _next_ordinal_to_read < 3 {
6034 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6035 _next_ordinal_to_read += 1;
6036 next_offset += envelope_size;
6037 }
6038
6039 let next_out_of_line = decoder.next_out_of_line();
6040 let handles_before = decoder.remaining_handles();
6041 if let Some((inlined, num_bytes, num_handles)) =
6042 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6043 {
6044 let member_inline_size =
6045 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6046 if inlined != (member_inline_size <= 4) {
6047 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6048 }
6049 let inner_offset;
6050 let mut inner_depth = depth.clone();
6051 if inlined {
6052 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6053 inner_offset = next_offset;
6054 } else {
6055 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6056 inner_depth.increment()?;
6057 }
6058 let val_ref = self.srv_priority.get_or_insert_with(|| fidl::new_empty!(u16, D));
6059 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6060 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6061 {
6062 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6063 }
6064 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6065 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6066 }
6067 }
6068
6069 next_offset += envelope_size;
6070 _next_ordinal_to_read += 1;
6071 if next_offset >= end_offset {
6072 return Ok(());
6073 }
6074
6075 while _next_ordinal_to_read < 4 {
6077 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6078 _next_ordinal_to_read += 1;
6079 next_offset += envelope_size;
6080 }
6081
6082 let next_out_of_line = decoder.next_out_of_line();
6083 let handles_before = decoder.remaining_handles();
6084 if let Some((inlined, num_bytes, num_handles)) =
6085 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6086 {
6087 let member_inline_size =
6088 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6089 if inlined != (member_inline_size <= 4) {
6090 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6091 }
6092 let inner_offset;
6093 let mut inner_depth = depth.clone();
6094 if inlined {
6095 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6096 inner_offset = next_offset;
6097 } else {
6098 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6099 inner_depth.increment()?;
6100 }
6101 let val_ref = self.srv_weight.get_or_insert_with(|| fidl::new_empty!(u16, D));
6102 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
6103 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6104 {
6105 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6106 }
6107 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6108 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6109 }
6110 }
6111
6112 next_offset += envelope_size;
6113 _next_ordinal_to_read += 1;
6114 if next_offset >= end_offset {
6115 return Ok(());
6116 }
6117
6118 while _next_ordinal_to_read < 5 {
6120 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6121 _next_ordinal_to_read += 1;
6122 next_offset += envelope_size;
6123 }
6124
6125 let next_out_of_line = decoder.next_out_of_line();
6126 let handles_before = decoder.remaining_handles();
6127 if let Some((inlined, num_bytes, num_handles)) =
6128 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6129 {
6130 let member_inline_size =
6131 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6132 if inlined != (member_inline_size <= 4) {
6133 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6134 }
6135 let inner_offset;
6136 let mut inner_depth = depth.clone();
6137 if inlined {
6138 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6139 inner_offset = next_offset;
6140 } else {
6141 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6142 inner_depth.increment()?;
6143 }
6144 let val_ref = self.ptr_ttl.get_or_insert_with(|| fidl::new_empty!(i64, D));
6145 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6146 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6147 {
6148 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6149 }
6150 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6151 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6152 }
6153 }
6154
6155 next_offset += envelope_size;
6156 _next_ordinal_to_read += 1;
6157 if next_offset >= end_offset {
6158 return Ok(());
6159 }
6160
6161 while _next_ordinal_to_read < 6 {
6163 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6164 _next_ordinal_to_read += 1;
6165 next_offset += envelope_size;
6166 }
6167
6168 let next_out_of_line = decoder.next_out_of_line();
6169 let handles_before = decoder.remaining_handles();
6170 if let Some((inlined, num_bytes, num_handles)) =
6171 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6172 {
6173 let member_inline_size =
6174 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6175 if inlined != (member_inline_size <= 4) {
6176 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6177 }
6178 let inner_offset;
6179 let mut inner_depth = depth.clone();
6180 if inlined {
6181 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6182 inner_offset = next_offset;
6183 } else {
6184 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6185 inner_depth.increment()?;
6186 }
6187 let val_ref = self.srv_ttl.get_or_insert_with(|| fidl::new_empty!(i64, D));
6188 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6189 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6190 {
6191 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6192 }
6193 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6194 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6195 }
6196 }
6197
6198 next_offset += envelope_size;
6199 _next_ordinal_to_read += 1;
6200 if next_offset >= end_offset {
6201 return Ok(());
6202 }
6203
6204 while _next_ordinal_to_read < 7 {
6206 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6207 _next_ordinal_to_read += 1;
6208 next_offset += envelope_size;
6209 }
6210
6211 let next_out_of_line = decoder.next_out_of_line();
6212 let handles_before = decoder.remaining_handles();
6213 if let Some((inlined, num_bytes, num_handles)) =
6214 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6215 {
6216 let member_inline_size =
6217 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6218 if inlined != (member_inline_size <= 4) {
6219 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6220 }
6221 let inner_offset;
6222 let mut inner_depth = depth.clone();
6223 if inlined {
6224 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6225 inner_offset = next_offset;
6226 } else {
6227 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6228 inner_depth.increment()?;
6229 }
6230 let val_ref = self.txt_ttl.get_or_insert_with(|| fidl::new_empty!(i64, D));
6231 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6232 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6233 {
6234 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6235 }
6236 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6237 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6238 }
6239 }
6240
6241 next_offset += envelope_size;
6242
6243 while next_offset < end_offset {
6245 _next_ordinal_to_read += 1;
6246 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6247 next_offset += envelope_size;
6248 }
6249
6250 Ok(())
6251 }
6252 }
6253
6254 impl ServiceInstancePublicationOptions {
6255 #[inline(always)]
6256 fn max_ordinal_present(&self) -> u64 {
6257 if let Some(_) = self.perform_probe {
6258 return 3;
6259 }
6260 if let Some(_) = self.ip_versions {
6261 return 2;
6262 }
6263 if let Some(_) = self.media {
6264 return 1;
6265 }
6266 0
6267 }
6268 }
6269
6270 impl fidl::encoding::ValueTypeMarker for ServiceInstancePublicationOptions {
6271 type Borrowed<'a> = &'a Self;
6272 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6273 value
6274 }
6275 }
6276
6277 unsafe impl fidl::encoding::TypeMarker for ServiceInstancePublicationOptions {
6278 type Owned = Self;
6279
6280 #[inline(always)]
6281 fn inline_align(_context: fidl::encoding::Context) -> usize {
6282 8
6283 }
6284
6285 #[inline(always)]
6286 fn inline_size(_context: fidl::encoding::Context) -> usize {
6287 16
6288 }
6289 }
6290
6291 unsafe impl<D: fidl::encoding::ResourceDialect>
6292 fidl::encoding::Encode<ServiceInstancePublicationOptions, D>
6293 for &ServiceInstancePublicationOptions
6294 {
6295 unsafe fn encode(
6296 self,
6297 encoder: &mut fidl::encoding::Encoder<'_, D>,
6298 offset: usize,
6299 mut depth: fidl::encoding::Depth,
6300 ) -> fidl::Result<()> {
6301 encoder.debug_check_bounds::<ServiceInstancePublicationOptions>(offset);
6302 let max_ordinal: u64 = self.max_ordinal_present();
6304 encoder.write_num(max_ordinal, offset);
6305 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6306 if max_ordinal == 0 {
6308 return Ok(());
6309 }
6310 depth.increment()?;
6311 let envelope_size = 8;
6312 let bytes_len = max_ordinal as usize * envelope_size;
6313 #[allow(unused_variables)]
6314 let offset = encoder.out_of_line_offset(bytes_len);
6315 let mut _prev_end_offset: usize = 0;
6316 if 1 > max_ordinal {
6317 return Ok(());
6318 }
6319
6320 let cur_offset: usize = (1 - 1) * envelope_size;
6323
6324 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6326
6327 fidl::encoding::encode_in_envelope_optional::<Media, D>(
6332 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
6333 encoder,
6334 offset + cur_offset,
6335 depth,
6336 )?;
6337
6338 _prev_end_offset = cur_offset + envelope_size;
6339 if 2 > max_ordinal {
6340 return Ok(());
6341 }
6342
6343 let cur_offset: usize = (2 - 1) * envelope_size;
6346
6347 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6349
6350 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
6355 self.ip_versions
6356 .as_ref()
6357 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
6358 encoder,
6359 offset + cur_offset,
6360 depth,
6361 )?;
6362
6363 _prev_end_offset = cur_offset + envelope_size;
6364 if 3 > max_ordinal {
6365 return Ok(());
6366 }
6367
6368 let cur_offset: usize = (3 - 1) * envelope_size;
6371
6372 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6374
6375 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6380 self.perform_probe.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6381 encoder,
6382 offset + cur_offset,
6383 depth,
6384 )?;
6385
6386 _prev_end_offset = cur_offset + envelope_size;
6387
6388 Ok(())
6389 }
6390 }
6391
6392 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6393 for ServiceInstancePublicationOptions
6394 {
6395 #[inline(always)]
6396 fn new_empty() -> Self {
6397 Self::default()
6398 }
6399
6400 unsafe fn decode(
6401 &mut self,
6402 decoder: &mut fidl::encoding::Decoder<'_, D>,
6403 offset: usize,
6404 mut depth: fidl::encoding::Depth,
6405 ) -> fidl::Result<()> {
6406 decoder.debug_check_bounds::<Self>(offset);
6407 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6408 None => return Err(fidl::Error::NotNullable),
6409 Some(len) => len,
6410 };
6411 if len == 0 {
6413 return Ok(());
6414 };
6415 depth.increment()?;
6416 let envelope_size = 8;
6417 let bytes_len = len * envelope_size;
6418 let offset = decoder.out_of_line_offset(bytes_len)?;
6419 let mut _next_ordinal_to_read = 0;
6421 let mut next_offset = offset;
6422 let end_offset = offset + bytes_len;
6423 _next_ordinal_to_read += 1;
6424 if next_offset >= end_offset {
6425 return Ok(());
6426 }
6427
6428 while _next_ordinal_to_read < 1 {
6430 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6431 _next_ordinal_to_read += 1;
6432 next_offset += envelope_size;
6433 }
6434
6435 let next_out_of_line = decoder.next_out_of_line();
6436 let handles_before = decoder.remaining_handles();
6437 if let Some((inlined, num_bytes, num_handles)) =
6438 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6439 {
6440 let member_inline_size =
6441 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6442 if inlined != (member_inline_size <= 4) {
6443 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6444 }
6445 let inner_offset;
6446 let mut inner_depth = depth.clone();
6447 if inlined {
6448 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6449 inner_offset = next_offset;
6450 } else {
6451 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6452 inner_depth.increment()?;
6453 }
6454 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
6455 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
6456 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6457 {
6458 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6459 }
6460 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6461 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6462 }
6463 }
6464
6465 next_offset += envelope_size;
6466 _next_ordinal_to_read += 1;
6467 if next_offset >= end_offset {
6468 return Ok(());
6469 }
6470
6471 while _next_ordinal_to_read < 2 {
6473 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6474 _next_ordinal_to_read += 1;
6475 next_offset += envelope_size;
6476 }
6477
6478 let next_out_of_line = decoder.next_out_of_line();
6479 let handles_before = decoder.remaining_handles();
6480 if let Some((inlined, num_bytes, num_handles)) =
6481 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6482 {
6483 let member_inline_size =
6484 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6485 if inlined != (member_inline_size <= 4) {
6486 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6487 }
6488 let inner_offset;
6489 let mut inner_depth = depth.clone();
6490 if inlined {
6491 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6492 inner_offset = next_offset;
6493 } else {
6494 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6495 inner_depth.increment()?;
6496 }
6497 let val_ref =
6498 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
6499 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
6500 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6501 {
6502 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6503 }
6504 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6505 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6506 }
6507 }
6508
6509 next_offset += envelope_size;
6510 _next_ordinal_to_read += 1;
6511 if next_offset >= end_offset {
6512 return Ok(());
6513 }
6514
6515 while _next_ordinal_to_read < 3 {
6517 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6518 _next_ordinal_to_read += 1;
6519 next_offset += envelope_size;
6520 }
6521
6522 let next_out_of_line = decoder.next_out_of_line();
6523 let handles_before = decoder.remaining_handles();
6524 if let Some((inlined, num_bytes, num_handles)) =
6525 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6526 {
6527 let member_inline_size =
6528 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6529 if inlined != (member_inline_size <= 4) {
6530 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6531 }
6532 let inner_offset;
6533 let mut inner_depth = depth.clone();
6534 if inlined {
6535 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6536 inner_offset = next_offset;
6537 } else {
6538 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6539 inner_depth.increment()?;
6540 }
6541 let val_ref = self.perform_probe.get_or_insert_with(|| fidl::new_empty!(bool, D));
6542 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6543 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6544 {
6545 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6546 }
6547 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6548 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6549 }
6550 }
6551
6552 next_offset += envelope_size;
6553
6554 while next_offset < end_offset {
6556 _next_ordinal_to_read += 1;
6557 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6558 next_offset += envelope_size;
6559 }
6560
6561 Ok(())
6562 }
6563 }
6564
6565 impl ServiceInstanceResolutionOptions {
6566 #[inline(always)]
6567 fn max_ordinal_present(&self) -> u64 {
6568 if let Some(_) = self.exclude_local_proxies {
6569 return 4;
6570 }
6571 if let Some(_) = self.exclude_local {
6572 return 3;
6573 }
6574 if let Some(_) = self.ip_versions {
6575 return 2;
6576 }
6577 if let Some(_) = self.media {
6578 return 1;
6579 }
6580 0
6581 }
6582 }
6583
6584 impl fidl::encoding::ValueTypeMarker for ServiceInstanceResolutionOptions {
6585 type Borrowed<'a> = &'a Self;
6586 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6587 value
6588 }
6589 }
6590
6591 unsafe impl fidl::encoding::TypeMarker for ServiceInstanceResolutionOptions {
6592 type Owned = Self;
6593
6594 #[inline(always)]
6595 fn inline_align(_context: fidl::encoding::Context) -> usize {
6596 8
6597 }
6598
6599 #[inline(always)]
6600 fn inline_size(_context: fidl::encoding::Context) -> usize {
6601 16
6602 }
6603 }
6604
6605 unsafe impl<D: fidl::encoding::ResourceDialect>
6606 fidl::encoding::Encode<ServiceInstanceResolutionOptions, D>
6607 for &ServiceInstanceResolutionOptions
6608 {
6609 unsafe fn encode(
6610 self,
6611 encoder: &mut fidl::encoding::Encoder<'_, D>,
6612 offset: usize,
6613 mut depth: fidl::encoding::Depth,
6614 ) -> fidl::Result<()> {
6615 encoder.debug_check_bounds::<ServiceInstanceResolutionOptions>(offset);
6616 let max_ordinal: u64 = self.max_ordinal_present();
6618 encoder.write_num(max_ordinal, offset);
6619 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6620 if max_ordinal == 0 {
6622 return Ok(());
6623 }
6624 depth.increment()?;
6625 let envelope_size = 8;
6626 let bytes_len = max_ordinal as usize * envelope_size;
6627 #[allow(unused_variables)]
6628 let offset = encoder.out_of_line_offset(bytes_len);
6629 let mut _prev_end_offset: usize = 0;
6630 if 1 > max_ordinal {
6631 return Ok(());
6632 }
6633
6634 let cur_offset: usize = (1 - 1) * envelope_size;
6637
6638 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6640
6641 fidl::encoding::encode_in_envelope_optional::<Media, D>(
6646 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
6647 encoder,
6648 offset + cur_offset,
6649 depth,
6650 )?;
6651
6652 _prev_end_offset = cur_offset + envelope_size;
6653 if 2 > max_ordinal {
6654 return Ok(());
6655 }
6656
6657 let cur_offset: usize = (2 - 1) * envelope_size;
6660
6661 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6663
6664 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
6669 self.ip_versions
6670 .as_ref()
6671 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
6672 encoder,
6673 offset + cur_offset,
6674 depth,
6675 )?;
6676
6677 _prev_end_offset = cur_offset + envelope_size;
6678 if 3 > max_ordinal {
6679 return Ok(());
6680 }
6681
6682 let cur_offset: usize = (3 - 1) * envelope_size;
6685
6686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6688
6689 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6694 self.exclude_local.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6695 encoder,
6696 offset + cur_offset,
6697 depth,
6698 )?;
6699
6700 _prev_end_offset = cur_offset + envelope_size;
6701 if 4 > max_ordinal {
6702 return Ok(());
6703 }
6704
6705 let cur_offset: usize = (4 - 1) * envelope_size;
6708
6709 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6711
6712 fidl::encoding::encode_in_envelope_optional::<bool, D>(
6717 self.exclude_local_proxies
6718 .as_ref()
6719 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
6720 encoder,
6721 offset + cur_offset,
6722 depth,
6723 )?;
6724
6725 _prev_end_offset = cur_offset + envelope_size;
6726
6727 Ok(())
6728 }
6729 }
6730
6731 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6732 for ServiceInstanceResolutionOptions
6733 {
6734 #[inline(always)]
6735 fn new_empty() -> Self {
6736 Self::default()
6737 }
6738
6739 unsafe fn decode(
6740 &mut self,
6741 decoder: &mut fidl::encoding::Decoder<'_, D>,
6742 offset: usize,
6743 mut depth: fidl::encoding::Depth,
6744 ) -> fidl::Result<()> {
6745 decoder.debug_check_bounds::<Self>(offset);
6746 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6747 None => return Err(fidl::Error::NotNullable),
6748 Some(len) => len,
6749 };
6750 if len == 0 {
6752 return Ok(());
6753 };
6754 depth.increment()?;
6755 let envelope_size = 8;
6756 let bytes_len = len * envelope_size;
6757 let offset = decoder.out_of_line_offset(bytes_len)?;
6758 let mut _next_ordinal_to_read = 0;
6760 let mut next_offset = offset;
6761 let end_offset = offset + bytes_len;
6762 _next_ordinal_to_read += 1;
6763 if next_offset >= end_offset {
6764 return Ok(());
6765 }
6766
6767 while _next_ordinal_to_read < 1 {
6769 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6770 _next_ordinal_to_read += 1;
6771 next_offset += envelope_size;
6772 }
6773
6774 let next_out_of_line = decoder.next_out_of_line();
6775 let handles_before = decoder.remaining_handles();
6776 if let Some((inlined, num_bytes, num_handles)) =
6777 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6778 {
6779 let member_inline_size =
6780 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6781 if inlined != (member_inline_size <= 4) {
6782 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6783 }
6784 let inner_offset;
6785 let mut inner_depth = depth.clone();
6786 if inlined {
6787 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6788 inner_offset = next_offset;
6789 } else {
6790 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6791 inner_depth.increment()?;
6792 }
6793 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
6794 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
6795 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6796 {
6797 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6798 }
6799 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6800 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6801 }
6802 }
6803
6804 next_offset += envelope_size;
6805 _next_ordinal_to_read += 1;
6806 if next_offset >= end_offset {
6807 return Ok(());
6808 }
6809
6810 while _next_ordinal_to_read < 2 {
6812 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6813 _next_ordinal_to_read += 1;
6814 next_offset += envelope_size;
6815 }
6816
6817 let next_out_of_line = decoder.next_out_of_line();
6818 let handles_before = decoder.remaining_handles();
6819 if let Some((inlined, num_bytes, num_handles)) =
6820 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6821 {
6822 let member_inline_size =
6823 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6824 if inlined != (member_inline_size <= 4) {
6825 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6826 }
6827 let inner_offset;
6828 let mut inner_depth = depth.clone();
6829 if inlined {
6830 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6831 inner_offset = next_offset;
6832 } else {
6833 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6834 inner_depth.increment()?;
6835 }
6836 let val_ref =
6837 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
6838 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
6839 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6840 {
6841 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6842 }
6843 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6844 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6845 }
6846 }
6847
6848 next_offset += envelope_size;
6849 _next_ordinal_to_read += 1;
6850 if next_offset >= end_offset {
6851 return Ok(());
6852 }
6853
6854 while _next_ordinal_to_read < 3 {
6856 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6857 _next_ordinal_to_read += 1;
6858 next_offset += envelope_size;
6859 }
6860
6861 let next_out_of_line = decoder.next_out_of_line();
6862 let handles_before = decoder.remaining_handles();
6863 if let Some((inlined, num_bytes, num_handles)) =
6864 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6865 {
6866 let member_inline_size =
6867 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6868 if inlined != (member_inline_size <= 4) {
6869 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6870 }
6871 let inner_offset;
6872 let mut inner_depth = depth.clone();
6873 if inlined {
6874 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6875 inner_offset = next_offset;
6876 } else {
6877 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6878 inner_depth.increment()?;
6879 }
6880 let val_ref = self.exclude_local.get_or_insert_with(|| fidl::new_empty!(bool, D));
6881 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6882 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6883 {
6884 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6885 }
6886 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6887 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6888 }
6889 }
6890
6891 next_offset += envelope_size;
6892 _next_ordinal_to_read += 1;
6893 if next_offset >= end_offset {
6894 return Ok(());
6895 }
6896
6897 while _next_ordinal_to_read < 4 {
6899 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6900 _next_ordinal_to_read += 1;
6901 next_offset += envelope_size;
6902 }
6903
6904 let next_out_of_line = decoder.next_out_of_line();
6905 let handles_before = decoder.remaining_handles();
6906 if let Some((inlined, num_bytes, num_handles)) =
6907 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6908 {
6909 let member_inline_size =
6910 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6911 if inlined != (member_inline_size <= 4) {
6912 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6913 }
6914 let inner_offset;
6915 let mut inner_depth = depth.clone();
6916 if inlined {
6917 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6918 inner_offset = next_offset;
6919 } else {
6920 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6921 inner_depth.increment()?;
6922 }
6923 let val_ref =
6924 self.exclude_local_proxies.get_or_insert_with(|| fidl::new_empty!(bool, D));
6925 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
6926 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6927 {
6928 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6929 }
6930 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6931 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6932 }
6933 }
6934
6935 next_offset += envelope_size;
6936
6937 while next_offset < end_offset {
6939 _next_ordinal_to_read += 1;
6940 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6941 next_offset += envelope_size;
6942 }
6943
6944 Ok(())
6945 }
6946 }
6947
6948 impl ServiceSubscriptionOptions {
6949 #[inline(always)]
6950 fn max_ordinal_present(&self) -> u64 {
6951 if let Some(_) = self.exclude_local_proxies {
6952 return 4;
6953 }
6954 if let Some(_) = self.exclude_local {
6955 return 3;
6956 }
6957 if let Some(_) = self.ip_versions {
6958 return 2;
6959 }
6960 if let Some(_) = self.media {
6961 return 1;
6962 }
6963 0
6964 }
6965 }
6966
6967 impl fidl::encoding::ValueTypeMarker for ServiceSubscriptionOptions {
6968 type Borrowed<'a> = &'a Self;
6969 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6970 value
6971 }
6972 }
6973
6974 unsafe impl fidl::encoding::TypeMarker for ServiceSubscriptionOptions {
6975 type Owned = Self;
6976
6977 #[inline(always)]
6978 fn inline_align(_context: fidl::encoding::Context) -> usize {
6979 8
6980 }
6981
6982 #[inline(always)]
6983 fn inline_size(_context: fidl::encoding::Context) -> usize {
6984 16
6985 }
6986 }
6987
6988 unsafe impl<D: fidl::encoding::ResourceDialect>
6989 fidl::encoding::Encode<ServiceSubscriptionOptions, D> for &ServiceSubscriptionOptions
6990 {
6991 unsafe fn encode(
6992 self,
6993 encoder: &mut fidl::encoding::Encoder<'_, D>,
6994 offset: usize,
6995 mut depth: fidl::encoding::Depth,
6996 ) -> fidl::Result<()> {
6997 encoder.debug_check_bounds::<ServiceSubscriptionOptions>(offset);
6998 let max_ordinal: u64 = self.max_ordinal_present();
7000 encoder.write_num(max_ordinal, offset);
7001 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7002 if max_ordinal == 0 {
7004 return Ok(());
7005 }
7006 depth.increment()?;
7007 let envelope_size = 8;
7008 let bytes_len = max_ordinal as usize * envelope_size;
7009 #[allow(unused_variables)]
7010 let offset = encoder.out_of_line_offset(bytes_len);
7011 let mut _prev_end_offset: usize = 0;
7012 if 1 > max_ordinal {
7013 return Ok(());
7014 }
7015
7016 let cur_offset: usize = (1 - 1) * envelope_size;
7019
7020 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7022
7023 fidl::encoding::encode_in_envelope_optional::<Media, D>(
7028 self.media.as_ref().map(<Media as fidl::encoding::ValueTypeMarker>::borrow),
7029 encoder,
7030 offset + cur_offset,
7031 depth,
7032 )?;
7033
7034 _prev_end_offset = cur_offset + envelope_size;
7035 if 2 > max_ordinal {
7036 return Ok(());
7037 }
7038
7039 let cur_offset: usize = (2 - 1) * envelope_size;
7042
7043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7045
7046 fidl::encoding::encode_in_envelope_optional::<IpVersions, D>(
7051 self.ip_versions
7052 .as_ref()
7053 .map(<IpVersions as fidl::encoding::ValueTypeMarker>::borrow),
7054 encoder,
7055 offset + cur_offset,
7056 depth,
7057 )?;
7058
7059 _prev_end_offset = cur_offset + envelope_size;
7060 if 3 > max_ordinal {
7061 return Ok(());
7062 }
7063
7064 let cur_offset: usize = (3 - 1) * envelope_size;
7067
7068 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7070
7071 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7076 self.exclude_local.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7077 encoder,
7078 offset + cur_offset,
7079 depth,
7080 )?;
7081
7082 _prev_end_offset = cur_offset + envelope_size;
7083 if 4 > max_ordinal {
7084 return Ok(());
7085 }
7086
7087 let cur_offset: usize = (4 - 1) * envelope_size;
7090
7091 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7093
7094 fidl::encoding::encode_in_envelope_optional::<bool, D>(
7099 self.exclude_local_proxies
7100 .as_ref()
7101 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
7102 encoder,
7103 offset + cur_offset,
7104 depth,
7105 )?;
7106
7107 _prev_end_offset = cur_offset + envelope_size;
7108
7109 Ok(())
7110 }
7111 }
7112
7113 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7114 for ServiceSubscriptionOptions
7115 {
7116 #[inline(always)]
7117 fn new_empty() -> Self {
7118 Self::default()
7119 }
7120
7121 unsafe fn decode(
7122 &mut self,
7123 decoder: &mut fidl::encoding::Decoder<'_, D>,
7124 offset: usize,
7125 mut depth: fidl::encoding::Depth,
7126 ) -> fidl::Result<()> {
7127 decoder.debug_check_bounds::<Self>(offset);
7128 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7129 None => return Err(fidl::Error::NotNullable),
7130 Some(len) => len,
7131 };
7132 if len == 0 {
7134 return Ok(());
7135 };
7136 depth.increment()?;
7137 let envelope_size = 8;
7138 let bytes_len = len * envelope_size;
7139 let offset = decoder.out_of_line_offset(bytes_len)?;
7140 let mut _next_ordinal_to_read = 0;
7142 let mut next_offset = offset;
7143 let end_offset = offset + bytes_len;
7144 _next_ordinal_to_read += 1;
7145 if next_offset >= end_offset {
7146 return Ok(());
7147 }
7148
7149 while _next_ordinal_to_read < 1 {
7151 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7152 _next_ordinal_to_read += 1;
7153 next_offset += envelope_size;
7154 }
7155
7156 let next_out_of_line = decoder.next_out_of_line();
7157 let handles_before = decoder.remaining_handles();
7158 if let Some((inlined, num_bytes, num_handles)) =
7159 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7160 {
7161 let member_inline_size =
7162 <Media as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7163 if inlined != (member_inline_size <= 4) {
7164 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7165 }
7166 let inner_offset;
7167 let mut inner_depth = depth.clone();
7168 if inlined {
7169 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7170 inner_offset = next_offset;
7171 } else {
7172 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7173 inner_depth.increment()?;
7174 }
7175 let val_ref = self.media.get_or_insert_with(|| fidl::new_empty!(Media, D));
7176 fidl::decode!(Media, D, val_ref, decoder, inner_offset, inner_depth)?;
7177 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7178 {
7179 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7180 }
7181 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7182 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7183 }
7184 }
7185
7186 next_offset += envelope_size;
7187 _next_ordinal_to_read += 1;
7188 if next_offset >= end_offset {
7189 return Ok(());
7190 }
7191
7192 while _next_ordinal_to_read < 2 {
7194 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7195 _next_ordinal_to_read += 1;
7196 next_offset += envelope_size;
7197 }
7198
7199 let next_out_of_line = decoder.next_out_of_line();
7200 let handles_before = decoder.remaining_handles();
7201 if let Some((inlined, num_bytes, num_handles)) =
7202 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7203 {
7204 let member_inline_size =
7205 <IpVersions as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7206 if inlined != (member_inline_size <= 4) {
7207 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7208 }
7209 let inner_offset;
7210 let mut inner_depth = depth.clone();
7211 if inlined {
7212 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7213 inner_offset = next_offset;
7214 } else {
7215 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7216 inner_depth.increment()?;
7217 }
7218 let val_ref =
7219 self.ip_versions.get_or_insert_with(|| fidl::new_empty!(IpVersions, D));
7220 fidl::decode!(IpVersions, D, val_ref, decoder, inner_offset, inner_depth)?;
7221 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7222 {
7223 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7224 }
7225 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7226 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7227 }
7228 }
7229
7230 next_offset += envelope_size;
7231 _next_ordinal_to_read += 1;
7232 if next_offset >= end_offset {
7233 return Ok(());
7234 }
7235
7236 while _next_ordinal_to_read < 3 {
7238 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7239 _next_ordinal_to_read += 1;
7240 next_offset += envelope_size;
7241 }
7242
7243 let next_out_of_line = decoder.next_out_of_line();
7244 let handles_before = decoder.remaining_handles();
7245 if let Some((inlined, num_bytes, num_handles)) =
7246 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7247 {
7248 let member_inline_size =
7249 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7250 if inlined != (member_inline_size <= 4) {
7251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7252 }
7253 let inner_offset;
7254 let mut inner_depth = depth.clone();
7255 if inlined {
7256 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7257 inner_offset = next_offset;
7258 } else {
7259 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7260 inner_depth.increment()?;
7261 }
7262 let val_ref = self.exclude_local.get_or_insert_with(|| fidl::new_empty!(bool, D));
7263 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7264 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7265 {
7266 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7267 }
7268 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7269 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7270 }
7271 }
7272
7273 next_offset += envelope_size;
7274 _next_ordinal_to_read += 1;
7275 if next_offset >= end_offset {
7276 return Ok(());
7277 }
7278
7279 while _next_ordinal_to_read < 4 {
7281 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7282 _next_ordinal_to_read += 1;
7283 next_offset += envelope_size;
7284 }
7285
7286 let next_out_of_line = decoder.next_out_of_line();
7287 let handles_before = decoder.remaining_handles();
7288 if let Some((inlined, num_bytes, num_handles)) =
7289 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7290 {
7291 let member_inline_size =
7292 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7293 if inlined != (member_inline_size <= 4) {
7294 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7295 }
7296 let inner_offset;
7297 let mut inner_depth = depth.clone();
7298 if inlined {
7299 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7300 inner_offset = next_offset;
7301 } else {
7302 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7303 inner_depth.increment()?;
7304 }
7305 let val_ref =
7306 self.exclude_local_proxies.get_or_insert_with(|| fidl::new_empty!(bool, D));
7307 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
7308 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7309 {
7310 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7311 }
7312 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7313 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7314 }
7315 }
7316
7317 next_offset += envelope_size;
7318
7319 while next_offset < end_offset {
7321 _next_ordinal_to_read += 1;
7322 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7323 next_offset += envelope_size;
7324 }
7325
7326 Ok(())
7327 }
7328 }
7329}