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 ConfigKey = String;
13
14pub type ChildName = String;
15
16pub type DictionaryPath = String;
24
25pub type Name = String;
26
27pub type UrlScheme = String;
28
29pub const CONFIG_KEY_MAX_SIZE: u32 = 64;
31
32pub const MAX_CHILD_NAME_LENGTH: u32 = 1024;
33
34pub const MAX_MONIKER_LENGTH: u32 = 4096;
35
36pub const MAX_NAME_LENGTH: u32 = 100;
37
38pub const MAX_NUM_EVENT_STREAM_SUBSCRIPTIONS: u64 = 100;
40
41pub const MAX_PATH_LENGTH: u32 = 1024;
42
43pub const MAX_URL_SCHEME_LENGTH: u32 = 100;
44
45bitflags! {
46 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
48 pub struct ConfigMutability: u32 {
49 const PARENT = 1;
51 }
52}
53
54impl ConfigMutability {
55 #[inline(always)]
56 pub fn from_bits_allow_unknown(bits: u32) -> Self {
57 Self::from_bits_retain(bits)
58 }
59
60 #[inline(always)]
61 pub fn has_unknown_bits(&self) -> bool {
62 self.get_unknown_bits() != 0
63 }
64
65 #[inline(always)]
66 pub fn get_unknown_bits(&self) -> u32 {
67 self.bits() & !Self::all().bits()
68 }
69}
70
71#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
73#[repr(u32)]
74pub enum AllowedOffers {
75 StaticOnly = 1,
81 StaticAndDynamic = 2,
86}
87
88impl AllowedOffers {
89 #[inline]
90 pub fn from_primitive(prim: u32) -> Option<Self> {
91 match prim {
92 1 => Some(Self::StaticOnly),
93 2 => Some(Self::StaticAndDynamic),
94 _ => None,
95 }
96 }
97
98 #[inline]
99 pub const fn into_primitive(self) -> u32 {
100 self as u32
101 }
102}
103
104#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
112#[repr(u32)]
113pub enum Availability {
114 Required = 1,
117 Optional = 2,
124 SameAsTarget = 3,
132 Transitional = 4,
138}
139
140impl Availability {
141 #[inline]
142 pub fn from_primitive(prim: u32) -> Option<Self> {
143 match prim {
144 1 => Some(Self::Required),
145 2 => Some(Self::Optional),
146 3 => Some(Self::SameAsTarget),
147 4 => Some(Self::Transitional),
148 _ => None,
149 }
150 }
151
152 #[inline]
153 pub const fn into_primitive(self) -> u32 {
154 self as u32
155 }
156}
157
158#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
159pub enum ConfigTypeLayout {
160 Bool,
161 Uint8,
162 Uint16,
163 Uint32,
164 Uint64,
165 Int8,
166 Int16,
167 Int32,
168 Int64,
169 String,
170 Vector,
171 #[doc(hidden)]
172 __SourceBreaking {
173 unknown_ordinal: u32,
174 },
175}
176
177#[macro_export]
179macro_rules! ConfigTypeLayoutUnknown {
180 () => {
181 _
182 };
183}
184
185impl ConfigTypeLayout {
186 #[inline]
187 pub fn from_primitive(prim: u32) -> Option<Self> {
188 match prim {
189 1 => Some(Self::Bool),
190 2 => Some(Self::Uint8),
191 3 => Some(Self::Uint16),
192 4 => Some(Self::Uint32),
193 5 => Some(Self::Uint64),
194 6 => Some(Self::Int8),
195 7 => Some(Self::Int16),
196 8 => Some(Self::Int32),
197 9 => Some(Self::Int64),
198 10 => Some(Self::String),
199 11 => Some(Self::Vector),
200 _ => None,
201 }
202 }
203
204 #[inline]
205 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
206 match prim {
207 1 => Self::Bool,
208 2 => Self::Uint8,
209 3 => Self::Uint16,
210 4 => Self::Uint32,
211 5 => Self::Uint64,
212 6 => Self::Int8,
213 7 => Self::Int16,
214 8 => Self::Int32,
215 9 => Self::Int64,
216 10 => Self::String,
217 11 => Self::Vector,
218 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
219 }
220 }
221
222 #[inline]
223 pub fn unknown() -> Self {
224 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
225 }
226
227 #[inline]
228 pub const fn into_primitive(self) -> u32 {
229 match self {
230 Self::Bool => 1,
231 Self::Uint8 => 2,
232 Self::Uint16 => 3,
233 Self::Uint32 => 4,
234 Self::Uint64 => 5,
235 Self::Int8 => 6,
236 Self::Int16 => 7,
237 Self::Int32 => 8,
238 Self::Int64 => 9,
239 Self::String => 10,
240 Self::Vector => 11,
241 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
242 }
243 }
244
245 #[inline]
246 pub fn is_unknown(&self) -> bool {
247 match self {
248 Self::__SourceBreaking { unknown_ordinal: _ } => true,
249 _ => false,
250 }
251 }
252}
253
254#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
258pub enum DeliveryType {
259 Immediate,
262 OnReadable,
267 #[doc(hidden)]
268 __SourceBreaking { unknown_ordinal: u32 },
269}
270
271#[macro_export]
273macro_rules! DeliveryTypeUnknown {
274 () => {
275 _
276 };
277}
278
279impl DeliveryType {
280 #[inline]
281 pub fn from_primitive(prim: u32) -> Option<Self> {
282 match prim {
283 0 => Some(Self::Immediate),
284 1 => Some(Self::OnReadable),
285 _ => None,
286 }
287 }
288
289 #[inline]
290 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
291 match prim {
292 0 => Self::Immediate,
293 1 => Self::OnReadable,
294 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
295 }
296 }
297
298 #[inline]
299 pub fn unknown() -> Self {
300 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
301 }
302
303 #[inline]
304 pub const fn into_primitive(self) -> u32 {
305 match self {
306 Self::Immediate => 0,
307 Self::OnReadable => 1,
308 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
309 }
310 }
311
312 #[inline]
313 pub fn is_unknown(&self) -> bool {
314 match self {
315 Self::__SourceBreaking { unknown_ordinal: _ } => true,
316 _ => false,
317 }
318 }
319}
320
321#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
323#[repr(u32)]
324pub enum DependencyType {
325 Strong = 1,
327 Weak = 2,
331}
332
333impl DependencyType {
334 #[inline]
335 pub fn from_primitive(prim: u32) -> Option<Self> {
336 match prim {
337 1 => Some(Self::Strong),
338 2 => Some(Self::Weak),
339 _ => None,
340 }
341 }
342
343 #[inline]
344 pub const fn into_primitive(self) -> u32 {
345 self as u32
346 }
347}
348
349#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
351#[repr(u32)]
352pub enum Durability {
353 Transient = 2,
356 SingleRun = 3,
359}
360
361impl Durability {
362 #[inline]
363 pub fn from_primitive(prim: u32) -> Option<Self> {
364 match prim {
365 2 => Some(Self::Transient),
366 3 => Some(Self::SingleRun),
367 _ => None,
368 }
369 }
370
371 #[inline]
372 pub const fn into_primitive(self) -> u32 {
373 self as u32
374 }
375}
376
377#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
379#[repr(u32)]
380pub enum EnvironmentExtends {
381 None = 0,
383 Realm = 1,
386}
387
388impl EnvironmentExtends {
389 #[inline]
390 pub fn from_primitive(prim: u32) -> Option<Self> {
391 match prim {
392 0 => Some(Self::None),
393 1 => Some(Self::Realm),
394 _ => None,
395 }
396 }
397
398 #[inline]
399 pub const fn into_primitive(self) -> u32 {
400 self as u32
401 }
402}
403
404#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
407#[repr(u32)]
408pub enum OnTerminate {
409 None = 0,
411 Reboot = 1,
416}
417
418impl OnTerminate {
419 #[inline]
420 pub fn from_primitive(prim: u32) -> Option<Self> {
421 match prim {
422 0 => Some(Self::None),
423 1 => Some(Self::Reboot),
424 _ => None,
425 }
426 }
427
428 #[inline]
429 pub const fn into_primitive(self) -> u32 {
430 self as u32
431 }
432}
433
434#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
436#[repr(u32)]
437pub enum StartupMode {
438 Lazy = 0,
441 Eager = 1,
444}
445
446impl StartupMode {
447 #[inline]
448 pub fn from_primitive(prim: u32) -> Option<Self> {
449 match prim {
450 0 => Some(Self::Lazy),
451 1 => Some(Self::Eager),
452 _ => None,
453 }
454 }
455
456 #[inline]
457 pub const fn into_primitive(self) -> u32 {
458 self as u32
459 }
460}
461
462#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
465#[repr(u32)]
466pub enum StorageId {
467 StaticInstanceId = 1,
471 StaticInstanceIdOrMoniker = 2,
476}
477
478impl StorageId {
479 #[inline]
480 pub fn from_primitive(prim: u32) -> Option<Self> {
481 match prim {
482 1 => Some(Self::StaticInstanceId),
483 2 => Some(Self::StaticInstanceIdOrMoniker),
484 _ => None,
485 }
486 }
487
488 #[inline]
489 pub const fn into_primitive(self) -> u32 {
490 self as u32
491 }
492}
493
494#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
496pub struct CapabilityRef {
497 pub name: String,
498}
499
500impl fidl::Persistable for CapabilityRef {}
501
502#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
504pub struct ChildRef {
505 pub name: String,
508 pub collection: Option<String>,
512}
513
514impl fidl::Persistable for ChildRef {}
515
516#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
518pub struct CollectionRef {
519 pub name: String,
520}
521
522impl fidl::Persistable for CollectionRef {}
523
524#[derive(Clone, Debug, PartialEq)]
525pub struct ConfigType {
526 pub layout: ConfigTypeLayout,
527 pub parameters: Option<Vec<LayoutParameter>>,
528 pub constraints: Vec<LayoutConstraint>,
529}
530
531impl fidl::Persistable for ConfigType {}
532
533#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
535pub struct DebugRef;
536
537impl fidl::Persistable for DebugRef {}
538
539#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
541pub struct EnvironmentRef;
542
543impl fidl::Persistable for EnvironmentRef {}
544
545#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
547pub struct FrameworkRef;
548
549impl fidl::Persistable for FrameworkRef {}
550
551#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
554pub struct NameMapping {
555 pub source_name: String,
557 pub target_name: String,
559}
560
561impl fidl::Persistable for NameMapping {}
562
563#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
565pub struct ParentRef;
566
567impl fidl::Persistable for ParentRef {}
568
569#[derive(Clone, Debug, PartialEq)]
571pub struct ResolvedConfig {
572 pub fields: Vec<ResolvedConfigField>,
573 pub checksum: ConfigChecksum,
574}
575
576impl fidl::Persistable for ResolvedConfig {}
577
578#[derive(Clone, Debug, PartialEq)]
579pub struct ResolvedConfigField {
580 pub key: String,
581 pub value: ConfigValue,
582}
583
584impl fidl::Persistable for ResolvedConfigField {}
585
586#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
588pub struct SelfRef;
589
590impl fidl::Persistable for SelfRef {}
591
592#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
594pub struct VoidRef;
595
596impl fidl::Persistable for VoidRef {}
597
598#[derive(Clone, Debug, Default, PartialEq)]
600pub struct Child {
601 pub name: Option<String>,
606 pub url: Option<String>,
610 pub startup: Option<StartupMode>,
614 pub environment: Option<String>,
621 pub on_terminate: Option<OnTerminate>,
624 pub config_overrides: Option<Vec<ConfigOverride>>,
631 #[doc(hidden)]
632 pub __source_breaking: fidl::marker::SourceBreaking,
633}
634
635impl fidl::Persistable for Child {}
636
637#[derive(Clone, Debug, Default, PartialEq)]
639pub struct Collection {
640 pub name: Option<String>,
643 pub durability: Option<Durability>,
645 pub environment: Option<String>,
653 pub allowed_offers: Option<AllowedOffers>,
659 pub allow_long_names: Option<bool>,
665 pub persistent_storage: Option<bool>,
679 #[doc(hidden)]
680 pub __source_breaking: fidl::marker::SourceBreaking,
681}
682
683impl fidl::Persistable for Collection {}
684
685#[derive(Clone, Debug, Default, PartialEq)]
691pub struct Component {
692 pub program: Option<Program>,
695 pub uses: Option<Vec<Use>>,
701 pub exposes: Option<Vec<Expose>>,
707 pub offers: Option<Vec<Offer>>,
713 pub capabilities: Option<Vec<Capability>>,
715 pub children: Option<Vec<Child>>,
718 pub collections: Option<Vec<Collection>>,
720 pub environments: Option<Vec<Environment>>,
724 pub facets: Option<fidl_fuchsia_data__common::Dictionary>,
726 pub config: Option<ConfigSchema>,
728 pub debug_info: Option<DebugInfo>,
730 #[doc(hidden)]
731 pub __source_breaking: fidl::marker::SourceBreaking,
732}
733
734impl fidl::Persistable for Component {}
735
736#[derive(Clone, Debug, Default, PartialEq)]
738pub struct ConfigField {
739 pub key: Option<String>,
742 pub type_: Option<ConfigType>,
745 pub mutability: Option<ConfigMutability>,
747 #[doc(hidden)]
748 pub __source_breaking: fidl::marker::SourceBreaking,
749}
750
751impl fidl::Persistable for ConfigField {}
752
753#[derive(Clone, Debug, Default, PartialEq)]
755pub struct ConfigOverride {
756 pub key: Option<String>,
757 pub value: Option<ConfigValue>,
758 #[doc(hidden)]
759 pub __source_breaking: fidl::marker::SourceBreaking,
760}
761
762impl fidl::Persistable for ConfigOverride {}
763
764#[derive(Clone, Debug, Default, PartialEq)]
766pub struct ConfigSchema {
767 pub fields: Option<Vec<ConfigField>>,
769 pub checksum: Option<ConfigChecksum>,
771 pub value_source: Option<ConfigValueSource>,
773 #[doc(hidden)]
774 pub __source_breaking: fidl::marker::SourceBreaking,
775}
776
777impl fidl::Persistable for ConfigSchema {}
778
779#[derive(Clone, Debug, Default, PartialEq)]
780pub struct ConfigSourceCapabilities {
781 #[doc(hidden)]
782 pub __source_breaking: fidl::marker::SourceBreaking,
783}
784
785impl fidl::Persistable for ConfigSourceCapabilities {}
786
787#[derive(Clone, Debug, Default, PartialEq)]
790pub struct ConfigValueSpec {
791 pub value: Option<ConfigValue>,
792 #[doc(hidden)]
793 pub __source_breaking: fidl::marker::SourceBreaking,
794}
795
796impl fidl::Persistable for ConfigValueSpec {}
797
798#[derive(Clone, Debug, Default, PartialEq)]
800pub struct ConfigValuesData {
801 pub values: Option<Vec<ConfigValueSpec>>,
803 pub checksum: Option<ConfigChecksum>,
806 #[doc(hidden)]
807 pub __source_breaking: fidl::marker::SourceBreaking,
808}
809
810impl fidl::Persistable for ConfigValuesData {}
811
812#[derive(Clone, Debug, Default, PartialEq)]
819pub struct Configuration {
820 pub name: Option<String>,
822 pub value: Option<ConfigValue>,
824 #[doc(hidden)]
825 pub __source_breaking: fidl::marker::SourceBreaking,
826}
827
828impl fidl::Persistable for Configuration {}
829
830#[derive(Clone, Debug, Default, PartialEq)]
832pub struct DebugInfo {
833 pub manifest_sources: Option<Vec<String>>,
835 #[doc(hidden)]
836 pub __source_breaking: fidl::marker::SourceBreaking,
837}
838
839impl fidl::Persistable for DebugInfo {}
840
841#[derive(Clone, Debug, Default, PartialEq)]
848pub struct DebugProtocolRegistration {
849 pub source: Option<Ref>,
852 pub source_name: Option<String>,
854 pub target_name: Option<String>,
856 #[doc(hidden)]
857 pub __source_breaking: fidl::marker::SourceBreaking,
858}
859
860impl fidl::Persistable for DebugProtocolRegistration {}
861
862#[derive(Clone, Debug, Default, PartialEq)]
864pub struct Dictionary {
865 pub name: Option<String>,
869 pub source: Option<Ref>,
872 pub source_dictionary: Option<String>,
877 pub source_path: Option<String>,
884 #[doc(hidden)]
885 pub __source_breaking: fidl::marker::SourceBreaking,
886}
887
888impl fidl::Persistable for Dictionary {}
889
890#[derive(Clone, Debug, Default, PartialEq)]
895pub struct Directory {
896 pub name: Option<String>,
898 pub source_path: Option<String>,
903 pub rights: Option<fidl_fuchsia_io__common::Operations>,
906 #[doc(hidden)]
907 pub __source_breaking: fidl::marker::SourceBreaking,
908}
909
910impl fidl::Persistable for Directory {}
911
912#[derive(Clone, Debug, Default, PartialEq)]
914pub struct Environment {
915 pub name: Option<String>,
917 pub extends: Option<EnvironmentExtends>,
920 pub runners: Option<Vec<RunnerRegistration>>,
925 pub resolvers: Option<Vec<ResolverRegistration>>,
931 pub debug_capabilities: Option<Vec<DebugRegistration>>,
939 pub stop_timeout_ms: Option<u32>,
943 #[doc(hidden)]
944 pub __source_breaking: fidl::marker::SourceBreaking,
945}
946
947impl fidl::Persistable for Environment {}
948
949#[derive(Clone, Debug, Default, PartialEq)]
955pub struct EventStream {
956 pub name: Option<String>,
960 #[doc(hidden)]
961 pub __source_breaking: fidl::marker::SourceBreaking,
962}
963
964impl fidl::Persistable for EventStream {}
965
966#[derive(Clone, Debug, Default, PartialEq)]
968pub struct EventSubscription {
969 pub event_name: Option<String>,
971 #[doc(hidden)]
972 pub __source_breaking: fidl::marker::SourceBreaking,
973}
974
975impl fidl::Persistable for EventSubscription {}
976
977#[derive(Clone, Debug, Default, PartialEq)]
980pub struct ExposeConfiguration {
981 pub source: Option<Ref>,
986 pub source_name: Option<String>,
989 pub target: Option<Ref>,
991 pub target_name: Option<String>,
993 pub availability: Option<Availability>,
996 pub source_dictionary: Option<String>,
1001 #[doc(hidden)]
1002 pub __source_breaking: fidl::marker::SourceBreaking,
1003}
1004
1005impl fidl::Persistable for ExposeConfiguration {}
1006
1007#[derive(Clone, Debug, Default, PartialEq)]
1013pub struct ExposeDictionary {
1014 pub source: Option<Ref>,
1019 pub source_name: Option<String>,
1022 pub target: Option<Ref>,
1025 pub target_name: Option<String>,
1027 pub availability: Option<Availability>,
1030 pub source_dictionary: Option<String>,
1039 #[doc(hidden)]
1040 pub __source_breaking: fidl::marker::SourceBreaking,
1041}
1042
1043impl fidl::Persistable for ExposeDictionary {}
1044
1045#[derive(Clone, Debug, Default, PartialEq)]
1048pub struct ExposeDirectory {
1049 pub source: Option<Ref>,
1054 pub source_name: Option<String>,
1057 pub target: Option<Ref>,
1060 pub target_name: Option<String>,
1062 pub rights: Option<fidl_fuchsia_io__common::Operations>,
1065 pub subdir: Option<String>,
1068 pub availability: Option<Availability>,
1071 pub source_dictionary: Option<String>,
1080 #[doc(hidden)]
1081 pub __source_breaking: fidl::marker::SourceBreaking,
1082}
1083
1084impl fidl::Persistable for ExposeDirectory {}
1085
1086#[derive(Clone, Debug, Default, PartialEq)]
1092pub struct ExposeProtocol {
1093 pub source: Option<Ref>,
1098 pub source_name: Option<String>,
1101 pub target: Option<Ref>,
1104 pub target_name: Option<String>,
1106 pub availability: Option<Availability>,
1109 pub source_dictionary: Option<String>,
1118 #[doc(hidden)]
1119 pub __source_breaking: fidl::marker::SourceBreaking,
1120}
1121
1122impl fidl::Persistable for ExposeProtocol {}
1123
1124#[derive(Clone, Debug, Default, PartialEq)]
1127pub struct ExposeResolver {
1128 pub source: Option<Ref>,
1131 pub source_name: Option<String>,
1134 pub target: Option<Ref>,
1136 pub target_name: Option<String>,
1138 pub source_dictionary: Option<String>,
1147 #[doc(hidden)]
1148 pub __source_breaking: fidl::marker::SourceBreaking,
1149}
1150
1151impl fidl::Persistable for ExposeResolver {}
1152
1153#[derive(Clone, Debug, Default, PartialEq)]
1156pub struct ExposeRunner {
1157 pub source: Option<Ref>,
1160 pub source_name: Option<String>,
1163 pub target: Option<Ref>,
1166 pub target_name: Option<String>,
1168 pub source_dictionary: Option<String>,
1177 #[doc(hidden)]
1178 pub __source_breaking: fidl::marker::SourceBreaking,
1179}
1180
1181impl fidl::Persistable for ExposeRunner {}
1182
1183#[derive(Clone, Debug, Default, PartialEq)]
1189pub struct ExposeService {
1190 pub source: Option<Ref>,
1195 pub source_name: Option<String>,
1198 pub target: Option<Ref>,
1201 pub target_name: Option<String>,
1203 pub availability: Option<Availability>,
1206 pub source_dictionary: Option<String>,
1211 #[doc(hidden)]
1212 pub __source_breaking: fidl::marker::SourceBreaking,
1213}
1214
1215impl fidl::Persistable for ExposeService {}
1216
1217#[derive(Clone, Debug, Default, PartialEq)]
1221pub struct OfferConfiguration {
1222 pub source: Option<Ref>,
1227 pub source_name: Option<String>,
1229 pub target: Option<Ref>,
1231 pub target_name: Option<String>,
1233 pub availability: Option<Availability>,
1240 pub source_dictionary: Option<String>,
1245 #[doc(hidden)]
1246 pub __source_breaking: fidl::marker::SourceBreaking,
1247}
1248
1249impl fidl::Persistable for OfferConfiguration {}
1250
1251#[derive(Clone, Debug, Default, PartialEq)]
1258pub struct OfferDictionary {
1259 pub source: Option<Ref>,
1264 pub source_name: Option<String>,
1266 pub target: Option<Ref>,
1269 pub target_name: Option<String>,
1271 pub dependency_type: Option<DependencyType>,
1275 pub availability: Option<Availability>,
1282 pub source_dictionary: Option<String>,
1287 #[doc(hidden)]
1288 pub __source_breaking: fidl::marker::SourceBreaking,
1289}
1290
1291impl fidl::Persistable for OfferDictionary {}
1292
1293#[derive(Clone, Debug, Default, PartialEq)]
1297pub struct OfferDirectory {
1298 pub source: Option<Ref>,
1303 pub source_name: Option<String>,
1305 pub target: Option<Ref>,
1308 pub target_name: Option<String>,
1310 pub rights: Option<fidl_fuchsia_io__common::Operations>,
1313 pub subdir: Option<String>,
1316 pub dependency_type: Option<DependencyType>,
1320 pub availability: Option<Availability>,
1327 pub source_dictionary: Option<String>,
1332 #[doc(hidden)]
1333 pub __source_breaking: fidl::marker::SourceBreaking,
1334}
1335
1336impl fidl::Persistable for OfferDirectory {}
1337
1338#[derive(Clone, Debug, Default, PartialEq)]
1340pub struct OfferEventStream {
1341 pub source: Option<Ref>,
1346 pub source_name: Option<String>,
1348 pub scope: Option<Vec<Ref>>,
1354 pub target: Option<Ref>,
1356 pub target_name: Option<String>,
1358 pub availability: Option<Availability>,
1365 #[doc(hidden)]
1366 pub __source_breaking: fidl::marker::SourceBreaking,
1367}
1368
1369impl fidl::Persistable for OfferEventStream {}
1370
1371#[derive(Clone, Debug, Default, PartialEq)]
1378pub struct OfferProtocol {
1379 pub source: Option<Ref>,
1384 pub source_name: Option<String>,
1386 pub target: Option<Ref>,
1389 pub target_name: Option<String>,
1391 pub dependency_type: Option<DependencyType>,
1395 pub availability: Option<Availability>,
1402 pub source_dictionary: Option<String>,
1407 #[doc(hidden)]
1408 pub __source_breaking: fidl::marker::SourceBreaking,
1409}
1410
1411impl fidl::Persistable for OfferProtocol {}
1412
1413#[derive(Clone, Debug, Default, PartialEq)]
1417pub struct OfferResolver {
1418 pub source: Option<Ref>,
1423 pub source_name: Option<String>,
1425 pub target: Option<Ref>,
1428 pub target_name: Option<String>,
1430 pub source_dictionary: Option<String>,
1435 #[doc(hidden)]
1436 pub __source_breaking: fidl::marker::SourceBreaking,
1437}
1438
1439impl fidl::Persistable for OfferResolver {}
1440
1441#[derive(Clone, Debug, Default, PartialEq)]
1445pub struct OfferRunner {
1446 pub source: Option<Ref>,
1451 pub source_name: Option<String>,
1453 pub target: Option<Ref>,
1456 pub target_name: Option<String>,
1458 pub source_dictionary: Option<String>,
1463 #[doc(hidden)]
1464 pub __source_breaking: fidl::marker::SourceBreaking,
1465}
1466
1467impl fidl::Persistable for OfferRunner {}
1468
1469#[derive(Clone, Debug, Default, PartialEq)]
1476pub struct OfferService {
1477 pub source: Option<Ref>,
1482 pub source_name: Option<String>,
1484 pub target: Option<Ref>,
1487 pub target_name: Option<String>,
1489 pub source_instance_filter: Option<Vec<String>>,
1494 pub renamed_instances: Option<Vec<NameMapping>>,
1506 pub availability: Option<Availability>,
1513 pub source_dictionary: Option<String>,
1518 pub dependency_type: Option<DependencyType>,
1522 #[doc(hidden)]
1523 pub __source_breaking: fidl::marker::SourceBreaking,
1524}
1525
1526impl fidl::Persistable for OfferService {}
1527
1528#[derive(Clone, Debug, Default, PartialEq)]
1532pub struct OfferStorage {
1533 pub source_name: Option<String>,
1535 pub source: Option<Ref>,
1540 pub target: Option<Ref>,
1543 pub target_name: Option<String>,
1545 pub availability: Option<Availability>,
1552 #[doc(hidden)]
1553 pub __source_breaking: fidl::marker::SourceBreaking,
1554}
1555
1556impl fidl::Persistable for OfferStorage {}
1557
1558#[derive(Clone, Debug, Default, PartialEq)]
1566pub struct Program {
1567 pub runner: Option<String>,
1572 pub info: Option<fidl_fuchsia_data__common::Dictionary>,
1583 #[doc(hidden)]
1584 pub __source_breaking: fidl::marker::SourceBreaking,
1585}
1586
1587impl fidl::Persistable for Program {}
1588
1589#[derive(Clone, Debug, Default, PartialEq)]
1594pub struct Protocol {
1595 pub name: Option<String>,
1597 pub source_path: Option<String>,
1602 pub delivery: Option<DeliveryType>,
1606 #[doc(hidden)]
1607 pub __source_breaking: fidl::marker::SourceBreaking,
1608}
1609
1610impl fidl::Persistable for Protocol {}
1611
1612#[derive(Clone, Debug, Default, PartialEq)]
1616pub struct Resolver {
1617 pub name: Option<String>,
1621 pub source_path: Option<String>,
1626 #[doc(hidden)]
1627 pub __source_breaking: fidl::marker::SourceBreaking,
1628}
1629
1630impl fidl::Persistable for Resolver {}
1631
1632#[derive(Clone, Debug, Default, PartialEq)]
1634pub struct ResolverRegistration {
1635 pub resolver: Option<String>,
1637 pub source: Option<Ref>,
1640 pub scheme: Option<String>,
1645 #[doc(hidden)]
1646 pub __source_breaking: fidl::marker::SourceBreaking,
1647}
1648
1649impl fidl::Persistable for ResolverRegistration {}
1650
1651#[derive(Clone, Debug, Default, PartialEq)]
1653pub struct Runner {
1654 pub name: Option<String>,
1658 pub source_path: Option<String>,
1663 #[doc(hidden)]
1664 pub __source_breaking: fidl::marker::SourceBreaking,
1665}
1666
1667impl fidl::Persistable for Runner {}
1668
1669#[derive(Clone, Debug, Default, PartialEq)]
1671pub struct RunnerRegistration {
1672 pub source_name: Option<String>,
1675 pub source: Option<Ref>,
1678 pub target_name: Option<String>,
1681 #[doc(hidden)]
1682 pub __source_breaking: fidl::marker::SourceBreaking,
1683}
1684
1685impl fidl::Persistable for RunnerRegistration {}
1686
1687#[derive(Clone, Debug, Default, PartialEq)]
1692pub struct Service {
1693 pub name: Option<String>,
1695 pub source_path: Option<String>,
1700 #[doc(hidden)]
1701 pub __source_breaking: fidl::marker::SourceBreaking,
1702}
1703
1704impl fidl::Persistable for Service {}
1705
1706#[derive(Clone, Debug, Default, PartialEq)]
1709pub struct Storage {
1710 pub name: Option<String>,
1712 pub source: Option<Ref>,
1715 pub backing_dir: Option<String>,
1718 pub subdir: Option<String>,
1721 pub storage_id: Option<StorageId>,
1725 #[doc(hidden)]
1726 pub __source_breaking: fidl::marker::SourceBreaking,
1727}
1728
1729impl fidl::Persistable for Storage {}
1730
1731#[derive(Clone, Debug, Default, PartialEq)]
1732pub struct UseConfiguration {
1733 pub source: Option<Ref>,
1736 pub source_name: Option<String>,
1739 pub target_name: Option<String>,
1743 pub availability: Option<Availability>,
1748 pub type_: Option<ConfigType>,
1751 pub default: Option<ConfigValue>,
1754 pub source_dictionary: Option<String>,
1759 #[doc(hidden)]
1760 pub __source_breaking: fidl::marker::SourceBreaking,
1761}
1762
1763impl fidl::Persistable for UseConfiguration {}
1764
1765#[derive(Clone, Debug, Default, PartialEq)]
1766pub struct UseDictionary {
1767 pub source: Option<Ref>,
1770 pub source_name: Option<String>,
1773 pub target_path: Option<String>,
1778 pub dependency_type: Option<DependencyType>,
1787 pub availability: Option<Availability>,
1792 pub source_dictionary: Option<String>,
1797 #[doc(hidden)]
1798 pub __source_breaking: fidl::marker::SourceBreaking,
1799}
1800
1801impl fidl::Persistable for UseDictionary {}
1802
1803#[derive(Clone, Debug, Default, PartialEq)]
1805pub struct UseDirectory {
1806 pub source: Option<Ref>,
1809 pub source_name: Option<String>,
1812 pub target_path: Option<String>,
1817 pub rights: Option<fidl_fuchsia_io__common::Operations>,
1819 pub subdir: Option<String>,
1822 pub dependency_type: Option<DependencyType>,
1831 pub availability: Option<Availability>,
1836 pub source_dictionary: Option<String>,
1841 #[doc(hidden)]
1842 pub __source_breaking: fidl::marker::SourceBreaking,
1843}
1844
1845impl fidl::Persistable for UseDirectory {}
1846
1847#[derive(Clone, Debug, Default, PartialEq)]
1849pub struct UseEventStream {
1850 pub source_name: Option<String>,
1852 pub source: Option<Ref>,
1854 pub scope: Option<Vec<Ref>>,
1860 pub target_path: Option<String>,
1863 pub availability: Option<Availability>,
1868 pub filter: Option<fidl_fuchsia_data__common::Dictionary>,
1872 #[doc(hidden)]
1873 pub __source_breaking: fidl::marker::SourceBreaking,
1874}
1875
1876impl fidl::Persistable for UseEventStream {}
1877
1878#[derive(Clone, Debug, Default, PartialEq)]
1883pub struct UseProtocol {
1884 pub source: Option<Ref>,
1887 pub source_name: Option<String>,
1890 pub target_path: Option<String>,
1895 pub dependency_type: Option<DependencyType>,
1904 pub availability: Option<Availability>,
1909 pub source_dictionary: Option<String>,
1914 pub numbered_handle: Option<u8>,
1922 #[doc(hidden)]
1923 pub __source_breaking: fidl::marker::SourceBreaking,
1924}
1925
1926impl fidl::Persistable for UseProtocol {}
1927
1928#[derive(Clone, Debug, Default, PartialEq)]
1930pub struct UseRunner {
1931 pub source: Option<Ref>,
1934 pub source_name: Option<String>,
1937 pub source_dictionary: Option<String>,
1942 #[doc(hidden)]
1943 pub __source_breaking: fidl::marker::SourceBreaking,
1944}
1945
1946impl fidl::Persistable for UseRunner {}
1947
1948#[derive(Clone, Debug, Default, PartialEq)]
1953pub struct UseService {
1954 pub source: Option<Ref>,
1957 pub source_name: Option<String>,
1960 pub target_path: Option<String>,
1965 pub dependency_type: Option<DependencyType>,
1974 pub availability: Option<Availability>,
1979 pub source_dictionary: Option<String>,
1984 #[doc(hidden)]
1985 pub __source_breaking: fidl::marker::SourceBreaking,
1986}
1987
1988impl fidl::Persistable for UseService {}
1989
1990#[derive(Clone, Debug, Default, PartialEq)]
1992pub struct UseStorage {
1993 pub source_name: Option<String>,
1996 pub target_path: Option<String>,
2001 pub availability: Option<Availability>,
2006 #[doc(hidden)]
2007 pub __source_breaking: fidl::marker::SourceBreaking,
2008}
2009
2010impl fidl::Persistable for UseStorage {}
2011
2012#[derive(Clone, Debug)]
2014pub enum Capability {
2015 Service(Service),
2016 Protocol(Protocol),
2017 Directory(Directory),
2018 Storage(Storage),
2019 Runner(Runner),
2020 Resolver(Resolver),
2021 EventStream(EventStream),
2022 Dictionary(Dictionary),
2023 Config(Configuration),
2024 #[doc(hidden)]
2025 __SourceBreaking {
2026 unknown_ordinal: u64,
2027 },
2028}
2029
2030#[macro_export]
2032macro_rules! CapabilityUnknown {
2033 () => {
2034 _
2035 };
2036}
2037
2038impl PartialEq for Capability {
2040 fn eq(&self, other: &Self) -> bool {
2041 match (self, other) {
2042 (Self::Service(x), Self::Service(y)) => *x == *y,
2043 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2044 (Self::Directory(x), Self::Directory(y)) => *x == *y,
2045 (Self::Storage(x), Self::Storage(y)) => *x == *y,
2046 (Self::Runner(x), Self::Runner(y)) => *x == *y,
2047 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
2048 (Self::EventStream(x), Self::EventStream(y)) => *x == *y,
2049 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
2050 (Self::Config(x), Self::Config(y)) => *x == *y,
2051 _ => false,
2052 }
2053 }
2054}
2055
2056impl Capability {
2057 #[inline]
2058 pub fn ordinal(&self) -> u64 {
2059 match *self {
2060 Self::Service(_) => 1,
2061 Self::Protocol(_) => 2,
2062 Self::Directory(_) => 3,
2063 Self::Storage(_) => 4,
2064 Self::Runner(_) => 5,
2065 Self::Resolver(_) => 6,
2066 Self::EventStream(_) => 8,
2067 Self::Dictionary(_) => 9,
2068 Self::Config(_) => 10,
2069 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2070 }
2071 }
2072
2073 #[inline]
2074 pub fn unknown_variant_for_testing() -> Self {
2075 Self::__SourceBreaking { unknown_ordinal: 0 }
2076 }
2077
2078 #[inline]
2079 pub fn is_unknown(&self) -> bool {
2080 match self {
2081 Self::__SourceBreaking { .. } => true,
2082 _ => false,
2083 }
2084 }
2085}
2086
2087impl fidl::Persistable for Capability {}
2088
2089#[derive(Clone, Debug)]
2092pub enum ConfigChecksum {
2093 Sha256([u8; 32]),
2095 #[doc(hidden)]
2096 __SourceBreaking { unknown_ordinal: u64 },
2097}
2098
2099#[macro_export]
2101macro_rules! ConfigChecksumUnknown {
2102 () => {
2103 _
2104 };
2105}
2106
2107impl PartialEq for ConfigChecksum {
2109 fn eq(&self, other: &Self) -> bool {
2110 match (self, other) {
2111 (Self::Sha256(x), Self::Sha256(y)) => *x == *y,
2112 _ => false,
2113 }
2114 }
2115}
2116
2117impl ConfigChecksum {
2118 #[inline]
2119 pub fn ordinal(&self) -> u64 {
2120 match *self {
2121 Self::Sha256(_) => 1,
2122 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2123 }
2124 }
2125
2126 #[inline]
2127 pub fn unknown_variant_for_testing() -> Self {
2128 Self::__SourceBreaking { unknown_ordinal: 0 }
2129 }
2130
2131 #[inline]
2132 pub fn is_unknown(&self) -> bool {
2133 match self {
2134 Self::__SourceBreaking { .. } => true,
2135 _ => false,
2136 }
2137 }
2138}
2139
2140impl fidl::Persistable for ConfigChecksum {}
2141
2142#[derive(Clone, Debug)]
2144pub enum ConfigSingleValue {
2145 Bool(bool),
2146 Uint8(u8),
2147 Uint16(u16),
2148 Uint32(u32),
2149 Uint64(u64),
2150 Int8(i8),
2151 Int16(i16),
2152 Int32(i32),
2153 Int64(i64),
2154 String(String),
2155 #[doc(hidden)]
2156 __SourceBreaking {
2157 unknown_ordinal: u64,
2158 },
2159}
2160
2161#[macro_export]
2163macro_rules! ConfigSingleValueUnknown {
2164 () => {
2165 _
2166 };
2167}
2168
2169impl PartialEq for ConfigSingleValue {
2171 fn eq(&self, other: &Self) -> bool {
2172 match (self, other) {
2173 (Self::Bool(x), Self::Bool(y)) => *x == *y,
2174 (Self::Uint8(x), Self::Uint8(y)) => *x == *y,
2175 (Self::Uint16(x), Self::Uint16(y)) => *x == *y,
2176 (Self::Uint32(x), Self::Uint32(y)) => *x == *y,
2177 (Self::Uint64(x), Self::Uint64(y)) => *x == *y,
2178 (Self::Int8(x), Self::Int8(y)) => *x == *y,
2179 (Self::Int16(x), Self::Int16(y)) => *x == *y,
2180 (Self::Int32(x), Self::Int32(y)) => *x == *y,
2181 (Self::Int64(x), Self::Int64(y)) => *x == *y,
2182 (Self::String(x), Self::String(y)) => *x == *y,
2183 _ => false,
2184 }
2185 }
2186}
2187
2188impl ConfigSingleValue {
2189 #[inline]
2190 pub fn ordinal(&self) -> u64 {
2191 match *self {
2192 Self::Bool(_) => 1,
2193 Self::Uint8(_) => 2,
2194 Self::Uint16(_) => 3,
2195 Self::Uint32(_) => 4,
2196 Self::Uint64(_) => 5,
2197 Self::Int8(_) => 6,
2198 Self::Int16(_) => 7,
2199 Self::Int32(_) => 8,
2200 Self::Int64(_) => 9,
2201 Self::String(_) => 10,
2202 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2203 }
2204 }
2205
2206 #[inline]
2207 pub fn unknown_variant_for_testing() -> Self {
2208 Self::__SourceBreaking { unknown_ordinal: 0 }
2209 }
2210
2211 #[inline]
2212 pub fn is_unknown(&self) -> bool {
2213 match self {
2214 Self::__SourceBreaking { .. } => true,
2215 _ => false,
2216 }
2217 }
2218}
2219
2220impl fidl::Persistable for ConfigSingleValue {}
2221
2222#[derive(Clone, Debug)]
2226pub enum ConfigValue {
2227 Single(ConfigSingleValue),
2228 Vector(ConfigVectorValue),
2229 #[doc(hidden)]
2230 __SourceBreaking {
2231 unknown_ordinal: u64,
2232 },
2233}
2234
2235#[macro_export]
2237macro_rules! ConfigValueUnknown {
2238 () => {
2239 _
2240 };
2241}
2242
2243impl PartialEq for ConfigValue {
2245 fn eq(&self, other: &Self) -> bool {
2246 match (self, other) {
2247 (Self::Single(x), Self::Single(y)) => *x == *y,
2248 (Self::Vector(x), Self::Vector(y)) => *x == *y,
2249 _ => false,
2250 }
2251 }
2252}
2253
2254impl ConfigValue {
2255 #[inline]
2256 pub fn ordinal(&self) -> u64 {
2257 match *self {
2258 Self::Single(_) => 1,
2259 Self::Vector(_) => 2,
2260 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2261 }
2262 }
2263
2264 #[inline]
2265 pub fn unknown_variant_for_testing() -> Self {
2266 Self::__SourceBreaking { unknown_ordinal: 0 }
2267 }
2268
2269 #[inline]
2270 pub fn is_unknown(&self) -> bool {
2271 match self {
2272 Self::__SourceBreaking { .. } => true,
2273 _ => false,
2274 }
2275 }
2276}
2277
2278impl fidl::Persistable for ConfigValue {}
2279
2280#[derive(Clone, Debug)]
2282pub enum ConfigValueSource {
2283 PackagePath(String),
2285 Capabilities(ConfigSourceCapabilities),
2287 #[doc(hidden)]
2288 __SourceBreaking { unknown_ordinal: u64 },
2289}
2290
2291#[macro_export]
2293macro_rules! ConfigValueSourceUnknown {
2294 () => {
2295 _
2296 };
2297}
2298
2299impl PartialEq for ConfigValueSource {
2301 fn eq(&self, other: &Self) -> bool {
2302 match (self, other) {
2303 (Self::PackagePath(x), Self::PackagePath(y)) => *x == *y,
2304 (Self::Capabilities(x), Self::Capabilities(y)) => *x == *y,
2305 _ => false,
2306 }
2307 }
2308}
2309
2310impl ConfigValueSource {
2311 #[inline]
2312 pub fn ordinal(&self) -> u64 {
2313 match *self {
2314 Self::PackagePath(_) => 1,
2315 Self::Capabilities(_) => 2,
2316 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2317 }
2318 }
2319
2320 #[inline]
2321 pub fn unknown_variant_for_testing() -> Self {
2322 Self::__SourceBreaking { unknown_ordinal: 0 }
2323 }
2324
2325 #[inline]
2326 pub fn is_unknown(&self) -> bool {
2327 match self {
2328 Self::__SourceBreaking { .. } => true,
2329 _ => false,
2330 }
2331 }
2332}
2333
2334impl fidl::Persistable for ConfigValueSource {}
2335
2336#[derive(Clone, Debug)]
2338pub enum ConfigVectorValue {
2339 BoolVector(Vec<bool>),
2340 Uint8Vector(Vec<u8>),
2341 Uint16Vector(Vec<u16>),
2342 Uint32Vector(Vec<u32>),
2343 Uint64Vector(Vec<u64>),
2344 Int8Vector(Vec<i8>),
2345 Int16Vector(Vec<i16>),
2346 Int32Vector(Vec<i32>),
2347 Int64Vector(Vec<i64>),
2348 StringVector(Vec<String>),
2349 #[doc(hidden)]
2350 __SourceBreaking {
2351 unknown_ordinal: u64,
2352 },
2353}
2354
2355#[macro_export]
2357macro_rules! ConfigVectorValueUnknown {
2358 () => {
2359 _
2360 };
2361}
2362
2363impl PartialEq for ConfigVectorValue {
2365 fn eq(&self, other: &Self) -> bool {
2366 match (self, other) {
2367 (Self::BoolVector(x), Self::BoolVector(y)) => *x == *y,
2368 (Self::Uint8Vector(x), Self::Uint8Vector(y)) => *x == *y,
2369 (Self::Uint16Vector(x), Self::Uint16Vector(y)) => *x == *y,
2370 (Self::Uint32Vector(x), Self::Uint32Vector(y)) => *x == *y,
2371 (Self::Uint64Vector(x), Self::Uint64Vector(y)) => *x == *y,
2372 (Self::Int8Vector(x), Self::Int8Vector(y)) => *x == *y,
2373 (Self::Int16Vector(x), Self::Int16Vector(y)) => *x == *y,
2374 (Self::Int32Vector(x), Self::Int32Vector(y)) => *x == *y,
2375 (Self::Int64Vector(x), Self::Int64Vector(y)) => *x == *y,
2376 (Self::StringVector(x), Self::StringVector(y)) => *x == *y,
2377 _ => false,
2378 }
2379 }
2380}
2381
2382impl ConfigVectorValue {
2383 #[inline]
2384 pub fn ordinal(&self) -> u64 {
2385 match *self {
2386 Self::BoolVector(_) => 1,
2387 Self::Uint8Vector(_) => 2,
2388 Self::Uint16Vector(_) => 3,
2389 Self::Uint32Vector(_) => 4,
2390 Self::Uint64Vector(_) => 5,
2391 Self::Int8Vector(_) => 6,
2392 Self::Int16Vector(_) => 7,
2393 Self::Int32Vector(_) => 8,
2394 Self::Int64Vector(_) => 9,
2395 Self::StringVector(_) => 10,
2396 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2397 }
2398 }
2399
2400 #[inline]
2401 pub fn unknown_variant_for_testing() -> Self {
2402 Self::__SourceBreaking { unknown_ordinal: 0 }
2403 }
2404
2405 #[inline]
2406 pub fn is_unknown(&self) -> bool {
2407 match self {
2408 Self::__SourceBreaking { .. } => true,
2409 _ => false,
2410 }
2411 }
2412}
2413
2414impl fidl::Persistable for ConfigVectorValue {}
2415
2416#[derive(Clone, Debug)]
2418pub enum DebugRegistration {
2419 Protocol(DebugProtocolRegistration),
2420 #[doc(hidden)]
2421 __SourceBreaking {
2422 unknown_ordinal: u64,
2423 },
2424}
2425
2426#[macro_export]
2428macro_rules! DebugRegistrationUnknown {
2429 () => {
2430 _
2431 };
2432}
2433
2434impl PartialEq for DebugRegistration {
2436 fn eq(&self, other: &Self) -> bool {
2437 match (self, other) {
2438 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2439 _ => false,
2440 }
2441 }
2442}
2443
2444impl DebugRegistration {
2445 #[inline]
2446 pub fn ordinal(&self) -> u64 {
2447 match *self {
2448 Self::Protocol(_) => 1,
2449 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2450 }
2451 }
2452
2453 #[inline]
2454 pub fn unknown_variant_for_testing() -> Self {
2455 Self::__SourceBreaking { unknown_ordinal: 0 }
2456 }
2457
2458 #[inline]
2459 pub fn is_unknown(&self) -> bool {
2460 match self {
2461 Self::__SourceBreaking { .. } => true,
2462 _ => false,
2463 }
2464 }
2465}
2466
2467impl fidl::Persistable for DebugRegistration {}
2468
2469#[derive(Clone, Debug)]
2473pub enum Expose {
2474 Service(ExposeService),
2475 Protocol(ExposeProtocol),
2476 Directory(ExposeDirectory),
2477 Runner(ExposeRunner),
2478 Resolver(ExposeResolver),
2479 Dictionary(ExposeDictionary),
2480 Config(ExposeConfiguration),
2481 #[doc(hidden)]
2482 __SourceBreaking {
2483 unknown_ordinal: u64,
2484 },
2485}
2486
2487#[macro_export]
2489macro_rules! ExposeUnknown {
2490 () => {
2491 _
2492 };
2493}
2494
2495impl PartialEq for Expose {
2497 fn eq(&self, other: &Self) -> bool {
2498 match (self, other) {
2499 (Self::Service(x), Self::Service(y)) => *x == *y,
2500 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2501 (Self::Directory(x), Self::Directory(y)) => *x == *y,
2502 (Self::Runner(x), Self::Runner(y)) => *x == *y,
2503 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
2504 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
2505 (Self::Config(x), Self::Config(y)) => *x == *y,
2506 _ => false,
2507 }
2508 }
2509}
2510
2511impl Expose {
2512 #[inline]
2513 pub fn ordinal(&self) -> u64 {
2514 match *self {
2515 Self::Service(_) => 1,
2516 Self::Protocol(_) => 2,
2517 Self::Directory(_) => 3,
2518 Self::Runner(_) => 4,
2519 Self::Resolver(_) => 5,
2520 Self::Dictionary(_) => 7,
2521 Self::Config(_) => 8,
2522 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2523 }
2524 }
2525
2526 #[inline]
2527 pub fn unknown_variant_for_testing() -> Self {
2528 Self::__SourceBreaking { unknown_ordinal: 0 }
2529 }
2530
2531 #[inline]
2532 pub fn is_unknown(&self) -> bool {
2533 match self {
2534 Self::__SourceBreaking { .. } => true,
2535 _ => false,
2536 }
2537 }
2538}
2539
2540impl fidl::Persistable for Expose {}
2541
2542#[derive(Clone, Debug)]
2543pub enum LayoutConstraint {
2544 MaxSize(u32),
2545 #[doc(hidden)]
2546 __SourceBreaking {
2547 unknown_ordinal: u64,
2548 },
2549}
2550
2551#[macro_export]
2553macro_rules! LayoutConstraintUnknown {
2554 () => {
2555 _
2556 };
2557}
2558
2559impl PartialEq for LayoutConstraint {
2561 fn eq(&self, other: &Self) -> bool {
2562 match (self, other) {
2563 (Self::MaxSize(x), Self::MaxSize(y)) => *x == *y,
2564 _ => false,
2565 }
2566 }
2567}
2568
2569impl LayoutConstraint {
2570 #[inline]
2571 pub fn ordinal(&self) -> u64 {
2572 match *self {
2573 Self::MaxSize(_) => 1,
2574 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2575 }
2576 }
2577
2578 #[inline]
2579 pub fn unknown_variant_for_testing() -> Self {
2580 Self::__SourceBreaking { unknown_ordinal: 0 }
2581 }
2582
2583 #[inline]
2584 pub fn is_unknown(&self) -> bool {
2585 match self {
2586 Self::__SourceBreaking { .. } => true,
2587 _ => false,
2588 }
2589 }
2590}
2591
2592impl fidl::Persistable for LayoutConstraint {}
2593
2594#[derive(Clone, Debug)]
2595pub enum LayoutParameter {
2596 NestedType(ConfigType),
2597 #[doc(hidden)]
2598 __SourceBreaking {
2599 unknown_ordinal: u64,
2600 },
2601}
2602
2603#[macro_export]
2605macro_rules! LayoutParameterUnknown {
2606 () => {
2607 _
2608 };
2609}
2610
2611impl PartialEq for LayoutParameter {
2613 fn eq(&self, other: &Self) -> bool {
2614 match (self, other) {
2615 (Self::NestedType(x), Self::NestedType(y)) => *x == *y,
2616 _ => false,
2617 }
2618 }
2619}
2620
2621impl LayoutParameter {
2622 #[inline]
2623 pub fn ordinal(&self) -> u64 {
2624 match *self {
2625 Self::NestedType(_) => 1,
2626 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2627 }
2628 }
2629
2630 #[inline]
2631 pub fn unknown_variant_for_testing() -> Self {
2632 Self::__SourceBreaking { unknown_ordinal: 0 }
2633 }
2634
2635 #[inline]
2636 pub fn is_unknown(&self) -> bool {
2637 match self {
2638 Self::__SourceBreaking { .. } => true,
2639 _ => false,
2640 }
2641 }
2642}
2643
2644impl fidl::Persistable for LayoutParameter {}
2645
2646#[derive(Clone, Debug)]
2650pub enum Offer {
2651 Service(OfferService),
2652 Protocol(OfferProtocol),
2653 Directory(OfferDirectory),
2654 Storage(OfferStorage),
2655 Runner(OfferRunner),
2656 Resolver(OfferResolver),
2657 EventStream(OfferEventStream),
2658 Dictionary(OfferDictionary),
2659 Config(OfferConfiguration),
2660 #[doc(hidden)]
2661 __SourceBreaking {
2662 unknown_ordinal: u64,
2663 },
2664}
2665
2666#[macro_export]
2668macro_rules! OfferUnknown {
2669 () => {
2670 _
2671 };
2672}
2673
2674impl PartialEq for Offer {
2676 fn eq(&self, other: &Self) -> bool {
2677 match (self, other) {
2678 (Self::Service(x), Self::Service(y)) => *x == *y,
2679 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2680 (Self::Directory(x), Self::Directory(y)) => *x == *y,
2681 (Self::Storage(x), Self::Storage(y)) => *x == *y,
2682 (Self::Runner(x), Self::Runner(y)) => *x == *y,
2683 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
2684 (Self::EventStream(x), Self::EventStream(y)) => *x == *y,
2685 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
2686 (Self::Config(x), Self::Config(y)) => *x == *y,
2687 _ => false,
2688 }
2689 }
2690}
2691
2692impl Offer {
2693 #[inline]
2694 pub fn ordinal(&self) -> u64 {
2695 match *self {
2696 Self::Service(_) => 1,
2697 Self::Protocol(_) => 2,
2698 Self::Directory(_) => 3,
2699 Self::Storage(_) => 4,
2700 Self::Runner(_) => 5,
2701 Self::Resolver(_) => 6,
2702 Self::EventStream(_) => 8,
2703 Self::Dictionary(_) => 9,
2704 Self::Config(_) => 10,
2705 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2706 }
2707 }
2708
2709 #[inline]
2710 pub fn unknown_variant_for_testing() -> Self {
2711 Self::__SourceBreaking { unknown_ordinal: 0 }
2712 }
2713
2714 #[inline]
2715 pub fn is_unknown(&self) -> bool {
2716 match self {
2717 Self::__SourceBreaking { .. } => true,
2718 _ => false,
2719 }
2720 }
2721}
2722
2723impl fidl::Persistable for Offer {}
2724
2725#[derive(Clone, Debug)]
2728pub enum Ref {
2729 Parent(ParentRef),
2730 Self_(SelfRef),
2731 Child(ChildRef),
2732 Collection(CollectionRef),
2733 Framework(FrameworkRef),
2734 Capability(CapabilityRef),
2735 Debug(DebugRef),
2736 VoidType(VoidRef),
2737 Environment(EnvironmentRef),
2738 #[doc(hidden)]
2739 __SourceBreaking {
2740 unknown_ordinal: u64,
2741 },
2742}
2743
2744#[macro_export]
2746macro_rules! RefUnknown {
2747 () => {
2748 _
2749 };
2750}
2751
2752impl PartialEq for Ref {
2754 fn eq(&self, other: &Self) -> bool {
2755 match (self, other) {
2756 (Self::Parent(x), Self::Parent(y)) => *x == *y,
2757 (Self::Self_(x), Self::Self_(y)) => *x == *y,
2758 (Self::Child(x), Self::Child(y)) => *x == *y,
2759 (Self::Collection(x), Self::Collection(y)) => *x == *y,
2760 (Self::Framework(x), Self::Framework(y)) => *x == *y,
2761 (Self::Capability(x), Self::Capability(y)) => *x == *y,
2762 (Self::Debug(x), Self::Debug(y)) => *x == *y,
2763 (Self::VoidType(x), Self::VoidType(y)) => *x == *y,
2764 (Self::Environment(x), Self::Environment(y)) => *x == *y,
2765 _ => false,
2766 }
2767 }
2768}
2769
2770impl Ref {
2771 #[inline]
2772 pub fn ordinal(&self) -> u64 {
2773 match *self {
2774 Self::Parent(_) => 1,
2775 Self::Self_(_) => 2,
2776 Self::Child(_) => 3,
2777 Self::Collection(_) => 4,
2778 Self::Framework(_) => 5,
2779 Self::Capability(_) => 6,
2780 Self::Debug(_) => 7,
2781 Self::VoidType(_) => 8,
2782 Self::Environment(_) => 9,
2783 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2784 }
2785 }
2786
2787 #[inline]
2788 pub fn unknown_variant_for_testing() -> Self {
2789 Self::__SourceBreaking { unknown_ordinal: 0 }
2790 }
2791
2792 #[inline]
2793 pub fn is_unknown(&self) -> bool {
2794 match self {
2795 Self::__SourceBreaking { .. } => true,
2796 _ => false,
2797 }
2798 }
2799}
2800
2801impl fidl::Persistable for Ref {}
2802
2803#[derive(Clone, Debug)]
2805pub enum Use {
2806 Service(UseService),
2807 Protocol(UseProtocol),
2808 Directory(UseDirectory),
2809 Storage(UseStorage),
2810 EventStream(UseEventStream),
2811 Runner(UseRunner),
2812 Config(UseConfiguration),
2813 Dictionary(UseDictionary),
2814 #[doc(hidden)]
2815 __SourceBreaking {
2816 unknown_ordinal: u64,
2817 },
2818}
2819
2820#[macro_export]
2822macro_rules! UseUnknown {
2823 () => {
2824 _
2825 };
2826}
2827
2828impl PartialEq for Use {
2830 fn eq(&self, other: &Self) -> bool {
2831 match (self, other) {
2832 (Self::Service(x), Self::Service(y)) => *x == *y,
2833 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2834 (Self::Directory(x), Self::Directory(y)) => *x == *y,
2835 (Self::Storage(x), Self::Storage(y)) => *x == *y,
2836 (Self::EventStream(x), Self::EventStream(y)) => *x == *y,
2837 (Self::Runner(x), Self::Runner(y)) => *x == *y,
2838 (Self::Config(x), Self::Config(y)) => *x == *y,
2839 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
2840 _ => false,
2841 }
2842 }
2843}
2844
2845impl Use {
2846 #[inline]
2847 pub fn ordinal(&self) -> u64 {
2848 match *self {
2849 Self::Service(_) => 1,
2850 Self::Protocol(_) => 2,
2851 Self::Directory(_) => 3,
2852 Self::Storage(_) => 4,
2853 Self::EventStream(_) => 7,
2854 Self::Runner(_) => 8,
2855 Self::Config(_) => 9,
2856 Self::Dictionary(_) => 10,
2857 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2858 }
2859 }
2860
2861 #[inline]
2862 pub fn unknown_variant_for_testing() -> Self {
2863 Self::__SourceBreaking { unknown_ordinal: 0 }
2864 }
2865
2866 #[inline]
2867 pub fn is_unknown(&self) -> bool {
2868 match self {
2869 Self::__SourceBreaking { .. } => true,
2870 _ => false,
2871 }
2872 }
2873}
2874
2875impl fidl::Persistable for Use {}
2876
2877mod internal {
2878 use super::*;
2879 unsafe impl fidl::encoding::TypeMarker for ConfigMutability {
2880 type Owned = Self;
2881
2882 #[inline(always)]
2883 fn inline_align(_context: fidl::encoding::Context) -> usize {
2884 4
2885 }
2886
2887 #[inline(always)]
2888 fn inline_size(_context: fidl::encoding::Context) -> usize {
2889 4
2890 }
2891 }
2892
2893 impl fidl::encoding::ValueTypeMarker for ConfigMutability {
2894 type Borrowed<'a> = Self;
2895 #[inline(always)]
2896 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2897 *value
2898 }
2899 }
2900
2901 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2902 for ConfigMutability
2903 {
2904 #[inline]
2905 unsafe fn encode(
2906 self,
2907 encoder: &mut fidl::encoding::Encoder<'_, D>,
2908 offset: usize,
2909 _depth: fidl::encoding::Depth,
2910 ) -> fidl::Result<()> {
2911 encoder.debug_check_bounds::<Self>(offset);
2912 encoder.write_num(self.bits(), offset);
2913 Ok(())
2914 }
2915 }
2916
2917 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigMutability {
2918 #[inline(always)]
2919 fn new_empty() -> Self {
2920 Self::empty()
2921 }
2922
2923 #[inline]
2924 unsafe fn decode(
2925 &mut self,
2926 decoder: &mut fidl::encoding::Decoder<'_, D>,
2927 offset: usize,
2928 _depth: fidl::encoding::Depth,
2929 ) -> fidl::Result<()> {
2930 decoder.debug_check_bounds::<Self>(offset);
2931 let prim = decoder.read_num::<u32>(offset);
2932 *self = Self::from_bits_allow_unknown(prim);
2933 Ok(())
2934 }
2935 }
2936 unsafe impl fidl::encoding::TypeMarker for AllowedOffers {
2937 type Owned = Self;
2938
2939 #[inline(always)]
2940 fn inline_align(_context: fidl::encoding::Context) -> usize {
2941 std::mem::align_of::<u32>()
2942 }
2943
2944 #[inline(always)]
2945 fn inline_size(_context: fidl::encoding::Context) -> usize {
2946 std::mem::size_of::<u32>()
2947 }
2948
2949 #[inline(always)]
2950 fn encode_is_copy() -> bool {
2951 true
2952 }
2953
2954 #[inline(always)]
2955 fn decode_is_copy() -> bool {
2956 false
2957 }
2958 }
2959
2960 impl fidl::encoding::ValueTypeMarker for AllowedOffers {
2961 type Borrowed<'a> = Self;
2962 #[inline(always)]
2963 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2964 *value
2965 }
2966 }
2967
2968 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AllowedOffers {
2969 #[inline]
2970 unsafe fn encode(
2971 self,
2972 encoder: &mut fidl::encoding::Encoder<'_, D>,
2973 offset: usize,
2974 _depth: fidl::encoding::Depth,
2975 ) -> fidl::Result<()> {
2976 encoder.debug_check_bounds::<Self>(offset);
2977 encoder.write_num(self.into_primitive(), offset);
2978 Ok(())
2979 }
2980 }
2981
2982 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowedOffers {
2983 #[inline(always)]
2984 fn new_empty() -> Self {
2985 Self::StaticOnly
2986 }
2987
2988 #[inline]
2989 unsafe fn decode(
2990 &mut self,
2991 decoder: &mut fidl::encoding::Decoder<'_, D>,
2992 offset: usize,
2993 _depth: fidl::encoding::Depth,
2994 ) -> fidl::Result<()> {
2995 decoder.debug_check_bounds::<Self>(offset);
2996 let prim = decoder.read_num::<u32>(offset);
2997
2998 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2999 Ok(())
3000 }
3001 }
3002 unsafe impl fidl::encoding::TypeMarker for Availability {
3003 type Owned = Self;
3004
3005 #[inline(always)]
3006 fn inline_align(_context: fidl::encoding::Context) -> usize {
3007 std::mem::align_of::<u32>()
3008 }
3009
3010 #[inline(always)]
3011 fn inline_size(_context: fidl::encoding::Context) -> usize {
3012 std::mem::size_of::<u32>()
3013 }
3014
3015 #[inline(always)]
3016 fn encode_is_copy() -> bool {
3017 true
3018 }
3019
3020 #[inline(always)]
3021 fn decode_is_copy() -> bool {
3022 false
3023 }
3024 }
3025
3026 impl fidl::encoding::ValueTypeMarker for Availability {
3027 type Borrowed<'a> = Self;
3028 #[inline(always)]
3029 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3030 *value
3031 }
3032 }
3033
3034 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Availability {
3035 #[inline]
3036 unsafe fn encode(
3037 self,
3038 encoder: &mut fidl::encoding::Encoder<'_, D>,
3039 offset: usize,
3040 _depth: fidl::encoding::Depth,
3041 ) -> fidl::Result<()> {
3042 encoder.debug_check_bounds::<Self>(offset);
3043 encoder.write_num(self.into_primitive(), offset);
3044 Ok(())
3045 }
3046 }
3047
3048 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Availability {
3049 #[inline(always)]
3050 fn new_empty() -> Self {
3051 Self::Required
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 let prim = decoder.read_num::<u32>(offset);
3063
3064 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3065 Ok(())
3066 }
3067 }
3068 unsafe impl fidl::encoding::TypeMarker for ConfigTypeLayout {
3069 type Owned = Self;
3070
3071 #[inline(always)]
3072 fn inline_align(_context: fidl::encoding::Context) -> usize {
3073 std::mem::align_of::<u32>()
3074 }
3075
3076 #[inline(always)]
3077 fn inline_size(_context: fidl::encoding::Context) -> usize {
3078 std::mem::size_of::<u32>()
3079 }
3080
3081 #[inline(always)]
3082 fn encode_is_copy() -> bool {
3083 false
3084 }
3085
3086 #[inline(always)]
3087 fn decode_is_copy() -> bool {
3088 false
3089 }
3090 }
3091
3092 impl fidl::encoding::ValueTypeMarker for ConfigTypeLayout {
3093 type Borrowed<'a> = Self;
3094 #[inline(always)]
3095 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3096 *value
3097 }
3098 }
3099
3100 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3101 for ConfigTypeLayout
3102 {
3103 #[inline]
3104 unsafe fn encode(
3105 self,
3106 encoder: &mut fidl::encoding::Encoder<'_, D>,
3107 offset: usize,
3108 _depth: fidl::encoding::Depth,
3109 ) -> fidl::Result<()> {
3110 encoder.debug_check_bounds::<Self>(offset);
3111 encoder.write_num(self.into_primitive(), offset);
3112 Ok(())
3113 }
3114 }
3115
3116 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigTypeLayout {
3117 #[inline(always)]
3118 fn new_empty() -> Self {
3119 Self::unknown()
3120 }
3121
3122 #[inline]
3123 unsafe fn decode(
3124 &mut self,
3125 decoder: &mut fidl::encoding::Decoder<'_, D>,
3126 offset: usize,
3127 _depth: fidl::encoding::Depth,
3128 ) -> fidl::Result<()> {
3129 decoder.debug_check_bounds::<Self>(offset);
3130 let prim = decoder.read_num::<u32>(offset);
3131
3132 *self = Self::from_primitive_allow_unknown(prim);
3133 Ok(())
3134 }
3135 }
3136 unsafe impl fidl::encoding::TypeMarker for DeliveryType {
3137 type Owned = Self;
3138
3139 #[inline(always)]
3140 fn inline_align(_context: fidl::encoding::Context) -> usize {
3141 std::mem::align_of::<u32>()
3142 }
3143
3144 #[inline(always)]
3145 fn inline_size(_context: fidl::encoding::Context) -> usize {
3146 std::mem::size_of::<u32>()
3147 }
3148
3149 #[inline(always)]
3150 fn encode_is_copy() -> bool {
3151 false
3152 }
3153
3154 #[inline(always)]
3155 fn decode_is_copy() -> bool {
3156 false
3157 }
3158 }
3159
3160 impl fidl::encoding::ValueTypeMarker for DeliveryType {
3161 type Borrowed<'a> = Self;
3162 #[inline(always)]
3163 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3164 *value
3165 }
3166 }
3167
3168 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DeliveryType {
3169 #[inline]
3170 unsafe fn encode(
3171 self,
3172 encoder: &mut fidl::encoding::Encoder<'_, D>,
3173 offset: usize,
3174 _depth: fidl::encoding::Depth,
3175 ) -> fidl::Result<()> {
3176 encoder.debug_check_bounds::<Self>(offset);
3177 encoder.write_num(self.into_primitive(), offset);
3178 Ok(())
3179 }
3180 }
3181
3182 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DeliveryType {
3183 #[inline(always)]
3184 fn new_empty() -> Self {
3185 Self::unknown()
3186 }
3187
3188 #[inline]
3189 unsafe fn decode(
3190 &mut self,
3191 decoder: &mut fidl::encoding::Decoder<'_, D>,
3192 offset: usize,
3193 _depth: fidl::encoding::Depth,
3194 ) -> fidl::Result<()> {
3195 decoder.debug_check_bounds::<Self>(offset);
3196 let prim = decoder.read_num::<u32>(offset);
3197
3198 *self = Self::from_primitive_allow_unknown(prim);
3199 Ok(())
3200 }
3201 }
3202 unsafe impl fidl::encoding::TypeMarker for DependencyType {
3203 type Owned = Self;
3204
3205 #[inline(always)]
3206 fn inline_align(_context: fidl::encoding::Context) -> usize {
3207 std::mem::align_of::<u32>()
3208 }
3209
3210 #[inline(always)]
3211 fn inline_size(_context: fidl::encoding::Context) -> usize {
3212 std::mem::size_of::<u32>()
3213 }
3214
3215 #[inline(always)]
3216 fn encode_is_copy() -> bool {
3217 true
3218 }
3219
3220 #[inline(always)]
3221 fn decode_is_copy() -> bool {
3222 false
3223 }
3224 }
3225
3226 impl fidl::encoding::ValueTypeMarker for DependencyType {
3227 type Borrowed<'a> = Self;
3228 #[inline(always)]
3229 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3230 *value
3231 }
3232 }
3233
3234 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DependencyType {
3235 #[inline]
3236 unsafe fn encode(
3237 self,
3238 encoder: &mut fidl::encoding::Encoder<'_, D>,
3239 offset: usize,
3240 _depth: fidl::encoding::Depth,
3241 ) -> fidl::Result<()> {
3242 encoder.debug_check_bounds::<Self>(offset);
3243 encoder.write_num(self.into_primitive(), offset);
3244 Ok(())
3245 }
3246 }
3247
3248 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DependencyType {
3249 #[inline(always)]
3250 fn new_empty() -> Self {
3251 Self::Strong
3252 }
3253
3254 #[inline]
3255 unsafe fn decode(
3256 &mut self,
3257 decoder: &mut fidl::encoding::Decoder<'_, D>,
3258 offset: usize,
3259 _depth: fidl::encoding::Depth,
3260 ) -> fidl::Result<()> {
3261 decoder.debug_check_bounds::<Self>(offset);
3262 let prim = decoder.read_num::<u32>(offset);
3263
3264 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3265 Ok(())
3266 }
3267 }
3268 unsafe impl fidl::encoding::TypeMarker for Durability {
3269 type Owned = Self;
3270
3271 #[inline(always)]
3272 fn inline_align(_context: fidl::encoding::Context) -> usize {
3273 std::mem::align_of::<u32>()
3274 }
3275
3276 #[inline(always)]
3277 fn inline_size(_context: fidl::encoding::Context) -> usize {
3278 std::mem::size_of::<u32>()
3279 }
3280
3281 #[inline(always)]
3282 fn encode_is_copy() -> bool {
3283 true
3284 }
3285
3286 #[inline(always)]
3287 fn decode_is_copy() -> bool {
3288 false
3289 }
3290 }
3291
3292 impl fidl::encoding::ValueTypeMarker for Durability {
3293 type Borrowed<'a> = Self;
3294 #[inline(always)]
3295 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3296 *value
3297 }
3298 }
3299
3300 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Durability {
3301 #[inline]
3302 unsafe fn encode(
3303 self,
3304 encoder: &mut fidl::encoding::Encoder<'_, D>,
3305 offset: usize,
3306 _depth: fidl::encoding::Depth,
3307 ) -> fidl::Result<()> {
3308 encoder.debug_check_bounds::<Self>(offset);
3309 encoder.write_num(self.into_primitive(), offset);
3310 Ok(())
3311 }
3312 }
3313
3314 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Durability {
3315 #[inline(always)]
3316 fn new_empty() -> Self {
3317 Self::Transient
3318 }
3319
3320 #[inline]
3321 unsafe fn decode(
3322 &mut self,
3323 decoder: &mut fidl::encoding::Decoder<'_, D>,
3324 offset: usize,
3325 _depth: fidl::encoding::Depth,
3326 ) -> fidl::Result<()> {
3327 decoder.debug_check_bounds::<Self>(offset);
3328 let prim = decoder.read_num::<u32>(offset);
3329
3330 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3331 Ok(())
3332 }
3333 }
3334 unsafe impl fidl::encoding::TypeMarker for EnvironmentExtends {
3335 type Owned = Self;
3336
3337 #[inline(always)]
3338 fn inline_align(_context: fidl::encoding::Context) -> usize {
3339 std::mem::align_of::<u32>()
3340 }
3341
3342 #[inline(always)]
3343 fn inline_size(_context: fidl::encoding::Context) -> usize {
3344 std::mem::size_of::<u32>()
3345 }
3346
3347 #[inline(always)]
3348 fn encode_is_copy() -> bool {
3349 true
3350 }
3351
3352 #[inline(always)]
3353 fn decode_is_copy() -> bool {
3354 false
3355 }
3356 }
3357
3358 impl fidl::encoding::ValueTypeMarker for EnvironmentExtends {
3359 type Borrowed<'a> = Self;
3360 #[inline(always)]
3361 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3362 *value
3363 }
3364 }
3365
3366 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3367 for EnvironmentExtends
3368 {
3369 #[inline]
3370 unsafe fn encode(
3371 self,
3372 encoder: &mut fidl::encoding::Encoder<'_, D>,
3373 offset: usize,
3374 _depth: fidl::encoding::Depth,
3375 ) -> fidl::Result<()> {
3376 encoder.debug_check_bounds::<Self>(offset);
3377 encoder.write_num(self.into_primitive(), offset);
3378 Ok(())
3379 }
3380 }
3381
3382 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnvironmentExtends {
3383 #[inline(always)]
3384 fn new_empty() -> Self {
3385 Self::None
3386 }
3387
3388 #[inline]
3389 unsafe fn decode(
3390 &mut self,
3391 decoder: &mut fidl::encoding::Decoder<'_, D>,
3392 offset: usize,
3393 _depth: fidl::encoding::Depth,
3394 ) -> fidl::Result<()> {
3395 decoder.debug_check_bounds::<Self>(offset);
3396 let prim = decoder.read_num::<u32>(offset);
3397
3398 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3399 Ok(())
3400 }
3401 }
3402 unsafe impl fidl::encoding::TypeMarker for OnTerminate {
3403 type Owned = Self;
3404
3405 #[inline(always)]
3406 fn inline_align(_context: fidl::encoding::Context) -> usize {
3407 std::mem::align_of::<u32>()
3408 }
3409
3410 #[inline(always)]
3411 fn inline_size(_context: fidl::encoding::Context) -> usize {
3412 std::mem::size_of::<u32>()
3413 }
3414
3415 #[inline(always)]
3416 fn encode_is_copy() -> bool {
3417 true
3418 }
3419
3420 #[inline(always)]
3421 fn decode_is_copy() -> bool {
3422 false
3423 }
3424 }
3425
3426 impl fidl::encoding::ValueTypeMarker for OnTerminate {
3427 type Borrowed<'a> = Self;
3428 #[inline(always)]
3429 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3430 *value
3431 }
3432 }
3433
3434 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for OnTerminate {
3435 #[inline]
3436 unsafe fn encode(
3437 self,
3438 encoder: &mut fidl::encoding::Encoder<'_, D>,
3439 offset: usize,
3440 _depth: fidl::encoding::Depth,
3441 ) -> fidl::Result<()> {
3442 encoder.debug_check_bounds::<Self>(offset);
3443 encoder.write_num(self.into_primitive(), offset);
3444 Ok(())
3445 }
3446 }
3447
3448 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OnTerminate {
3449 #[inline(always)]
3450 fn new_empty() -> Self {
3451 Self::None
3452 }
3453
3454 #[inline]
3455 unsafe fn decode(
3456 &mut self,
3457 decoder: &mut fidl::encoding::Decoder<'_, D>,
3458 offset: usize,
3459 _depth: fidl::encoding::Depth,
3460 ) -> fidl::Result<()> {
3461 decoder.debug_check_bounds::<Self>(offset);
3462 let prim = decoder.read_num::<u32>(offset);
3463
3464 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3465 Ok(())
3466 }
3467 }
3468 unsafe impl fidl::encoding::TypeMarker for StartupMode {
3469 type Owned = Self;
3470
3471 #[inline(always)]
3472 fn inline_align(_context: fidl::encoding::Context) -> usize {
3473 std::mem::align_of::<u32>()
3474 }
3475
3476 #[inline(always)]
3477 fn inline_size(_context: fidl::encoding::Context) -> usize {
3478 std::mem::size_of::<u32>()
3479 }
3480
3481 #[inline(always)]
3482 fn encode_is_copy() -> bool {
3483 true
3484 }
3485
3486 #[inline(always)]
3487 fn decode_is_copy() -> bool {
3488 false
3489 }
3490 }
3491
3492 impl fidl::encoding::ValueTypeMarker for StartupMode {
3493 type Borrowed<'a> = Self;
3494 #[inline(always)]
3495 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3496 *value
3497 }
3498 }
3499
3500 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartupMode {
3501 #[inline]
3502 unsafe fn encode(
3503 self,
3504 encoder: &mut fidl::encoding::Encoder<'_, D>,
3505 offset: usize,
3506 _depth: fidl::encoding::Depth,
3507 ) -> fidl::Result<()> {
3508 encoder.debug_check_bounds::<Self>(offset);
3509 encoder.write_num(self.into_primitive(), offset);
3510 Ok(())
3511 }
3512 }
3513
3514 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartupMode {
3515 #[inline(always)]
3516 fn new_empty() -> Self {
3517 Self::Lazy
3518 }
3519
3520 #[inline]
3521 unsafe fn decode(
3522 &mut self,
3523 decoder: &mut fidl::encoding::Decoder<'_, D>,
3524 offset: usize,
3525 _depth: fidl::encoding::Depth,
3526 ) -> fidl::Result<()> {
3527 decoder.debug_check_bounds::<Self>(offset);
3528 let prim = decoder.read_num::<u32>(offset);
3529
3530 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3531 Ok(())
3532 }
3533 }
3534 unsafe impl fidl::encoding::TypeMarker for StorageId {
3535 type Owned = Self;
3536
3537 #[inline(always)]
3538 fn inline_align(_context: fidl::encoding::Context) -> usize {
3539 std::mem::align_of::<u32>()
3540 }
3541
3542 #[inline(always)]
3543 fn inline_size(_context: fidl::encoding::Context) -> usize {
3544 std::mem::size_of::<u32>()
3545 }
3546
3547 #[inline(always)]
3548 fn encode_is_copy() -> bool {
3549 true
3550 }
3551
3552 #[inline(always)]
3553 fn decode_is_copy() -> bool {
3554 false
3555 }
3556 }
3557
3558 impl fidl::encoding::ValueTypeMarker for StorageId {
3559 type Borrowed<'a> = Self;
3560 #[inline(always)]
3561 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3562 *value
3563 }
3564 }
3565
3566 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StorageId {
3567 #[inline]
3568 unsafe fn encode(
3569 self,
3570 encoder: &mut fidl::encoding::Encoder<'_, D>,
3571 offset: usize,
3572 _depth: fidl::encoding::Depth,
3573 ) -> fidl::Result<()> {
3574 encoder.debug_check_bounds::<Self>(offset);
3575 encoder.write_num(self.into_primitive(), offset);
3576 Ok(())
3577 }
3578 }
3579
3580 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StorageId {
3581 #[inline(always)]
3582 fn new_empty() -> Self {
3583 Self::StaticInstanceId
3584 }
3585
3586 #[inline]
3587 unsafe fn decode(
3588 &mut self,
3589 decoder: &mut fidl::encoding::Decoder<'_, D>,
3590 offset: usize,
3591 _depth: fidl::encoding::Depth,
3592 ) -> fidl::Result<()> {
3593 decoder.debug_check_bounds::<Self>(offset);
3594 let prim = decoder.read_num::<u32>(offset);
3595
3596 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3597 Ok(())
3598 }
3599 }
3600
3601 impl fidl::encoding::ValueTypeMarker for CapabilityRef {
3602 type Borrowed<'a> = &'a Self;
3603 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3604 value
3605 }
3606 }
3607
3608 unsafe impl fidl::encoding::TypeMarker for CapabilityRef {
3609 type Owned = Self;
3610
3611 #[inline(always)]
3612 fn inline_align(_context: fidl::encoding::Context) -> usize {
3613 8
3614 }
3615
3616 #[inline(always)]
3617 fn inline_size(_context: fidl::encoding::Context) -> usize {
3618 16
3619 }
3620 }
3621
3622 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CapabilityRef, D>
3623 for &CapabilityRef
3624 {
3625 #[inline]
3626 unsafe fn encode(
3627 self,
3628 encoder: &mut fidl::encoding::Encoder<'_, D>,
3629 offset: usize,
3630 _depth: fidl::encoding::Depth,
3631 ) -> fidl::Result<()> {
3632 encoder.debug_check_bounds::<CapabilityRef>(offset);
3633 fidl::encoding::Encode::<CapabilityRef, D>::encode(
3635 (<fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
3636 &self.name,
3637 ),),
3638 encoder,
3639 offset,
3640 _depth,
3641 )
3642 }
3643 }
3644 unsafe impl<
3645 D: fidl::encoding::ResourceDialect,
3646 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
3647 > fidl::encoding::Encode<CapabilityRef, D> for (T0,)
3648 {
3649 #[inline]
3650 unsafe fn encode(
3651 self,
3652 encoder: &mut fidl::encoding::Encoder<'_, D>,
3653 offset: usize,
3654 depth: fidl::encoding::Depth,
3655 ) -> fidl::Result<()> {
3656 encoder.debug_check_bounds::<CapabilityRef>(offset);
3657 self.0.encode(encoder, offset + 0, depth)?;
3661 Ok(())
3662 }
3663 }
3664
3665 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CapabilityRef {
3666 #[inline(always)]
3667 fn new_empty() -> Self {
3668 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<100>, D) }
3669 }
3670
3671 #[inline]
3672 unsafe fn decode(
3673 &mut self,
3674 decoder: &mut fidl::encoding::Decoder<'_, D>,
3675 offset: usize,
3676 _depth: fidl::encoding::Depth,
3677 ) -> fidl::Result<()> {
3678 decoder.debug_check_bounds::<Self>(offset);
3679 fidl::decode!(
3681 fidl::encoding::BoundedString<100>,
3682 D,
3683 &mut self.name,
3684 decoder,
3685 offset + 0,
3686 _depth
3687 )?;
3688 Ok(())
3689 }
3690 }
3691
3692 impl fidl::encoding::ValueTypeMarker for ChildRef {
3693 type Borrowed<'a> = &'a Self;
3694 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3695 value
3696 }
3697 }
3698
3699 unsafe impl fidl::encoding::TypeMarker for ChildRef {
3700 type Owned = Self;
3701
3702 #[inline(always)]
3703 fn inline_align(_context: fidl::encoding::Context) -> usize {
3704 8
3705 }
3706
3707 #[inline(always)]
3708 fn inline_size(_context: fidl::encoding::Context) -> usize {
3709 32
3710 }
3711 }
3712
3713 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChildRef, D> for &ChildRef {
3714 #[inline]
3715 unsafe fn encode(
3716 self,
3717 encoder: &mut fidl::encoding::Encoder<'_, D>,
3718 offset: usize,
3719 _depth: fidl::encoding::Depth,
3720 ) -> fidl::Result<()> {
3721 encoder.debug_check_bounds::<ChildRef>(offset);
3722 fidl::encoding::Encode::<ChildRef, D>::encode(
3724 (
3725 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
3726 <fidl::encoding::Optional<fidl::encoding::BoundedString<100>> as fidl::encoding::ValueTypeMarker>::borrow(&self.collection),
3727 ),
3728 encoder, offset, _depth
3729 )
3730 }
3731 }
3732 unsafe impl<
3733 D: fidl::encoding::ResourceDialect,
3734 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
3735 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<100>>, D>,
3736 > fidl::encoding::Encode<ChildRef, D> for (T0, T1)
3737 {
3738 #[inline]
3739 unsafe fn encode(
3740 self,
3741 encoder: &mut fidl::encoding::Encoder<'_, D>,
3742 offset: usize,
3743 depth: fidl::encoding::Depth,
3744 ) -> fidl::Result<()> {
3745 encoder.debug_check_bounds::<ChildRef>(offset);
3746 self.0.encode(encoder, offset + 0, depth)?;
3750 self.1.encode(encoder, offset + 16, depth)?;
3751 Ok(())
3752 }
3753 }
3754
3755 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChildRef {
3756 #[inline(always)]
3757 fn new_empty() -> Self {
3758 Self {
3759 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
3760 collection: fidl::new_empty!(
3761 fidl::encoding::Optional<fidl::encoding::BoundedString<100>>,
3762 D
3763 ),
3764 }
3765 }
3766
3767 #[inline]
3768 unsafe fn decode(
3769 &mut self,
3770 decoder: &mut fidl::encoding::Decoder<'_, D>,
3771 offset: usize,
3772 _depth: fidl::encoding::Depth,
3773 ) -> fidl::Result<()> {
3774 decoder.debug_check_bounds::<Self>(offset);
3775 fidl::decode!(
3777 fidl::encoding::BoundedString<1024>,
3778 D,
3779 &mut self.name,
3780 decoder,
3781 offset + 0,
3782 _depth
3783 )?;
3784 fidl::decode!(
3785 fidl::encoding::Optional<fidl::encoding::BoundedString<100>>,
3786 D,
3787 &mut self.collection,
3788 decoder,
3789 offset + 16,
3790 _depth
3791 )?;
3792 Ok(())
3793 }
3794 }
3795
3796 impl fidl::encoding::ValueTypeMarker for CollectionRef {
3797 type Borrowed<'a> = &'a Self;
3798 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3799 value
3800 }
3801 }
3802
3803 unsafe impl fidl::encoding::TypeMarker for CollectionRef {
3804 type Owned = Self;
3805
3806 #[inline(always)]
3807 fn inline_align(_context: fidl::encoding::Context) -> usize {
3808 8
3809 }
3810
3811 #[inline(always)]
3812 fn inline_size(_context: fidl::encoding::Context) -> usize {
3813 16
3814 }
3815 }
3816
3817 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CollectionRef, D>
3818 for &CollectionRef
3819 {
3820 #[inline]
3821 unsafe fn encode(
3822 self,
3823 encoder: &mut fidl::encoding::Encoder<'_, D>,
3824 offset: usize,
3825 _depth: fidl::encoding::Depth,
3826 ) -> fidl::Result<()> {
3827 encoder.debug_check_bounds::<CollectionRef>(offset);
3828 fidl::encoding::Encode::<CollectionRef, D>::encode(
3830 (<fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
3831 &self.name,
3832 ),),
3833 encoder,
3834 offset,
3835 _depth,
3836 )
3837 }
3838 }
3839 unsafe impl<
3840 D: fidl::encoding::ResourceDialect,
3841 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
3842 > fidl::encoding::Encode<CollectionRef, D> for (T0,)
3843 {
3844 #[inline]
3845 unsafe fn encode(
3846 self,
3847 encoder: &mut fidl::encoding::Encoder<'_, D>,
3848 offset: usize,
3849 depth: fidl::encoding::Depth,
3850 ) -> fidl::Result<()> {
3851 encoder.debug_check_bounds::<CollectionRef>(offset);
3852 self.0.encode(encoder, offset + 0, depth)?;
3856 Ok(())
3857 }
3858 }
3859
3860 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CollectionRef {
3861 #[inline(always)]
3862 fn new_empty() -> Self {
3863 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<100>, D) }
3864 }
3865
3866 #[inline]
3867 unsafe fn decode(
3868 &mut self,
3869 decoder: &mut fidl::encoding::Decoder<'_, D>,
3870 offset: usize,
3871 _depth: fidl::encoding::Depth,
3872 ) -> fidl::Result<()> {
3873 decoder.debug_check_bounds::<Self>(offset);
3874 fidl::decode!(
3876 fidl::encoding::BoundedString<100>,
3877 D,
3878 &mut self.name,
3879 decoder,
3880 offset + 0,
3881 _depth
3882 )?;
3883 Ok(())
3884 }
3885 }
3886
3887 impl fidl::encoding::ValueTypeMarker for ConfigType {
3888 type Borrowed<'a> = &'a Self;
3889 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3890 value
3891 }
3892 }
3893
3894 unsafe impl fidl::encoding::TypeMarker for ConfigType {
3895 type Owned = Self;
3896
3897 #[inline(always)]
3898 fn inline_align(_context: fidl::encoding::Context) -> usize {
3899 8
3900 }
3901
3902 #[inline(always)]
3903 fn inline_size(_context: fidl::encoding::Context) -> usize {
3904 40
3905 }
3906 }
3907
3908 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigType, D>
3909 for &ConfigType
3910 {
3911 #[inline]
3912 unsafe fn encode(
3913 self,
3914 encoder: &mut fidl::encoding::Encoder<'_, D>,
3915 offset: usize,
3916 _depth: fidl::encoding::Depth,
3917 ) -> fidl::Result<()> {
3918 encoder.debug_check_bounds::<ConfigType>(offset);
3919 fidl::encoding::Encode::<ConfigType, D>::encode(
3921 (
3922 <ConfigTypeLayout as fidl::encoding::ValueTypeMarker>::borrow(&self.layout),
3923 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<LayoutParameter>> as fidl::encoding::ValueTypeMarker>::borrow(&self.parameters),
3924 <fidl::encoding::UnboundedVector<LayoutConstraint> as fidl::encoding::ValueTypeMarker>::borrow(&self.constraints),
3925 ),
3926 encoder, offset, _depth
3927 )
3928 }
3929 }
3930 unsafe impl<
3931 D: fidl::encoding::ResourceDialect,
3932 T0: fidl::encoding::Encode<ConfigTypeLayout, D>,
3933 T1: fidl::encoding::Encode<
3934 fidl::encoding::Optional<fidl::encoding::UnboundedVector<LayoutParameter>>,
3935 D,
3936 >,
3937 T2: fidl::encoding::Encode<fidl::encoding::UnboundedVector<LayoutConstraint>, D>,
3938 > fidl::encoding::Encode<ConfigType, D> for (T0, T1, T2)
3939 {
3940 #[inline]
3941 unsafe fn encode(
3942 self,
3943 encoder: &mut fidl::encoding::Encoder<'_, D>,
3944 offset: usize,
3945 depth: fidl::encoding::Depth,
3946 ) -> fidl::Result<()> {
3947 encoder.debug_check_bounds::<ConfigType>(offset);
3948 unsafe {
3951 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3952 (ptr as *mut u64).write_unaligned(0);
3953 }
3954 self.0.encode(encoder, offset + 0, depth)?;
3956 self.1.encode(encoder, offset + 8, depth)?;
3957 self.2.encode(encoder, offset + 24, depth)?;
3958 Ok(())
3959 }
3960 }
3961
3962 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigType {
3963 #[inline(always)]
3964 fn new_empty() -> Self {
3965 Self {
3966 layout: fidl::new_empty!(ConfigTypeLayout, D),
3967 parameters: fidl::new_empty!(
3968 fidl::encoding::Optional<fidl::encoding::UnboundedVector<LayoutParameter>>,
3969 D
3970 ),
3971 constraints: fidl::new_empty!(fidl::encoding::UnboundedVector<LayoutConstraint>, D),
3972 }
3973 }
3974
3975 #[inline]
3976 unsafe fn decode(
3977 &mut self,
3978 decoder: &mut fidl::encoding::Decoder<'_, D>,
3979 offset: usize,
3980 _depth: fidl::encoding::Depth,
3981 ) -> fidl::Result<()> {
3982 decoder.debug_check_bounds::<Self>(offset);
3983 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3985 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3986 let mask = 0xffffffff00000000u64;
3987 let maskedval = padval & mask;
3988 if maskedval != 0 {
3989 return Err(fidl::Error::NonZeroPadding {
3990 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3991 });
3992 }
3993 fidl::decode!(ConfigTypeLayout, D, &mut self.layout, decoder, offset + 0, _depth)?;
3994 fidl::decode!(
3995 fidl::encoding::Optional<fidl::encoding::UnboundedVector<LayoutParameter>>,
3996 D,
3997 &mut self.parameters,
3998 decoder,
3999 offset + 8,
4000 _depth
4001 )?;
4002 fidl::decode!(
4003 fidl::encoding::UnboundedVector<LayoutConstraint>,
4004 D,
4005 &mut self.constraints,
4006 decoder,
4007 offset + 24,
4008 _depth
4009 )?;
4010 Ok(())
4011 }
4012 }
4013
4014 impl fidl::encoding::ValueTypeMarker for DebugRef {
4015 type Borrowed<'a> = &'a Self;
4016 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4017 value
4018 }
4019 }
4020
4021 unsafe impl fidl::encoding::TypeMarker for DebugRef {
4022 type Owned = Self;
4023
4024 #[inline(always)]
4025 fn inline_align(_context: fidl::encoding::Context) -> usize {
4026 1
4027 }
4028
4029 #[inline(always)]
4030 fn inline_size(_context: fidl::encoding::Context) -> usize {
4031 1
4032 }
4033 }
4034
4035 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DebugRef, D> for &DebugRef {
4036 #[inline]
4037 unsafe fn encode(
4038 self,
4039 encoder: &mut fidl::encoding::Encoder<'_, D>,
4040 offset: usize,
4041 _depth: fidl::encoding::Depth,
4042 ) -> fidl::Result<()> {
4043 encoder.debug_check_bounds::<DebugRef>(offset);
4044 encoder.write_num(0u8, offset);
4045 Ok(())
4046 }
4047 }
4048
4049 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DebugRef {
4050 #[inline(always)]
4051 fn new_empty() -> Self {
4052 Self
4053 }
4054
4055 #[inline]
4056 unsafe fn decode(
4057 &mut self,
4058 decoder: &mut fidl::encoding::Decoder<'_, D>,
4059 offset: usize,
4060 _depth: fidl::encoding::Depth,
4061 ) -> fidl::Result<()> {
4062 decoder.debug_check_bounds::<Self>(offset);
4063 match decoder.read_num::<u8>(offset) {
4064 0 => Ok(()),
4065 _ => Err(fidl::Error::Invalid),
4066 }
4067 }
4068 }
4069
4070 impl fidl::encoding::ValueTypeMarker for EnvironmentRef {
4071 type Borrowed<'a> = &'a Self;
4072 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4073 value
4074 }
4075 }
4076
4077 unsafe impl fidl::encoding::TypeMarker for EnvironmentRef {
4078 type Owned = Self;
4079
4080 #[inline(always)]
4081 fn inline_align(_context: fidl::encoding::Context) -> usize {
4082 1
4083 }
4084
4085 #[inline(always)]
4086 fn inline_size(_context: fidl::encoding::Context) -> usize {
4087 1
4088 }
4089 }
4090
4091 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EnvironmentRef, D>
4092 for &EnvironmentRef
4093 {
4094 #[inline]
4095 unsafe fn encode(
4096 self,
4097 encoder: &mut fidl::encoding::Encoder<'_, D>,
4098 offset: usize,
4099 _depth: fidl::encoding::Depth,
4100 ) -> fidl::Result<()> {
4101 encoder.debug_check_bounds::<EnvironmentRef>(offset);
4102 encoder.write_num(0u8, offset);
4103 Ok(())
4104 }
4105 }
4106
4107 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnvironmentRef {
4108 #[inline(always)]
4109 fn new_empty() -> Self {
4110 Self
4111 }
4112
4113 #[inline]
4114 unsafe fn decode(
4115 &mut self,
4116 decoder: &mut fidl::encoding::Decoder<'_, D>,
4117 offset: usize,
4118 _depth: fidl::encoding::Depth,
4119 ) -> fidl::Result<()> {
4120 decoder.debug_check_bounds::<Self>(offset);
4121 match decoder.read_num::<u8>(offset) {
4122 0 => Ok(()),
4123 _ => Err(fidl::Error::Invalid),
4124 }
4125 }
4126 }
4127
4128 impl fidl::encoding::ValueTypeMarker for FrameworkRef {
4129 type Borrowed<'a> = &'a Self;
4130 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4131 value
4132 }
4133 }
4134
4135 unsafe impl fidl::encoding::TypeMarker for FrameworkRef {
4136 type Owned = Self;
4137
4138 #[inline(always)]
4139 fn inline_align(_context: fidl::encoding::Context) -> usize {
4140 1
4141 }
4142
4143 #[inline(always)]
4144 fn inline_size(_context: fidl::encoding::Context) -> usize {
4145 1
4146 }
4147 }
4148
4149 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FrameworkRef, D>
4150 for &FrameworkRef
4151 {
4152 #[inline]
4153 unsafe fn encode(
4154 self,
4155 encoder: &mut fidl::encoding::Encoder<'_, D>,
4156 offset: usize,
4157 _depth: fidl::encoding::Depth,
4158 ) -> fidl::Result<()> {
4159 encoder.debug_check_bounds::<FrameworkRef>(offset);
4160 encoder.write_num(0u8, offset);
4161 Ok(())
4162 }
4163 }
4164
4165 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FrameworkRef {
4166 #[inline(always)]
4167 fn new_empty() -> Self {
4168 Self
4169 }
4170
4171 #[inline]
4172 unsafe fn decode(
4173 &mut self,
4174 decoder: &mut fidl::encoding::Decoder<'_, D>,
4175 offset: usize,
4176 _depth: fidl::encoding::Depth,
4177 ) -> fidl::Result<()> {
4178 decoder.debug_check_bounds::<Self>(offset);
4179 match decoder.read_num::<u8>(offset) {
4180 0 => Ok(()),
4181 _ => Err(fidl::Error::Invalid),
4182 }
4183 }
4184 }
4185
4186 impl fidl::encoding::ValueTypeMarker for NameMapping {
4187 type Borrowed<'a> = &'a Self;
4188 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4189 value
4190 }
4191 }
4192
4193 unsafe impl fidl::encoding::TypeMarker for NameMapping {
4194 type Owned = Self;
4195
4196 #[inline(always)]
4197 fn inline_align(_context: fidl::encoding::Context) -> usize {
4198 8
4199 }
4200
4201 #[inline(always)]
4202 fn inline_size(_context: fidl::encoding::Context) -> usize {
4203 32
4204 }
4205 }
4206
4207 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NameMapping, D>
4208 for &NameMapping
4209 {
4210 #[inline]
4211 unsafe fn encode(
4212 self,
4213 encoder: &mut fidl::encoding::Encoder<'_, D>,
4214 offset: usize,
4215 _depth: fidl::encoding::Depth,
4216 ) -> fidl::Result<()> {
4217 encoder.debug_check_bounds::<NameMapping>(offset);
4218 fidl::encoding::Encode::<NameMapping, D>::encode(
4220 (
4221 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
4222 &self.source_name,
4223 ),
4224 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
4225 &self.target_name,
4226 ),
4227 ),
4228 encoder,
4229 offset,
4230 _depth,
4231 )
4232 }
4233 }
4234 unsafe impl<
4235 D: fidl::encoding::ResourceDialect,
4236 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
4237 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
4238 > fidl::encoding::Encode<NameMapping, D> for (T0, T1)
4239 {
4240 #[inline]
4241 unsafe fn encode(
4242 self,
4243 encoder: &mut fidl::encoding::Encoder<'_, D>,
4244 offset: usize,
4245 depth: fidl::encoding::Depth,
4246 ) -> fidl::Result<()> {
4247 encoder.debug_check_bounds::<NameMapping>(offset);
4248 self.0.encode(encoder, offset + 0, depth)?;
4252 self.1.encode(encoder, offset + 16, depth)?;
4253 Ok(())
4254 }
4255 }
4256
4257 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NameMapping {
4258 #[inline(always)]
4259 fn new_empty() -> Self {
4260 Self {
4261 source_name: fidl::new_empty!(fidl::encoding::BoundedString<100>, D),
4262 target_name: fidl::new_empty!(fidl::encoding::BoundedString<100>, D),
4263 }
4264 }
4265
4266 #[inline]
4267 unsafe fn decode(
4268 &mut self,
4269 decoder: &mut fidl::encoding::Decoder<'_, D>,
4270 offset: usize,
4271 _depth: fidl::encoding::Depth,
4272 ) -> fidl::Result<()> {
4273 decoder.debug_check_bounds::<Self>(offset);
4274 fidl::decode!(
4276 fidl::encoding::BoundedString<100>,
4277 D,
4278 &mut self.source_name,
4279 decoder,
4280 offset + 0,
4281 _depth
4282 )?;
4283 fidl::decode!(
4284 fidl::encoding::BoundedString<100>,
4285 D,
4286 &mut self.target_name,
4287 decoder,
4288 offset + 16,
4289 _depth
4290 )?;
4291 Ok(())
4292 }
4293 }
4294
4295 impl fidl::encoding::ValueTypeMarker for ParentRef {
4296 type Borrowed<'a> = &'a Self;
4297 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4298 value
4299 }
4300 }
4301
4302 unsafe impl fidl::encoding::TypeMarker for ParentRef {
4303 type Owned = Self;
4304
4305 #[inline(always)]
4306 fn inline_align(_context: fidl::encoding::Context) -> usize {
4307 1
4308 }
4309
4310 #[inline(always)]
4311 fn inline_size(_context: fidl::encoding::Context) -> usize {
4312 1
4313 }
4314 }
4315
4316 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ParentRef, D>
4317 for &ParentRef
4318 {
4319 #[inline]
4320 unsafe fn encode(
4321 self,
4322 encoder: &mut fidl::encoding::Encoder<'_, D>,
4323 offset: usize,
4324 _depth: fidl::encoding::Depth,
4325 ) -> fidl::Result<()> {
4326 encoder.debug_check_bounds::<ParentRef>(offset);
4327 encoder.write_num(0u8, offset);
4328 Ok(())
4329 }
4330 }
4331
4332 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ParentRef {
4333 #[inline(always)]
4334 fn new_empty() -> Self {
4335 Self
4336 }
4337
4338 #[inline]
4339 unsafe fn decode(
4340 &mut self,
4341 decoder: &mut fidl::encoding::Decoder<'_, D>,
4342 offset: usize,
4343 _depth: fidl::encoding::Depth,
4344 ) -> fidl::Result<()> {
4345 decoder.debug_check_bounds::<Self>(offset);
4346 match decoder.read_num::<u8>(offset) {
4347 0 => Ok(()),
4348 _ => Err(fidl::Error::Invalid),
4349 }
4350 }
4351 }
4352
4353 impl fidl::encoding::ValueTypeMarker for ResolvedConfig {
4354 type Borrowed<'a> = &'a Self;
4355 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4356 value
4357 }
4358 }
4359
4360 unsafe impl fidl::encoding::TypeMarker for ResolvedConfig {
4361 type Owned = Self;
4362
4363 #[inline(always)]
4364 fn inline_align(_context: fidl::encoding::Context) -> usize {
4365 8
4366 }
4367
4368 #[inline(always)]
4369 fn inline_size(_context: fidl::encoding::Context) -> usize {
4370 32
4371 }
4372 }
4373
4374 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ResolvedConfig, D>
4375 for &ResolvedConfig
4376 {
4377 #[inline]
4378 unsafe fn encode(
4379 self,
4380 encoder: &mut fidl::encoding::Encoder<'_, D>,
4381 offset: usize,
4382 _depth: fidl::encoding::Depth,
4383 ) -> fidl::Result<()> {
4384 encoder.debug_check_bounds::<ResolvedConfig>(offset);
4385 fidl::encoding::Encode::<ResolvedConfig, D>::encode(
4387 (
4388 <fidl::encoding::UnboundedVector<ResolvedConfigField> as fidl::encoding::ValueTypeMarker>::borrow(&self.fields),
4389 <ConfigChecksum as fidl::encoding::ValueTypeMarker>::borrow(&self.checksum),
4390 ),
4391 encoder, offset, _depth
4392 )
4393 }
4394 }
4395 unsafe impl<
4396 D: fidl::encoding::ResourceDialect,
4397 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<ResolvedConfigField>, D>,
4398 T1: fidl::encoding::Encode<ConfigChecksum, D>,
4399 > fidl::encoding::Encode<ResolvedConfig, D> for (T0, T1)
4400 {
4401 #[inline]
4402 unsafe fn encode(
4403 self,
4404 encoder: &mut fidl::encoding::Encoder<'_, D>,
4405 offset: usize,
4406 depth: fidl::encoding::Depth,
4407 ) -> fidl::Result<()> {
4408 encoder.debug_check_bounds::<ResolvedConfig>(offset);
4409 self.0.encode(encoder, offset + 0, depth)?;
4413 self.1.encode(encoder, offset + 16, depth)?;
4414 Ok(())
4415 }
4416 }
4417
4418 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ResolvedConfig {
4419 #[inline(always)]
4420 fn new_empty() -> Self {
4421 Self {
4422 fields: fidl::new_empty!(fidl::encoding::UnboundedVector<ResolvedConfigField>, D),
4423 checksum: fidl::new_empty!(ConfigChecksum, D),
4424 }
4425 }
4426
4427 #[inline]
4428 unsafe fn decode(
4429 &mut self,
4430 decoder: &mut fidl::encoding::Decoder<'_, D>,
4431 offset: usize,
4432 _depth: fidl::encoding::Depth,
4433 ) -> fidl::Result<()> {
4434 decoder.debug_check_bounds::<Self>(offset);
4435 fidl::decode!(
4437 fidl::encoding::UnboundedVector<ResolvedConfigField>,
4438 D,
4439 &mut self.fields,
4440 decoder,
4441 offset + 0,
4442 _depth
4443 )?;
4444 fidl::decode!(ConfigChecksum, D, &mut self.checksum, decoder, offset + 16, _depth)?;
4445 Ok(())
4446 }
4447 }
4448
4449 impl fidl::encoding::ValueTypeMarker for ResolvedConfigField {
4450 type Borrowed<'a> = &'a Self;
4451 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4452 value
4453 }
4454 }
4455
4456 unsafe impl fidl::encoding::TypeMarker for ResolvedConfigField {
4457 type Owned = Self;
4458
4459 #[inline(always)]
4460 fn inline_align(_context: fidl::encoding::Context) -> usize {
4461 8
4462 }
4463
4464 #[inline(always)]
4465 fn inline_size(_context: fidl::encoding::Context) -> usize {
4466 32
4467 }
4468 }
4469
4470 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ResolvedConfigField, D>
4471 for &ResolvedConfigField
4472 {
4473 #[inline]
4474 unsafe fn encode(
4475 self,
4476 encoder: &mut fidl::encoding::Encoder<'_, D>,
4477 offset: usize,
4478 _depth: fidl::encoding::Depth,
4479 ) -> fidl::Result<()> {
4480 encoder.debug_check_bounds::<ResolvedConfigField>(offset);
4481 fidl::encoding::Encode::<ResolvedConfigField, D>::encode(
4483 (
4484 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
4485 &self.key,
4486 ),
4487 <ConfigValue as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
4488 ),
4489 encoder,
4490 offset,
4491 _depth,
4492 )
4493 }
4494 }
4495 unsafe impl<
4496 D: fidl::encoding::ResourceDialect,
4497 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
4498 T1: fidl::encoding::Encode<ConfigValue, D>,
4499 > fidl::encoding::Encode<ResolvedConfigField, D> for (T0, T1)
4500 {
4501 #[inline]
4502 unsafe fn encode(
4503 self,
4504 encoder: &mut fidl::encoding::Encoder<'_, D>,
4505 offset: usize,
4506 depth: fidl::encoding::Depth,
4507 ) -> fidl::Result<()> {
4508 encoder.debug_check_bounds::<ResolvedConfigField>(offset);
4509 self.0.encode(encoder, offset + 0, depth)?;
4513 self.1.encode(encoder, offset + 16, depth)?;
4514 Ok(())
4515 }
4516 }
4517
4518 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ResolvedConfigField {
4519 #[inline(always)]
4520 fn new_empty() -> Self {
4521 Self {
4522 key: fidl::new_empty!(fidl::encoding::UnboundedString, D),
4523 value: fidl::new_empty!(ConfigValue, D),
4524 }
4525 }
4526
4527 #[inline]
4528 unsafe fn decode(
4529 &mut self,
4530 decoder: &mut fidl::encoding::Decoder<'_, D>,
4531 offset: usize,
4532 _depth: fidl::encoding::Depth,
4533 ) -> fidl::Result<()> {
4534 decoder.debug_check_bounds::<Self>(offset);
4535 fidl::decode!(
4537 fidl::encoding::UnboundedString,
4538 D,
4539 &mut self.key,
4540 decoder,
4541 offset + 0,
4542 _depth
4543 )?;
4544 fidl::decode!(ConfigValue, D, &mut self.value, decoder, offset + 16, _depth)?;
4545 Ok(())
4546 }
4547 }
4548
4549 impl fidl::encoding::ValueTypeMarker for SelfRef {
4550 type Borrowed<'a> = &'a Self;
4551 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4552 value
4553 }
4554 }
4555
4556 unsafe impl fidl::encoding::TypeMarker for SelfRef {
4557 type Owned = Self;
4558
4559 #[inline(always)]
4560 fn inline_align(_context: fidl::encoding::Context) -> usize {
4561 1
4562 }
4563
4564 #[inline(always)]
4565 fn inline_size(_context: fidl::encoding::Context) -> usize {
4566 1
4567 }
4568 }
4569
4570 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SelfRef, D> for &SelfRef {
4571 #[inline]
4572 unsafe fn encode(
4573 self,
4574 encoder: &mut fidl::encoding::Encoder<'_, D>,
4575 offset: usize,
4576 _depth: fidl::encoding::Depth,
4577 ) -> fidl::Result<()> {
4578 encoder.debug_check_bounds::<SelfRef>(offset);
4579 encoder.write_num(0u8, offset);
4580 Ok(())
4581 }
4582 }
4583
4584 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SelfRef {
4585 #[inline(always)]
4586 fn new_empty() -> Self {
4587 Self
4588 }
4589
4590 #[inline]
4591 unsafe fn decode(
4592 &mut self,
4593 decoder: &mut fidl::encoding::Decoder<'_, D>,
4594 offset: usize,
4595 _depth: fidl::encoding::Depth,
4596 ) -> fidl::Result<()> {
4597 decoder.debug_check_bounds::<Self>(offset);
4598 match decoder.read_num::<u8>(offset) {
4599 0 => Ok(()),
4600 _ => Err(fidl::Error::Invalid),
4601 }
4602 }
4603 }
4604
4605 impl fidl::encoding::ValueTypeMarker for VoidRef {
4606 type Borrowed<'a> = &'a Self;
4607 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4608 value
4609 }
4610 }
4611
4612 unsafe impl fidl::encoding::TypeMarker for VoidRef {
4613 type Owned = Self;
4614
4615 #[inline(always)]
4616 fn inline_align(_context: fidl::encoding::Context) -> usize {
4617 1
4618 }
4619
4620 #[inline(always)]
4621 fn inline_size(_context: fidl::encoding::Context) -> usize {
4622 1
4623 }
4624 }
4625
4626 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VoidRef, D> for &VoidRef {
4627 #[inline]
4628 unsafe fn encode(
4629 self,
4630 encoder: &mut fidl::encoding::Encoder<'_, D>,
4631 offset: usize,
4632 _depth: fidl::encoding::Depth,
4633 ) -> fidl::Result<()> {
4634 encoder.debug_check_bounds::<VoidRef>(offset);
4635 encoder.write_num(0u8, offset);
4636 Ok(())
4637 }
4638 }
4639
4640 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VoidRef {
4641 #[inline(always)]
4642 fn new_empty() -> Self {
4643 Self
4644 }
4645
4646 #[inline]
4647 unsafe fn decode(
4648 &mut self,
4649 decoder: &mut fidl::encoding::Decoder<'_, D>,
4650 offset: usize,
4651 _depth: fidl::encoding::Depth,
4652 ) -> fidl::Result<()> {
4653 decoder.debug_check_bounds::<Self>(offset);
4654 match decoder.read_num::<u8>(offset) {
4655 0 => Ok(()),
4656 _ => Err(fidl::Error::Invalid),
4657 }
4658 }
4659 }
4660
4661 impl Child {
4662 #[inline(always)]
4663 fn max_ordinal_present(&self) -> u64 {
4664 if let Some(_) = self.config_overrides {
4665 return 6;
4666 }
4667 if let Some(_) = self.on_terminate {
4668 return 5;
4669 }
4670 if let Some(_) = self.environment {
4671 return 4;
4672 }
4673 if let Some(_) = self.startup {
4674 return 3;
4675 }
4676 if let Some(_) = self.url {
4677 return 2;
4678 }
4679 if let Some(_) = self.name {
4680 return 1;
4681 }
4682 0
4683 }
4684 }
4685
4686 impl fidl::encoding::ValueTypeMarker for Child {
4687 type Borrowed<'a> = &'a Self;
4688 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4689 value
4690 }
4691 }
4692
4693 unsafe impl fidl::encoding::TypeMarker for Child {
4694 type Owned = Self;
4695
4696 #[inline(always)]
4697 fn inline_align(_context: fidl::encoding::Context) -> usize {
4698 8
4699 }
4700
4701 #[inline(always)]
4702 fn inline_size(_context: fidl::encoding::Context) -> usize {
4703 16
4704 }
4705 }
4706
4707 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Child, D> for &Child {
4708 unsafe fn encode(
4709 self,
4710 encoder: &mut fidl::encoding::Encoder<'_, D>,
4711 offset: usize,
4712 mut depth: fidl::encoding::Depth,
4713 ) -> fidl::Result<()> {
4714 encoder.debug_check_bounds::<Child>(offset);
4715 let max_ordinal: u64 = self.max_ordinal_present();
4717 encoder.write_num(max_ordinal, offset);
4718 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4719 if max_ordinal == 0 {
4721 return Ok(());
4722 }
4723 depth.increment()?;
4724 let envelope_size = 8;
4725 let bytes_len = max_ordinal as usize * envelope_size;
4726 #[allow(unused_variables)]
4727 let offset = encoder.out_of_line_offset(bytes_len);
4728 let mut _prev_end_offset: usize = 0;
4729 if 1 > max_ordinal {
4730 return Ok(());
4731 }
4732
4733 let cur_offset: usize = (1 - 1) * envelope_size;
4736
4737 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4739
4740 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
4745 self.name.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
4746 encoder, offset + cur_offset, depth
4747 )?;
4748
4749 _prev_end_offset = cur_offset + envelope_size;
4750 if 2 > max_ordinal {
4751 return Ok(());
4752 }
4753
4754 let cur_offset: usize = (2 - 1) * envelope_size;
4757
4758 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4760
4761 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
4766 self.url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
4767 encoder, offset + cur_offset, depth
4768 )?;
4769
4770 _prev_end_offset = cur_offset + envelope_size;
4771 if 3 > max_ordinal {
4772 return Ok(());
4773 }
4774
4775 let cur_offset: usize = (3 - 1) * envelope_size;
4778
4779 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4781
4782 fidl::encoding::encode_in_envelope_optional::<StartupMode, D>(
4787 self.startup.as_ref().map(<StartupMode as fidl::encoding::ValueTypeMarker>::borrow),
4788 encoder,
4789 offset + cur_offset,
4790 depth,
4791 )?;
4792
4793 _prev_end_offset = cur_offset + envelope_size;
4794 if 4 > max_ordinal {
4795 return Ok(());
4796 }
4797
4798 let cur_offset: usize = (4 - 1) * envelope_size;
4801
4802 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4804
4805 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
4810 self.environment.as_ref().map(
4811 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
4812 ),
4813 encoder,
4814 offset + cur_offset,
4815 depth,
4816 )?;
4817
4818 _prev_end_offset = cur_offset + envelope_size;
4819 if 5 > max_ordinal {
4820 return Ok(());
4821 }
4822
4823 let cur_offset: usize = (5 - 1) * envelope_size;
4826
4827 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4829
4830 fidl::encoding::encode_in_envelope_optional::<OnTerminate, D>(
4835 self.on_terminate
4836 .as_ref()
4837 .map(<OnTerminate as fidl::encoding::ValueTypeMarker>::borrow),
4838 encoder,
4839 offset + cur_offset,
4840 depth,
4841 )?;
4842
4843 _prev_end_offset = cur_offset + envelope_size;
4844 if 6 > max_ordinal {
4845 return Ok(());
4846 }
4847
4848 let cur_offset: usize = (6 - 1) * envelope_size;
4851
4852 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4854
4855 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ConfigOverride>, D>(
4860 self.config_overrides.as_ref().map(<fidl::encoding::UnboundedVector<ConfigOverride> as fidl::encoding::ValueTypeMarker>::borrow),
4861 encoder, offset + cur_offset, depth
4862 )?;
4863
4864 _prev_end_offset = cur_offset + envelope_size;
4865
4866 Ok(())
4867 }
4868 }
4869
4870 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Child {
4871 #[inline(always)]
4872 fn new_empty() -> Self {
4873 Self::default()
4874 }
4875
4876 unsafe fn decode(
4877 &mut self,
4878 decoder: &mut fidl::encoding::Decoder<'_, D>,
4879 offset: usize,
4880 mut depth: fidl::encoding::Depth,
4881 ) -> fidl::Result<()> {
4882 decoder.debug_check_bounds::<Self>(offset);
4883 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4884 None => return Err(fidl::Error::NotNullable),
4885 Some(len) => len,
4886 };
4887 if len == 0 {
4889 return Ok(());
4890 };
4891 depth.increment()?;
4892 let envelope_size = 8;
4893 let bytes_len = len * envelope_size;
4894 let offset = decoder.out_of_line_offset(bytes_len)?;
4895 let mut _next_ordinal_to_read = 0;
4897 let mut next_offset = offset;
4898 let end_offset = offset + bytes_len;
4899 _next_ordinal_to_read += 1;
4900 if next_offset >= end_offset {
4901 return Ok(());
4902 }
4903
4904 while _next_ordinal_to_read < 1 {
4906 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4907 _next_ordinal_to_read += 1;
4908 next_offset += envelope_size;
4909 }
4910
4911 let next_out_of_line = decoder.next_out_of_line();
4912 let handles_before = decoder.remaining_handles();
4913 if let Some((inlined, num_bytes, num_handles)) =
4914 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4915 {
4916 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4917 if inlined != (member_inline_size <= 4) {
4918 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4919 }
4920 let inner_offset;
4921 let mut inner_depth = depth.clone();
4922 if inlined {
4923 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4924 inner_offset = next_offset;
4925 } else {
4926 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4927 inner_depth.increment()?;
4928 }
4929 let val_ref = self.name.get_or_insert_with(|| {
4930 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
4931 });
4932 fidl::decode!(
4933 fidl::encoding::BoundedString<1024>,
4934 D,
4935 val_ref,
4936 decoder,
4937 inner_offset,
4938 inner_depth
4939 )?;
4940 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4941 {
4942 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4943 }
4944 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4945 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4946 }
4947 }
4948
4949 next_offset += envelope_size;
4950 _next_ordinal_to_read += 1;
4951 if next_offset >= end_offset {
4952 return Ok(());
4953 }
4954
4955 while _next_ordinal_to_read < 2 {
4957 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4958 _next_ordinal_to_read += 1;
4959 next_offset += envelope_size;
4960 }
4961
4962 let next_out_of_line = decoder.next_out_of_line();
4963 let handles_before = decoder.remaining_handles();
4964 if let Some((inlined, num_bytes, num_handles)) =
4965 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4966 {
4967 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4968 if inlined != (member_inline_size <= 4) {
4969 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4970 }
4971 let inner_offset;
4972 let mut inner_depth = depth.clone();
4973 if inlined {
4974 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4975 inner_offset = next_offset;
4976 } else {
4977 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4978 inner_depth.increment()?;
4979 }
4980 let val_ref = self.url.get_or_insert_with(|| {
4981 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
4982 });
4983 fidl::decode!(
4984 fidl::encoding::BoundedString<4096>,
4985 D,
4986 val_ref,
4987 decoder,
4988 inner_offset,
4989 inner_depth
4990 )?;
4991 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4992 {
4993 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4994 }
4995 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4996 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4997 }
4998 }
4999
5000 next_offset += envelope_size;
5001 _next_ordinal_to_read += 1;
5002 if next_offset >= end_offset {
5003 return Ok(());
5004 }
5005
5006 while _next_ordinal_to_read < 3 {
5008 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5009 _next_ordinal_to_read += 1;
5010 next_offset += envelope_size;
5011 }
5012
5013 let next_out_of_line = decoder.next_out_of_line();
5014 let handles_before = decoder.remaining_handles();
5015 if let Some((inlined, num_bytes, num_handles)) =
5016 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5017 {
5018 let member_inline_size =
5019 <StartupMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5020 if inlined != (member_inline_size <= 4) {
5021 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5022 }
5023 let inner_offset;
5024 let mut inner_depth = depth.clone();
5025 if inlined {
5026 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5027 inner_offset = next_offset;
5028 } else {
5029 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5030 inner_depth.increment()?;
5031 }
5032 let val_ref = self.startup.get_or_insert_with(|| fidl::new_empty!(StartupMode, D));
5033 fidl::decode!(StartupMode, D, val_ref, decoder, inner_offset, inner_depth)?;
5034 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5035 {
5036 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5037 }
5038 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5039 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5040 }
5041 }
5042
5043 next_offset += envelope_size;
5044 _next_ordinal_to_read += 1;
5045 if next_offset >= end_offset {
5046 return Ok(());
5047 }
5048
5049 while _next_ordinal_to_read < 4 {
5051 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5052 _next_ordinal_to_read += 1;
5053 next_offset += envelope_size;
5054 }
5055
5056 let next_out_of_line = decoder.next_out_of_line();
5057 let handles_before = decoder.remaining_handles();
5058 if let Some((inlined, num_bytes, num_handles)) =
5059 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5060 {
5061 let member_inline_size =
5062 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
5063 decoder.context,
5064 );
5065 if inlined != (member_inline_size <= 4) {
5066 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5067 }
5068 let inner_offset;
5069 let mut inner_depth = depth.clone();
5070 if inlined {
5071 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5072 inner_offset = next_offset;
5073 } else {
5074 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5075 inner_depth.increment()?;
5076 }
5077 let val_ref = self
5078 .environment
5079 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
5080 fidl::decode!(
5081 fidl::encoding::BoundedString<100>,
5082 D,
5083 val_ref,
5084 decoder,
5085 inner_offset,
5086 inner_depth
5087 )?;
5088 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5089 {
5090 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5091 }
5092 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5093 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5094 }
5095 }
5096
5097 next_offset += envelope_size;
5098 _next_ordinal_to_read += 1;
5099 if next_offset >= end_offset {
5100 return Ok(());
5101 }
5102
5103 while _next_ordinal_to_read < 5 {
5105 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5106 _next_ordinal_to_read += 1;
5107 next_offset += envelope_size;
5108 }
5109
5110 let next_out_of_line = decoder.next_out_of_line();
5111 let handles_before = decoder.remaining_handles();
5112 if let Some((inlined, num_bytes, num_handles)) =
5113 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5114 {
5115 let member_inline_size =
5116 <OnTerminate as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5117 if inlined != (member_inline_size <= 4) {
5118 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5119 }
5120 let inner_offset;
5121 let mut inner_depth = depth.clone();
5122 if inlined {
5123 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5124 inner_offset = next_offset;
5125 } else {
5126 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5127 inner_depth.increment()?;
5128 }
5129 let val_ref =
5130 self.on_terminate.get_or_insert_with(|| fidl::new_empty!(OnTerminate, D));
5131 fidl::decode!(OnTerminate, D, val_ref, decoder, inner_offset, inner_depth)?;
5132 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5133 {
5134 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5135 }
5136 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5137 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5138 }
5139 }
5140
5141 next_offset += envelope_size;
5142 _next_ordinal_to_read += 1;
5143 if next_offset >= end_offset {
5144 return Ok(());
5145 }
5146
5147 while _next_ordinal_to_read < 6 {
5149 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5150 _next_ordinal_to_read += 1;
5151 next_offset += envelope_size;
5152 }
5153
5154 let next_out_of_line = decoder.next_out_of_line();
5155 let handles_before = decoder.remaining_handles();
5156 if let Some((inlined, num_bytes, num_handles)) =
5157 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5158 {
5159 let member_inline_size = <fidl::encoding::UnboundedVector<ConfigOverride> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5160 if inlined != (member_inline_size <= 4) {
5161 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5162 }
5163 let inner_offset;
5164 let mut inner_depth = depth.clone();
5165 if inlined {
5166 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5167 inner_offset = next_offset;
5168 } else {
5169 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5170 inner_depth.increment()?;
5171 }
5172 let val_ref = self.config_overrides.get_or_insert_with(|| {
5173 fidl::new_empty!(fidl::encoding::UnboundedVector<ConfigOverride>, D)
5174 });
5175 fidl::decode!(
5176 fidl::encoding::UnboundedVector<ConfigOverride>,
5177 D,
5178 val_ref,
5179 decoder,
5180 inner_offset,
5181 inner_depth
5182 )?;
5183 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5184 {
5185 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5186 }
5187 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5188 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5189 }
5190 }
5191
5192 next_offset += envelope_size;
5193
5194 while next_offset < end_offset {
5196 _next_ordinal_to_read += 1;
5197 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5198 next_offset += envelope_size;
5199 }
5200
5201 Ok(())
5202 }
5203 }
5204
5205 impl Collection {
5206 #[inline(always)]
5207 fn max_ordinal_present(&self) -> u64 {
5208 if let Some(_) = self.persistent_storage {
5209 return 6;
5210 }
5211 if let Some(_) = self.allow_long_names {
5212 return 5;
5213 }
5214 if let Some(_) = self.allowed_offers {
5215 return 4;
5216 }
5217 if let Some(_) = self.environment {
5218 return 3;
5219 }
5220 if let Some(_) = self.durability {
5221 return 2;
5222 }
5223 if let Some(_) = self.name {
5224 return 1;
5225 }
5226 0
5227 }
5228 }
5229
5230 impl fidl::encoding::ValueTypeMarker for Collection {
5231 type Borrowed<'a> = &'a Self;
5232 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5233 value
5234 }
5235 }
5236
5237 unsafe impl fidl::encoding::TypeMarker for Collection {
5238 type Owned = Self;
5239
5240 #[inline(always)]
5241 fn inline_align(_context: fidl::encoding::Context) -> usize {
5242 8
5243 }
5244
5245 #[inline(always)]
5246 fn inline_size(_context: fidl::encoding::Context) -> usize {
5247 16
5248 }
5249 }
5250
5251 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Collection, D>
5252 for &Collection
5253 {
5254 unsafe fn encode(
5255 self,
5256 encoder: &mut fidl::encoding::Encoder<'_, D>,
5257 offset: usize,
5258 mut depth: fidl::encoding::Depth,
5259 ) -> fidl::Result<()> {
5260 encoder.debug_check_bounds::<Collection>(offset);
5261 let max_ordinal: u64 = self.max_ordinal_present();
5263 encoder.write_num(max_ordinal, offset);
5264 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5265 if max_ordinal == 0 {
5267 return Ok(());
5268 }
5269 depth.increment()?;
5270 let envelope_size = 8;
5271 let bytes_len = max_ordinal as usize * envelope_size;
5272 #[allow(unused_variables)]
5273 let offset = encoder.out_of_line_offset(bytes_len);
5274 let mut _prev_end_offset: usize = 0;
5275 if 1 > max_ordinal {
5276 return Ok(());
5277 }
5278
5279 let cur_offset: usize = (1 - 1) * envelope_size;
5282
5283 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5285
5286 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
5291 self.name.as_ref().map(
5292 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
5293 ),
5294 encoder,
5295 offset + cur_offset,
5296 depth,
5297 )?;
5298
5299 _prev_end_offset = cur_offset + envelope_size;
5300 if 2 > max_ordinal {
5301 return Ok(());
5302 }
5303
5304 let cur_offset: usize = (2 - 1) * envelope_size;
5307
5308 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5310
5311 fidl::encoding::encode_in_envelope_optional::<Durability, D>(
5316 self.durability
5317 .as_ref()
5318 .map(<Durability as fidl::encoding::ValueTypeMarker>::borrow),
5319 encoder,
5320 offset + cur_offset,
5321 depth,
5322 )?;
5323
5324 _prev_end_offset = cur_offset + envelope_size;
5325 if 3 > max_ordinal {
5326 return Ok(());
5327 }
5328
5329 let cur_offset: usize = (3 - 1) * envelope_size;
5332
5333 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5335
5336 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
5341 self.environment.as_ref().map(
5342 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
5343 ),
5344 encoder,
5345 offset + cur_offset,
5346 depth,
5347 )?;
5348
5349 _prev_end_offset = cur_offset + envelope_size;
5350 if 4 > max_ordinal {
5351 return Ok(());
5352 }
5353
5354 let cur_offset: usize = (4 - 1) * envelope_size;
5357
5358 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5360
5361 fidl::encoding::encode_in_envelope_optional::<AllowedOffers, D>(
5366 self.allowed_offers
5367 .as_ref()
5368 .map(<AllowedOffers as fidl::encoding::ValueTypeMarker>::borrow),
5369 encoder,
5370 offset + cur_offset,
5371 depth,
5372 )?;
5373
5374 _prev_end_offset = cur_offset + envelope_size;
5375 if 5 > max_ordinal {
5376 return Ok(());
5377 }
5378
5379 let cur_offset: usize = (5 - 1) * envelope_size;
5382
5383 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5385
5386 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5391 self.allow_long_names
5392 .as_ref()
5393 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5394 encoder,
5395 offset + cur_offset,
5396 depth,
5397 )?;
5398
5399 _prev_end_offset = cur_offset + envelope_size;
5400 if 6 > max_ordinal {
5401 return Ok(());
5402 }
5403
5404 let cur_offset: usize = (6 - 1) * envelope_size;
5407
5408 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5410
5411 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5416 self.persistent_storage
5417 .as_ref()
5418 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5419 encoder,
5420 offset + cur_offset,
5421 depth,
5422 )?;
5423
5424 _prev_end_offset = cur_offset + envelope_size;
5425
5426 Ok(())
5427 }
5428 }
5429
5430 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Collection {
5431 #[inline(always)]
5432 fn new_empty() -> Self {
5433 Self::default()
5434 }
5435
5436 unsafe fn decode(
5437 &mut self,
5438 decoder: &mut fidl::encoding::Decoder<'_, D>,
5439 offset: usize,
5440 mut depth: fidl::encoding::Depth,
5441 ) -> fidl::Result<()> {
5442 decoder.debug_check_bounds::<Self>(offset);
5443 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5444 None => return Err(fidl::Error::NotNullable),
5445 Some(len) => len,
5446 };
5447 if len == 0 {
5449 return Ok(());
5450 };
5451 depth.increment()?;
5452 let envelope_size = 8;
5453 let bytes_len = len * envelope_size;
5454 let offset = decoder.out_of_line_offset(bytes_len)?;
5455 let mut _next_ordinal_to_read = 0;
5457 let mut next_offset = offset;
5458 let end_offset = offset + bytes_len;
5459 _next_ordinal_to_read += 1;
5460 if next_offset >= end_offset {
5461 return Ok(());
5462 }
5463
5464 while _next_ordinal_to_read < 1 {
5466 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5467 _next_ordinal_to_read += 1;
5468 next_offset += envelope_size;
5469 }
5470
5471 let next_out_of_line = decoder.next_out_of_line();
5472 let handles_before = decoder.remaining_handles();
5473 if let Some((inlined, num_bytes, num_handles)) =
5474 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5475 {
5476 let member_inline_size =
5477 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
5478 decoder.context,
5479 );
5480 if inlined != (member_inline_size <= 4) {
5481 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5482 }
5483 let inner_offset;
5484 let mut inner_depth = depth.clone();
5485 if inlined {
5486 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5487 inner_offset = next_offset;
5488 } else {
5489 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5490 inner_depth.increment()?;
5491 }
5492 let val_ref = self
5493 .name
5494 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
5495 fidl::decode!(
5496 fidl::encoding::BoundedString<100>,
5497 D,
5498 val_ref,
5499 decoder,
5500 inner_offset,
5501 inner_depth
5502 )?;
5503 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5504 {
5505 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5506 }
5507 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5508 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5509 }
5510 }
5511
5512 next_offset += envelope_size;
5513 _next_ordinal_to_read += 1;
5514 if next_offset >= end_offset {
5515 return Ok(());
5516 }
5517
5518 while _next_ordinal_to_read < 2 {
5520 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5521 _next_ordinal_to_read += 1;
5522 next_offset += envelope_size;
5523 }
5524
5525 let next_out_of_line = decoder.next_out_of_line();
5526 let handles_before = decoder.remaining_handles();
5527 if let Some((inlined, num_bytes, num_handles)) =
5528 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5529 {
5530 let member_inline_size =
5531 <Durability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5532 if inlined != (member_inline_size <= 4) {
5533 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5534 }
5535 let inner_offset;
5536 let mut inner_depth = depth.clone();
5537 if inlined {
5538 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5539 inner_offset = next_offset;
5540 } else {
5541 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5542 inner_depth.increment()?;
5543 }
5544 let val_ref =
5545 self.durability.get_or_insert_with(|| fidl::new_empty!(Durability, D));
5546 fidl::decode!(Durability, D, val_ref, decoder, inner_offset, inner_depth)?;
5547 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5548 {
5549 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5550 }
5551 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5552 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5553 }
5554 }
5555
5556 next_offset += envelope_size;
5557 _next_ordinal_to_read += 1;
5558 if next_offset >= end_offset {
5559 return Ok(());
5560 }
5561
5562 while _next_ordinal_to_read < 3 {
5564 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5565 _next_ordinal_to_read += 1;
5566 next_offset += envelope_size;
5567 }
5568
5569 let next_out_of_line = decoder.next_out_of_line();
5570 let handles_before = decoder.remaining_handles();
5571 if let Some((inlined, num_bytes, num_handles)) =
5572 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5573 {
5574 let member_inline_size =
5575 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
5576 decoder.context,
5577 );
5578 if inlined != (member_inline_size <= 4) {
5579 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5580 }
5581 let inner_offset;
5582 let mut inner_depth = depth.clone();
5583 if inlined {
5584 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5585 inner_offset = next_offset;
5586 } else {
5587 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5588 inner_depth.increment()?;
5589 }
5590 let val_ref = self
5591 .environment
5592 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
5593 fidl::decode!(
5594 fidl::encoding::BoundedString<100>,
5595 D,
5596 val_ref,
5597 decoder,
5598 inner_offset,
5599 inner_depth
5600 )?;
5601 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5602 {
5603 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5604 }
5605 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5606 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5607 }
5608 }
5609
5610 next_offset += envelope_size;
5611 _next_ordinal_to_read += 1;
5612 if next_offset >= end_offset {
5613 return Ok(());
5614 }
5615
5616 while _next_ordinal_to_read < 4 {
5618 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5619 _next_ordinal_to_read += 1;
5620 next_offset += envelope_size;
5621 }
5622
5623 let next_out_of_line = decoder.next_out_of_line();
5624 let handles_before = decoder.remaining_handles();
5625 if let Some((inlined, num_bytes, num_handles)) =
5626 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5627 {
5628 let member_inline_size =
5629 <AllowedOffers as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5630 if inlined != (member_inline_size <= 4) {
5631 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5632 }
5633 let inner_offset;
5634 let mut inner_depth = depth.clone();
5635 if inlined {
5636 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5637 inner_offset = next_offset;
5638 } else {
5639 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5640 inner_depth.increment()?;
5641 }
5642 let val_ref =
5643 self.allowed_offers.get_or_insert_with(|| fidl::new_empty!(AllowedOffers, D));
5644 fidl::decode!(AllowedOffers, D, val_ref, decoder, inner_offset, inner_depth)?;
5645 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5646 {
5647 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5648 }
5649 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5650 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5651 }
5652 }
5653
5654 next_offset += envelope_size;
5655 _next_ordinal_to_read += 1;
5656 if next_offset >= end_offset {
5657 return Ok(());
5658 }
5659
5660 while _next_ordinal_to_read < 5 {
5662 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5663 _next_ordinal_to_read += 1;
5664 next_offset += envelope_size;
5665 }
5666
5667 let next_out_of_line = decoder.next_out_of_line();
5668 let handles_before = decoder.remaining_handles();
5669 if let Some((inlined, num_bytes, num_handles)) =
5670 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5671 {
5672 let member_inline_size =
5673 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5674 if inlined != (member_inline_size <= 4) {
5675 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5676 }
5677 let inner_offset;
5678 let mut inner_depth = depth.clone();
5679 if inlined {
5680 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5681 inner_offset = next_offset;
5682 } else {
5683 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5684 inner_depth.increment()?;
5685 }
5686 let val_ref =
5687 self.allow_long_names.get_or_insert_with(|| fidl::new_empty!(bool, D));
5688 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5689 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5690 {
5691 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5692 }
5693 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5694 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5695 }
5696 }
5697
5698 next_offset += envelope_size;
5699 _next_ordinal_to_read += 1;
5700 if next_offset >= end_offset {
5701 return Ok(());
5702 }
5703
5704 while _next_ordinal_to_read < 6 {
5706 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5707 _next_ordinal_to_read += 1;
5708 next_offset += envelope_size;
5709 }
5710
5711 let next_out_of_line = decoder.next_out_of_line();
5712 let handles_before = decoder.remaining_handles();
5713 if let Some((inlined, num_bytes, num_handles)) =
5714 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5715 {
5716 let member_inline_size =
5717 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5718 if inlined != (member_inline_size <= 4) {
5719 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5720 }
5721 let inner_offset;
5722 let mut inner_depth = depth.clone();
5723 if inlined {
5724 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5725 inner_offset = next_offset;
5726 } else {
5727 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5728 inner_depth.increment()?;
5729 }
5730 let val_ref =
5731 self.persistent_storage.get_or_insert_with(|| fidl::new_empty!(bool, D));
5732 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5733 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5734 {
5735 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5736 }
5737 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5738 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5739 }
5740 }
5741
5742 next_offset += envelope_size;
5743
5744 while next_offset < end_offset {
5746 _next_ordinal_to_read += 1;
5747 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5748 next_offset += envelope_size;
5749 }
5750
5751 Ok(())
5752 }
5753 }
5754
5755 impl Component {
5756 #[inline(always)]
5757 fn max_ordinal_present(&self) -> u64 {
5758 if let Some(_) = self.debug_info {
5759 return 11;
5760 }
5761 if let Some(_) = self.config {
5762 return 10;
5763 }
5764 if let Some(_) = self.facets {
5765 return 9;
5766 }
5767 if let Some(_) = self.environments {
5768 return 8;
5769 }
5770 if let Some(_) = self.collections {
5771 return 7;
5772 }
5773 if let Some(_) = self.children {
5774 return 6;
5775 }
5776 if let Some(_) = self.capabilities {
5777 return 5;
5778 }
5779 if let Some(_) = self.offers {
5780 return 4;
5781 }
5782 if let Some(_) = self.exposes {
5783 return 3;
5784 }
5785 if let Some(_) = self.uses {
5786 return 2;
5787 }
5788 if let Some(_) = self.program {
5789 return 1;
5790 }
5791 0
5792 }
5793 }
5794
5795 impl fidl::encoding::ValueTypeMarker for Component {
5796 type Borrowed<'a> = &'a Self;
5797 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5798 value
5799 }
5800 }
5801
5802 unsafe impl fidl::encoding::TypeMarker for Component {
5803 type Owned = Self;
5804
5805 #[inline(always)]
5806 fn inline_align(_context: fidl::encoding::Context) -> usize {
5807 8
5808 }
5809
5810 #[inline(always)]
5811 fn inline_size(_context: fidl::encoding::Context) -> usize {
5812 16
5813 }
5814 }
5815
5816 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Component, D>
5817 for &Component
5818 {
5819 unsafe fn encode(
5820 self,
5821 encoder: &mut fidl::encoding::Encoder<'_, D>,
5822 offset: usize,
5823 mut depth: fidl::encoding::Depth,
5824 ) -> fidl::Result<()> {
5825 encoder.debug_check_bounds::<Component>(offset);
5826 let max_ordinal: u64 = self.max_ordinal_present();
5828 encoder.write_num(max_ordinal, offset);
5829 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5830 if max_ordinal == 0 {
5832 return Ok(());
5833 }
5834 depth.increment()?;
5835 let envelope_size = 8;
5836 let bytes_len = max_ordinal as usize * envelope_size;
5837 #[allow(unused_variables)]
5838 let offset = encoder.out_of_line_offset(bytes_len);
5839 let mut _prev_end_offset: usize = 0;
5840 if 1 > max_ordinal {
5841 return Ok(());
5842 }
5843
5844 let cur_offset: usize = (1 - 1) * envelope_size;
5847
5848 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5850
5851 fidl::encoding::encode_in_envelope_optional::<Program, D>(
5856 self.program.as_ref().map(<Program as fidl::encoding::ValueTypeMarker>::borrow),
5857 encoder,
5858 offset + cur_offset,
5859 depth,
5860 )?;
5861
5862 _prev_end_offset = cur_offset + envelope_size;
5863 if 2 > max_ordinal {
5864 return Ok(());
5865 }
5866
5867 let cur_offset: usize = (2 - 1) * envelope_size;
5870
5871 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5873
5874 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Use>, D>(
5879 self.uses.as_ref().map(<fidl::encoding::UnboundedVector<Use> as fidl::encoding::ValueTypeMarker>::borrow),
5880 encoder, offset + cur_offset, depth
5881 )?;
5882
5883 _prev_end_offset = cur_offset + envelope_size;
5884 if 3 > max_ordinal {
5885 return Ok(());
5886 }
5887
5888 let cur_offset: usize = (3 - 1) * envelope_size;
5891
5892 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5894
5895 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Expose>, D>(
5900 self.exposes.as_ref().map(<fidl::encoding::UnboundedVector<Expose> as fidl::encoding::ValueTypeMarker>::borrow),
5901 encoder, offset + cur_offset, depth
5902 )?;
5903
5904 _prev_end_offset = cur_offset + envelope_size;
5905 if 4 > max_ordinal {
5906 return Ok(());
5907 }
5908
5909 let cur_offset: usize = (4 - 1) * envelope_size;
5912
5913 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5915
5916 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Offer>, D>(
5921 self.offers.as_ref().map(<fidl::encoding::UnboundedVector<Offer> as fidl::encoding::ValueTypeMarker>::borrow),
5922 encoder, offset + cur_offset, depth
5923 )?;
5924
5925 _prev_end_offset = cur_offset + envelope_size;
5926 if 5 > max_ordinal {
5927 return Ok(());
5928 }
5929
5930 let cur_offset: usize = (5 - 1) * envelope_size;
5933
5934 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5936
5937 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Capability>, D>(
5942 self.capabilities.as_ref().map(<fidl::encoding::UnboundedVector<Capability> as fidl::encoding::ValueTypeMarker>::borrow),
5943 encoder, offset + cur_offset, depth
5944 )?;
5945
5946 _prev_end_offset = cur_offset + envelope_size;
5947 if 6 > max_ordinal {
5948 return Ok(());
5949 }
5950
5951 let cur_offset: usize = (6 - 1) * envelope_size;
5954
5955 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5957
5958 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Child>, D>(
5963 self.children.as_ref().map(<fidl::encoding::UnboundedVector<Child> as fidl::encoding::ValueTypeMarker>::borrow),
5964 encoder, offset + cur_offset, depth
5965 )?;
5966
5967 _prev_end_offset = cur_offset + envelope_size;
5968 if 7 > max_ordinal {
5969 return Ok(());
5970 }
5971
5972 let cur_offset: usize = (7 - 1) * envelope_size;
5975
5976 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5978
5979 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Collection>, D>(
5984 self.collections.as_ref().map(<fidl::encoding::UnboundedVector<Collection> as fidl::encoding::ValueTypeMarker>::borrow),
5985 encoder, offset + cur_offset, depth
5986 )?;
5987
5988 _prev_end_offset = cur_offset + envelope_size;
5989 if 8 > max_ordinal {
5990 return Ok(());
5991 }
5992
5993 let cur_offset: usize = (8 - 1) * envelope_size;
5996
5997 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5999
6000 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Environment>, D>(
6005 self.environments.as_ref().map(<fidl::encoding::UnboundedVector<Environment> as fidl::encoding::ValueTypeMarker>::borrow),
6006 encoder, offset + cur_offset, depth
6007 )?;
6008
6009 _prev_end_offset = cur_offset + envelope_size;
6010 if 9 > max_ordinal {
6011 return Ok(());
6012 }
6013
6014 let cur_offset: usize = (9 - 1) * envelope_size;
6017
6018 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6020
6021 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data__common::Dictionary, D>(
6026 self.facets.as_ref().map(<fidl_fuchsia_data__common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
6027 encoder, offset + cur_offset, depth
6028 )?;
6029
6030 _prev_end_offset = cur_offset + envelope_size;
6031 if 10 > max_ordinal {
6032 return Ok(());
6033 }
6034
6035 let cur_offset: usize = (10 - 1) * envelope_size;
6038
6039 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6041
6042 fidl::encoding::encode_in_envelope_optional::<ConfigSchema, D>(
6047 self.config.as_ref().map(<ConfigSchema as fidl::encoding::ValueTypeMarker>::borrow),
6048 encoder,
6049 offset + cur_offset,
6050 depth,
6051 )?;
6052
6053 _prev_end_offset = cur_offset + envelope_size;
6054 if 11 > max_ordinal {
6055 return Ok(());
6056 }
6057
6058 let cur_offset: usize = (11 - 1) * envelope_size;
6061
6062 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6064
6065 fidl::encoding::encode_in_envelope_optional::<DebugInfo, D>(
6070 self.debug_info
6071 .as_ref()
6072 .map(<DebugInfo as fidl::encoding::ValueTypeMarker>::borrow),
6073 encoder,
6074 offset + cur_offset,
6075 depth,
6076 )?;
6077
6078 _prev_end_offset = cur_offset + envelope_size;
6079
6080 Ok(())
6081 }
6082 }
6083
6084 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Component {
6085 #[inline(always)]
6086 fn new_empty() -> Self {
6087 Self::default()
6088 }
6089
6090 unsafe fn decode(
6091 &mut self,
6092 decoder: &mut fidl::encoding::Decoder<'_, D>,
6093 offset: usize,
6094 mut depth: fidl::encoding::Depth,
6095 ) -> fidl::Result<()> {
6096 decoder.debug_check_bounds::<Self>(offset);
6097 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6098 None => return Err(fidl::Error::NotNullable),
6099 Some(len) => len,
6100 };
6101 if len == 0 {
6103 return Ok(());
6104 };
6105 depth.increment()?;
6106 let envelope_size = 8;
6107 let bytes_len = len * envelope_size;
6108 let offset = decoder.out_of_line_offset(bytes_len)?;
6109 let mut _next_ordinal_to_read = 0;
6111 let mut next_offset = offset;
6112 let end_offset = offset + bytes_len;
6113 _next_ordinal_to_read += 1;
6114 if next_offset >= end_offset {
6115 return Ok(());
6116 }
6117
6118 while _next_ordinal_to_read < 1 {
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 <Program 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.program.get_or_insert_with(|| fidl::new_empty!(Program, D));
6145 fidl::decode!(Program, 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 < 2 {
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 = <fidl::encoding::UnboundedVector<Use> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6174 if inlined != (member_inline_size <= 4) {
6175 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6176 }
6177 let inner_offset;
6178 let mut inner_depth = depth.clone();
6179 if inlined {
6180 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6181 inner_offset = next_offset;
6182 } else {
6183 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6184 inner_depth.increment()?;
6185 }
6186 let val_ref = self.uses.get_or_insert_with(|| {
6187 fidl::new_empty!(fidl::encoding::UnboundedVector<Use>, D)
6188 });
6189 fidl::decode!(
6190 fidl::encoding::UnboundedVector<Use>,
6191 D,
6192 val_ref,
6193 decoder,
6194 inner_offset,
6195 inner_depth
6196 )?;
6197 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6198 {
6199 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6200 }
6201 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6202 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6203 }
6204 }
6205
6206 next_offset += envelope_size;
6207 _next_ordinal_to_read += 1;
6208 if next_offset >= end_offset {
6209 return Ok(());
6210 }
6211
6212 while _next_ordinal_to_read < 3 {
6214 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6215 _next_ordinal_to_read += 1;
6216 next_offset += envelope_size;
6217 }
6218
6219 let next_out_of_line = decoder.next_out_of_line();
6220 let handles_before = decoder.remaining_handles();
6221 if let Some((inlined, num_bytes, num_handles)) =
6222 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6223 {
6224 let member_inline_size = <fidl::encoding::UnboundedVector<Expose> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6225 if inlined != (member_inline_size <= 4) {
6226 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6227 }
6228 let inner_offset;
6229 let mut inner_depth = depth.clone();
6230 if inlined {
6231 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6232 inner_offset = next_offset;
6233 } else {
6234 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6235 inner_depth.increment()?;
6236 }
6237 let val_ref = self.exposes.get_or_insert_with(|| {
6238 fidl::new_empty!(fidl::encoding::UnboundedVector<Expose>, D)
6239 });
6240 fidl::decode!(
6241 fidl::encoding::UnboundedVector<Expose>,
6242 D,
6243 val_ref,
6244 decoder,
6245 inner_offset,
6246 inner_depth
6247 )?;
6248 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6249 {
6250 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6251 }
6252 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6253 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6254 }
6255 }
6256
6257 next_offset += envelope_size;
6258 _next_ordinal_to_read += 1;
6259 if next_offset >= end_offset {
6260 return Ok(());
6261 }
6262
6263 while _next_ordinal_to_read < 4 {
6265 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6266 _next_ordinal_to_read += 1;
6267 next_offset += envelope_size;
6268 }
6269
6270 let next_out_of_line = decoder.next_out_of_line();
6271 let handles_before = decoder.remaining_handles();
6272 if let Some((inlined, num_bytes, num_handles)) =
6273 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6274 {
6275 let member_inline_size = <fidl::encoding::UnboundedVector<Offer> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6276 if inlined != (member_inline_size <= 4) {
6277 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6278 }
6279 let inner_offset;
6280 let mut inner_depth = depth.clone();
6281 if inlined {
6282 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6283 inner_offset = next_offset;
6284 } else {
6285 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6286 inner_depth.increment()?;
6287 }
6288 let val_ref = self.offers.get_or_insert_with(|| {
6289 fidl::new_empty!(fidl::encoding::UnboundedVector<Offer>, D)
6290 });
6291 fidl::decode!(
6292 fidl::encoding::UnboundedVector<Offer>,
6293 D,
6294 val_ref,
6295 decoder,
6296 inner_offset,
6297 inner_depth
6298 )?;
6299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6300 {
6301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6302 }
6303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6305 }
6306 }
6307
6308 next_offset += envelope_size;
6309 _next_ordinal_to_read += 1;
6310 if next_offset >= end_offset {
6311 return Ok(());
6312 }
6313
6314 while _next_ordinal_to_read < 5 {
6316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6317 _next_ordinal_to_read += 1;
6318 next_offset += envelope_size;
6319 }
6320
6321 let next_out_of_line = decoder.next_out_of_line();
6322 let handles_before = decoder.remaining_handles();
6323 if let Some((inlined, num_bytes, num_handles)) =
6324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6325 {
6326 let member_inline_size = <fidl::encoding::UnboundedVector<Capability> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6327 if inlined != (member_inline_size <= 4) {
6328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6329 }
6330 let inner_offset;
6331 let mut inner_depth = depth.clone();
6332 if inlined {
6333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6334 inner_offset = next_offset;
6335 } else {
6336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6337 inner_depth.increment()?;
6338 }
6339 let val_ref = self.capabilities.get_or_insert_with(|| {
6340 fidl::new_empty!(fidl::encoding::UnboundedVector<Capability>, D)
6341 });
6342 fidl::decode!(
6343 fidl::encoding::UnboundedVector<Capability>,
6344 D,
6345 val_ref,
6346 decoder,
6347 inner_offset,
6348 inner_depth
6349 )?;
6350 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6351 {
6352 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6353 }
6354 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6355 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6356 }
6357 }
6358
6359 next_offset += envelope_size;
6360 _next_ordinal_to_read += 1;
6361 if next_offset >= end_offset {
6362 return Ok(());
6363 }
6364
6365 while _next_ordinal_to_read < 6 {
6367 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6368 _next_ordinal_to_read += 1;
6369 next_offset += envelope_size;
6370 }
6371
6372 let next_out_of_line = decoder.next_out_of_line();
6373 let handles_before = decoder.remaining_handles();
6374 if let Some((inlined, num_bytes, num_handles)) =
6375 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6376 {
6377 let member_inline_size = <fidl::encoding::UnboundedVector<Child> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6378 if inlined != (member_inline_size <= 4) {
6379 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6380 }
6381 let inner_offset;
6382 let mut inner_depth = depth.clone();
6383 if inlined {
6384 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6385 inner_offset = next_offset;
6386 } else {
6387 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6388 inner_depth.increment()?;
6389 }
6390 let val_ref = self.children.get_or_insert_with(|| {
6391 fidl::new_empty!(fidl::encoding::UnboundedVector<Child>, D)
6392 });
6393 fidl::decode!(
6394 fidl::encoding::UnboundedVector<Child>,
6395 D,
6396 val_ref,
6397 decoder,
6398 inner_offset,
6399 inner_depth
6400 )?;
6401 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6402 {
6403 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6404 }
6405 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6406 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6407 }
6408 }
6409
6410 next_offset += envelope_size;
6411 _next_ordinal_to_read += 1;
6412 if next_offset >= end_offset {
6413 return Ok(());
6414 }
6415
6416 while _next_ordinal_to_read < 7 {
6418 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6419 _next_ordinal_to_read += 1;
6420 next_offset += envelope_size;
6421 }
6422
6423 let next_out_of_line = decoder.next_out_of_line();
6424 let handles_before = decoder.remaining_handles();
6425 if let Some((inlined, num_bytes, num_handles)) =
6426 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6427 {
6428 let member_inline_size = <fidl::encoding::UnboundedVector<Collection> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6429 if inlined != (member_inline_size <= 4) {
6430 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6431 }
6432 let inner_offset;
6433 let mut inner_depth = depth.clone();
6434 if inlined {
6435 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6436 inner_offset = next_offset;
6437 } else {
6438 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6439 inner_depth.increment()?;
6440 }
6441 let val_ref = self.collections.get_or_insert_with(|| {
6442 fidl::new_empty!(fidl::encoding::UnboundedVector<Collection>, D)
6443 });
6444 fidl::decode!(
6445 fidl::encoding::UnboundedVector<Collection>,
6446 D,
6447 val_ref,
6448 decoder,
6449 inner_offset,
6450 inner_depth
6451 )?;
6452 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6453 {
6454 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6455 }
6456 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6457 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6458 }
6459 }
6460
6461 next_offset += envelope_size;
6462 _next_ordinal_to_read += 1;
6463 if next_offset >= end_offset {
6464 return Ok(());
6465 }
6466
6467 while _next_ordinal_to_read < 8 {
6469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6470 _next_ordinal_to_read += 1;
6471 next_offset += envelope_size;
6472 }
6473
6474 let next_out_of_line = decoder.next_out_of_line();
6475 let handles_before = decoder.remaining_handles();
6476 if let Some((inlined, num_bytes, num_handles)) =
6477 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6478 {
6479 let member_inline_size = <fidl::encoding::UnboundedVector<Environment> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6480 if inlined != (member_inline_size <= 4) {
6481 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6482 }
6483 let inner_offset;
6484 let mut inner_depth = depth.clone();
6485 if inlined {
6486 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6487 inner_offset = next_offset;
6488 } else {
6489 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6490 inner_depth.increment()?;
6491 }
6492 let val_ref = self.environments.get_or_insert_with(|| {
6493 fidl::new_empty!(fidl::encoding::UnboundedVector<Environment>, D)
6494 });
6495 fidl::decode!(
6496 fidl::encoding::UnboundedVector<Environment>,
6497 D,
6498 val_ref,
6499 decoder,
6500 inner_offset,
6501 inner_depth
6502 )?;
6503 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6504 {
6505 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6506 }
6507 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6508 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6509 }
6510 }
6511
6512 next_offset += envelope_size;
6513 _next_ordinal_to_read += 1;
6514 if next_offset >= end_offset {
6515 return Ok(());
6516 }
6517
6518 while _next_ordinal_to_read < 9 {
6520 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6521 _next_ordinal_to_read += 1;
6522 next_offset += envelope_size;
6523 }
6524
6525 let next_out_of_line = decoder.next_out_of_line();
6526 let handles_before = decoder.remaining_handles();
6527 if let Some((inlined, num_bytes, num_handles)) =
6528 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6529 {
6530 let member_inline_size = <fidl_fuchsia_data__common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6531 if inlined != (member_inline_size <= 4) {
6532 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6533 }
6534 let inner_offset;
6535 let mut inner_depth = depth.clone();
6536 if inlined {
6537 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6538 inner_offset = next_offset;
6539 } else {
6540 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6541 inner_depth.increment()?;
6542 }
6543 let val_ref = self.facets.get_or_insert_with(|| {
6544 fidl::new_empty!(fidl_fuchsia_data__common::Dictionary, D)
6545 });
6546 fidl::decode!(
6547 fidl_fuchsia_data__common::Dictionary,
6548 D,
6549 val_ref,
6550 decoder,
6551 inner_offset,
6552 inner_depth
6553 )?;
6554 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6555 {
6556 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6557 }
6558 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6559 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6560 }
6561 }
6562
6563 next_offset += envelope_size;
6564 _next_ordinal_to_read += 1;
6565 if next_offset >= end_offset {
6566 return Ok(());
6567 }
6568
6569 while _next_ordinal_to_read < 10 {
6571 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6572 _next_ordinal_to_read += 1;
6573 next_offset += envelope_size;
6574 }
6575
6576 let next_out_of_line = decoder.next_out_of_line();
6577 let handles_before = decoder.remaining_handles();
6578 if let Some((inlined, num_bytes, num_handles)) =
6579 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6580 {
6581 let member_inline_size =
6582 <ConfigSchema as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6583 if inlined != (member_inline_size <= 4) {
6584 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6585 }
6586 let inner_offset;
6587 let mut inner_depth = depth.clone();
6588 if inlined {
6589 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6590 inner_offset = next_offset;
6591 } else {
6592 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6593 inner_depth.increment()?;
6594 }
6595 let val_ref = self.config.get_or_insert_with(|| fidl::new_empty!(ConfigSchema, D));
6596 fidl::decode!(ConfigSchema, D, val_ref, decoder, inner_offset, inner_depth)?;
6597 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6598 {
6599 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6600 }
6601 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6602 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6603 }
6604 }
6605
6606 next_offset += envelope_size;
6607 _next_ordinal_to_read += 1;
6608 if next_offset >= end_offset {
6609 return Ok(());
6610 }
6611
6612 while _next_ordinal_to_read < 11 {
6614 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6615 _next_ordinal_to_read += 1;
6616 next_offset += envelope_size;
6617 }
6618
6619 let next_out_of_line = decoder.next_out_of_line();
6620 let handles_before = decoder.remaining_handles();
6621 if let Some((inlined, num_bytes, num_handles)) =
6622 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6623 {
6624 let member_inline_size =
6625 <DebugInfo as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6626 if inlined != (member_inline_size <= 4) {
6627 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6628 }
6629 let inner_offset;
6630 let mut inner_depth = depth.clone();
6631 if inlined {
6632 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6633 inner_offset = next_offset;
6634 } else {
6635 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6636 inner_depth.increment()?;
6637 }
6638 let val_ref = self.debug_info.get_or_insert_with(|| fidl::new_empty!(DebugInfo, D));
6639 fidl::decode!(DebugInfo, D, val_ref, decoder, inner_offset, inner_depth)?;
6640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6641 {
6642 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6643 }
6644 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6645 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6646 }
6647 }
6648
6649 next_offset += envelope_size;
6650
6651 while next_offset < end_offset {
6653 _next_ordinal_to_read += 1;
6654 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6655 next_offset += envelope_size;
6656 }
6657
6658 Ok(())
6659 }
6660 }
6661
6662 impl ConfigField {
6663 #[inline(always)]
6664 fn max_ordinal_present(&self) -> u64 {
6665 if let Some(_) = self.mutability {
6666 return 3;
6667 }
6668 if let Some(_) = self.type_ {
6669 return 2;
6670 }
6671 if let Some(_) = self.key {
6672 return 1;
6673 }
6674 0
6675 }
6676 }
6677
6678 impl fidl::encoding::ValueTypeMarker for ConfigField {
6679 type Borrowed<'a> = &'a Self;
6680 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6681 value
6682 }
6683 }
6684
6685 unsafe impl fidl::encoding::TypeMarker for ConfigField {
6686 type Owned = Self;
6687
6688 #[inline(always)]
6689 fn inline_align(_context: fidl::encoding::Context) -> usize {
6690 8
6691 }
6692
6693 #[inline(always)]
6694 fn inline_size(_context: fidl::encoding::Context) -> usize {
6695 16
6696 }
6697 }
6698
6699 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigField, D>
6700 for &ConfigField
6701 {
6702 unsafe fn encode(
6703 self,
6704 encoder: &mut fidl::encoding::Encoder<'_, D>,
6705 offset: usize,
6706 mut depth: fidl::encoding::Depth,
6707 ) -> fidl::Result<()> {
6708 encoder.debug_check_bounds::<ConfigField>(offset);
6709 let max_ordinal: u64 = self.max_ordinal_present();
6711 encoder.write_num(max_ordinal, offset);
6712 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6713 if max_ordinal == 0 {
6715 return Ok(());
6716 }
6717 depth.increment()?;
6718 let envelope_size = 8;
6719 let bytes_len = max_ordinal as usize * envelope_size;
6720 #[allow(unused_variables)]
6721 let offset = encoder.out_of_line_offset(bytes_len);
6722 let mut _prev_end_offset: usize = 0;
6723 if 1 > max_ordinal {
6724 return Ok(());
6725 }
6726
6727 let cur_offset: usize = (1 - 1) * envelope_size;
6730
6731 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6733
6734 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
6739 self.key.as_ref().map(
6740 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
6741 ),
6742 encoder,
6743 offset + cur_offset,
6744 depth,
6745 )?;
6746
6747 _prev_end_offset = cur_offset + envelope_size;
6748 if 2 > max_ordinal {
6749 return Ok(());
6750 }
6751
6752 let cur_offset: usize = (2 - 1) * envelope_size;
6755
6756 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6758
6759 fidl::encoding::encode_in_envelope_optional::<ConfigType, D>(
6764 self.type_.as_ref().map(<ConfigType as fidl::encoding::ValueTypeMarker>::borrow),
6765 encoder,
6766 offset + cur_offset,
6767 depth,
6768 )?;
6769
6770 _prev_end_offset = cur_offset + envelope_size;
6771 if 3 > max_ordinal {
6772 return Ok(());
6773 }
6774
6775 let cur_offset: usize = (3 - 1) * envelope_size;
6778
6779 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6781
6782 fidl::encoding::encode_in_envelope_optional::<ConfigMutability, D>(
6787 self.mutability
6788 .as_ref()
6789 .map(<ConfigMutability as fidl::encoding::ValueTypeMarker>::borrow),
6790 encoder,
6791 offset + cur_offset,
6792 depth,
6793 )?;
6794
6795 _prev_end_offset = cur_offset + envelope_size;
6796
6797 Ok(())
6798 }
6799 }
6800
6801 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigField {
6802 #[inline(always)]
6803 fn new_empty() -> Self {
6804 Self::default()
6805 }
6806
6807 unsafe fn decode(
6808 &mut self,
6809 decoder: &mut fidl::encoding::Decoder<'_, D>,
6810 offset: usize,
6811 mut depth: fidl::encoding::Depth,
6812 ) -> fidl::Result<()> {
6813 decoder.debug_check_bounds::<Self>(offset);
6814 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6815 None => return Err(fidl::Error::NotNullable),
6816 Some(len) => len,
6817 };
6818 if len == 0 {
6820 return Ok(());
6821 };
6822 depth.increment()?;
6823 let envelope_size = 8;
6824 let bytes_len = len * envelope_size;
6825 let offset = decoder.out_of_line_offset(bytes_len)?;
6826 let mut _next_ordinal_to_read = 0;
6828 let mut next_offset = offset;
6829 let end_offset = offset + bytes_len;
6830 _next_ordinal_to_read += 1;
6831 if next_offset >= end_offset {
6832 return Ok(());
6833 }
6834
6835 while _next_ordinal_to_read < 1 {
6837 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6838 _next_ordinal_to_read += 1;
6839 next_offset += envelope_size;
6840 }
6841
6842 let next_out_of_line = decoder.next_out_of_line();
6843 let handles_before = decoder.remaining_handles();
6844 if let Some((inlined, num_bytes, num_handles)) =
6845 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6846 {
6847 let member_inline_size =
6848 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
6849 decoder.context,
6850 );
6851 if inlined != (member_inline_size <= 4) {
6852 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6853 }
6854 let inner_offset;
6855 let mut inner_depth = depth.clone();
6856 if inlined {
6857 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6858 inner_offset = next_offset;
6859 } else {
6860 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6861 inner_depth.increment()?;
6862 }
6863 let val_ref = self
6864 .key
6865 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
6866 fidl::decode!(
6867 fidl::encoding::BoundedString<64>,
6868 D,
6869 val_ref,
6870 decoder,
6871 inner_offset,
6872 inner_depth
6873 )?;
6874 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6875 {
6876 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6877 }
6878 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6879 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6880 }
6881 }
6882
6883 next_offset += envelope_size;
6884 _next_ordinal_to_read += 1;
6885 if next_offset >= end_offset {
6886 return Ok(());
6887 }
6888
6889 while _next_ordinal_to_read < 2 {
6891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6892 _next_ordinal_to_read += 1;
6893 next_offset += envelope_size;
6894 }
6895
6896 let next_out_of_line = decoder.next_out_of_line();
6897 let handles_before = decoder.remaining_handles();
6898 if let Some((inlined, num_bytes, num_handles)) =
6899 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6900 {
6901 let member_inline_size =
6902 <ConfigType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6903 if inlined != (member_inline_size <= 4) {
6904 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6905 }
6906 let inner_offset;
6907 let mut inner_depth = depth.clone();
6908 if inlined {
6909 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6910 inner_offset = next_offset;
6911 } else {
6912 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6913 inner_depth.increment()?;
6914 }
6915 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(ConfigType, D));
6916 fidl::decode!(ConfigType, D, val_ref, decoder, inner_offset, inner_depth)?;
6917 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6918 {
6919 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6920 }
6921 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6922 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6923 }
6924 }
6925
6926 next_offset += envelope_size;
6927 _next_ordinal_to_read += 1;
6928 if next_offset >= end_offset {
6929 return Ok(());
6930 }
6931
6932 while _next_ordinal_to_read < 3 {
6934 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6935 _next_ordinal_to_read += 1;
6936 next_offset += envelope_size;
6937 }
6938
6939 let next_out_of_line = decoder.next_out_of_line();
6940 let handles_before = decoder.remaining_handles();
6941 if let Some((inlined, num_bytes, num_handles)) =
6942 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6943 {
6944 let member_inline_size =
6945 <ConfigMutability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6946 if inlined != (member_inline_size <= 4) {
6947 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6948 }
6949 let inner_offset;
6950 let mut inner_depth = depth.clone();
6951 if inlined {
6952 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6953 inner_offset = next_offset;
6954 } else {
6955 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6956 inner_depth.increment()?;
6957 }
6958 let val_ref =
6959 self.mutability.get_or_insert_with(|| fidl::new_empty!(ConfigMutability, D));
6960 fidl::decode!(ConfigMutability, D, val_ref, decoder, inner_offset, inner_depth)?;
6961 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6962 {
6963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6964 }
6965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6967 }
6968 }
6969
6970 next_offset += envelope_size;
6971
6972 while next_offset < end_offset {
6974 _next_ordinal_to_read += 1;
6975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6976 next_offset += envelope_size;
6977 }
6978
6979 Ok(())
6980 }
6981 }
6982
6983 impl ConfigOverride {
6984 #[inline(always)]
6985 fn max_ordinal_present(&self) -> u64 {
6986 if let Some(_) = self.value {
6987 return 2;
6988 }
6989 if let Some(_) = self.key {
6990 return 1;
6991 }
6992 0
6993 }
6994 }
6995
6996 impl fidl::encoding::ValueTypeMarker for ConfigOverride {
6997 type Borrowed<'a> = &'a Self;
6998 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6999 value
7000 }
7001 }
7002
7003 unsafe impl fidl::encoding::TypeMarker for ConfigOverride {
7004 type Owned = Self;
7005
7006 #[inline(always)]
7007 fn inline_align(_context: fidl::encoding::Context) -> usize {
7008 8
7009 }
7010
7011 #[inline(always)]
7012 fn inline_size(_context: fidl::encoding::Context) -> usize {
7013 16
7014 }
7015 }
7016
7017 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigOverride, D>
7018 for &ConfigOverride
7019 {
7020 unsafe fn encode(
7021 self,
7022 encoder: &mut fidl::encoding::Encoder<'_, D>,
7023 offset: usize,
7024 mut depth: fidl::encoding::Depth,
7025 ) -> fidl::Result<()> {
7026 encoder.debug_check_bounds::<ConfigOverride>(offset);
7027 let max_ordinal: u64 = self.max_ordinal_present();
7029 encoder.write_num(max_ordinal, offset);
7030 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7031 if max_ordinal == 0 {
7033 return Ok(());
7034 }
7035 depth.increment()?;
7036 let envelope_size = 8;
7037 let bytes_len = max_ordinal as usize * envelope_size;
7038 #[allow(unused_variables)]
7039 let offset = encoder.out_of_line_offset(bytes_len);
7040 let mut _prev_end_offset: usize = 0;
7041 if 1 > max_ordinal {
7042 return Ok(());
7043 }
7044
7045 let cur_offset: usize = (1 - 1) * envelope_size;
7048
7049 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7051
7052 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
7057 self.key.as_ref().map(
7058 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
7059 ),
7060 encoder,
7061 offset + cur_offset,
7062 depth,
7063 )?;
7064
7065 _prev_end_offset = cur_offset + envelope_size;
7066 if 2 > max_ordinal {
7067 return Ok(());
7068 }
7069
7070 let cur_offset: usize = (2 - 1) * envelope_size;
7073
7074 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7076
7077 fidl::encoding::encode_in_envelope_optional::<ConfigValue, D>(
7082 self.value.as_ref().map(<ConfigValue as fidl::encoding::ValueTypeMarker>::borrow),
7083 encoder,
7084 offset + cur_offset,
7085 depth,
7086 )?;
7087
7088 _prev_end_offset = cur_offset + envelope_size;
7089
7090 Ok(())
7091 }
7092 }
7093
7094 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigOverride {
7095 #[inline(always)]
7096 fn new_empty() -> Self {
7097 Self::default()
7098 }
7099
7100 unsafe fn decode(
7101 &mut self,
7102 decoder: &mut fidl::encoding::Decoder<'_, D>,
7103 offset: usize,
7104 mut depth: fidl::encoding::Depth,
7105 ) -> fidl::Result<()> {
7106 decoder.debug_check_bounds::<Self>(offset);
7107 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7108 None => return Err(fidl::Error::NotNullable),
7109 Some(len) => len,
7110 };
7111 if len == 0 {
7113 return Ok(());
7114 };
7115 depth.increment()?;
7116 let envelope_size = 8;
7117 let bytes_len = len * envelope_size;
7118 let offset = decoder.out_of_line_offset(bytes_len)?;
7119 let mut _next_ordinal_to_read = 0;
7121 let mut next_offset = offset;
7122 let end_offset = offset + bytes_len;
7123 _next_ordinal_to_read += 1;
7124 if next_offset >= end_offset {
7125 return Ok(());
7126 }
7127
7128 while _next_ordinal_to_read < 1 {
7130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7131 _next_ordinal_to_read += 1;
7132 next_offset += envelope_size;
7133 }
7134
7135 let next_out_of_line = decoder.next_out_of_line();
7136 let handles_before = decoder.remaining_handles();
7137 if let Some((inlined, num_bytes, num_handles)) =
7138 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7139 {
7140 let member_inline_size =
7141 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
7142 decoder.context,
7143 );
7144 if inlined != (member_inline_size <= 4) {
7145 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7146 }
7147 let inner_offset;
7148 let mut inner_depth = depth.clone();
7149 if inlined {
7150 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7151 inner_offset = next_offset;
7152 } else {
7153 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7154 inner_depth.increment()?;
7155 }
7156 let val_ref = self
7157 .key
7158 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
7159 fidl::decode!(
7160 fidl::encoding::BoundedString<64>,
7161 D,
7162 val_ref,
7163 decoder,
7164 inner_offset,
7165 inner_depth
7166 )?;
7167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7168 {
7169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7170 }
7171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7173 }
7174 }
7175
7176 next_offset += envelope_size;
7177 _next_ordinal_to_read += 1;
7178 if next_offset >= end_offset {
7179 return Ok(());
7180 }
7181
7182 while _next_ordinal_to_read < 2 {
7184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7185 _next_ordinal_to_read += 1;
7186 next_offset += envelope_size;
7187 }
7188
7189 let next_out_of_line = decoder.next_out_of_line();
7190 let handles_before = decoder.remaining_handles();
7191 if let Some((inlined, num_bytes, num_handles)) =
7192 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7193 {
7194 let member_inline_size =
7195 <ConfigValue as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7196 if inlined != (member_inline_size <= 4) {
7197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7198 }
7199 let inner_offset;
7200 let mut inner_depth = depth.clone();
7201 if inlined {
7202 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7203 inner_offset = next_offset;
7204 } else {
7205 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7206 inner_depth.increment()?;
7207 }
7208 let val_ref = self.value.get_or_insert_with(|| fidl::new_empty!(ConfigValue, D));
7209 fidl::decode!(ConfigValue, D, val_ref, decoder, inner_offset, inner_depth)?;
7210 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7211 {
7212 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7213 }
7214 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7215 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7216 }
7217 }
7218
7219 next_offset += envelope_size;
7220
7221 while next_offset < end_offset {
7223 _next_ordinal_to_read += 1;
7224 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7225 next_offset += envelope_size;
7226 }
7227
7228 Ok(())
7229 }
7230 }
7231
7232 impl ConfigSchema {
7233 #[inline(always)]
7234 fn max_ordinal_present(&self) -> u64 {
7235 if let Some(_) = self.value_source {
7236 return 3;
7237 }
7238 if let Some(_) = self.checksum {
7239 return 2;
7240 }
7241 if let Some(_) = self.fields {
7242 return 1;
7243 }
7244 0
7245 }
7246 }
7247
7248 impl fidl::encoding::ValueTypeMarker for ConfigSchema {
7249 type Borrowed<'a> = &'a Self;
7250 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7251 value
7252 }
7253 }
7254
7255 unsafe impl fidl::encoding::TypeMarker for ConfigSchema {
7256 type Owned = Self;
7257
7258 #[inline(always)]
7259 fn inline_align(_context: fidl::encoding::Context) -> usize {
7260 8
7261 }
7262
7263 #[inline(always)]
7264 fn inline_size(_context: fidl::encoding::Context) -> usize {
7265 16
7266 }
7267 }
7268
7269 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigSchema, D>
7270 for &ConfigSchema
7271 {
7272 unsafe fn encode(
7273 self,
7274 encoder: &mut fidl::encoding::Encoder<'_, D>,
7275 offset: usize,
7276 mut depth: fidl::encoding::Depth,
7277 ) -> fidl::Result<()> {
7278 encoder.debug_check_bounds::<ConfigSchema>(offset);
7279 let max_ordinal: u64 = self.max_ordinal_present();
7281 encoder.write_num(max_ordinal, offset);
7282 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7283 if max_ordinal == 0 {
7285 return Ok(());
7286 }
7287 depth.increment()?;
7288 let envelope_size = 8;
7289 let bytes_len = max_ordinal as usize * envelope_size;
7290 #[allow(unused_variables)]
7291 let offset = encoder.out_of_line_offset(bytes_len);
7292 let mut _prev_end_offset: usize = 0;
7293 if 1 > max_ordinal {
7294 return Ok(());
7295 }
7296
7297 let cur_offset: usize = (1 - 1) * envelope_size;
7300
7301 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7303
7304 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ConfigField>, D>(
7309 self.fields.as_ref().map(<fidl::encoding::UnboundedVector<ConfigField> as fidl::encoding::ValueTypeMarker>::borrow),
7310 encoder, offset + cur_offset, depth
7311 )?;
7312
7313 _prev_end_offset = cur_offset + envelope_size;
7314 if 2 > max_ordinal {
7315 return Ok(());
7316 }
7317
7318 let cur_offset: usize = (2 - 1) * envelope_size;
7321
7322 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7324
7325 fidl::encoding::encode_in_envelope_optional::<ConfigChecksum, D>(
7330 self.checksum
7331 .as_ref()
7332 .map(<ConfigChecksum as fidl::encoding::ValueTypeMarker>::borrow),
7333 encoder,
7334 offset + cur_offset,
7335 depth,
7336 )?;
7337
7338 _prev_end_offset = cur_offset + envelope_size;
7339 if 3 > max_ordinal {
7340 return Ok(());
7341 }
7342
7343 let cur_offset: usize = (3 - 1) * envelope_size;
7346
7347 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7349
7350 fidl::encoding::encode_in_envelope_optional::<ConfigValueSource, D>(
7355 self.value_source
7356 .as_ref()
7357 .map(<ConfigValueSource as fidl::encoding::ValueTypeMarker>::borrow),
7358 encoder,
7359 offset + cur_offset,
7360 depth,
7361 )?;
7362
7363 _prev_end_offset = cur_offset + envelope_size;
7364
7365 Ok(())
7366 }
7367 }
7368
7369 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigSchema {
7370 #[inline(always)]
7371 fn new_empty() -> Self {
7372 Self::default()
7373 }
7374
7375 unsafe fn decode(
7376 &mut self,
7377 decoder: &mut fidl::encoding::Decoder<'_, D>,
7378 offset: usize,
7379 mut depth: fidl::encoding::Depth,
7380 ) -> fidl::Result<()> {
7381 decoder.debug_check_bounds::<Self>(offset);
7382 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7383 None => return Err(fidl::Error::NotNullable),
7384 Some(len) => len,
7385 };
7386 if len == 0 {
7388 return Ok(());
7389 };
7390 depth.increment()?;
7391 let envelope_size = 8;
7392 let bytes_len = len * envelope_size;
7393 let offset = decoder.out_of_line_offset(bytes_len)?;
7394 let mut _next_ordinal_to_read = 0;
7396 let mut next_offset = offset;
7397 let end_offset = offset + bytes_len;
7398 _next_ordinal_to_read += 1;
7399 if next_offset >= end_offset {
7400 return Ok(());
7401 }
7402
7403 while _next_ordinal_to_read < 1 {
7405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7406 _next_ordinal_to_read += 1;
7407 next_offset += envelope_size;
7408 }
7409
7410 let next_out_of_line = decoder.next_out_of_line();
7411 let handles_before = decoder.remaining_handles();
7412 if let Some((inlined, num_bytes, num_handles)) =
7413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7414 {
7415 let member_inline_size = <fidl::encoding::UnboundedVector<ConfigField> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7416 if inlined != (member_inline_size <= 4) {
7417 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7418 }
7419 let inner_offset;
7420 let mut inner_depth = depth.clone();
7421 if inlined {
7422 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7423 inner_offset = next_offset;
7424 } else {
7425 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7426 inner_depth.increment()?;
7427 }
7428 let val_ref = self.fields.get_or_insert_with(|| {
7429 fidl::new_empty!(fidl::encoding::UnboundedVector<ConfigField>, D)
7430 });
7431 fidl::decode!(
7432 fidl::encoding::UnboundedVector<ConfigField>,
7433 D,
7434 val_ref,
7435 decoder,
7436 inner_offset,
7437 inner_depth
7438 )?;
7439 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7440 {
7441 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7442 }
7443 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7444 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7445 }
7446 }
7447
7448 next_offset += envelope_size;
7449 _next_ordinal_to_read += 1;
7450 if next_offset >= end_offset {
7451 return Ok(());
7452 }
7453
7454 while _next_ordinal_to_read < 2 {
7456 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7457 _next_ordinal_to_read += 1;
7458 next_offset += envelope_size;
7459 }
7460
7461 let next_out_of_line = decoder.next_out_of_line();
7462 let handles_before = decoder.remaining_handles();
7463 if let Some((inlined, num_bytes, num_handles)) =
7464 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7465 {
7466 let member_inline_size =
7467 <ConfigChecksum as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7468 if inlined != (member_inline_size <= 4) {
7469 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7470 }
7471 let inner_offset;
7472 let mut inner_depth = depth.clone();
7473 if inlined {
7474 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7475 inner_offset = next_offset;
7476 } else {
7477 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7478 inner_depth.increment()?;
7479 }
7480 let val_ref =
7481 self.checksum.get_or_insert_with(|| fidl::new_empty!(ConfigChecksum, D));
7482 fidl::decode!(ConfigChecksum, D, val_ref, decoder, inner_offset, inner_depth)?;
7483 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7484 {
7485 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7486 }
7487 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7488 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7489 }
7490 }
7491
7492 next_offset += envelope_size;
7493 _next_ordinal_to_read += 1;
7494 if next_offset >= end_offset {
7495 return Ok(());
7496 }
7497
7498 while _next_ordinal_to_read < 3 {
7500 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7501 _next_ordinal_to_read += 1;
7502 next_offset += envelope_size;
7503 }
7504
7505 let next_out_of_line = decoder.next_out_of_line();
7506 let handles_before = decoder.remaining_handles();
7507 if let Some((inlined, num_bytes, num_handles)) =
7508 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7509 {
7510 let member_inline_size =
7511 <ConfigValueSource as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7512 if inlined != (member_inline_size <= 4) {
7513 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7514 }
7515 let inner_offset;
7516 let mut inner_depth = depth.clone();
7517 if inlined {
7518 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7519 inner_offset = next_offset;
7520 } else {
7521 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7522 inner_depth.increment()?;
7523 }
7524 let val_ref =
7525 self.value_source.get_or_insert_with(|| fidl::new_empty!(ConfigValueSource, D));
7526 fidl::decode!(ConfigValueSource, D, val_ref, decoder, inner_offset, inner_depth)?;
7527 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7528 {
7529 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7530 }
7531 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7532 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7533 }
7534 }
7535
7536 next_offset += envelope_size;
7537
7538 while next_offset < end_offset {
7540 _next_ordinal_to_read += 1;
7541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7542 next_offset += envelope_size;
7543 }
7544
7545 Ok(())
7546 }
7547 }
7548
7549 impl ConfigSourceCapabilities {
7550 #[inline(always)]
7551 fn max_ordinal_present(&self) -> u64 {
7552 0
7553 }
7554 }
7555
7556 impl fidl::encoding::ValueTypeMarker for ConfigSourceCapabilities {
7557 type Borrowed<'a> = &'a Self;
7558 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7559 value
7560 }
7561 }
7562
7563 unsafe impl fidl::encoding::TypeMarker for ConfigSourceCapabilities {
7564 type Owned = Self;
7565
7566 #[inline(always)]
7567 fn inline_align(_context: fidl::encoding::Context) -> usize {
7568 8
7569 }
7570
7571 #[inline(always)]
7572 fn inline_size(_context: fidl::encoding::Context) -> usize {
7573 16
7574 }
7575 }
7576
7577 unsafe impl<D: fidl::encoding::ResourceDialect>
7578 fidl::encoding::Encode<ConfigSourceCapabilities, D> for &ConfigSourceCapabilities
7579 {
7580 unsafe fn encode(
7581 self,
7582 encoder: &mut fidl::encoding::Encoder<'_, D>,
7583 offset: usize,
7584 mut depth: fidl::encoding::Depth,
7585 ) -> fidl::Result<()> {
7586 encoder.debug_check_bounds::<ConfigSourceCapabilities>(offset);
7587 let max_ordinal: u64 = self.max_ordinal_present();
7589 encoder.write_num(max_ordinal, offset);
7590 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7591 if max_ordinal == 0 {
7593 return Ok(());
7594 }
7595 depth.increment()?;
7596 let envelope_size = 8;
7597 let bytes_len = max_ordinal as usize * envelope_size;
7598 #[allow(unused_variables)]
7599 let offset = encoder.out_of_line_offset(bytes_len);
7600 let mut _prev_end_offset: usize = 0;
7601
7602 Ok(())
7603 }
7604 }
7605
7606 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7607 for ConfigSourceCapabilities
7608 {
7609 #[inline(always)]
7610 fn new_empty() -> Self {
7611 Self::default()
7612 }
7613
7614 unsafe fn decode(
7615 &mut self,
7616 decoder: &mut fidl::encoding::Decoder<'_, D>,
7617 offset: usize,
7618 mut depth: fidl::encoding::Depth,
7619 ) -> fidl::Result<()> {
7620 decoder.debug_check_bounds::<Self>(offset);
7621 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7622 None => return Err(fidl::Error::NotNullable),
7623 Some(len) => len,
7624 };
7625 if len == 0 {
7627 return Ok(());
7628 };
7629 depth.increment()?;
7630 let envelope_size = 8;
7631 let bytes_len = len * envelope_size;
7632 let offset = decoder.out_of_line_offset(bytes_len)?;
7633 let mut _next_ordinal_to_read = 0;
7635 let mut next_offset = offset;
7636 let end_offset = offset + bytes_len;
7637
7638 while next_offset < end_offset {
7640 _next_ordinal_to_read += 1;
7641 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7642 next_offset += envelope_size;
7643 }
7644
7645 Ok(())
7646 }
7647 }
7648
7649 impl ConfigValueSpec {
7650 #[inline(always)]
7651 fn max_ordinal_present(&self) -> u64 {
7652 if let Some(_) = self.value {
7653 return 1;
7654 }
7655 0
7656 }
7657 }
7658
7659 impl fidl::encoding::ValueTypeMarker for ConfigValueSpec {
7660 type Borrowed<'a> = &'a Self;
7661 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7662 value
7663 }
7664 }
7665
7666 unsafe impl fidl::encoding::TypeMarker for ConfigValueSpec {
7667 type Owned = Self;
7668
7669 #[inline(always)]
7670 fn inline_align(_context: fidl::encoding::Context) -> usize {
7671 8
7672 }
7673
7674 #[inline(always)]
7675 fn inline_size(_context: fidl::encoding::Context) -> usize {
7676 16
7677 }
7678 }
7679
7680 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValueSpec, D>
7681 for &ConfigValueSpec
7682 {
7683 unsafe fn encode(
7684 self,
7685 encoder: &mut fidl::encoding::Encoder<'_, D>,
7686 offset: usize,
7687 mut depth: fidl::encoding::Depth,
7688 ) -> fidl::Result<()> {
7689 encoder.debug_check_bounds::<ConfigValueSpec>(offset);
7690 let max_ordinal: u64 = self.max_ordinal_present();
7692 encoder.write_num(max_ordinal, offset);
7693 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7694 if max_ordinal == 0 {
7696 return Ok(());
7697 }
7698 depth.increment()?;
7699 let envelope_size = 8;
7700 let bytes_len = max_ordinal as usize * envelope_size;
7701 #[allow(unused_variables)]
7702 let offset = encoder.out_of_line_offset(bytes_len);
7703 let mut _prev_end_offset: usize = 0;
7704 if 1 > max_ordinal {
7705 return Ok(());
7706 }
7707
7708 let cur_offset: usize = (1 - 1) * envelope_size;
7711
7712 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7714
7715 fidl::encoding::encode_in_envelope_optional::<ConfigValue, D>(
7720 self.value.as_ref().map(<ConfigValue as fidl::encoding::ValueTypeMarker>::borrow),
7721 encoder,
7722 offset + cur_offset,
7723 depth,
7724 )?;
7725
7726 _prev_end_offset = cur_offset + envelope_size;
7727
7728 Ok(())
7729 }
7730 }
7731
7732 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValueSpec {
7733 #[inline(always)]
7734 fn new_empty() -> Self {
7735 Self::default()
7736 }
7737
7738 unsafe fn decode(
7739 &mut self,
7740 decoder: &mut fidl::encoding::Decoder<'_, D>,
7741 offset: usize,
7742 mut depth: fidl::encoding::Depth,
7743 ) -> fidl::Result<()> {
7744 decoder.debug_check_bounds::<Self>(offset);
7745 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7746 None => return Err(fidl::Error::NotNullable),
7747 Some(len) => len,
7748 };
7749 if len == 0 {
7751 return Ok(());
7752 };
7753 depth.increment()?;
7754 let envelope_size = 8;
7755 let bytes_len = len * envelope_size;
7756 let offset = decoder.out_of_line_offset(bytes_len)?;
7757 let mut _next_ordinal_to_read = 0;
7759 let mut next_offset = offset;
7760 let end_offset = offset + bytes_len;
7761 _next_ordinal_to_read += 1;
7762 if next_offset >= end_offset {
7763 return Ok(());
7764 }
7765
7766 while _next_ordinal_to_read < 1 {
7768 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7769 _next_ordinal_to_read += 1;
7770 next_offset += envelope_size;
7771 }
7772
7773 let next_out_of_line = decoder.next_out_of_line();
7774 let handles_before = decoder.remaining_handles();
7775 if let Some((inlined, num_bytes, num_handles)) =
7776 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7777 {
7778 let member_inline_size =
7779 <ConfigValue as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7780 if inlined != (member_inline_size <= 4) {
7781 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7782 }
7783 let inner_offset;
7784 let mut inner_depth = depth.clone();
7785 if inlined {
7786 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7787 inner_offset = next_offset;
7788 } else {
7789 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7790 inner_depth.increment()?;
7791 }
7792 let val_ref = self.value.get_or_insert_with(|| fidl::new_empty!(ConfigValue, D));
7793 fidl::decode!(ConfigValue, D, val_ref, decoder, inner_offset, inner_depth)?;
7794 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7795 {
7796 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7797 }
7798 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7799 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7800 }
7801 }
7802
7803 next_offset += envelope_size;
7804
7805 while next_offset < end_offset {
7807 _next_ordinal_to_read += 1;
7808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7809 next_offset += envelope_size;
7810 }
7811
7812 Ok(())
7813 }
7814 }
7815
7816 impl ConfigValuesData {
7817 #[inline(always)]
7818 fn max_ordinal_present(&self) -> u64 {
7819 if let Some(_) = self.checksum {
7820 return 2;
7821 }
7822 if let Some(_) = self.values {
7823 return 1;
7824 }
7825 0
7826 }
7827 }
7828
7829 impl fidl::encoding::ValueTypeMarker for ConfigValuesData {
7830 type Borrowed<'a> = &'a Self;
7831 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7832 value
7833 }
7834 }
7835
7836 unsafe impl fidl::encoding::TypeMarker for ConfigValuesData {
7837 type Owned = Self;
7838
7839 #[inline(always)]
7840 fn inline_align(_context: fidl::encoding::Context) -> usize {
7841 8
7842 }
7843
7844 #[inline(always)]
7845 fn inline_size(_context: fidl::encoding::Context) -> usize {
7846 16
7847 }
7848 }
7849
7850 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValuesData, D>
7851 for &ConfigValuesData
7852 {
7853 unsafe fn encode(
7854 self,
7855 encoder: &mut fidl::encoding::Encoder<'_, D>,
7856 offset: usize,
7857 mut depth: fidl::encoding::Depth,
7858 ) -> fidl::Result<()> {
7859 encoder.debug_check_bounds::<ConfigValuesData>(offset);
7860 let max_ordinal: u64 = self.max_ordinal_present();
7862 encoder.write_num(max_ordinal, offset);
7863 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7864 if max_ordinal == 0 {
7866 return Ok(());
7867 }
7868 depth.increment()?;
7869 let envelope_size = 8;
7870 let bytes_len = max_ordinal as usize * envelope_size;
7871 #[allow(unused_variables)]
7872 let offset = encoder.out_of_line_offset(bytes_len);
7873 let mut _prev_end_offset: usize = 0;
7874 if 1 > max_ordinal {
7875 return Ok(());
7876 }
7877
7878 let cur_offset: usize = (1 - 1) * envelope_size;
7881
7882 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7884
7885 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ConfigValueSpec>, D>(
7890 self.values.as_ref().map(<fidl::encoding::UnboundedVector<ConfigValueSpec> as fidl::encoding::ValueTypeMarker>::borrow),
7891 encoder, offset + cur_offset, depth
7892 )?;
7893
7894 _prev_end_offset = cur_offset + envelope_size;
7895 if 2 > max_ordinal {
7896 return Ok(());
7897 }
7898
7899 let cur_offset: usize = (2 - 1) * envelope_size;
7902
7903 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7905
7906 fidl::encoding::encode_in_envelope_optional::<ConfigChecksum, D>(
7911 self.checksum
7912 .as_ref()
7913 .map(<ConfigChecksum as fidl::encoding::ValueTypeMarker>::borrow),
7914 encoder,
7915 offset + cur_offset,
7916 depth,
7917 )?;
7918
7919 _prev_end_offset = cur_offset + envelope_size;
7920
7921 Ok(())
7922 }
7923 }
7924
7925 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValuesData {
7926 #[inline(always)]
7927 fn new_empty() -> Self {
7928 Self::default()
7929 }
7930
7931 unsafe fn decode(
7932 &mut self,
7933 decoder: &mut fidl::encoding::Decoder<'_, D>,
7934 offset: usize,
7935 mut depth: fidl::encoding::Depth,
7936 ) -> fidl::Result<()> {
7937 decoder.debug_check_bounds::<Self>(offset);
7938 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7939 None => return Err(fidl::Error::NotNullable),
7940 Some(len) => len,
7941 };
7942 if len == 0 {
7944 return Ok(());
7945 };
7946 depth.increment()?;
7947 let envelope_size = 8;
7948 let bytes_len = len * envelope_size;
7949 let offset = decoder.out_of_line_offset(bytes_len)?;
7950 let mut _next_ordinal_to_read = 0;
7952 let mut next_offset = offset;
7953 let end_offset = offset + bytes_len;
7954 _next_ordinal_to_read += 1;
7955 if next_offset >= end_offset {
7956 return Ok(());
7957 }
7958
7959 while _next_ordinal_to_read < 1 {
7961 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7962 _next_ordinal_to_read += 1;
7963 next_offset += envelope_size;
7964 }
7965
7966 let next_out_of_line = decoder.next_out_of_line();
7967 let handles_before = decoder.remaining_handles();
7968 if let Some((inlined, num_bytes, num_handles)) =
7969 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7970 {
7971 let member_inline_size = <fidl::encoding::UnboundedVector<ConfigValueSpec> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7972 if inlined != (member_inline_size <= 4) {
7973 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7974 }
7975 let inner_offset;
7976 let mut inner_depth = depth.clone();
7977 if inlined {
7978 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7979 inner_offset = next_offset;
7980 } else {
7981 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7982 inner_depth.increment()?;
7983 }
7984 let val_ref = self.values.get_or_insert_with(|| {
7985 fidl::new_empty!(fidl::encoding::UnboundedVector<ConfigValueSpec>, D)
7986 });
7987 fidl::decode!(
7988 fidl::encoding::UnboundedVector<ConfigValueSpec>,
7989 D,
7990 val_ref,
7991 decoder,
7992 inner_offset,
7993 inner_depth
7994 )?;
7995 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7996 {
7997 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7998 }
7999 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8000 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8001 }
8002 }
8003
8004 next_offset += envelope_size;
8005 _next_ordinal_to_read += 1;
8006 if next_offset >= end_offset {
8007 return Ok(());
8008 }
8009
8010 while _next_ordinal_to_read < 2 {
8012 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8013 _next_ordinal_to_read += 1;
8014 next_offset += envelope_size;
8015 }
8016
8017 let next_out_of_line = decoder.next_out_of_line();
8018 let handles_before = decoder.remaining_handles();
8019 if let Some((inlined, num_bytes, num_handles)) =
8020 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8021 {
8022 let member_inline_size =
8023 <ConfigChecksum as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8024 if inlined != (member_inline_size <= 4) {
8025 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8026 }
8027 let inner_offset;
8028 let mut inner_depth = depth.clone();
8029 if inlined {
8030 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8031 inner_offset = next_offset;
8032 } else {
8033 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8034 inner_depth.increment()?;
8035 }
8036 let val_ref =
8037 self.checksum.get_or_insert_with(|| fidl::new_empty!(ConfigChecksum, D));
8038 fidl::decode!(ConfigChecksum, D, val_ref, decoder, inner_offset, inner_depth)?;
8039 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8040 {
8041 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8042 }
8043 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8044 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8045 }
8046 }
8047
8048 next_offset += envelope_size;
8049
8050 while next_offset < end_offset {
8052 _next_ordinal_to_read += 1;
8053 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8054 next_offset += envelope_size;
8055 }
8056
8057 Ok(())
8058 }
8059 }
8060
8061 impl Configuration {
8062 #[inline(always)]
8063 fn max_ordinal_present(&self) -> u64 {
8064 if let Some(_) = self.value {
8065 return 2;
8066 }
8067 if let Some(_) = self.name {
8068 return 1;
8069 }
8070 0
8071 }
8072 }
8073
8074 impl fidl::encoding::ValueTypeMarker for Configuration {
8075 type Borrowed<'a> = &'a Self;
8076 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8077 value
8078 }
8079 }
8080
8081 unsafe impl fidl::encoding::TypeMarker for Configuration {
8082 type Owned = Self;
8083
8084 #[inline(always)]
8085 fn inline_align(_context: fidl::encoding::Context) -> usize {
8086 8
8087 }
8088
8089 #[inline(always)]
8090 fn inline_size(_context: fidl::encoding::Context) -> usize {
8091 16
8092 }
8093 }
8094
8095 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Configuration, D>
8096 for &Configuration
8097 {
8098 unsafe fn encode(
8099 self,
8100 encoder: &mut fidl::encoding::Encoder<'_, D>,
8101 offset: usize,
8102 mut depth: fidl::encoding::Depth,
8103 ) -> fidl::Result<()> {
8104 encoder.debug_check_bounds::<Configuration>(offset);
8105 let max_ordinal: u64 = self.max_ordinal_present();
8107 encoder.write_num(max_ordinal, offset);
8108 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8109 if max_ordinal == 0 {
8111 return Ok(());
8112 }
8113 depth.increment()?;
8114 let envelope_size = 8;
8115 let bytes_len = max_ordinal as usize * envelope_size;
8116 #[allow(unused_variables)]
8117 let offset = encoder.out_of_line_offset(bytes_len);
8118 let mut _prev_end_offset: usize = 0;
8119 if 1 > max_ordinal {
8120 return Ok(());
8121 }
8122
8123 let cur_offset: usize = (1 - 1) * envelope_size;
8126
8127 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8129
8130 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
8135 self.name.as_ref().map(
8136 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
8137 ),
8138 encoder,
8139 offset + cur_offset,
8140 depth,
8141 )?;
8142
8143 _prev_end_offset = cur_offset + envelope_size;
8144 if 2 > max_ordinal {
8145 return Ok(());
8146 }
8147
8148 let cur_offset: usize = (2 - 1) * envelope_size;
8151
8152 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8154
8155 fidl::encoding::encode_in_envelope_optional::<ConfigValue, D>(
8160 self.value.as_ref().map(<ConfigValue as fidl::encoding::ValueTypeMarker>::borrow),
8161 encoder,
8162 offset + cur_offset,
8163 depth,
8164 )?;
8165
8166 _prev_end_offset = cur_offset + envelope_size;
8167
8168 Ok(())
8169 }
8170 }
8171
8172 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Configuration {
8173 #[inline(always)]
8174 fn new_empty() -> Self {
8175 Self::default()
8176 }
8177
8178 unsafe fn decode(
8179 &mut self,
8180 decoder: &mut fidl::encoding::Decoder<'_, D>,
8181 offset: usize,
8182 mut depth: fidl::encoding::Depth,
8183 ) -> fidl::Result<()> {
8184 decoder.debug_check_bounds::<Self>(offset);
8185 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8186 None => return Err(fidl::Error::NotNullable),
8187 Some(len) => len,
8188 };
8189 if len == 0 {
8191 return Ok(());
8192 };
8193 depth.increment()?;
8194 let envelope_size = 8;
8195 let bytes_len = len * envelope_size;
8196 let offset = decoder.out_of_line_offset(bytes_len)?;
8197 let mut _next_ordinal_to_read = 0;
8199 let mut next_offset = offset;
8200 let end_offset = offset + bytes_len;
8201 _next_ordinal_to_read += 1;
8202 if next_offset >= end_offset {
8203 return Ok(());
8204 }
8205
8206 while _next_ordinal_to_read < 1 {
8208 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8209 _next_ordinal_to_read += 1;
8210 next_offset += envelope_size;
8211 }
8212
8213 let next_out_of_line = decoder.next_out_of_line();
8214 let handles_before = decoder.remaining_handles();
8215 if let Some((inlined, num_bytes, num_handles)) =
8216 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8217 {
8218 let member_inline_size =
8219 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
8220 decoder.context,
8221 );
8222 if inlined != (member_inline_size <= 4) {
8223 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8224 }
8225 let inner_offset;
8226 let mut inner_depth = depth.clone();
8227 if inlined {
8228 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8229 inner_offset = next_offset;
8230 } else {
8231 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8232 inner_depth.increment()?;
8233 }
8234 let val_ref = self
8235 .name
8236 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
8237 fidl::decode!(
8238 fidl::encoding::BoundedString<100>,
8239 D,
8240 val_ref,
8241 decoder,
8242 inner_offset,
8243 inner_depth
8244 )?;
8245 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8246 {
8247 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8248 }
8249 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8250 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8251 }
8252 }
8253
8254 next_offset += envelope_size;
8255 _next_ordinal_to_read += 1;
8256 if next_offset >= end_offset {
8257 return Ok(());
8258 }
8259
8260 while _next_ordinal_to_read < 2 {
8262 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8263 _next_ordinal_to_read += 1;
8264 next_offset += envelope_size;
8265 }
8266
8267 let next_out_of_line = decoder.next_out_of_line();
8268 let handles_before = decoder.remaining_handles();
8269 if let Some((inlined, num_bytes, num_handles)) =
8270 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8271 {
8272 let member_inline_size =
8273 <ConfigValue as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8274 if inlined != (member_inline_size <= 4) {
8275 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8276 }
8277 let inner_offset;
8278 let mut inner_depth = depth.clone();
8279 if inlined {
8280 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8281 inner_offset = next_offset;
8282 } else {
8283 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8284 inner_depth.increment()?;
8285 }
8286 let val_ref = self.value.get_or_insert_with(|| fidl::new_empty!(ConfigValue, D));
8287 fidl::decode!(ConfigValue, D, val_ref, decoder, inner_offset, inner_depth)?;
8288 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8289 {
8290 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8291 }
8292 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8293 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8294 }
8295 }
8296
8297 next_offset += envelope_size;
8298
8299 while next_offset < end_offset {
8301 _next_ordinal_to_read += 1;
8302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8303 next_offset += envelope_size;
8304 }
8305
8306 Ok(())
8307 }
8308 }
8309
8310 impl DebugInfo {
8311 #[inline(always)]
8312 fn max_ordinal_present(&self) -> u64 {
8313 if let Some(_) = self.manifest_sources {
8314 return 1;
8315 }
8316 0
8317 }
8318 }
8319
8320 impl fidl::encoding::ValueTypeMarker for DebugInfo {
8321 type Borrowed<'a> = &'a Self;
8322 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8323 value
8324 }
8325 }
8326
8327 unsafe impl fidl::encoding::TypeMarker for DebugInfo {
8328 type Owned = Self;
8329
8330 #[inline(always)]
8331 fn inline_align(_context: fidl::encoding::Context) -> usize {
8332 8
8333 }
8334
8335 #[inline(always)]
8336 fn inline_size(_context: fidl::encoding::Context) -> usize {
8337 16
8338 }
8339 }
8340
8341 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DebugInfo, D>
8342 for &DebugInfo
8343 {
8344 unsafe fn encode(
8345 self,
8346 encoder: &mut fidl::encoding::Encoder<'_, D>,
8347 offset: usize,
8348 mut depth: fidl::encoding::Depth,
8349 ) -> fidl::Result<()> {
8350 encoder.debug_check_bounds::<DebugInfo>(offset);
8351 let max_ordinal: u64 = self.max_ordinal_present();
8353 encoder.write_num(max_ordinal, offset);
8354 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8355 if max_ordinal == 0 {
8357 return Ok(());
8358 }
8359 depth.increment()?;
8360 let envelope_size = 8;
8361 let bytes_len = max_ordinal as usize * envelope_size;
8362 #[allow(unused_variables)]
8363 let offset = encoder.out_of_line_offset(bytes_len);
8364 let mut _prev_end_offset: usize = 0;
8365 if 1 > max_ordinal {
8366 return Ok(());
8367 }
8368
8369 let cur_offset: usize = (1 - 1) * envelope_size;
8372
8373 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8375
8376 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>, D>(
8381 self.manifest_sources.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow),
8382 encoder, offset + cur_offset, depth
8383 )?;
8384
8385 _prev_end_offset = cur_offset + envelope_size;
8386
8387 Ok(())
8388 }
8389 }
8390
8391 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DebugInfo {
8392 #[inline(always)]
8393 fn new_empty() -> Self {
8394 Self::default()
8395 }
8396
8397 unsafe fn decode(
8398 &mut self,
8399 decoder: &mut fidl::encoding::Decoder<'_, D>,
8400 offset: usize,
8401 mut depth: fidl::encoding::Depth,
8402 ) -> fidl::Result<()> {
8403 decoder.debug_check_bounds::<Self>(offset);
8404 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8405 None => return Err(fidl::Error::NotNullable),
8406 Some(len) => len,
8407 };
8408 if len == 0 {
8410 return Ok(());
8411 };
8412 depth.increment()?;
8413 let envelope_size = 8;
8414 let bytes_len = len * envelope_size;
8415 let offset = decoder.out_of_line_offset(bytes_len)?;
8416 let mut _next_ordinal_to_read = 0;
8418 let mut next_offset = offset;
8419 let end_offset = offset + bytes_len;
8420 _next_ordinal_to_read += 1;
8421 if next_offset >= end_offset {
8422 return Ok(());
8423 }
8424
8425 while _next_ordinal_to_read < 1 {
8427 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8428 _next_ordinal_to_read += 1;
8429 next_offset += envelope_size;
8430 }
8431
8432 let next_out_of_line = decoder.next_out_of_line();
8433 let handles_before = decoder.remaining_handles();
8434 if let Some((inlined, num_bytes, num_handles)) =
8435 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8436 {
8437 let member_inline_size = <fidl::encoding::UnboundedVector<
8438 fidl::encoding::UnboundedString,
8439 > as fidl::encoding::TypeMarker>::inline_size(
8440 decoder.context
8441 );
8442 if inlined != (member_inline_size <= 4) {
8443 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8444 }
8445 let inner_offset;
8446 let mut inner_depth = depth.clone();
8447 if inlined {
8448 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8449 inner_offset = next_offset;
8450 } else {
8451 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8452 inner_depth.increment()?;
8453 }
8454 let val_ref = self.manifest_sources.get_or_insert_with(|| {
8455 fidl::new_empty!(
8456 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
8457 D
8458 )
8459 });
8460 fidl::decode!(
8461 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
8462 D,
8463 val_ref,
8464 decoder,
8465 inner_offset,
8466 inner_depth
8467 )?;
8468 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8469 {
8470 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8471 }
8472 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8473 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8474 }
8475 }
8476
8477 next_offset += envelope_size;
8478
8479 while next_offset < end_offset {
8481 _next_ordinal_to_read += 1;
8482 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8483 next_offset += envelope_size;
8484 }
8485
8486 Ok(())
8487 }
8488 }
8489
8490 impl DebugProtocolRegistration {
8491 #[inline(always)]
8492 fn max_ordinal_present(&self) -> u64 {
8493 if let Some(_) = self.target_name {
8494 return 3;
8495 }
8496 if let Some(_) = self.source_name {
8497 return 2;
8498 }
8499 if let Some(_) = self.source {
8500 return 1;
8501 }
8502 0
8503 }
8504 }
8505
8506 impl fidl::encoding::ValueTypeMarker for DebugProtocolRegistration {
8507 type Borrowed<'a> = &'a Self;
8508 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8509 value
8510 }
8511 }
8512
8513 unsafe impl fidl::encoding::TypeMarker for DebugProtocolRegistration {
8514 type Owned = Self;
8515
8516 #[inline(always)]
8517 fn inline_align(_context: fidl::encoding::Context) -> usize {
8518 8
8519 }
8520
8521 #[inline(always)]
8522 fn inline_size(_context: fidl::encoding::Context) -> usize {
8523 16
8524 }
8525 }
8526
8527 unsafe impl<D: fidl::encoding::ResourceDialect>
8528 fidl::encoding::Encode<DebugProtocolRegistration, D> for &DebugProtocolRegistration
8529 {
8530 unsafe fn encode(
8531 self,
8532 encoder: &mut fidl::encoding::Encoder<'_, D>,
8533 offset: usize,
8534 mut depth: fidl::encoding::Depth,
8535 ) -> fidl::Result<()> {
8536 encoder.debug_check_bounds::<DebugProtocolRegistration>(offset);
8537 let max_ordinal: u64 = self.max_ordinal_present();
8539 encoder.write_num(max_ordinal, offset);
8540 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8541 if max_ordinal == 0 {
8543 return Ok(());
8544 }
8545 depth.increment()?;
8546 let envelope_size = 8;
8547 let bytes_len = max_ordinal as usize * envelope_size;
8548 #[allow(unused_variables)]
8549 let offset = encoder.out_of_line_offset(bytes_len);
8550 let mut _prev_end_offset: usize = 0;
8551 if 1 > max_ordinal {
8552 return Ok(());
8553 }
8554
8555 let cur_offset: usize = (1 - 1) * envelope_size;
8558
8559 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8561
8562 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
8567 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
8568 encoder,
8569 offset + cur_offset,
8570 depth,
8571 )?;
8572
8573 _prev_end_offset = cur_offset + envelope_size;
8574 if 2 > max_ordinal {
8575 return Ok(());
8576 }
8577
8578 let cur_offset: usize = (2 - 1) * envelope_size;
8581
8582 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8584
8585 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
8590 self.source_name.as_ref().map(
8591 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
8592 ),
8593 encoder,
8594 offset + cur_offset,
8595 depth,
8596 )?;
8597
8598 _prev_end_offset = cur_offset + envelope_size;
8599 if 3 > max_ordinal {
8600 return Ok(());
8601 }
8602
8603 let cur_offset: usize = (3 - 1) * envelope_size;
8606
8607 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8609
8610 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
8615 self.target_name.as_ref().map(
8616 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
8617 ),
8618 encoder,
8619 offset + cur_offset,
8620 depth,
8621 )?;
8622
8623 _prev_end_offset = cur_offset + envelope_size;
8624
8625 Ok(())
8626 }
8627 }
8628
8629 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8630 for DebugProtocolRegistration
8631 {
8632 #[inline(always)]
8633 fn new_empty() -> Self {
8634 Self::default()
8635 }
8636
8637 unsafe fn decode(
8638 &mut self,
8639 decoder: &mut fidl::encoding::Decoder<'_, D>,
8640 offset: usize,
8641 mut depth: fidl::encoding::Depth,
8642 ) -> fidl::Result<()> {
8643 decoder.debug_check_bounds::<Self>(offset);
8644 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8645 None => return Err(fidl::Error::NotNullable),
8646 Some(len) => len,
8647 };
8648 if len == 0 {
8650 return Ok(());
8651 };
8652 depth.increment()?;
8653 let envelope_size = 8;
8654 let bytes_len = len * envelope_size;
8655 let offset = decoder.out_of_line_offset(bytes_len)?;
8656 let mut _next_ordinal_to_read = 0;
8658 let mut next_offset = offset;
8659 let end_offset = offset + bytes_len;
8660 _next_ordinal_to_read += 1;
8661 if next_offset >= end_offset {
8662 return Ok(());
8663 }
8664
8665 while _next_ordinal_to_read < 1 {
8667 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8668 _next_ordinal_to_read += 1;
8669 next_offset += envelope_size;
8670 }
8671
8672 let next_out_of_line = decoder.next_out_of_line();
8673 let handles_before = decoder.remaining_handles();
8674 if let Some((inlined, num_bytes, num_handles)) =
8675 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8676 {
8677 let member_inline_size =
8678 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8679 if inlined != (member_inline_size <= 4) {
8680 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8681 }
8682 let inner_offset;
8683 let mut inner_depth = depth.clone();
8684 if inlined {
8685 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8686 inner_offset = next_offset;
8687 } else {
8688 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8689 inner_depth.increment()?;
8690 }
8691 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
8692 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
8693 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8694 {
8695 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8696 }
8697 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8698 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8699 }
8700 }
8701
8702 next_offset += envelope_size;
8703 _next_ordinal_to_read += 1;
8704 if next_offset >= end_offset {
8705 return Ok(());
8706 }
8707
8708 while _next_ordinal_to_read < 2 {
8710 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8711 _next_ordinal_to_read += 1;
8712 next_offset += envelope_size;
8713 }
8714
8715 let next_out_of_line = decoder.next_out_of_line();
8716 let handles_before = decoder.remaining_handles();
8717 if let Some((inlined, num_bytes, num_handles)) =
8718 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8719 {
8720 let member_inline_size =
8721 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
8722 decoder.context,
8723 );
8724 if inlined != (member_inline_size <= 4) {
8725 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8726 }
8727 let inner_offset;
8728 let mut inner_depth = depth.clone();
8729 if inlined {
8730 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8731 inner_offset = next_offset;
8732 } else {
8733 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8734 inner_depth.increment()?;
8735 }
8736 let val_ref = self
8737 .source_name
8738 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
8739 fidl::decode!(
8740 fidl::encoding::BoundedString<100>,
8741 D,
8742 val_ref,
8743 decoder,
8744 inner_offset,
8745 inner_depth
8746 )?;
8747 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8748 {
8749 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8750 }
8751 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8752 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8753 }
8754 }
8755
8756 next_offset += envelope_size;
8757 _next_ordinal_to_read += 1;
8758 if next_offset >= end_offset {
8759 return Ok(());
8760 }
8761
8762 while _next_ordinal_to_read < 3 {
8764 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8765 _next_ordinal_to_read += 1;
8766 next_offset += envelope_size;
8767 }
8768
8769 let next_out_of_line = decoder.next_out_of_line();
8770 let handles_before = decoder.remaining_handles();
8771 if let Some((inlined, num_bytes, num_handles)) =
8772 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8773 {
8774 let member_inline_size =
8775 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
8776 decoder.context,
8777 );
8778 if inlined != (member_inline_size <= 4) {
8779 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8780 }
8781 let inner_offset;
8782 let mut inner_depth = depth.clone();
8783 if inlined {
8784 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8785 inner_offset = next_offset;
8786 } else {
8787 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8788 inner_depth.increment()?;
8789 }
8790 let val_ref = self
8791 .target_name
8792 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
8793 fidl::decode!(
8794 fidl::encoding::BoundedString<100>,
8795 D,
8796 val_ref,
8797 decoder,
8798 inner_offset,
8799 inner_depth
8800 )?;
8801 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8802 {
8803 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8804 }
8805 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8806 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8807 }
8808 }
8809
8810 next_offset += envelope_size;
8811
8812 while next_offset < end_offset {
8814 _next_ordinal_to_read += 1;
8815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8816 next_offset += envelope_size;
8817 }
8818
8819 Ok(())
8820 }
8821 }
8822
8823 impl Dictionary {
8824 #[inline(always)]
8825 fn max_ordinal_present(&self) -> u64 {
8826 if let Some(_) = self.source_path {
8827 return 4;
8828 }
8829 if let Some(_) = self.source_dictionary {
8830 return 3;
8831 }
8832 if let Some(_) = self.source {
8833 return 2;
8834 }
8835 if let Some(_) = self.name {
8836 return 1;
8837 }
8838 0
8839 }
8840 }
8841
8842 impl fidl::encoding::ValueTypeMarker for Dictionary {
8843 type Borrowed<'a> = &'a Self;
8844 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8845 value
8846 }
8847 }
8848
8849 unsafe impl fidl::encoding::TypeMarker for Dictionary {
8850 type Owned = Self;
8851
8852 #[inline(always)]
8853 fn inline_align(_context: fidl::encoding::Context) -> usize {
8854 8
8855 }
8856
8857 #[inline(always)]
8858 fn inline_size(_context: fidl::encoding::Context) -> usize {
8859 16
8860 }
8861 }
8862
8863 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Dictionary, D>
8864 for &Dictionary
8865 {
8866 unsafe fn encode(
8867 self,
8868 encoder: &mut fidl::encoding::Encoder<'_, D>,
8869 offset: usize,
8870 mut depth: fidl::encoding::Depth,
8871 ) -> fidl::Result<()> {
8872 encoder.debug_check_bounds::<Dictionary>(offset);
8873 let max_ordinal: u64 = self.max_ordinal_present();
8875 encoder.write_num(max_ordinal, offset);
8876 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8877 if max_ordinal == 0 {
8879 return Ok(());
8880 }
8881 depth.increment()?;
8882 let envelope_size = 8;
8883 let bytes_len = max_ordinal as usize * envelope_size;
8884 #[allow(unused_variables)]
8885 let offset = encoder.out_of_line_offset(bytes_len);
8886 let mut _prev_end_offset: usize = 0;
8887 if 1 > max_ordinal {
8888 return Ok(());
8889 }
8890
8891 let cur_offset: usize = (1 - 1) * envelope_size;
8894
8895 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8897
8898 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
8903 self.name.as_ref().map(
8904 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
8905 ),
8906 encoder,
8907 offset + cur_offset,
8908 depth,
8909 )?;
8910
8911 _prev_end_offset = cur_offset + envelope_size;
8912 if 2 > max_ordinal {
8913 return Ok(());
8914 }
8915
8916 let cur_offset: usize = (2 - 1) * envelope_size;
8919
8920 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8922
8923 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
8928 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
8929 encoder,
8930 offset + cur_offset,
8931 depth,
8932 )?;
8933
8934 _prev_end_offset = cur_offset + envelope_size;
8935 if 3 > max_ordinal {
8936 return Ok(());
8937 }
8938
8939 let cur_offset: usize = (3 - 1) * envelope_size;
8942
8943 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8945
8946 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
8951 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
8952 encoder, offset + cur_offset, depth
8953 )?;
8954
8955 _prev_end_offset = cur_offset + envelope_size;
8956 if 4 > max_ordinal {
8957 return Ok(());
8958 }
8959
8960 let cur_offset: usize = (4 - 1) * envelope_size;
8963
8964 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8966
8967 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
8972 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
8973 encoder, offset + cur_offset, depth
8974 )?;
8975
8976 _prev_end_offset = cur_offset + envelope_size;
8977
8978 Ok(())
8979 }
8980 }
8981
8982 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Dictionary {
8983 #[inline(always)]
8984 fn new_empty() -> Self {
8985 Self::default()
8986 }
8987
8988 unsafe fn decode(
8989 &mut self,
8990 decoder: &mut fidl::encoding::Decoder<'_, D>,
8991 offset: usize,
8992 mut depth: fidl::encoding::Depth,
8993 ) -> fidl::Result<()> {
8994 decoder.debug_check_bounds::<Self>(offset);
8995 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8996 None => return Err(fidl::Error::NotNullable),
8997 Some(len) => len,
8998 };
8999 if len == 0 {
9001 return Ok(());
9002 };
9003 depth.increment()?;
9004 let envelope_size = 8;
9005 let bytes_len = len * envelope_size;
9006 let offset = decoder.out_of_line_offset(bytes_len)?;
9007 let mut _next_ordinal_to_read = 0;
9009 let mut next_offset = offset;
9010 let end_offset = offset + bytes_len;
9011 _next_ordinal_to_read += 1;
9012 if next_offset >= end_offset {
9013 return Ok(());
9014 }
9015
9016 while _next_ordinal_to_read < 1 {
9018 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9019 _next_ordinal_to_read += 1;
9020 next_offset += envelope_size;
9021 }
9022
9023 let next_out_of_line = decoder.next_out_of_line();
9024 let handles_before = decoder.remaining_handles();
9025 if let Some((inlined, num_bytes, num_handles)) =
9026 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9027 {
9028 let member_inline_size =
9029 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
9030 decoder.context,
9031 );
9032 if inlined != (member_inline_size <= 4) {
9033 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9034 }
9035 let inner_offset;
9036 let mut inner_depth = depth.clone();
9037 if inlined {
9038 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9039 inner_offset = next_offset;
9040 } else {
9041 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9042 inner_depth.increment()?;
9043 }
9044 let val_ref = self
9045 .name
9046 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
9047 fidl::decode!(
9048 fidl::encoding::BoundedString<100>,
9049 D,
9050 val_ref,
9051 decoder,
9052 inner_offset,
9053 inner_depth
9054 )?;
9055 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9056 {
9057 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9058 }
9059 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9060 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9061 }
9062 }
9063
9064 next_offset += envelope_size;
9065 _next_ordinal_to_read += 1;
9066 if next_offset >= end_offset {
9067 return Ok(());
9068 }
9069
9070 while _next_ordinal_to_read < 2 {
9072 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9073 _next_ordinal_to_read += 1;
9074 next_offset += envelope_size;
9075 }
9076
9077 let next_out_of_line = decoder.next_out_of_line();
9078 let handles_before = decoder.remaining_handles();
9079 if let Some((inlined, num_bytes, num_handles)) =
9080 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9081 {
9082 let member_inline_size =
9083 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9084 if inlined != (member_inline_size <= 4) {
9085 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9086 }
9087 let inner_offset;
9088 let mut inner_depth = depth.clone();
9089 if inlined {
9090 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9091 inner_offset = next_offset;
9092 } else {
9093 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9094 inner_depth.increment()?;
9095 }
9096 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
9097 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
9098 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9099 {
9100 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9101 }
9102 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9103 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9104 }
9105 }
9106
9107 next_offset += envelope_size;
9108 _next_ordinal_to_read += 1;
9109 if next_offset >= end_offset {
9110 return Ok(());
9111 }
9112
9113 while _next_ordinal_to_read < 3 {
9115 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9116 _next_ordinal_to_read += 1;
9117 next_offset += envelope_size;
9118 }
9119
9120 let next_out_of_line = decoder.next_out_of_line();
9121 let handles_before = decoder.remaining_handles();
9122 if let Some((inlined, num_bytes, num_handles)) =
9123 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9124 {
9125 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9126 if inlined != (member_inline_size <= 4) {
9127 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9128 }
9129 let inner_offset;
9130 let mut inner_depth = depth.clone();
9131 if inlined {
9132 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9133 inner_offset = next_offset;
9134 } else {
9135 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9136 inner_depth.increment()?;
9137 }
9138 let val_ref = self.source_dictionary.get_or_insert_with(|| {
9139 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
9140 });
9141 fidl::decode!(
9142 fidl::encoding::BoundedString<1024>,
9143 D,
9144 val_ref,
9145 decoder,
9146 inner_offset,
9147 inner_depth
9148 )?;
9149 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9150 {
9151 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9152 }
9153 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9154 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9155 }
9156 }
9157
9158 next_offset += envelope_size;
9159 _next_ordinal_to_read += 1;
9160 if next_offset >= end_offset {
9161 return Ok(());
9162 }
9163
9164 while _next_ordinal_to_read < 4 {
9166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9167 _next_ordinal_to_read += 1;
9168 next_offset += envelope_size;
9169 }
9170
9171 let next_out_of_line = decoder.next_out_of_line();
9172 let handles_before = decoder.remaining_handles();
9173 if let Some((inlined, num_bytes, num_handles)) =
9174 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9175 {
9176 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9177 if inlined != (member_inline_size <= 4) {
9178 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9179 }
9180 let inner_offset;
9181 let mut inner_depth = depth.clone();
9182 if inlined {
9183 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9184 inner_offset = next_offset;
9185 } else {
9186 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9187 inner_depth.increment()?;
9188 }
9189 let val_ref = self.source_path.get_or_insert_with(|| {
9190 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
9191 });
9192 fidl::decode!(
9193 fidl::encoding::BoundedString<1024>,
9194 D,
9195 val_ref,
9196 decoder,
9197 inner_offset,
9198 inner_depth
9199 )?;
9200 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9201 {
9202 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9203 }
9204 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9205 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9206 }
9207 }
9208
9209 next_offset += envelope_size;
9210
9211 while next_offset < end_offset {
9213 _next_ordinal_to_read += 1;
9214 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9215 next_offset += envelope_size;
9216 }
9217
9218 Ok(())
9219 }
9220 }
9221
9222 impl Directory {
9223 #[inline(always)]
9224 fn max_ordinal_present(&self) -> u64 {
9225 if let Some(_) = self.rights {
9226 return 3;
9227 }
9228 if let Some(_) = self.source_path {
9229 return 2;
9230 }
9231 if let Some(_) = self.name {
9232 return 1;
9233 }
9234 0
9235 }
9236 }
9237
9238 impl fidl::encoding::ValueTypeMarker for Directory {
9239 type Borrowed<'a> = &'a Self;
9240 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9241 value
9242 }
9243 }
9244
9245 unsafe impl fidl::encoding::TypeMarker for Directory {
9246 type Owned = Self;
9247
9248 #[inline(always)]
9249 fn inline_align(_context: fidl::encoding::Context) -> usize {
9250 8
9251 }
9252
9253 #[inline(always)]
9254 fn inline_size(_context: fidl::encoding::Context) -> usize {
9255 16
9256 }
9257 }
9258
9259 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Directory, D>
9260 for &Directory
9261 {
9262 unsafe fn encode(
9263 self,
9264 encoder: &mut fidl::encoding::Encoder<'_, D>,
9265 offset: usize,
9266 mut depth: fidl::encoding::Depth,
9267 ) -> fidl::Result<()> {
9268 encoder.debug_check_bounds::<Directory>(offset);
9269 let max_ordinal: u64 = self.max_ordinal_present();
9271 encoder.write_num(max_ordinal, offset);
9272 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9273 if max_ordinal == 0 {
9275 return Ok(());
9276 }
9277 depth.increment()?;
9278 let envelope_size = 8;
9279 let bytes_len = max_ordinal as usize * envelope_size;
9280 #[allow(unused_variables)]
9281 let offset = encoder.out_of_line_offset(bytes_len);
9282 let mut _prev_end_offset: usize = 0;
9283 if 1 > max_ordinal {
9284 return Ok(());
9285 }
9286
9287 let cur_offset: usize = (1 - 1) * envelope_size;
9290
9291 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9293
9294 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
9299 self.name.as_ref().map(
9300 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
9301 ),
9302 encoder,
9303 offset + cur_offset,
9304 depth,
9305 )?;
9306
9307 _prev_end_offset = cur_offset + envelope_size;
9308 if 2 > max_ordinal {
9309 return Ok(());
9310 }
9311
9312 let cur_offset: usize = (2 - 1) * envelope_size;
9315
9316 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9318
9319 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
9324 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
9325 encoder, offset + cur_offset, depth
9326 )?;
9327
9328 _prev_end_offset = cur_offset + envelope_size;
9329 if 3 > max_ordinal {
9330 return Ok(());
9331 }
9332
9333 let cur_offset: usize = (3 - 1) * envelope_size;
9336
9337 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9339
9340 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io__common::Operations, D>(
9345 self.rights.as_ref().map(<fidl_fuchsia_io__common::Operations as fidl::encoding::ValueTypeMarker>::borrow),
9346 encoder, offset + cur_offset, depth
9347 )?;
9348
9349 _prev_end_offset = cur_offset + envelope_size;
9350
9351 Ok(())
9352 }
9353 }
9354
9355 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Directory {
9356 #[inline(always)]
9357 fn new_empty() -> Self {
9358 Self::default()
9359 }
9360
9361 unsafe fn decode(
9362 &mut self,
9363 decoder: &mut fidl::encoding::Decoder<'_, D>,
9364 offset: usize,
9365 mut depth: fidl::encoding::Depth,
9366 ) -> fidl::Result<()> {
9367 decoder.debug_check_bounds::<Self>(offset);
9368 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9369 None => return Err(fidl::Error::NotNullable),
9370 Some(len) => len,
9371 };
9372 if len == 0 {
9374 return Ok(());
9375 };
9376 depth.increment()?;
9377 let envelope_size = 8;
9378 let bytes_len = len * envelope_size;
9379 let offset = decoder.out_of_line_offset(bytes_len)?;
9380 let mut _next_ordinal_to_read = 0;
9382 let mut next_offset = offset;
9383 let end_offset = offset + bytes_len;
9384 _next_ordinal_to_read += 1;
9385 if next_offset >= end_offset {
9386 return Ok(());
9387 }
9388
9389 while _next_ordinal_to_read < 1 {
9391 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9392 _next_ordinal_to_read += 1;
9393 next_offset += envelope_size;
9394 }
9395
9396 let next_out_of_line = decoder.next_out_of_line();
9397 let handles_before = decoder.remaining_handles();
9398 if let Some((inlined, num_bytes, num_handles)) =
9399 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9400 {
9401 let member_inline_size =
9402 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
9403 decoder.context,
9404 );
9405 if inlined != (member_inline_size <= 4) {
9406 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9407 }
9408 let inner_offset;
9409 let mut inner_depth = depth.clone();
9410 if inlined {
9411 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9412 inner_offset = next_offset;
9413 } else {
9414 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9415 inner_depth.increment()?;
9416 }
9417 let val_ref = self
9418 .name
9419 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
9420 fidl::decode!(
9421 fidl::encoding::BoundedString<100>,
9422 D,
9423 val_ref,
9424 decoder,
9425 inner_offset,
9426 inner_depth
9427 )?;
9428 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9429 {
9430 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9431 }
9432 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9433 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9434 }
9435 }
9436
9437 next_offset += envelope_size;
9438 _next_ordinal_to_read += 1;
9439 if next_offset >= end_offset {
9440 return Ok(());
9441 }
9442
9443 while _next_ordinal_to_read < 2 {
9445 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9446 _next_ordinal_to_read += 1;
9447 next_offset += envelope_size;
9448 }
9449
9450 let next_out_of_line = decoder.next_out_of_line();
9451 let handles_before = decoder.remaining_handles();
9452 if let Some((inlined, num_bytes, num_handles)) =
9453 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9454 {
9455 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9456 if inlined != (member_inline_size <= 4) {
9457 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9458 }
9459 let inner_offset;
9460 let mut inner_depth = depth.clone();
9461 if inlined {
9462 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9463 inner_offset = next_offset;
9464 } else {
9465 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9466 inner_depth.increment()?;
9467 }
9468 let val_ref = self.source_path.get_or_insert_with(|| {
9469 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
9470 });
9471 fidl::decode!(
9472 fidl::encoding::BoundedString<1024>,
9473 D,
9474 val_ref,
9475 decoder,
9476 inner_offset,
9477 inner_depth
9478 )?;
9479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9480 {
9481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9482 }
9483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9485 }
9486 }
9487
9488 next_offset += envelope_size;
9489 _next_ordinal_to_read += 1;
9490 if next_offset >= end_offset {
9491 return Ok(());
9492 }
9493
9494 while _next_ordinal_to_read < 3 {
9496 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9497 _next_ordinal_to_read += 1;
9498 next_offset += envelope_size;
9499 }
9500
9501 let next_out_of_line = decoder.next_out_of_line();
9502 let handles_before = decoder.remaining_handles();
9503 if let Some((inlined, num_bytes, num_handles)) =
9504 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9505 {
9506 let member_inline_size = <fidl_fuchsia_io__common::Operations as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9507 if inlined != (member_inline_size <= 4) {
9508 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9509 }
9510 let inner_offset;
9511 let mut inner_depth = depth.clone();
9512 if inlined {
9513 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9514 inner_offset = next_offset;
9515 } else {
9516 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9517 inner_depth.increment()?;
9518 }
9519 let val_ref = self.rights.get_or_insert_with(|| {
9520 fidl::new_empty!(fidl_fuchsia_io__common::Operations, D)
9521 });
9522 fidl::decode!(
9523 fidl_fuchsia_io__common::Operations,
9524 D,
9525 val_ref,
9526 decoder,
9527 inner_offset,
9528 inner_depth
9529 )?;
9530 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9531 {
9532 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9533 }
9534 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9535 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9536 }
9537 }
9538
9539 next_offset += envelope_size;
9540
9541 while next_offset < end_offset {
9543 _next_ordinal_to_read += 1;
9544 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9545 next_offset += envelope_size;
9546 }
9547
9548 Ok(())
9549 }
9550 }
9551
9552 impl Environment {
9553 #[inline(always)]
9554 fn max_ordinal_present(&self) -> u64 {
9555 if let Some(_) = self.stop_timeout_ms {
9556 return 6;
9557 }
9558 if let Some(_) = self.debug_capabilities {
9559 return 5;
9560 }
9561 if let Some(_) = self.resolvers {
9562 return 4;
9563 }
9564 if let Some(_) = self.runners {
9565 return 3;
9566 }
9567 if let Some(_) = self.extends {
9568 return 2;
9569 }
9570 if let Some(_) = self.name {
9571 return 1;
9572 }
9573 0
9574 }
9575 }
9576
9577 impl fidl::encoding::ValueTypeMarker for Environment {
9578 type Borrowed<'a> = &'a Self;
9579 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9580 value
9581 }
9582 }
9583
9584 unsafe impl fidl::encoding::TypeMarker for Environment {
9585 type Owned = Self;
9586
9587 #[inline(always)]
9588 fn inline_align(_context: fidl::encoding::Context) -> usize {
9589 8
9590 }
9591
9592 #[inline(always)]
9593 fn inline_size(_context: fidl::encoding::Context) -> usize {
9594 16
9595 }
9596 }
9597
9598 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Environment, D>
9599 for &Environment
9600 {
9601 unsafe fn encode(
9602 self,
9603 encoder: &mut fidl::encoding::Encoder<'_, D>,
9604 offset: usize,
9605 mut depth: fidl::encoding::Depth,
9606 ) -> fidl::Result<()> {
9607 encoder.debug_check_bounds::<Environment>(offset);
9608 let max_ordinal: u64 = self.max_ordinal_present();
9610 encoder.write_num(max_ordinal, offset);
9611 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9612 if max_ordinal == 0 {
9614 return Ok(());
9615 }
9616 depth.increment()?;
9617 let envelope_size = 8;
9618 let bytes_len = max_ordinal as usize * envelope_size;
9619 #[allow(unused_variables)]
9620 let offset = encoder.out_of_line_offset(bytes_len);
9621 let mut _prev_end_offset: usize = 0;
9622 if 1 > max_ordinal {
9623 return Ok(());
9624 }
9625
9626 let cur_offset: usize = (1 - 1) * envelope_size;
9629
9630 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9632
9633 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
9638 self.name.as_ref().map(
9639 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
9640 ),
9641 encoder,
9642 offset + cur_offset,
9643 depth,
9644 )?;
9645
9646 _prev_end_offset = cur_offset + envelope_size;
9647 if 2 > max_ordinal {
9648 return Ok(());
9649 }
9650
9651 let cur_offset: usize = (2 - 1) * envelope_size;
9654
9655 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9657
9658 fidl::encoding::encode_in_envelope_optional::<EnvironmentExtends, D>(
9663 self.extends
9664 .as_ref()
9665 .map(<EnvironmentExtends as fidl::encoding::ValueTypeMarker>::borrow),
9666 encoder,
9667 offset + cur_offset,
9668 depth,
9669 )?;
9670
9671 _prev_end_offset = cur_offset + envelope_size;
9672 if 3 > max_ordinal {
9673 return Ok(());
9674 }
9675
9676 let cur_offset: usize = (3 - 1) * envelope_size;
9679
9680 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9682
9683 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<RunnerRegistration>, D>(
9688 self.runners.as_ref().map(<fidl::encoding::UnboundedVector<RunnerRegistration> as fidl::encoding::ValueTypeMarker>::borrow),
9689 encoder, offset + cur_offset, depth
9690 )?;
9691
9692 _prev_end_offset = cur_offset + envelope_size;
9693 if 4 > max_ordinal {
9694 return Ok(());
9695 }
9696
9697 let cur_offset: usize = (4 - 1) * envelope_size;
9700
9701 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9703
9704 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ResolverRegistration>, D>(
9709 self.resolvers.as_ref().map(<fidl::encoding::UnboundedVector<ResolverRegistration> as fidl::encoding::ValueTypeMarker>::borrow),
9710 encoder, offset + cur_offset, depth
9711 )?;
9712
9713 _prev_end_offset = cur_offset + envelope_size;
9714 if 5 > max_ordinal {
9715 return Ok(());
9716 }
9717
9718 let cur_offset: usize = (5 - 1) * envelope_size;
9721
9722 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9724
9725 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<DebugRegistration>, D>(
9730 self.debug_capabilities.as_ref().map(<fidl::encoding::UnboundedVector<DebugRegistration> as fidl::encoding::ValueTypeMarker>::borrow),
9731 encoder, offset + cur_offset, depth
9732 )?;
9733
9734 _prev_end_offset = cur_offset + envelope_size;
9735 if 6 > max_ordinal {
9736 return Ok(());
9737 }
9738
9739 let cur_offset: usize = (6 - 1) * envelope_size;
9742
9743 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9745
9746 fidl::encoding::encode_in_envelope_optional::<u32, D>(
9751 self.stop_timeout_ms.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
9752 encoder,
9753 offset + cur_offset,
9754 depth,
9755 )?;
9756
9757 _prev_end_offset = cur_offset + envelope_size;
9758
9759 Ok(())
9760 }
9761 }
9762
9763 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Environment {
9764 #[inline(always)]
9765 fn new_empty() -> Self {
9766 Self::default()
9767 }
9768
9769 unsafe fn decode(
9770 &mut self,
9771 decoder: &mut fidl::encoding::Decoder<'_, D>,
9772 offset: usize,
9773 mut depth: fidl::encoding::Depth,
9774 ) -> fidl::Result<()> {
9775 decoder.debug_check_bounds::<Self>(offset);
9776 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9777 None => return Err(fidl::Error::NotNullable),
9778 Some(len) => len,
9779 };
9780 if len == 0 {
9782 return Ok(());
9783 };
9784 depth.increment()?;
9785 let envelope_size = 8;
9786 let bytes_len = len * envelope_size;
9787 let offset = decoder.out_of_line_offset(bytes_len)?;
9788 let mut _next_ordinal_to_read = 0;
9790 let mut next_offset = offset;
9791 let end_offset = offset + bytes_len;
9792 _next_ordinal_to_read += 1;
9793 if next_offset >= end_offset {
9794 return Ok(());
9795 }
9796
9797 while _next_ordinal_to_read < 1 {
9799 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9800 _next_ordinal_to_read += 1;
9801 next_offset += envelope_size;
9802 }
9803
9804 let next_out_of_line = decoder.next_out_of_line();
9805 let handles_before = decoder.remaining_handles();
9806 if let Some((inlined, num_bytes, num_handles)) =
9807 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9808 {
9809 let member_inline_size =
9810 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
9811 decoder.context,
9812 );
9813 if inlined != (member_inline_size <= 4) {
9814 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9815 }
9816 let inner_offset;
9817 let mut inner_depth = depth.clone();
9818 if inlined {
9819 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9820 inner_offset = next_offset;
9821 } else {
9822 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9823 inner_depth.increment()?;
9824 }
9825 let val_ref = self
9826 .name
9827 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
9828 fidl::decode!(
9829 fidl::encoding::BoundedString<100>,
9830 D,
9831 val_ref,
9832 decoder,
9833 inner_offset,
9834 inner_depth
9835 )?;
9836 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9837 {
9838 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9839 }
9840 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9841 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9842 }
9843 }
9844
9845 next_offset += envelope_size;
9846 _next_ordinal_to_read += 1;
9847 if next_offset >= end_offset {
9848 return Ok(());
9849 }
9850
9851 while _next_ordinal_to_read < 2 {
9853 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9854 _next_ordinal_to_read += 1;
9855 next_offset += envelope_size;
9856 }
9857
9858 let next_out_of_line = decoder.next_out_of_line();
9859 let handles_before = decoder.remaining_handles();
9860 if let Some((inlined, num_bytes, num_handles)) =
9861 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9862 {
9863 let member_inline_size =
9864 <EnvironmentExtends as fidl::encoding::TypeMarker>::inline_size(
9865 decoder.context,
9866 );
9867 if inlined != (member_inline_size <= 4) {
9868 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9869 }
9870 let inner_offset;
9871 let mut inner_depth = depth.clone();
9872 if inlined {
9873 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9874 inner_offset = next_offset;
9875 } else {
9876 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9877 inner_depth.increment()?;
9878 }
9879 let val_ref =
9880 self.extends.get_or_insert_with(|| fidl::new_empty!(EnvironmentExtends, D));
9881 fidl::decode!(EnvironmentExtends, D, val_ref, decoder, inner_offset, inner_depth)?;
9882 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9883 {
9884 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9885 }
9886 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9887 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9888 }
9889 }
9890
9891 next_offset += envelope_size;
9892 _next_ordinal_to_read += 1;
9893 if next_offset >= end_offset {
9894 return Ok(());
9895 }
9896
9897 while _next_ordinal_to_read < 3 {
9899 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9900 _next_ordinal_to_read += 1;
9901 next_offset += envelope_size;
9902 }
9903
9904 let next_out_of_line = decoder.next_out_of_line();
9905 let handles_before = decoder.remaining_handles();
9906 if let Some((inlined, num_bytes, num_handles)) =
9907 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9908 {
9909 let member_inline_size = <fidl::encoding::UnboundedVector<RunnerRegistration> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9910 if inlined != (member_inline_size <= 4) {
9911 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9912 }
9913 let inner_offset;
9914 let mut inner_depth = depth.clone();
9915 if inlined {
9916 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9917 inner_offset = next_offset;
9918 } else {
9919 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9920 inner_depth.increment()?;
9921 }
9922 let val_ref = self.runners.get_or_insert_with(|| {
9923 fidl::new_empty!(fidl::encoding::UnboundedVector<RunnerRegistration>, D)
9924 });
9925 fidl::decode!(
9926 fidl::encoding::UnboundedVector<RunnerRegistration>,
9927 D,
9928 val_ref,
9929 decoder,
9930 inner_offset,
9931 inner_depth
9932 )?;
9933 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9934 {
9935 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9936 }
9937 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9938 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9939 }
9940 }
9941
9942 next_offset += envelope_size;
9943 _next_ordinal_to_read += 1;
9944 if next_offset >= end_offset {
9945 return Ok(());
9946 }
9947
9948 while _next_ordinal_to_read < 4 {
9950 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9951 _next_ordinal_to_read += 1;
9952 next_offset += envelope_size;
9953 }
9954
9955 let next_out_of_line = decoder.next_out_of_line();
9956 let handles_before = decoder.remaining_handles();
9957 if let Some((inlined, num_bytes, num_handles)) =
9958 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9959 {
9960 let member_inline_size = <fidl::encoding::UnboundedVector<ResolverRegistration> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9961 if inlined != (member_inline_size <= 4) {
9962 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9963 }
9964 let inner_offset;
9965 let mut inner_depth = depth.clone();
9966 if inlined {
9967 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9968 inner_offset = next_offset;
9969 } else {
9970 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9971 inner_depth.increment()?;
9972 }
9973 let val_ref = self.resolvers.get_or_insert_with(|| {
9974 fidl::new_empty!(fidl::encoding::UnboundedVector<ResolverRegistration>, D)
9975 });
9976 fidl::decode!(
9977 fidl::encoding::UnboundedVector<ResolverRegistration>,
9978 D,
9979 val_ref,
9980 decoder,
9981 inner_offset,
9982 inner_depth
9983 )?;
9984 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9985 {
9986 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9987 }
9988 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9989 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9990 }
9991 }
9992
9993 next_offset += envelope_size;
9994 _next_ordinal_to_read += 1;
9995 if next_offset >= end_offset {
9996 return Ok(());
9997 }
9998
9999 while _next_ordinal_to_read < 5 {
10001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10002 _next_ordinal_to_read += 1;
10003 next_offset += envelope_size;
10004 }
10005
10006 let next_out_of_line = decoder.next_out_of_line();
10007 let handles_before = decoder.remaining_handles();
10008 if let Some((inlined, num_bytes, num_handles)) =
10009 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10010 {
10011 let member_inline_size = <fidl::encoding::UnboundedVector<DebugRegistration> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10012 if inlined != (member_inline_size <= 4) {
10013 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10014 }
10015 let inner_offset;
10016 let mut inner_depth = depth.clone();
10017 if inlined {
10018 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10019 inner_offset = next_offset;
10020 } else {
10021 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10022 inner_depth.increment()?;
10023 }
10024 let val_ref = self.debug_capabilities.get_or_insert_with(|| {
10025 fidl::new_empty!(fidl::encoding::UnboundedVector<DebugRegistration>, D)
10026 });
10027 fidl::decode!(
10028 fidl::encoding::UnboundedVector<DebugRegistration>,
10029 D,
10030 val_ref,
10031 decoder,
10032 inner_offset,
10033 inner_depth
10034 )?;
10035 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10036 {
10037 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10038 }
10039 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10040 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10041 }
10042 }
10043
10044 next_offset += envelope_size;
10045 _next_ordinal_to_read += 1;
10046 if next_offset >= end_offset {
10047 return Ok(());
10048 }
10049
10050 while _next_ordinal_to_read < 6 {
10052 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10053 _next_ordinal_to_read += 1;
10054 next_offset += envelope_size;
10055 }
10056
10057 let next_out_of_line = decoder.next_out_of_line();
10058 let handles_before = decoder.remaining_handles();
10059 if let Some((inlined, num_bytes, num_handles)) =
10060 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10061 {
10062 let member_inline_size =
10063 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10064 if inlined != (member_inline_size <= 4) {
10065 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10066 }
10067 let inner_offset;
10068 let mut inner_depth = depth.clone();
10069 if inlined {
10070 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10071 inner_offset = next_offset;
10072 } else {
10073 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10074 inner_depth.increment()?;
10075 }
10076 let val_ref = self.stop_timeout_ms.get_or_insert_with(|| fidl::new_empty!(u32, D));
10077 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
10078 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10079 {
10080 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10081 }
10082 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10083 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10084 }
10085 }
10086
10087 next_offset += envelope_size;
10088
10089 while next_offset < end_offset {
10091 _next_ordinal_to_read += 1;
10092 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10093 next_offset += envelope_size;
10094 }
10095
10096 Ok(())
10097 }
10098 }
10099
10100 impl EventStream {
10101 #[inline(always)]
10102 fn max_ordinal_present(&self) -> u64 {
10103 if let Some(_) = self.name {
10104 return 1;
10105 }
10106 0
10107 }
10108 }
10109
10110 impl fidl::encoding::ValueTypeMarker for EventStream {
10111 type Borrowed<'a> = &'a Self;
10112 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10113 value
10114 }
10115 }
10116
10117 unsafe impl fidl::encoding::TypeMarker for EventStream {
10118 type Owned = Self;
10119
10120 #[inline(always)]
10121 fn inline_align(_context: fidl::encoding::Context) -> usize {
10122 8
10123 }
10124
10125 #[inline(always)]
10126 fn inline_size(_context: fidl::encoding::Context) -> usize {
10127 16
10128 }
10129 }
10130
10131 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EventStream, D>
10132 for &EventStream
10133 {
10134 unsafe fn encode(
10135 self,
10136 encoder: &mut fidl::encoding::Encoder<'_, D>,
10137 offset: usize,
10138 mut depth: fidl::encoding::Depth,
10139 ) -> fidl::Result<()> {
10140 encoder.debug_check_bounds::<EventStream>(offset);
10141 let max_ordinal: u64 = self.max_ordinal_present();
10143 encoder.write_num(max_ordinal, offset);
10144 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10145 if max_ordinal == 0 {
10147 return Ok(());
10148 }
10149 depth.increment()?;
10150 let envelope_size = 8;
10151 let bytes_len = max_ordinal as usize * envelope_size;
10152 #[allow(unused_variables)]
10153 let offset = encoder.out_of_line_offset(bytes_len);
10154 let mut _prev_end_offset: usize = 0;
10155 if 1 > max_ordinal {
10156 return Ok(());
10157 }
10158
10159 let cur_offset: usize = (1 - 1) * envelope_size;
10162
10163 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10165
10166 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10171 self.name.as_ref().map(
10172 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10173 ),
10174 encoder,
10175 offset + cur_offset,
10176 depth,
10177 )?;
10178
10179 _prev_end_offset = cur_offset + envelope_size;
10180
10181 Ok(())
10182 }
10183 }
10184
10185 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EventStream {
10186 #[inline(always)]
10187 fn new_empty() -> Self {
10188 Self::default()
10189 }
10190
10191 unsafe fn decode(
10192 &mut self,
10193 decoder: &mut fidl::encoding::Decoder<'_, D>,
10194 offset: usize,
10195 mut depth: fidl::encoding::Depth,
10196 ) -> fidl::Result<()> {
10197 decoder.debug_check_bounds::<Self>(offset);
10198 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10199 None => return Err(fidl::Error::NotNullable),
10200 Some(len) => len,
10201 };
10202 if len == 0 {
10204 return Ok(());
10205 };
10206 depth.increment()?;
10207 let envelope_size = 8;
10208 let bytes_len = len * envelope_size;
10209 let offset = decoder.out_of_line_offset(bytes_len)?;
10210 let mut _next_ordinal_to_read = 0;
10212 let mut next_offset = offset;
10213 let end_offset = offset + bytes_len;
10214 _next_ordinal_to_read += 1;
10215 if next_offset >= end_offset {
10216 return Ok(());
10217 }
10218
10219 while _next_ordinal_to_read < 1 {
10221 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10222 _next_ordinal_to_read += 1;
10223 next_offset += envelope_size;
10224 }
10225
10226 let next_out_of_line = decoder.next_out_of_line();
10227 let handles_before = decoder.remaining_handles();
10228 if let Some((inlined, num_bytes, num_handles)) =
10229 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10230 {
10231 let member_inline_size =
10232 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10233 decoder.context,
10234 );
10235 if inlined != (member_inline_size <= 4) {
10236 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10237 }
10238 let inner_offset;
10239 let mut inner_depth = depth.clone();
10240 if inlined {
10241 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10242 inner_offset = next_offset;
10243 } else {
10244 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10245 inner_depth.increment()?;
10246 }
10247 let val_ref = self
10248 .name
10249 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10250 fidl::decode!(
10251 fidl::encoding::BoundedString<100>,
10252 D,
10253 val_ref,
10254 decoder,
10255 inner_offset,
10256 inner_depth
10257 )?;
10258 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10259 {
10260 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10261 }
10262 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10263 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10264 }
10265 }
10266
10267 next_offset += envelope_size;
10268
10269 while next_offset < end_offset {
10271 _next_ordinal_to_read += 1;
10272 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10273 next_offset += envelope_size;
10274 }
10275
10276 Ok(())
10277 }
10278 }
10279
10280 impl EventSubscription {
10281 #[inline(always)]
10282 fn max_ordinal_present(&self) -> u64 {
10283 if let Some(_) = self.event_name {
10284 return 1;
10285 }
10286 0
10287 }
10288 }
10289
10290 impl fidl::encoding::ValueTypeMarker for EventSubscription {
10291 type Borrowed<'a> = &'a Self;
10292 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10293 value
10294 }
10295 }
10296
10297 unsafe impl fidl::encoding::TypeMarker for EventSubscription {
10298 type Owned = Self;
10299
10300 #[inline(always)]
10301 fn inline_align(_context: fidl::encoding::Context) -> usize {
10302 8
10303 }
10304
10305 #[inline(always)]
10306 fn inline_size(_context: fidl::encoding::Context) -> usize {
10307 16
10308 }
10309 }
10310
10311 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EventSubscription, D>
10312 for &EventSubscription
10313 {
10314 unsafe fn encode(
10315 self,
10316 encoder: &mut fidl::encoding::Encoder<'_, D>,
10317 offset: usize,
10318 mut depth: fidl::encoding::Depth,
10319 ) -> fidl::Result<()> {
10320 encoder.debug_check_bounds::<EventSubscription>(offset);
10321 let max_ordinal: u64 = self.max_ordinal_present();
10323 encoder.write_num(max_ordinal, offset);
10324 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10325 if max_ordinal == 0 {
10327 return Ok(());
10328 }
10329 depth.increment()?;
10330 let envelope_size = 8;
10331 let bytes_len = max_ordinal as usize * envelope_size;
10332 #[allow(unused_variables)]
10333 let offset = encoder.out_of_line_offset(bytes_len);
10334 let mut _prev_end_offset: usize = 0;
10335 if 1 > max_ordinal {
10336 return Ok(());
10337 }
10338
10339 let cur_offset: usize = (1 - 1) * envelope_size;
10342
10343 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10345
10346 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10351 self.event_name.as_ref().map(
10352 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10353 ),
10354 encoder,
10355 offset + cur_offset,
10356 depth,
10357 )?;
10358
10359 _prev_end_offset = cur_offset + envelope_size;
10360
10361 Ok(())
10362 }
10363 }
10364
10365 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EventSubscription {
10366 #[inline(always)]
10367 fn new_empty() -> Self {
10368 Self::default()
10369 }
10370
10371 unsafe fn decode(
10372 &mut self,
10373 decoder: &mut fidl::encoding::Decoder<'_, D>,
10374 offset: usize,
10375 mut depth: fidl::encoding::Depth,
10376 ) -> fidl::Result<()> {
10377 decoder.debug_check_bounds::<Self>(offset);
10378 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10379 None => return Err(fidl::Error::NotNullable),
10380 Some(len) => len,
10381 };
10382 if len == 0 {
10384 return Ok(());
10385 };
10386 depth.increment()?;
10387 let envelope_size = 8;
10388 let bytes_len = len * envelope_size;
10389 let offset = decoder.out_of_line_offset(bytes_len)?;
10390 let mut _next_ordinal_to_read = 0;
10392 let mut next_offset = offset;
10393 let end_offset = offset + bytes_len;
10394 _next_ordinal_to_read += 1;
10395 if next_offset >= end_offset {
10396 return Ok(());
10397 }
10398
10399 while _next_ordinal_to_read < 1 {
10401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10402 _next_ordinal_to_read += 1;
10403 next_offset += envelope_size;
10404 }
10405
10406 let next_out_of_line = decoder.next_out_of_line();
10407 let handles_before = decoder.remaining_handles();
10408 if let Some((inlined, num_bytes, num_handles)) =
10409 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10410 {
10411 let member_inline_size =
10412 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10413 decoder.context,
10414 );
10415 if inlined != (member_inline_size <= 4) {
10416 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10417 }
10418 let inner_offset;
10419 let mut inner_depth = depth.clone();
10420 if inlined {
10421 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10422 inner_offset = next_offset;
10423 } else {
10424 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10425 inner_depth.increment()?;
10426 }
10427 let val_ref = self
10428 .event_name
10429 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10430 fidl::decode!(
10431 fidl::encoding::BoundedString<100>,
10432 D,
10433 val_ref,
10434 decoder,
10435 inner_offset,
10436 inner_depth
10437 )?;
10438 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10439 {
10440 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10441 }
10442 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10443 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10444 }
10445 }
10446
10447 next_offset += envelope_size;
10448
10449 while next_offset < end_offset {
10451 _next_ordinal_to_read += 1;
10452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10453 next_offset += envelope_size;
10454 }
10455
10456 Ok(())
10457 }
10458 }
10459
10460 impl ExposeConfiguration {
10461 #[inline(always)]
10462 fn max_ordinal_present(&self) -> u64 {
10463 if let Some(_) = self.source_dictionary {
10464 return 6;
10465 }
10466 if let Some(_) = self.availability {
10467 return 5;
10468 }
10469 if let Some(_) = self.target_name {
10470 return 4;
10471 }
10472 if let Some(_) = self.target {
10473 return 3;
10474 }
10475 if let Some(_) = self.source_name {
10476 return 2;
10477 }
10478 if let Some(_) = self.source {
10479 return 1;
10480 }
10481 0
10482 }
10483 }
10484
10485 impl fidl::encoding::ValueTypeMarker for ExposeConfiguration {
10486 type Borrowed<'a> = &'a Self;
10487 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10488 value
10489 }
10490 }
10491
10492 unsafe impl fidl::encoding::TypeMarker for ExposeConfiguration {
10493 type Owned = Self;
10494
10495 #[inline(always)]
10496 fn inline_align(_context: fidl::encoding::Context) -> usize {
10497 8
10498 }
10499
10500 #[inline(always)]
10501 fn inline_size(_context: fidl::encoding::Context) -> usize {
10502 16
10503 }
10504 }
10505
10506 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeConfiguration, D>
10507 for &ExposeConfiguration
10508 {
10509 unsafe fn encode(
10510 self,
10511 encoder: &mut fidl::encoding::Encoder<'_, D>,
10512 offset: usize,
10513 mut depth: fidl::encoding::Depth,
10514 ) -> fidl::Result<()> {
10515 encoder.debug_check_bounds::<ExposeConfiguration>(offset);
10516 let max_ordinal: u64 = self.max_ordinal_present();
10518 encoder.write_num(max_ordinal, offset);
10519 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10520 if max_ordinal == 0 {
10522 return Ok(());
10523 }
10524 depth.increment()?;
10525 let envelope_size = 8;
10526 let bytes_len = max_ordinal as usize * envelope_size;
10527 #[allow(unused_variables)]
10528 let offset = encoder.out_of_line_offset(bytes_len);
10529 let mut _prev_end_offset: usize = 0;
10530 if 1 > max_ordinal {
10531 return Ok(());
10532 }
10533
10534 let cur_offset: usize = (1 - 1) * envelope_size;
10537
10538 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10540
10541 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
10546 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
10547 encoder,
10548 offset + cur_offset,
10549 depth,
10550 )?;
10551
10552 _prev_end_offset = cur_offset + envelope_size;
10553 if 2 > max_ordinal {
10554 return Ok(());
10555 }
10556
10557 let cur_offset: usize = (2 - 1) * envelope_size;
10560
10561 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10563
10564 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10569 self.source_name.as_ref().map(
10570 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10571 ),
10572 encoder,
10573 offset + cur_offset,
10574 depth,
10575 )?;
10576
10577 _prev_end_offset = cur_offset + envelope_size;
10578 if 3 > max_ordinal {
10579 return Ok(());
10580 }
10581
10582 let cur_offset: usize = (3 - 1) * envelope_size;
10585
10586 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10588
10589 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
10594 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
10595 encoder,
10596 offset + cur_offset,
10597 depth,
10598 )?;
10599
10600 _prev_end_offset = cur_offset + envelope_size;
10601 if 4 > max_ordinal {
10602 return Ok(());
10603 }
10604
10605 let cur_offset: usize = (4 - 1) * envelope_size;
10608
10609 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10611
10612 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10617 self.target_name.as_ref().map(
10618 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10619 ),
10620 encoder,
10621 offset + cur_offset,
10622 depth,
10623 )?;
10624
10625 _prev_end_offset = cur_offset + envelope_size;
10626 if 5 > max_ordinal {
10627 return Ok(());
10628 }
10629
10630 let cur_offset: usize = (5 - 1) * envelope_size;
10633
10634 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10636
10637 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
10642 self.availability
10643 .as_ref()
10644 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
10645 encoder,
10646 offset + cur_offset,
10647 depth,
10648 )?;
10649
10650 _prev_end_offset = cur_offset + envelope_size;
10651 if 6 > max_ordinal {
10652 return Ok(());
10653 }
10654
10655 let cur_offset: usize = (6 - 1) * envelope_size;
10658
10659 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10661
10662 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
10667 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
10668 encoder, offset + cur_offset, depth
10669 )?;
10670
10671 _prev_end_offset = cur_offset + envelope_size;
10672
10673 Ok(())
10674 }
10675 }
10676
10677 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeConfiguration {
10678 #[inline(always)]
10679 fn new_empty() -> Self {
10680 Self::default()
10681 }
10682
10683 unsafe fn decode(
10684 &mut self,
10685 decoder: &mut fidl::encoding::Decoder<'_, D>,
10686 offset: usize,
10687 mut depth: fidl::encoding::Depth,
10688 ) -> fidl::Result<()> {
10689 decoder.debug_check_bounds::<Self>(offset);
10690 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10691 None => return Err(fidl::Error::NotNullable),
10692 Some(len) => len,
10693 };
10694 if len == 0 {
10696 return Ok(());
10697 };
10698 depth.increment()?;
10699 let envelope_size = 8;
10700 let bytes_len = len * envelope_size;
10701 let offset = decoder.out_of_line_offset(bytes_len)?;
10702 let mut _next_ordinal_to_read = 0;
10704 let mut next_offset = offset;
10705 let end_offset = offset + bytes_len;
10706 _next_ordinal_to_read += 1;
10707 if next_offset >= end_offset {
10708 return Ok(());
10709 }
10710
10711 while _next_ordinal_to_read < 1 {
10713 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10714 _next_ordinal_to_read += 1;
10715 next_offset += envelope_size;
10716 }
10717
10718 let next_out_of_line = decoder.next_out_of_line();
10719 let handles_before = decoder.remaining_handles();
10720 if let Some((inlined, num_bytes, num_handles)) =
10721 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10722 {
10723 let member_inline_size =
10724 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10725 if inlined != (member_inline_size <= 4) {
10726 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10727 }
10728 let inner_offset;
10729 let mut inner_depth = depth.clone();
10730 if inlined {
10731 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10732 inner_offset = next_offset;
10733 } else {
10734 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10735 inner_depth.increment()?;
10736 }
10737 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
10738 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
10739 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10740 {
10741 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10742 }
10743 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10744 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10745 }
10746 }
10747
10748 next_offset += envelope_size;
10749 _next_ordinal_to_read += 1;
10750 if next_offset >= end_offset {
10751 return Ok(());
10752 }
10753
10754 while _next_ordinal_to_read < 2 {
10756 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10757 _next_ordinal_to_read += 1;
10758 next_offset += envelope_size;
10759 }
10760
10761 let next_out_of_line = decoder.next_out_of_line();
10762 let handles_before = decoder.remaining_handles();
10763 if let Some((inlined, num_bytes, num_handles)) =
10764 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10765 {
10766 let member_inline_size =
10767 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10768 decoder.context,
10769 );
10770 if inlined != (member_inline_size <= 4) {
10771 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10772 }
10773 let inner_offset;
10774 let mut inner_depth = depth.clone();
10775 if inlined {
10776 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10777 inner_offset = next_offset;
10778 } else {
10779 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10780 inner_depth.increment()?;
10781 }
10782 let val_ref = self
10783 .source_name
10784 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10785 fidl::decode!(
10786 fidl::encoding::BoundedString<100>,
10787 D,
10788 val_ref,
10789 decoder,
10790 inner_offset,
10791 inner_depth
10792 )?;
10793 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10794 {
10795 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10796 }
10797 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10798 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10799 }
10800 }
10801
10802 next_offset += envelope_size;
10803 _next_ordinal_to_read += 1;
10804 if next_offset >= end_offset {
10805 return Ok(());
10806 }
10807
10808 while _next_ordinal_to_read < 3 {
10810 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10811 _next_ordinal_to_read += 1;
10812 next_offset += envelope_size;
10813 }
10814
10815 let next_out_of_line = decoder.next_out_of_line();
10816 let handles_before = decoder.remaining_handles();
10817 if let Some((inlined, num_bytes, num_handles)) =
10818 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10819 {
10820 let member_inline_size =
10821 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10822 if inlined != (member_inline_size <= 4) {
10823 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10824 }
10825 let inner_offset;
10826 let mut inner_depth = depth.clone();
10827 if inlined {
10828 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10829 inner_offset = next_offset;
10830 } else {
10831 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10832 inner_depth.increment()?;
10833 }
10834 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
10835 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
10836 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10837 {
10838 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10839 }
10840 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10841 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10842 }
10843 }
10844
10845 next_offset += envelope_size;
10846 _next_ordinal_to_read += 1;
10847 if next_offset >= end_offset {
10848 return Ok(());
10849 }
10850
10851 while _next_ordinal_to_read < 4 {
10853 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10854 _next_ordinal_to_read += 1;
10855 next_offset += envelope_size;
10856 }
10857
10858 let next_out_of_line = decoder.next_out_of_line();
10859 let handles_before = decoder.remaining_handles();
10860 if let Some((inlined, num_bytes, num_handles)) =
10861 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10862 {
10863 let member_inline_size =
10864 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10865 decoder.context,
10866 );
10867 if inlined != (member_inline_size <= 4) {
10868 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10869 }
10870 let inner_offset;
10871 let mut inner_depth = depth.clone();
10872 if inlined {
10873 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10874 inner_offset = next_offset;
10875 } else {
10876 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10877 inner_depth.increment()?;
10878 }
10879 let val_ref = self
10880 .target_name
10881 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10882 fidl::decode!(
10883 fidl::encoding::BoundedString<100>,
10884 D,
10885 val_ref,
10886 decoder,
10887 inner_offset,
10888 inner_depth
10889 )?;
10890 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10891 {
10892 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10893 }
10894 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10895 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10896 }
10897 }
10898
10899 next_offset += envelope_size;
10900 _next_ordinal_to_read += 1;
10901 if next_offset >= end_offset {
10902 return Ok(());
10903 }
10904
10905 while _next_ordinal_to_read < 5 {
10907 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10908 _next_ordinal_to_read += 1;
10909 next_offset += envelope_size;
10910 }
10911
10912 let next_out_of_line = decoder.next_out_of_line();
10913 let handles_before = decoder.remaining_handles();
10914 if let Some((inlined, num_bytes, num_handles)) =
10915 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10916 {
10917 let member_inline_size =
10918 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10919 if inlined != (member_inline_size <= 4) {
10920 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10921 }
10922 let inner_offset;
10923 let mut inner_depth = depth.clone();
10924 if inlined {
10925 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10926 inner_offset = next_offset;
10927 } else {
10928 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10929 inner_depth.increment()?;
10930 }
10931 let val_ref =
10932 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
10933 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
10934 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10935 {
10936 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10937 }
10938 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10939 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10940 }
10941 }
10942
10943 next_offset += envelope_size;
10944 _next_ordinal_to_read += 1;
10945 if next_offset >= end_offset {
10946 return Ok(());
10947 }
10948
10949 while _next_ordinal_to_read < 6 {
10951 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10952 _next_ordinal_to_read += 1;
10953 next_offset += envelope_size;
10954 }
10955
10956 let next_out_of_line = decoder.next_out_of_line();
10957 let handles_before = decoder.remaining_handles();
10958 if let Some((inlined, num_bytes, num_handles)) =
10959 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10960 {
10961 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10962 if inlined != (member_inline_size <= 4) {
10963 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10964 }
10965 let inner_offset;
10966 let mut inner_depth = depth.clone();
10967 if inlined {
10968 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10969 inner_offset = next_offset;
10970 } else {
10971 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10972 inner_depth.increment()?;
10973 }
10974 let val_ref = self.source_dictionary.get_or_insert_with(|| {
10975 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
10976 });
10977 fidl::decode!(
10978 fidl::encoding::BoundedString<1024>,
10979 D,
10980 val_ref,
10981 decoder,
10982 inner_offset,
10983 inner_depth
10984 )?;
10985 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10986 {
10987 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10988 }
10989 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10990 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10991 }
10992 }
10993
10994 next_offset += envelope_size;
10995
10996 while next_offset < end_offset {
10998 _next_ordinal_to_read += 1;
10999 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11000 next_offset += envelope_size;
11001 }
11002
11003 Ok(())
11004 }
11005 }
11006
11007 impl ExposeDictionary {
11008 #[inline(always)]
11009 fn max_ordinal_present(&self) -> u64 {
11010 if let Some(_) = self.source_dictionary {
11011 return 6;
11012 }
11013 if let Some(_) = self.availability {
11014 return 5;
11015 }
11016 if let Some(_) = self.target_name {
11017 return 4;
11018 }
11019 if let Some(_) = self.target {
11020 return 3;
11021 }
11022 if let Some(_) = self.source_name {
11023 return 2;
11024 }
11025 if let Some(_) = self.source {
11026 return 1;
11027 }
11028 0
11029 }
11030 }
11031
11032 impl fidl::encoding::ValueTypeMarker for ExposeDictionary {
11033 type Borrowed<'a> = &'a Self;
11034 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11035 value
11036 }
11037 }
11038
11039 unsafe impl fidl::encoding::TypeMarker for ExposeDictionary {
11040 type Owned = Self;
11041
11042 #[inline(always)]
11043 fn inline_align(_context: fidl::encoding::Context) -> usize {
11044 8
11045 }
11046
11047 #[inline(always)]
11048 fn inline_size(_context: fidl::encoding::Context) -> usize {
11049 16
11050 }
11051 }
11052
11053 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeDictionary, D>
11054 for &ExposeDictionary
11055 {
11056 unsafe fn encode(
11057 self,
11058 encoder: &mut fidl::encoding::Encoder<'_, D>,
11059 offset: usize,
11060 mut depth: fidl::encoding::Depth,
11061 ) -> fidl::Result<()> {
11062 encoder.debug_check_bounds::<ExposeDictionary>(offset);
11063 let max_ordinal: u64 = self.max_ordinal_present();
11065 encoder.write_num(max_ordinal, offset);
11066 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11067 if max_ordinal == 0 {
11069 return Ok(());
11070 }
11071 depth.increment()?;
11072 let envelope_size = 8;
11073 let bytes_len = max_ordinal as usize * envelope_size;
11074 #[allow(unused_variables)]
11075 let offset = encoder.out_of_line_offset(bytes_len);
11076 let mut _prev_end_offset: usize = 0;
11077 if 1 > max_ordinal {
11078 return Ok(());
11079 }
11080
11081 let cur_offset: usize = (1 - 1) * envelope_size;
11084
11085 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11087
11088 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11093 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11094 encoder,
11095 offset + cur_offset,
11096 depth,
11097 )?;
11098
11099 _prev_end_offset = cur_offset + envelope_size;
11100 if 2 > max_ordinal {
11101 return Ok(());
11102 }
11103
11104 let cur_offset: usize = (2 - 1) * envelope_size;
11107
11108 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11110
11111 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11116 self.source_name.as_ref().map(
11117 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11118 ),
11119 encoder,
11120 offset + cur_offset,
11121 depth,
11122 )?;
11123
11124 _prev_end_offset = cur_offset + envelope_size;
11125 if 3 > max_ordinal {
11126 return Ok(());
11127 }
11128
11129 let cur_offset: usize = (3 - 1) * envelope_size;
11132
11133 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11135
11136 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11141 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11142 encoder,
11143 offset + cur_offset,
11144 depth,
11145 )?;
11146
11147 _prev_end_offset = cur_offset + envelope_size;
11148 if 4 > max_ordinal {
11149 return Ok(());
11150 }
11151
11152 let cur_offset: usize = (4 - 1) * envelope_size;
11155
11156 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11158
11159 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11164 self.target_name.as_ref().map(
11165 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11166 ),
11167 encoder,
11168 offset + cur_offset,
11169 depth,
11170 )?;
11171
11172 _prev_end_offset = cur_offset + envelope_size;
11173 if 5 > max_ordinal {
11174 return Ok(());
11175 }
11176
11177 let cur_offset: usize = (5 - 1) * envelope_size;
11180
11181 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11183
11184 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
11189 self.availability
11190 .as_ref()
11191 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
11192 encoder,
11193 offset + cur_offset,
11194 depth,
11195 )?;
11196
11197 _prev_end_offset = cur_offset + envelope_size;
11198 if 6 > max_ordinal {
11199 return Ok(());
11200 }
11201
11202 let cur_offset: usize = (6 - 1) * envelope_size;
11205
11206 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11208
11209 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
11214 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
11215 encoder, offset + cur_offset, depth
11216 )?;
11217
11218 _prev_end_offset = cur_offset + envelope_size;
11219
11220 Ok(())
11221 }
11222 }
11223
11224 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeDictionary {
11225 #[inline(always)]
11226 fn new_empty() -> Self {
11227 Self::default()
11228 }
11229
11230 unsafe fn decode(
11231 &mut self,
11232 decoder: &mut fidl::encoding::Decoder<'_, D>,
11233 offset: usize,
11234 mut depth: fidl::encoding::Depth,
11235 ) -> fidl::Result<()> {
11236 decoder.debug_check_bounds::<Self>(offset);
11237 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11238 None => return Err(fidl::Error::NotNullable),
11239 Some(len) => len,
11240 };
11241 if len == 0 {
11243 return Ok(());
11244 };
11245 depth.increment()?;
11246 let envelope_size = 8;
11247 let bytes_len = len * envelope_size;
11248 let offset = decoder.out_of_line_offset(bytes_len)?;
11249 let mut _next_ordinal_to_read = 0;
11251 let mut next_offset = offset;
11252 let end_offset = offset + bytes_len;
11253 _next_ordinal_to_read += 1;
11254 if next_offset >= end_offset {
11255 return Ok(());
11256 }
11257
11258 while _next_ordinal_to_read < 1 {
11260 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11261 _next_ordinal_to_read += 1;
11262 next_offset += envelope_size;
11263 }
11264
11265 let next_out_of_line = decoder.next_out_of_line();
11266 let handles_before = decoder.remaining_handles();
11267 if let Some((inlined, num_bytes, num_handles)) =
11268 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11269 {
11270 let member_inline_size =
11271 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11272 if inlined != (member_inline_size <= 4) {
11273 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11274 }
11275 let inner_offset;
11276 let mut inner_depth = depth.clone();
11277 if inlined {
11278 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11279 inner_offset = next_offset;
11280 } else {
11281 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11282 inner_depth.increment()?;
11283 }
11284 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11285 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11286 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11287 {
11288 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11289 }
11290 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11291 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11292 }
11293 }
11294
11295 next_offset += envelope_size;
11296 _next_ordinal_to_read += 1;
11297 if next_offset >= end_offset {
11298 return Ok(());
11299 }
11300
11301 while _next_ordinal_to_read < 2 {
11303 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11304 _next_ordinal_to_read += 1;
11305 next_offset += envelope_size;
11306 }
11307
11308 let next_out_of_line = decoder.next_out_of_line();
11309 let handles_before = decoder.remaining_handles();
11310 if let Some((inlined, num_bytes, num_handles)) =
11311 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11312 {
11313 let member_inline_size =
11314 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11315 decoder.context,
11316 );
11317 if inlined != (member_inline_size <= 4) {
11318 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11319 }
11320 let inner_offset;
11321 let mut inner_depth = depth.clone();
11322 if inlined {
11323 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11324 inner_offset = next_offset;
11325 } else {
11326 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11327 inner_depth.increment()?;
11328 }
11329 let val_ref = self
11330 .source_name
11331 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11332 fidl::decode!(
11333 fidl::encoding::BoundedString<100>,
11334 D,
11335 val_ref,
11336 decoder,
11337 inner_offset,
11338 inner_depth
11339 )?;
11340 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11341 {
11342 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11343 }
11344 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11345 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11346 }
11347 }
11348
11349 next_offset += envelope_size;
11350 _next_ordinal_to_read += 1;
11351 if next_offset >= end_offset {
11352 return Ok(());
11353 }
11354
11355 while _next_ordinal_to_read < 3 {
11357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11358 _next_ordinal_to_read += 1;
11359 next_offset += envelope_size;
11360 }
11361
11362 let next_out_of_line = decoder.next_out_of_line();
11363 let handles_before = decoder.remaining_handles();
11364 if let Some((inlined, num_bytes, num_handles)) =
11365 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11366 {
11367 let member_inline_size =
11368 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11369 if inlined != (member_inline_size <= 4) {
11370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11371 }
11372 let inner_offset;
11373 let mut inner_depth = depth.clone();
11374 if inlined {
11375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11376 inner_offset = next_offset;
11377 } else {
11378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11379 inner_depth.increment()?;
11380 }
11381 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11382 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11383 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11384 {
11385 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11386 }
11387 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11388 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11389 }
11390 }
11391
11392 next_offset += envelope_size;
11393 _next_ordinal_to_read += 1;
11394 if next_offset >= end_offset {
11395 return Ok(());
11396 }
11397
11398 while _next_ordinal_to_read < 4 {
11400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11401 _next_ordinal_to_read += 1;
11402 next_offset += envelope_size;
11403 }
11404
11405 let next_out_of_line = decoder.next_out_of_line();
11406 let handles_before = decoder.remaining_handles();
11407 if let Some((inlined, num_bytes, num_handles)) =
11408 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11409 {
11410 let member_inline_size =
11411 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11412 decoder.context,
11413 );
11414 if inlined != (member_inline_size <= 4) {
11415 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11416 }
11417 let inner_offset;
11418 let mut inner_depth = depth.clone();
11419 if inlined {
11420 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11421 inner_offset = next_offset;
11422 } else {
11423 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11424 inner_depth.increment()?;
11425 }
11426 let val_ref = self
11427 .target_name
11428 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11429 fidl::decode!(
11430 fidl::encoding::BoundedString<100>,
11431 D,
11432 val_ref,
11433 decoder,
11434 inner_offset,
11435 inner_depth
11436 )?;
11437 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11438 {
11439 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11440 }
11441 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11442 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11443 }
11444 }
11445
11446 next_offset += envelope_size;
11447 _next_ordinal_to_read += 1;
11448 if next_offset >= end_offset {
11449 return Ok(());
11450 }
11451
11452 while _next_ordinal_to_read < 5 {
11454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11455 _next_ordinal_to_read += 1;
11456 next_offset += envelope_size;
11457 }
11458
11459 let next_out_of_line = decoder.next_out_of_line();
11460 let handles_before = decoder.remaining_handles();
11461 if let Some((inlined, num_bytes, num_handles)) =
11462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11463 {
11464 let member_inline_size =
11465 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11466 if inlined != (member_inline_size <= 4) {
11467 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11468 }
11469 let inner_offset;
11470 let mut inner_depth = depth.clone();
11471 if inlined {
11472 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11473 inner_offset = next_offset;
11474 } else {
11475 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11476 inner_depth.increment()?;
11477 }
11478 let val_ref =
11479 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
11480 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
11481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11482 {
11483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11484 }
11485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11487 }
11488 }
11489
11490 next_offset += envelope_size;
11491 _next_ordinal_to_read += 1;
11492 if next_offset >= end_offset {
11493 return Ok(());
11494 }
11495
11496 while _next_ordinal_to_read < 6 {
11498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11499 _next_ordinal_to_read += 1;
11500 next_offset += envelope_size;
11501 }
11502
11503 let next_out_of_line = decoder.next_out_of_line();
11504 let handles_before = decoder.remaining_handles();
11505 if let Some((inlined, num_bytes, num_handles)) =
11506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11507 {
11508 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11509 if inlined != (member_inline_size <= 4) {
11510 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11511 }
11512 let inner_offset;
11513 let mut inner_depth = depth.clone();
11514 if inlined {
11515 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11516 inner_offset = next_offset;
11517 } else {
11518 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11519 inner_depth.increment()?;
11520 }
11521 let val_ref = self.source_dictionary.get_or_insert_with(|| {
11522 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
11523 });
11524 fidl::decode!(
11525 fidl::encoding::BoundedString<1024>,
11526 D,
11527 val_ref,
11528 decoder,
11529 inner_offset,
11530 inner_depth
11531 )?;
11532 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11533 {
11534 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11535 }
11536 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11537 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11538 }
11539 }
11540
11541 next_offset += envelope_size;
11542
11543 while next_offset < end_offset {
11545 _next_ordinal_to_read += 1;
11546 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11547 next_offset += envelope_size;
11548 }
11549
11550 Ok(())
11551 }
11552 }
11553
11554 impl ExposeDirectory {
11555 #[inline(always)]
11556 fn max_ordinal_present(&self) -> u64 {
11557 if let Some(_) = self.source_dictionary {
11558 return 8;
11559 }
11560 if let Some(_) = self.availability {
11561 return 7;
11562 }
11563 if let Some(_) = self.subdir {
11564 return 6;
11565 }
11566 if let Some(_) = self.rights {
11567 return 5;
11568 }
11569 if let Some(_) = self.target_name {
11570 return 4;
11571 }
11572 if let Some(_) = self.target {
11573 return 3;
11574 }
11575 if let Some(_) = self.source_name {
11576 return 2;
11577 }
11578 if let Some(_) = self.source {
11579 return 1;
11580 }
11581 0
11582 }
11583 }
11584
11585 impl fidl::encoding::ValueTypeMarker for ExposeDirectory {
11586 type Borrowed<'a> = &'a Self;
11587 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11588 value
11589 }
11590 }
11591
11592 unsafe impl fidl::encoding::TypeMarker for ExposeDirectory {
11593 type Owned = Self;
11594
11595 #[inline(always)]
11596 fn inline_align(_context: fidl::encoding::Context) -> usize {
11597 8
11598 }
11599
11600 #[inline(always)]
11601 fn inline_size(_context: fidl::encoding::Context) -> usize {
11602 16
11603 }
11604 }
11605
11606 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeDirectory, D>
11607 for &ExposeDirectory
11608 {
11609 unsafe fn encode(
11610 self,
11611 encoder: &mut fidl::encoding::Encoder<'_, D>,
11612 offset: usize,
11613 mut depth: fidl::encoding::Depth,
11614 ) -> fidl::Result<()> {
11615 encoder.debug_check_bounds::<ExposeDirectory>(offset);
11616 let max_ordinal: u64 = self.max_ordinal_present();
11618 encoder.write_num(max_ordinal, offset);
11619 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11620 if max_ordinal == 0 {
11622 return Ok(());
11623 }
11624 depth.increment()?;
11625 let envelope_size = 8;
11626 let bytes_len = max_ordinal as usize * envelope_size;
11627 #[allow(unused_variables)]
11628 let offset = encoder.out_of_line_offset(bytes_len);
11629 let mut _prev_end_offset: usize = 0;
11630 if 1 > max_ordinal {
11631 return Ok(());
11632 }
11633
11634 let cur_offset: usize = (1 - 1) * envelope_size;
11637
11638 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11640
11641 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11646 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11647 encoder,
11648 offset + cur_offset,
11649 depth,
11650 )?;
11651
11652 _prev_end_offset = cur_offset + envelope_size;
11653 if 2 > max_ordinal {
11654 return Ok(());
11655 }
11656
11657 let cur_offset: usize = (2 - 1) * envelope_size;
11660
11661 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11663
11664 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11669 self.source_name.as_ref().map(
11670 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11671 ),
11672 encoder,
11673 offset + cur_offset,
11674 depth,
11675 )?;
11676
11677 _prev_end_offset = cur_offset + envelope_size;
11678 if 3 > max_ordinal {
11679 return Ok(());
11680 }
11681
11682 let cur_offset: usize = (3 - 1) * envelope_size;
11685
11686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11688
11689 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11694 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11695 encoder,
11696 offset + cur_offset,
11697 depth,
11698 )?;
11699
11700 _prev_end_offset = cur_offset + envelope_size;
11701 if 4 > max_ordinal {
11702 return Ok(());
11703 }
11704
11705 let cur_offset: usize = (4 - 1) * envelope_size;
11708
11709 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11711
11712 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11717 self.target_name.as_ref().map(
11718 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11719 ),
11720 encoder,
11721 offset + cur_offset,
11722 depth,
11723 )?;
11724
11725 _prev_end_offset = cur_offset + envelope_size;
11726 if 5 > max_ordinal {
11727 return Ok(());
11728 }
11729
11730 let cur_offset: usize = (5 - 1) * envelope_size;
11733
11734 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11736
11737 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io__common::Operations, D>(
11742 self.rights.as_ref().map(<fidl_fuchsia_io__common::Operations as fidl::encoding::ValueTypeMarker>::borrow),
11743 encoder, offset + cur_offset, depth
11744 )?;
11745
11746 _prev_end_offset = cur_offset + envelope_size;
11747 if 6 > max_ordinal {
11748 return Ok(());
11749 }
11750
11751 let cur_offset: usize = (6 - 1) * envelope_size;
11754
11755 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11757
11758 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
11763 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
11764 encoder, offset + cur_offset, depth
11765 )?;
11766
11767 _prev_end_offset = cur_offset + envelope_size;
11768 if 7 > max_ordinal {
11769 return Ok(());
11770 }
11771
11772 let cur_offset: usize = (7 - 1) * envelope_size;
11775
11776 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11778
11779 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
11784 self.availability
11785 .as_ref()
11786 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
11787 encoder,
11788 offset + cur_offset,
11789 depth,
11790 )?;
11791
11792 _prev_end_offset = cur_offset + envelope_size;
11793 if 8 > max_ordinal {
11794 return Ok(());
11795 }
11796
11797 let cur_offset: usize = (8 - 1) * envelope_size;
11800
11801 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11803
11804 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
11809 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
11810 encoder, offset + cur_offset, depth
11811 )?;
11812
11813 _prev_end_offset = cur_offset + envelope_size;
11814
11815 Ok(())
11816 }
11817 }
11818
11819 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeDirectory {
11820 #[inline(always)]
11821 fn new_empty() -> Self {
11822 Self::default()
11823 }
11824
11825 unsafe fn decode(
11826 &mut self,
11827 decoder: &mut fidl::encoding::Decoder<'_, D>,
11828 offset: usize,
11829 mut depth: fidl::encoding::Depth,
11830 ) -> fidl::Result<()> {
11831 decoder.debug_check_bounds::<Self>(offset);
11832 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11833 None => return Err(fidl::Error::NotNullable),
11834 Some(len) => len,
11835 };
11836 if len == 0 {
11838 return Ok(());
11839 };
11840 depth.increment()?;
11841 let envelope_size = 8;
11842 let bytes_len = len * envelope_size;
11843 let offset = decoder.out_of_line_offset(bytes_len)?;
11844 let mut _next_ordinal_to_read = 0;
11846 let mut next_offset = offset;
11847 let end_offset = offset + bytes_len;
11848 _next_ordinal_to_read += 1;
11849 if next_offset >= end_offset {
11850 return Ok(());
11851 }
11852
11853 while _next_ordinal_to_read < 1 {
11855 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11856 _next_ordinal_to_read += 1;
11857 next_offset += envelope_size;
11858 }
11859
11860 let next_out_of_line = decoder.next_out_of_line();
11861 let handles_before = decoder.remaining_handles();
11862 if let Some((inlined, num_bytes, num_handles)) =
11863 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11864 {
11865 let member_inline_size =
11866 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11867 if inlined != (member_inline_size <= 4) {
11868 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11869 }
11870 let inner_offset;
11871 let mut inner_depth = depth.clone();
11872 if inlined {
11873 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11874 inner_offset = next_offset;
11875 } else {
11876 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11877 inner_depth.increment()?;
11878 }
11879 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11880 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11881 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11882 {
11883 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11884 }
11885 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11886 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11887 }
11888 }
11889
11890 next_offset += envelope_size;
11891 _next_ordinal_to_read += 1;
11892 if next_offset >= end_offset {
11893 return Ok(());
11894 }
11895
11896 while _next_ordinal_to_read < 2 {
11898 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11899 _next_ordinal_to_read += 1;
11900 next_offset += envelope_size;
11901 }
11902
11903 let next_out_of_line = decoder.next_out_of_line();
11904 let handles_before = decoder.remaining_handles();
11905 if let Some((inlined, num_bytes, num_handles)) =
11906 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11907 {
11908 let member_inline_size =
11909 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11910 decoder.context,
11911 );
11912 if inlined != (member_inline_size <= 4) {
11913 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11914 }
11915 let inner_offset;
11916 let mut inner_depth = depth.clone();
11917 if inlined {
11918 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11919 inner_offset = next_offset;
11920 } else {
11921 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11922 inner_depth.increment()?;
11923 }
11924 let val_ref = self
11925 .source_name
11926 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11927 fidl::decode!(
11928 fidl::encoding::BoundedString<100>,
11929 D,
11930 val_ref,
11931 decoder,
11932 inner_offset,
11933 inner_depth
11934 )?;
11935 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11936 {
11937 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11938 }
11939 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11940 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11941 }
11942 }
11943
11944 next_offset += envelope_size;
11945 _next_ordinal_to_read += 1;
11946 if next_offset >= end_offset {
11947 return Ok(());
11948 }
11949
11950 while _next_ordinal_to_read < 3 {
11952 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11953 _next_ordinal_to_read += 1;
11954 next_offset += envelope_size;
11955 }
11956
11957 let next_out_of_line = decoder.next_out_of_line();
11958 let handles_before = decoder.remaining_handles();
11959 if let Some((inlined, num_bytes, num_handles)) =
11960 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11961 {
11962 let member_inline_size =
11963 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11964 if inlined != (member_inline_size <= 4) {
11965 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11966 }
11967 let inner_offset;
11968 let mut inner_depth = depth.clone();
11969 if inlined {
11970 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11971 inner_offset = next_offset;
11972 } else {
11973 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11974 inner_depth.increment()?;
11975 }
11976 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11977 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11978 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11979 {
11980 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11981 }
11982 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11983 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11984 }
11985 }
11986
11987 next_offset += envelope_size;
11988 _next_ordinal_to_read += 1;
11989 if next_offset >= end_offset {
11990 return Ok(());
11991 }
11992
11993 while _next_ordinal_to_read < 4 {
11995 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11996 _next_ordinal_to_read += 1;
11997 next_offset += envelope_size;
11998 }
11999
12000 let next_out_of_line = decoder.next_out_of_line();
12001 let handles_before = decoder.remaining_handles();
12002 if let Some((inlined, num_bytes, num_handles)) =
12003 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12004 {
12005 let member_inline_size =
12006 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12007 decoder.context,
12008 );
12009 if inlined != (member_inline_size <= 4) {
12010 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12011 }
12012 let inner_offset;
12013 let mut inner_depth = depth.clone();
12014 if inlined {
12015 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12016 inner_offset = next_offset;
12017 } else {
12018 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12019 inner_depth.increment()?;
12020 }
12021 let val_ref = self
12022 .target_name
12023 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12024 fidl::decode!(
12025 fidl::encoding::BoundedString<100>,
12026 D,
12027 val_ref,
12028 decoder,
12029 inner_offset,
12030 inner_depth
12031 )?;
12032 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12033 {
12034 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12035 }
12036 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12037 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12038 }
12039 }
12040
12041 next_offset += envelope_size;
12042 _next_ordinal_to_read += 1;
12043 if next_offset >= end_offset {
12044 return Ok(());
12045 }
12046
12047 while _next_ordinal_to_read < 5 {
12049 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12050 _next_ordinal_to_read += 1;
12051 next_offset += envelope_size;
12052 }
12053
12054 let next_out_of_line = decoder.next_out_of_line();
12055 let handles_before = decoder.remaining_handles();
12056 if let Some((inlined, num_bytes, num_handles)) =
12057 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12058 {
12059 let member_inline_size = <fidl_fuchsia_io__common::Operations as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12060 if inlined != (member_inline_size <= 4) {
12061 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12062 }
12063 let inner_offset;
12064 let mut inner_depth = depth.clone();
12065 if inlined {
12066 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12067 inner_offset = next_offset;
12068 } else {
12069 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12070 inner_depth.increment()?;
12071 }
12072 let val_ref = self.rights.get_or_insert_with(|| {
12073 fidl::new_empty!(fidl_fuchsia_io__common::Operations, D)
12074 });
12075 fidl::decode!(
12076 fidl_fuchsia_io__common::Operations,
12077 D,
12078 val_ref,
12079 decoder,
12080 inner_offset,
12081 inner_depth
12082 )?;
12083 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12084 {
12085 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12086 }
12087 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12088 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12089 }
12090 }
12091
12092 next_offset += envelope_size;
12093 _next_ordinal_to_read += 1;
12094 if next_offset >= end_offset {
12095 return Ok(());
12096 }
12097
12098 while _next_ordinal_to_read < 6 {
12100 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12101 _next_ordinal_to_read += 1;
12102 next_offset += envelope_size;
12103 }
12104
12105 let next_out_of_line = decoder.next_out_of_line();
12106 let handles_before = decoder.remaining_handles();
12107 if let Some((inlined, num_bytes, num_handles)) =
12108 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12109 {
12110 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12111 if inlined != (member_inline_size <= 4) {
12112 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12113 }
12114 let inner_offset;
12115 let mut inner_depth = depth.clone();
12116 if inlined {
12117 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12118 inner_offset = next_offset;
12119 } else {
12120 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12121 inner_depth.increment()?;
12122 }
12123 let val_ref = self.subdir.get_or_insert_with(|| {
12124 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
12125 });
12126 fidl::decode!(
12127 fidl::encoding::BoundedString<1024>,
12128 D,
12129 val_ref,
12130 decoder,
12131 inner_offset,
12132 inner_depth
12133 )?;
12134 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12135 {
12136 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12137 }
12138 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12139 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12140 }
12141 }
12142
12143 next_offset += envelope_size;
12144 _next_ordinal_to_read += 1;
12145 if next_offset >= end_offset {
12146 return Ok(());
12147 }
12148
12149 while _next_ordinal_to_read < 7 {
12151 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12152 _next_ordinal_to_read += 1;
12153 next_offset += envelope_size;
12154 }
12155
12156 let next_out_of_line = decoder.next_out_of_line();
12157 let handles_before = decoder.remaining_handles();
12158 if let Some((inlined, num_bytes, num_handles)) =
12159 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12160 {
12161 let member_inline_size =
12162 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12163 if inlined != (member_inline_size <= 4) {
12164 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12165 }
12166 let inner_offset;
12167 let mut inner_depth = depth.clone();
12168 if inlined {
12169 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12170 inner_offset = next_offset;
12171 } else {
12172 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12173 inner_depth.increment()?;
12174 }
12175 let val_ref =
12176 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
12177 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
12178 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12179 {
12180 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12181 }
12182 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12183 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12184 }
12185 }
12186
12187 next_offset += envelope_size;
12188 _next_ordinal_to_read += 1;
12189 if next_offset >= end_offset {
12190 return Ok(());
12191 }
12192
12193 while _next_ordinal_to_read < 8 {
12195 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12196 _next_ordinal_to_read += 1;
12197 next_offset += envelope_size;
12198 }
12199
12200 let next_out_of_line = decoder.next_out_of_line();
12201 let handles_before = decoder.remaining_handles();
12202 if let Some((inlined, num_bytes, num_handles)) =
12203 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12204 {
12205 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12206 if inlined != (member_inline_size <= 4) {
12207 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12208 }
12209 let inner_offset;
12210 let mut inner_depth = depth.clone();
12211 if inlined {
12212 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12213 inner_offset = next_offset;
12214 } else {
12215 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12216 inner_depth.increment()?;
12217 }
12218 let val_ref = self.source_dictionary.get_or_insert_with(|| {
12219 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
12220 });
12221 fidl::decode!(
12222 fidl::encoding::BoundedString<1024>,
12223 D,
12224 val_ref,
12225 decoder,
12226 inner_offset,
12227 inner_depth
12228 )?;
12229 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12230 {
12231 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12232 }
12233 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12234 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12235 }
12236 }
12237
12238 next_offset += envelope_size;
12239
12240 while next_offset < end_offset {
12242 _next_ordinal_to_read += 1;
12243 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12244 next_offset += envelope_size;
12245 }
12246
12247 Ok(())
12248 }
12249 }
12250
12251 impl ExposeProtocol {
12252 #[inline(always)]
12253 fn max_ordinal_present(&self) -> u64 {
12254 if let Some(_) = self.source_dictionary {
12255 return 6;
12256 }
12257 if let Some(_) = self.availability {
12258 return 5;
12259 }
12260 if let Some(_) = self.target_name {
12261 return 4;
12262 }
12263 if let Some(_) = self.target {
12264 return 3;
12265 }
12266 if let Some(_) = self.source_name {
12267 return 2;
12268 }
12269 if let Some(_) = self.source {
12270 return 1;
12271 }
12272 0
12273 }
12274 }
12275
12276 impl fidl::encoding::ValueTypeMarker for ExposeProtocol {
12277 type Borrowed<'a> = &'a Self;
12278 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12279 value
12280 }
12281 }
12282
12283 unsafe impl fidl::encoding::TypeMarker for ExposeProtocol {
12284 type Owned = Self;
12285
12286 #[inline(always)]
12287 fn inline_align(_context: fidl::encoding::Context) -> usize {
12288 8
12289 }
12290
12291 #[inline(always)]
12292 fn inline_size(_context: fidl::encoding::Context) -> usize {
12293 16
12294 }
12295 }
12296
12297 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeProtocol, D>
12298 for &ExposeProtocol
12299 {
12300 unsafe fn encode(
12301 self,
12302 encoder: &mut fidl::encoding::Encoder<'_, D>,
12303 offset: usize,
12304 mut depth: fidl::encoding::Depth,
12305 ) -> fidl::Result<()> {
12306 encoder.debug_check_bounds::<ExposeProtocol>(offset);
12307 let max_ordinal: u64 = self.max_ordinal_present();
12309 encoder.write_num(max_ordinal, offset);
12310 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12311 if max_ordinal == 0 {
12313 return Ok(());
12314 }
12315 depth.increment()?;
12316 let envelope_size = 8;
12317 let bytes_len = max_ordinal as usize * envelope_size;
12318 #[allow(unused_variables)]
12319 let offset = encoder.out_of_line_offset(bytes_len);
12320 let mut _prev_end_offset: usize = 0;
12321 if 1 > max_ordinal {
12322 return Ok(());
12323 }
12324
12325 let cur_offset: usize = (1 - 1) * envelope_size;
12328
12329 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12331
12332 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12337 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12338 encoder,
12339 offset + cur_offset,
12340 depth,
12341 )?;
12342
12343 _prev_end_offset = cur_offset + envelope_size;
12344 if 2 > max_ordinal {
12345 return Ok(());
12346 }
12347
12348 let cur_offset: usize = (2 - 1) * envelope_size;
12351
12352 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12354
12355 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12360 self.source_name.as_ref().map(
12361 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12362 ),
12363 encoder,
12364 offset + cur_offset,
12365 depth,
12366 )?;
12367
12368 _prev_end_offset = cur_offset + envelope_size;
12369 if 3 > max_ordinal {
12370 return Ok(());
12371 }
12372
12373 let cur_offset: usize = (3 - 1) * envelope_size;
12376
12377 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12379
12380 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12385 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12386 encoder,
12387 offset + cur_offset,
12388 depth,
12389 )?;
12390
12391 _prev_end_offset = cur_offset + envelope_size;
12392 if 4 > max_ordinal {
12393 return Ok(());
12394 }
12395
12396 let cur_offset: usize = (4 - 1) * envelope_size;
12399
12400 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12402
12403 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12408 self.target_name.as_ref().map(
12409 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12410 ),
12411 encoder,
12412 offset + cur_offset,
12413 depth,
12414 )?;
12415
12416 _prev_end_offset = cur_offset + envelope_size;
12417 if 5 > max_ordinal {
12418 return Ok(());
12419 }
12420
12421 let cur_offset: usize = (5 - 1) * envelope_size;
12424
12425 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12427
12428 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
12433 self.availability
12434 .as_ref()
12435 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
12436 encoder,
12437 offset + cur_offset,
12438 depth,
12439 )?;
12440
12441 _prev_end_offset = cur_offset + envelope_size;
12442 if 6 > max_ordinal {
12443 return Ok(());
12444 }
12445
12446 let cur_offset: usize = (6 - 1) * envelope_size;
12449
12450 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12452
12453 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
12458 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
12459 encoder, offset + cur_offset, depth
12460 )?;
12461
12462 _prev_end_offset = cur_offset + envelope_size;
12463
12464 Ok(())
12465 }
12466 }
12467
12468 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeProtocol {
12469 #[inline(always)]
12470 fn new_empty() -> Self {
12471 Self::default()
12472 }
12473
12474 unsafe fn decode(
12475 &mut self,
12476 decoder: &mut fidl::encoding::Decoder<'_, D>,
12477 offset: usize,
12478 mut depth: fidl::encoding::Depth,
12479 ) -> fidl::Result<()> {
12480 decoder.debug_check_bounds::<Self>(offset);
12481 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12482 None => return Err(fidl::Error::NotNullable),
12483 Some(len) => len,
12484 };
12485 if len == 0 {
12487 return Ok(());
12488 };
12489 depth.increment()?;
12490 let envelope_size = 8;
12491 let bytes_len = len * envelope_size;
12492 let offset = decoder.out_of_line_offset(bytes_len)?;
12493 let mut _next_ordinal_to_read = 0;
12495 let mut next_offset = offset;
12496 let end_offset = offset + bytes_len;
12497 _next_ordinal_to_read += 1;
12498 if next_offset >= end_offset {
12499 return Ok(());
12500 }
12501
12502 while _next_ordinal_to_read < 1 {
12504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12505 _next_ordinal_to_read += 1;
12506 next_offset += envelope_size;
12507 }
12508
12509 let next_out_of_line = decoder.next_out_of_line();
12510 let handles_before = decoder.remaining_handles();
12511 if let Some((inlined, num_bytes, num_handles)) =
12512 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12513 {
12514 let member_inline_size =
12515 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12516 if inlined != (member_inline_size <= 4) {
12517 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12518 }
12519 let inner_offset;
12520 let mut inner_depth = depth.clone();
12521 if inlined {
12522 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12523 inner_offset = next_offset;
12524 } else {
12525 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12526 inner_depth.increment()?;
12527 }
12528 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
12529 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
12530 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12531 {
12532 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12533 }
12534 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12535 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12536 }
12537 }
12538
12539 next_offset += envelope_size;
12540 _next_ordinal_to_read += 1;
12541 if next_offset >= end_offset {
12542 return Ok(());
12543 }
12544
12545 while _next_ordinal_to_read < 2 {
12547 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12548 _next_ordinal_to_read += 1;
12549 next_offset += envelope_size;
12550 }
12551
12552 let next_out_of_line = decoder.next_out_of_line();
12553 let handles_before = decoder.remaining_handles();
12554 if let Some((inlined, num_bytes, num_handles)) =
12555 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12556 {
12557 let member_inline_size =
12558 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12559 decoder.context,
12560 );
12561 if inlined != (member_inline_size <= 4) {
12562 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12563 }
12564 let inner_offset;
12565 let mut inner_depth = depth.clone();
12566 if inlined {
12567 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12568 inner_offset = next_offset;
12569 } else {
12570 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12571 inner_depth.increment()?;
12572 }
12573 let val_ref = self
12574 .source_name
12575 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12576 fidl::decode!(
12577 fidl::encoding::BoundedString<100>,
12578 D,
12579 val_ref,
12580 decoder,
12581 inner_offset,
12582 inner_depth
12583 )?;
12584 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12585 {
12586 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12587 }
12588 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12589 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12590 }
12591 }
12592
12593 next_offset += envelope_size;
12594 _next_ordinal_to_read += 1;
12595 if next_offset >= end_offset {
12596 return Ok(());
12597 }
12598
12599 while _next_ordinal_to_read < 3 {
12601 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12602 _next_ordinal_to_read += 1;
12603 next_offset += envelope_size;
12604 }
12605
12606 let next_out_of_line = decoder.next_out_of_line();
12607 let handles_before = decoder.remaining_handles();
12608 if let Some((inlined, num_bytes, num_handles)) =
12609 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12610 {
12611 let member_inline_size =
12612 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12613 if inlined != (member_inline_size <= 4) {
12614 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12615 }
12616 let inner_offset;
12617 let mut inner_depth = depth.clone();
12618 if inlined {
12619 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12620 inner_offset = next_offset;
12621 } else {
12622 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12623 inner_depth.increment()?;
12624 }
12625 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
12626 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
12627 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12628 {
12629 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12630 }
12631 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12632 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12633 }
12634 }
12635
12636 next_offset += envelope_size;
12637 _next_ordinal_to_read += 1;
12638 if next_offset >= end_offset {
12639 return Ok(());
12640 }
12641
12642 while _next_ordinal_to_read < 4 {
12644 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12645 _next_ordinal_to_read += 1;
12646 next_offset += envelope_size;
12647 }
12648
12649 let next_out_of_line = decoder.next_out_of_line();
12650 let handles_before = decoder.remaining_handles();
12651 if let Some((inlined, num_bytes, num_handles)) =
12652 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12653 {
12654 let member_inline_size =
12655 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12656 decoder.context,
12657 );
12658 if inlined != (member_inline_size <= 4) {
12659 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12660 }
12661 let inner_offset;
12662 let mut inner_depth = depth.clone();
12663 if inlined {
12664 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12665 inner_offset = next_offset;
12666 } else {
12667 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12668 inner_depth.increment()?;
12669 }
12670 let val_ref = self
12671 .target_name
12672 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12673 fidl::decode!(
12674 fidl::encoding::BoundedString<100>,
12675 D,
12676 val_ref,
12677 decoder,
12678 inner_offset,
12679 inner_depth
12680 )?;
12681 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12682 {
12683 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12684 }
12685 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12686 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12687 }
12688 }
12689
12690 next_offset += envelope_size;
12691 _next_ordinal_to_read += 1;
12692 if next_offset >= end_offset {
12693 return Ok(());
12694 }
12695
12696 while _next_ordinal_to_read < 5 {
12698 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12699 _next_ordinal_to_read += 1;
12700 next_offset += envelope_size;
12701 }
12702
12703 let next_out_of_line = decoder.next_out_of_line();
12704 let handles_before = decoder.remaining_handles();
12705 if let Some((inlined, num_bytes, num_handles)) =
12706 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12707 {
12708 let member_inline_size =
12709 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12710 if inlined != (member_inline_size <= 4) {
12711 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12712 }
12713 let inner_offset;
12714 let mut inner_depth = depth.clone();
12715 if inlined {
12716 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12717 inner_offset = next_offset;
12718 } else {
12719 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12720 inner_depth.increment()?;
12721 }
12722 let val_ref =
12723 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
12724 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
12725 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12726 {
12727 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12728 }
12729 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12730 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12731 }
12732 }
12733
12734 next_offset += envelope_size;
12735 _next_ordinal_to_read += 1;
12736 if next_offset >= end_offset {
12737 return Ok(());
12738 }
12739
12740 while _next_ordinal_to_read < 6 {
12742 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12743 _next_ordinal_to_read += 1;
12744 next_offset += envelope_size;
12745 }
12746
12747 let next_out_of_line = decoder.next_out_of_line();
12748 let handles_before = decoder.remaining_handles();
12749 if let Some((inlined, num_bytes, num_handles)) =
12750 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12751 {
12752 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12753 if inlined != (member_inline_size <= 4) {
12754 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12755 }
12756 let inner_offset;
12757 let mut inner_depth = depth.clone();
12758 if inlined {
12759 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12760 inner_offset = next_offset;
12761 } else {
12762 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12763 inner_depth.increment()?;
12764 }
12765 let val_ref = self.source_dictionary.get_or_insert_with(|| {
12766 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
12767 });
12768 fidl::decode!(
12769 fidl::encoding::BoundedString<1024>,
12770 D,
12771 val_ref,
12772 decoder,
12773 inner_offset,
12774 inner_depth
12775 )?;
12776 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12777 {
12778 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12779 }
12780 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12781 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12782 }
12783 }
12784
12785 next_offset += envelope_size;
12786
12787 while next_offset < end_offset {
12789 _next_ordinal_to_read += 1;
12790 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12791 next_offset += envelope_size;
12792 }
12793
12794 Ok(())
12795 }
12796 }
12797
12798 impl ExposeResolver {
12799 #[inline(always)]
12800 fn max_ordinal_present(&self) -> u64 {
12801 if let Some(_) = self.source_dictionary {
12802 return 6;
12803 }
12804 if let Some(_) = self.target_name {
12805 return 4;
12806 }
12807 if let Some(_) = self.target {
12808 return 3;
12809 }
12810 if let Some(_) = self.source_name {
12811 return 2;
12812 }
12813 if let Some(_) = self.source {
12814 return 1;
12815 }
12816 0
12817 }
12818 }
12819
12820 impl fidl::encoding::ValueTypeMarker for ExposeResolver {
12821 type Borrowed<'a> = &'a Self;
12822 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12823 value
12824 }
12825 }
12826
12827 unsafe impl fidl::encoding::TypeMarker for ExposeResolver {
12828 type Owned = Self;
12829
12830 #[inline(always)]
12831 fn inline_align(_context: fidl::encoding::Context) -> usize {
12832 8
12833 }
12834
12835 #[inline(always)]
12836 fn inline_size(_context: fidl::encoding::Context) -> usize {
12837 16
12838 }
12839 }
12840
12841 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeResolver, D>
12842 for &ExposeResolver
12843 {
12844 unsafe fn encode(
12845 self,
12846 encoder: &mut fidl::encoding::Encoder<'_, D>,
12847 offset: usize,
12848 mut depth: fidl::encoding::Depth,
12849 ) -> fidl::Result<()> {
12850 encoder.debug_check_bounds::<ExposeResolver>(offset);
12851 let max_ordinal: u64 = self.max_ordinal_present();
12853 encoder.write_num(max_ordinal, offset);
12854 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12855 if max_ordinal == 0 {
12857 return Ok(());
12858 }
12859 depth.increment()?;
12860 let envelope_size = 8;
12861 let bytes_len = max_ordinal as usize * envelope_size;
12862 #[allow(unused_variables)]
12863 let offset = encoder.out_of_line_offset(bytes_len);
12864 let mut _prev_end_offset: usize = 0;
12865 if 1 > max_ordinal {
12866 return Ok(());
12867 }
12868
12869 let cur_offset: usize = (1 - 1) * envelope_size;
12872
12873 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12875
12876 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12881 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12882 encoder,
12883 offset + cur_offset,
12884 depth,
12885 )?;
12886
12887 _prev_end_offset = cur_offset + envelope_size;
12888 if 2 > max_ordinal {
12889 return Ok(());
12890 }
12891
12892 let cur_offset: usize = (2 - 1) * envelope_size;
12895
12896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12898
12899 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12904 self.source_name.as_ref().map(
12905 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12906 ),
12907 encoder,
12908 offset + cur_offset,
12909 depth,
12910 )?;
12911
12912 _prev_end_offset = cur_offset + envelope_size;
12913 if 3 > max_ordinal {
12914 return Ok(());
12915 }
12916
12917 let cur_offset: usize = (3 - 1) * envelope_size;
12920
12921 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12923
12924 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12929 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12930 encoder,
12931 offset + cur_offset,
12932 depth,
12933 )?;
12934
12935 _prev_end_offset = cur_offset + envelope_size;
12936 if 4 > max_ordinal {
12937 return Ok(());
12938 }
12939
12940 let cur_offset: usize = (4 - 1) * envelope_size;
12943
12944 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12946
12947 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12952 self.target_name.as_ref().map(
12953 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12954 ),
12955 encoder,
12956 offset + cur_offset,
12957 depth,
12958 )?;
12959
12960 _prev_end_offset = cur_offset + envelope_size;
12961 if 6 > max_ordinal {
12962 return Ok(());
12963 }
12964
12965 let cur_offset: usize = (6 - 1) * envelope_size;
12968
12969 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12971
12972 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
12977 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
12978 encoder, offset + cur_offset, depth
12979 )?;
12980
12981 _prev_end_offset = cur_offset + envelope_size;
12982
12983 Ok(())
12984 }
12985 }
12986
12987 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeResolver {
12988 #[inline(always)]
12989 fn new_empty() -> Self {
12990 Self::default()
12991 }
12992
12993 unsafe fn decode(
12994 &mut self,
12995 decoder: &mut fidl::encoding::Decoder<'_, D>,
12996 offset: usize,
12997 mut depth: fidl::encoding::Depth,
12998 ) -> fidl::Result<()> {
12999 decoder.debug_check_bounds::<Self>(offset);
13000 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13001 None => return Err(fidl::Error::NotNullable),
13002 Some(len) => len,
13003 };
13004 if len == 0 {
13006 return Ok(());
13007 };
13008 depth.increment()?;
13009 let envelope_size = 8;
13010 let bytes_len = len * envelope_size;
13011 let offset = decoder.out_of_line_offset(bytes_len)?;
13012 let mut _next_ordinal_to_read = 0;
13014 let mut next_offset = offset;
13015 let end_offset = offset + bytes_len;
13016 _next_ordinal_to_read += 1;
13017 if next_offset >= end_offset {
13018 return Ok(());
13019 }
13020
13021 while _next_ordinal_to_read < 1 {
13023 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13024 _next_ordinal_to_read += 1;
13025 next_offset += envelope_size;
13026 }
13027
13028 let next_out_of_line = decoder.next_out_of_line();
13029 let handles_before = decoder.remaining_handles();
13030 if let Some((inlined, num_bytes, num_handles)) =
13031 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13032 {
13033 let member_inline_size =
13034 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13035 if inlined != (member_inline_size <= 4) {
13036 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13037 }
13038 let inner_offset;
13039 let mut inner_depth = depth.clone();
13040 if inlined {
13041 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13042 inner_offset = next_offset;
13043 } else {
13044 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13045 inner_depth.increment()?;
13046 }
13047 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13048 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13049 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13050 {
13051 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13052 }
13053 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13054 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13055 }
13056 }
13057
13058 next_offset += envelope_size;
13059 _next_ordinal_to_read += 1;
13060 if next_offset >= end_offset {
13061 return Ok(());
13062 }
13063
13064 while _next_ordinal_to_read < 2 {
13066 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13067 _next_ordinal_to_read += 1;
13068 next_offset += envelope_size;
13069 }
13070
13071 let next_out_of_line = decoder.next_out_of_line();
13072 let handles_before = decoder.remaining_handles();
13073 if let Some((inlined, num_bytes, num_handles)) =
13074 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13075 {
13076 let member_inline_size =
13077 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13078 decoder.context,
13079 );
13080 if inlined != (member_inline_size <= 4) {
13081 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13082 }
13083 let inner_offset;
13084 let mut inner_depth = depth.clone();
13085 if inlined {
13086 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13087 inner_offset = next_offset;
13088 } else {
13089 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13090 inner_depth.increment()?;
13091 }
13092 let val_ref = self
13093 .source_name
13094 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13095 fidl::decode!(
13096 fidl::encoding::BoundedString<100>,
13097 D,
13098 val_ref,
13099 decoder,
13100 inner_offset,
13101 inner_depth
13102 )?;
13103 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13104 {
13105 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13106 }
13107 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13108 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13109 }
13110 }
13111
13112 next_offset += envelope_size;
13113 _next_ordinal_to_read += 1;
13114 if next_offset >= end_offset {
13115 return Ok(());
13116 }
13117
13118 while _next_ordinal_to_read < 3 {
13120 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13121 _next_ordinal_to_read += 1;
13122 next_offset += envelope_size;
13123 }
13124
13125 let next_out_of_line = decoder.next_out_of_line();
13126 let handles_before = decoder.remaining_handles();
13127 if let Some((inlined, num_bytes, num_handles)) =
13128 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13129 {
13130 let member_inline_size =
13131 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13132 if inlined != (member_inline_size <= 4) {
13133 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13134 }
13135 let inner_offset;
13136 let mut inner_depth = depth.clone();
13137 if inlined {
13138 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13139 inner_offset = next_offset;
13140 } else {
13141 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13142 inner_depth.increment()?;
13143 }
13144 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13145 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13146 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13147 {
13148 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13149 }
13150 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13151 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13152 }
13153 }
13154
13155 next_offset += envelope_size;
13156 _next_ordinal_to_read += 1;
13157 if next_offset >= end_offset {
13158 return Ok(());
13159 }
13160
13161 while _next_ordinal_to_read < 4 {
13163 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13164 _next_ordinal_to_read += 1;
13165 next_offset += envelope_size;
13166 }
13167
13168 let next_out_of_line = decoder.next_out_of_line();
13169 let handles_before = decoder.remaining_handles();
13170 if let Some((inlined, num_bytes, num_handles)) =
13171 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13172 {
13173 let member_inline_size =
13174 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13175 decoder.context,
13176 );
13177 if inlined != (member_inline_size <= 4) {
13178 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13179 }
13180 let inner_offset;
13181 let mut inner_depth = depth.clone();
13182 if inlined {
13183 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13184 inner_offset = next_offset;
13185 } else {
13186 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13187 inner_depth.increment()?;
13188 }
13189 let val_ref = self
13190 .target_name
13191 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13192 fidl::decode!(
13193 fidl::encoding::BoundedString<100>,
13194 D,
13195 val_ref,
13196 decoder,
13197 inner_offset,
13198 inner_depth
13199 )?;
13200 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13201 {
13202 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13203 }
13204 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13205 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13206 }
13207 }
13208
13209 next_offset += envelope_size;
13210 _next_ordinal_to_read += 1;
13211 if next_offset >= end_offset {
13212 return Ok(());
13213 }
13214
13215 while _next_ordinal_to_read < 6 {
13217 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13218 _next_ordinal_to_read += 1;
13219 next_offset += envelope_size;
13220 }
13221
13222 let next_out_of_line = decoder.next_out_of_line();
13223 let handles_before = decoder.remaining_handles();
13224 if let Some((inlined, num_bytes, num_handles)) =
13225 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13226 {
13227 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13228 if inlined != (member_inline_size <= 4) {
13229 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13230 }
13231 let inner_offset;
13232 let mut inner_depth = depth.clone();
13233 if inlined {
13234 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13235 inner_offset = next_offset;
13236 } else {
13237 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13238 inner_depth.increment()?;
13239 }
13240 let val_ref = self.source_dictionary.get_or_insert_with(|| {
13241 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
13242 });
13243 fidl::decode!(
13244 fidl::encoding::BoundedString<1024>,
13245 D,
13246 val_ref,
13247 decoder,
13248 inner_offset,
13249 inner_depth
13250 )?;
13251 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13252 {
13253 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13254 }
13255 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13256 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13257 }
13258 }
13259
13260 next_offset += envelope_size;
13261
13262 while next_offset < end_offset {
13264 _next_ordinal_to_read += 1;
13265 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13266 next_offset += envelope_size;
13267 }
13268
13269 Ok(())
13270 }
13271 }
13272
13273 impl ExposeRunner {
13274 #[inline(always)]
13275 fn max_ordinal_present(&self) -> u64 {
13276 if let Some(_) = self.source_dictionary {
13277 return 6;
13278 }
13279 if let Some(_) = self.target_name {
13280 return 4;
13281 }
13282 if let Some(_) = self.target {
13283 return 3;
13284 }
13285 if let Some(_) = self.source_name {
13286 return 2;
13287 }
13288 if let Some(_) = self.source {
13289 return 1;
13290 }
13291 0
13292 }
13293 }
13294
13295 impl fidl::encoding::ValueTypeMarker for ExposeRunner {
13296 type Borrowed<'a> = &'a Self;
13297 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13298 value
13299 }
13300 }
13301
13302 unsafe impl fidl::encoding::TypeMarker for ExposeRunner {
13303 type Owned = Self;
13304
13305 #[inline(always)]
13306 fn inline_align(_context: fidl::encoding::Context) -> usize {
13307 8
13308 }
13309
13310 #[inline(always)]
13311 fn inline_size(_context: fidl::encoding::Context) -> usize {
13312 16
13313 }
13314 }
13315
13316 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeRunner, D>
13317 for &ExposeRunner
13318 {
13319 unsafe fn encode(
13320 self,
13321 encoder: &mut fidl::encoding::Encoder<'_, D>,
13322 offset: usize,
13323 mut depth: fidl::encoding::Depth,
13324 ) -> fidl::Result<()> {
13325 encoder.debug_check_bounds::<ExposeRunner>(offset);
13326 let max_ordinal: u64 = self.max_ordinal_present();
13328 encoder.write_num(max_ordinal, offset);
13329 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13330 if max_ordinal == 0 {
13332 return Ok(());
13333 }
13334 depth.increment()?;
13335 let envelope_size = 8;
13336 let bytes_len = max_ordinal as usize * envelope_size;
13337 #[allow(unused_variables)]
13338 let offset = encoder.out_of_line_offset(bytes_len);
13339 let mut _prev_end_offset: usize = 0;
13340 if 1 > max_ordinal {
13341 return Ok(());
13342 }
13343
13344 let cur_offset: usize = (1 - 1) * envelope_size;
13347
13348 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13350
13351 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13356 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13357 encoder,
13358 offset + cur_offset,
13359 depth,
13360 )?;
13361
13362 _prev_end_offset = cur_offset + envelope_size;
13363 if 2 > max_ordinal {
13364 return Ok(());
13365 }
13366
13367 let cur_offset: usize = (2 - 1) * envelope_size;
13370
13371 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13373
13374 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13379 self.source_name.as_ref().map(
13380 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13381 ),
13382 encoder,
13383 offset + cur_offset,
13384 depth,
13385 )?;
13386
13387 _prev_end_offset = cur_offset + envelope_size;
13388 if 3 > max_ordinal {
13389 return Ok(());
13390 }
13391
13392 let cur_offset: usize = (3 - 1) * envelope_size;
13395
13396 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13398
13399 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13404 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13405 encoder,
13406 offset + cur_offset,
13407 depth,
13408 )?;
13409
13410 _prev_end_offset = cur_offset + envelope_size;
13411 if 4 > max_ordinal {
13412 return Ok(());
13413 }
13414
13415 let cur_offset: usize = (4 - 1) * envelope_size;
13418
13419 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13421
13422 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13427 self.target_name.as_ref().map(
13428 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13429 ),
13430 encoder,
13431 offset + cur_offset,
13432 depth,
13433 )?;
13434
13435 _prev_end_offset = cur_offset + envelope_size;
13436 if 6 > max_ordinal {
13437 return Ok(());
13438 }
13439
13440 let cur_offset: usize = (6 - 1) * envelope_size;
13443
13444 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13446
13447 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
13452 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
13453 encoder, offset + cur_offset, depth
13454 )?;
13455
13456 _prev_end_offset = cur_offset + envelope_size;
13457
13458 Ok(())
13459 }
13460 }
13461
13462 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeRunner {
13463 #[inline(always)]
13464 fn new_empty() -> Self {
13465 Self::default()
13466 }
13467
13468 unsafe fn decode(
13469 &mut self,
13470 decoder: &mut fidl::encoding::Decoder<'_, D>,
13471 offset: usize,
13472 mut depth: fidl::encoding::Depth,
13473 ) -> fidl::Result<()> {
13474 decoder.debug_check_bounds::<Self>(offset);
13475 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13476 None => return Err(fidl::Error::NotNullable),
13477 Some(len) => len,
13478 };
13479 if len == 0 {
13481 return Ok(());
13482 };
13483 depth.increment()?;
13484 let envelope_size = 8;
13485 let bytes_len = len * envelope_size;
13486 let offset = decoder.out_of_line_offset(bytes_len)?;
13487 let mut _next_ordinal_to_read = 0;
13489 let mut next_offset = offset;
13490 let end_offset = offset + bytes_len;
13491 _next_ordinal_to_read += 1;
13492 if next_offset >= end_offset {
13493 return Ok(());
13494 }
13495
13496 while _next_ordinal_to_read < 1 {
13498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13499 _next_ordinal_to_read += 1;
13500 next_offset += envelope_size;
13501 }
13502
13503 let next_out_of_line = decoder.next_out_of_line();
13504 let handles_before = decoder.remaining_handles();
13505 if let Some((inlined, num_bytes, num_handles)) =
13506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13507 {
13508 let member_inline_size =
13509 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13510 if inlined != (member_inline_size <= 4) {
13511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13512 }
13513 let inner_offset;
13514 let mut inner_depth = depth.clone();
13515 if inlined {
13516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13517 inner_offset = next_offset;
13518 } else {
13519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13520 inner_depth.increment()?;
13521 }
13522 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13523 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13524 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13525 {
13526 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13527 }
13528 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13529 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13530 }
13531 }
13532
13533 next_offset += envelope_size;
13534 _next_ordinal_to_read += 1;
13535 if next_offset >= end_offset {
13536 return Ok(());
13537 }
13538
13539 while _next_ordinal_to_read < 2 {
13541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13542 _next_ordinal_to_read += 1;
13543 next_offset += envelope_size;
13544 }
13545
13546 let next_out_of_line = decoder.next_out_of_line();
13547 let handles_before = decoder.remaining_handles();
13548 if let Some((inlined, num_bytes, num_handles)) =
13549 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13550 {
13551 let member_inline_size =
13552 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13553 decoder.context,
13554 );
13555 if inlined != (member_inline_size <= 4) {
13556 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13557 }
13558 let inner_offset;
13559 let mut inner_depth = depth.clone();
13560 if inlined {
13561 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13562 inner_offset = next_offset;
13563 } else {
13564 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13565 inner_depth.increment()?;
13566 }
13567 let val_ref = self
13568 .source_name
13569 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13570 fidl::decode!(
13571 fidl::encoding::BoundedString<100>,
13572 D,
13573 val_ref,
13574 decoder,
13575 inner_offset,
13576 inner_depth
13577 )?;
13578 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13579 {
13580 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13581 }
13582 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13583 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13584 }
13585 }
13586
13587 next_offset += envelope_size;
13588 _next_ordinal_to_read += 1;
13589 if next_offset >= end_offset {
13590 return Ok(());
13591 }
13592
13593 while _next_ordinal_to_read < 3 {
13595 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13596 _next_ordinal_to_read += 1;
13597 next_offset += envelope_size;
13598 }
13599
13600 let next_out_of_line = decoder.next_out_of_line();
13601 let handles_before = decoder.remaining_handles();
13602 if let Some((inlined, num_bytes, num_handles)) =
13603 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13604 {
13605 let member_inline_size =
13606 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13607 if inlined != (member_inline_size <= 4) {
13608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13609 }
13610 let inner_offset;
13611 let mut inner_depth = depth.clone();
13612 if inlined {
13613 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13614 inner_offset = next_offset;
13615 } else {
13616 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13617 inner_depth.increment()?;
13618 }
13619 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13620 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13621 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13622 {
13623 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13624 }
13625 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13626 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13627 }
13628 }
13629
13630 next_offset += envelope_size;
13631 _next_ordinal_to_read += 1;
13632 if next_offset >= end_offset {
13633 return Ok(());
13634 }
13635
13636 while _next_ordinal_to_read < 4 {
13638 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13639 _next_ordinal_to_read += 1;
13640 next_offset += envelope_size;
13641 }
13642
13643 let next_out_of_line = decoder.next_out_of_line();
13644 let handles_before = decoder.remaining_handles();
13645 if let Some((inlined, num_bytes, num_handles)) =
13646 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13647 {
13648 let member_inline_size =
13649 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13650 decoder.context,
13651 );
13652 if inlined != (member_inline_size <= 4) {
13653 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13654 }
13655 let inner_offset;
13656 let mut inner_depth = depth.clone();
13657 if inlined {
13658 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13659 inner_offset = next_offset;
13660 } else {
13661 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13662 inner_depth.increment()?;
13663 }
13664 let val_ref = self
13665 .target_name
13666 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13667 fidl::decode!(
13668 fidl::encoding::BoundedString<100>,
13669 D,
13670 val_ref,
13671 decoder,
13672 inner_offset,
13673 inner_depth
13674 )?;
13675 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13676 {
13677 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13678 }
13679 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13680 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13681 }
13682 }
13683
13684 next_offset += envelope_size;
13685 _next_ordinal_to_read += 1;
13686 if next_offset >= end_offset {
13687 return Ok(());
13688 }
13689
13690 while _next_ordinal_to_read < 6 {
13692 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13693 _next_ordinal_to_read += 1;
13694 next_offset += envelope_size;
13695 }
13696
13697 let next_out_of_line = decoder.next_out_of_line();
13698 let handles_before = decoder.remaining_handles();
13699 if let Some((inlined, num_bytes, num_handles)) =
13700 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13701 {
13702 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13703 if inlined != (member_inline_size <= 4) {
13704 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13705 }
13706 let inner_offset;
13707 let mut inner_depth = depth.clone();
13708 if inlined {
13709 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13710 inner_offset = next_offset;
13711 } else {
13712 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13713 inner_depth.increment()?;
13714 }
13715 let val_ref = self.source_dictionary.get_or_insert_with(|| {
13716 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
13717 });
13718 fidl::decode!(
13719 fidl::encoding::BoundedString<1024>,
13720 D,
13721 val_ref,
13722 decoder,
13723 inner_offset,
13724 inner_depth
13725 )?;
13726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13727 {
13728 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13729 }
13730 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13731 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13732 }
13733 }
13734
13735 next_offset += envelope_size;
13736
13737 while next_offset < end_offset {
13739 _next_ordinal_to_read += 1;
13740 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13741 next_offset += envelope_size;
13742 }
13743
13744 Ok(())
13745 }
13746 }
13747
13748 impl ExposeService {
13749 #[inline(always)]
13750 fn max_ordinal_present(&self) -> u64 {
13751 if let Some(_) = self.source_dictionary {
13752 return 6;
13753 }
13754 if let Some(_) = self.availability {
13755 return 5;
13756 }
13757 if let Some(_) = self.target_name {
13758 return 4;
13759 }
13760 if let Some(_) = self.target {
13761 return 3;
13762 }
13763 if let Some(_) = self.source_name {
13764 return 2;
13765 }
13766 if let Some(_) = self.source {
13767 return 1;
13768 }
13769 0
13770 }
13771 }
13772
13773 impl fidl::encoding::ValueTypeMarker for ExposeService {
13774 type Borrowed<'a> = &'a Self;
13775 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13776 value
13777 }
13778 }
13779
13780 unsafe impl fidl::encoding::TypeMarker for ExposeService {
13781 type Owned = Self;
13782
13783 #[inline(always)]
13784 fn inline_align(_context: fidl::encoding::Context) -> usize {
13785 8
13786 }
13787
13788 #[inline(always)]
13789 fn inline_size(_context: fidl::encoding::Context) -> usize {
13790 16
13791 }
13792 }
13793
13794 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeService, D>
13795 for &ExposeService
13796 {
13797 unsafe fn encode(
13798 self,
13799 encoder: &mut fidl::encoding::Encoder<'_, D>,
13800 offset: usize,
13801 mut depth: fidl::encoding::Depth,
13802 ) -> fidl::Result<()> {
13803 encoder.debug_check_bounds::<ExposeService>(offset);
13804 let max_ordinal: u64 = self.max_ordinal_present();
13806 encoder.write_num(max_ordinal, offset);
13807 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13808 if max_ordinal == 0 {
13810 return Ok(());
13811 }
13812 depth.increment()?;
13813 let envelope_size = 8;
13814 let bytes_len = max_ordinal as usize * envelope_size;
13815 #[allow(unused_variables)]
13816 let offset = encoder.out_of_line_offset(bytes_len);
13817 let mut _prev_end_offset: usize = 0;
13818 if 1 > max_ordinal {
13819 return Ok(());
13820 }
13821
13822 let cur_offset: usize = (1 - 1) * envelope_size;
13825
13826 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13828
13829 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13834 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13835 encoder,
13836 offset + cur_offset,
13837 depth,
13838 )?;
13839
13840 _prev_end_offset = cur_offset + envelope_size;
13841 if 2 > max_ordinal {
13842 return Ok(());
13843 }
13844
13845 let cur_offset: usize = (2 - 1) * envelope_size;
13848
13849 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13851
13852 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13857 self.source_name.as_ref().map(
13858 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13859 ),
13860 encoder,
13861 offset + cur_offset,
13862 depth,
13863 )?;
13864
13865 _prev_end_offset = cur_offset + envelope_size;
13866 if 3 > max_ordinal {
13867 return Ok(());
13868 }
13869
13870 let cur_offset: usize = (3 - 1) * envelope_size;
13873
13874 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13876
13877 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13882 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13883 encoder,
13884 offset + cur_offset,
13885 depth,
13886 )?;
13887
13888 _prev_end_offset = cur_offset + envelope_size;
13889 if 4 > max_ordinal {
13890 return Ok(());
13891 }
13892
13893 let cur_offset: usize = (4 - 1) * envelope_size;
13896
13897 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13899
13900 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13905 self.target_name.as_ref().map(
13906 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13907 ),
13908 encoder,
13909 offset + cur_offset,
13910 depth,
13911 )?;
13912
13913 _prev_end_offset = cur_offset + envelope_size;
13914 if 5 > max_ordinal {
13915 return Ok(());
13916 }
13917
13918 let cur_offset: usize = (5 - 1) * envelope_size;
13921
13922 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13924
13925 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
13930 self.availability
13931 .as_ref()
13932 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
13933 encoder,
13934 offset + cur_offset,
13935 depth,
13936 )?;
13937
13938 _prev_end_offset = cur_offset + envelope_size;
13939 if 6 > max_ordinal {
13940 return Ok(());
13941 }
13942
13943 let cur_offset: usize = (6 - 1) * envelope_size;
13946
13947 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13949
13950 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
13955 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
13956 encoder, offset + cur_offset, depth
13957 )?;
13958
13959 _prev_end_offset = cur_offset + envelope_size;
13960
13961 Ok(())
13962 }
13963 }
13964
13965 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeService {
13966 #[inline(always)]
13967 fn new_empty() -> Self {
13968 Self::default()
13969 }
13970
13971 unsafe fn decode(
13972 &mut self,
13973 decoder: &mut fidl::encoding::Decoder<'_, D>,
13974 offset: usize,
13975 mut depth: fidl::encoding::Depth,
13976 ) -> fidl::Result<()> {
13977 decoder.debug_check_bounds::<Self>(offset);
13978 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13979 None => return Err(fidl::Error::NotNullable),
13980 Some(len) => len,
13981 };
13982 if len == 0 {
13984 return Ok(());
13985 };
13986 depth.increment()?;
13987 let envelope_size = 8;
13988 let bytes_len = len * envelope_size;
13989 let offset = decoder.out_of_line_offset(bytes_len)?;
13990 let mut _next_ordinal_to_read = 0;
13992 let mut next_offset = offset;
13993 let end_offset = offset + bytes_len;
13994 _next_ordinal_to_read += 1;
13995 if next_offset >= end_offset {
13996 return Ok(());
13997 }
13998
13999 while _next_ordinal_to_read < 1 {
14001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14002 _next_ordinal_to_read += 1;
14003 next_offset += envelope_size;
14004 }
14005
14006 let next_out_of_line = decoder.next_out_of_line();
14007 let handles_before = decoder.remaining_handles();
14008 if let Some((inlined, num_bytes, num_handles)) =
14009 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14010 {
14011 let member_inline_size =
14012 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14013 if inlined != (member_inline_size <= 4) {
14014 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14015 }
14016 let inner_offset;
14017 let mut inner_depth = depth.clone();
14018 if inlined {
14019 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14020 inner_offset = next_offset;
14021 } else {
14022 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14023 inner_depth.increment()?;
14024 }
14025 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14026 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14027 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14028 {
14029 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14030 }
14031 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14032 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14033 }
14034 }
14035
14036 next_offset += envelope_size;
14037 _next_ordinal_to_read += 1;
14038 if next_offset >= end_offset {
14039 return Ok(());
14040 }
14041
14042 while _next_ordinal_to_read < 2 {
14044 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14045 _next_ordinal_to_read += 1;
14046 next_offset += envelope_size;
14047 }
14048
14049 let next_out_of_line = decoder.next_out_of_line();
14050 let handles_before = decoder.remaining_handles();
14051 if let Some((inlined, num_bytes, num_handles)) =
14052 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14053 {
14054 let member_inline_size =
14055 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14056 decoder.context,
14057 );
14058 if inlined != (member_inline_size <= 4) {
14059 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14060 }
14061 let inner_offset;
14062 let mut inner_depth = depth.clone();
14063 if inlined {
14064 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14065 inner_offset = next_offset;
14066 } else {
14067 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14068 inner_depth.increment()?;
14069 }
14070 let val_ref = self
14071 .source_name
14072 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14073 fidl::decode!(
14074 fidl::encoding::BoundedString<100>,
14075 D,
14076 val_ref,
14077 decoder,
14078 inner_offset,
14079 inner_depth
14080 )?;
14081 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14082 {
14083 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14084 }
14085 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14086 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14087 }
14088 }
14089
14090 next_offset += envelope_size;
14091 _next_ordinal_to_read += 1;
14092 if next_offset >= end_offset {
14093 return Ok(());
14094 }
14095
14096 while _next_ordinal_to_read < 3 {
14098 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14099 _next_ordinal_to_read += 1;
14100 next_offset += envelope_size;
14101 }
14102
14103 let next_out_of_line = decoder.next_out_of_line();
14104 let handles_before = decoder.remaining_handles();
14105 if let Some((inlined, num_bytes, num_handles)) =
14106 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14107 {
14108 let member_inline_size =
14109 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14110 if inlined != (member_inline_size <= 4) {
14111 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14112 }
14113 let inner_offset;
14114 let mut inner_depth = depth.clone();
14115 if inlined {
14116 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14117 inner_offset = next_offset;
14118 } else {
14119 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14120 inner_depth.increment()?;
14121 }
14122 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14123 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14124 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14125 {
14126 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14127 }
14128 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14129 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14130 }
14131 }
14132
14133 next_offset += envelope_size;
14134 _next_ordinal_to_read += 1;
14135 if next_offset >= end_offset {
14136 return Ok(());
14137 }
14138
14139 while _next_ordinal_to_read < 4 {
14141 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14142 _next_ordinal_to_read += 1;
14143 next_offset += envelope_size;
14144 }
14145
14146 let next_out_of_line = decoder.next_out_of_line();
14147 let handles_before = decoder.remaining_handles();
14148 if let Some((inlined, num_bytes, num_handles)) =
14149 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14150 {
14151 let member_inline_size =
14152 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14153 decoder.context,
14154 );
14155 if inlined != (member_inline_size <= 4) {
14156 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14157 }
14158 let inner_offset;
14159 let mut inner_depth = depth.clone();
14160 if inlined {
14161 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14162 inner_offset = next_offset;
14163 } else {
14164 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14165 inner_depth.increment()?;
14166 }
14167 let val_ref = self
14168 .target_name
14169 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14170 fidl::decode!(
14171 fidl::encoding::BoundedString<100>,
14172 D,
14173 val_ref,
14174 decoder,
14175 inner_offset,
14176 inner_depth
14177 )?;
14178 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14179 {
14180 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14181 }
14182 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14183 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14184 }
14185 }
14186
14187 next_offset += envelope_size;
14188 _next_ordinal_to_read += 1;
14189 if next_offset >= end_offset {
14190 return Ok(());
14191 }
14192
14193 while _next_ordinal_to_read < 5 {
14195 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14196 _next_ordinal_to_read += 1;
14197 next_offset += envelope_size;
14198 }
14199
14200 let next_out_of_line = decoder.next_out_of_line();
14201 let handles_before = decoder.remaining_handles();
14202 if let Some((inlined, num_bytes, num_handles)) =
14203 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14204 {
14205 let member_inline_size =
14206 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14207 if inlined != (member_inline_size <= 4) {
14208 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14209 }
14210 let inner_offset;
14211 let mut inner_depth = depth.clone();
14212 if inlined {
14213 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14214 inner_offset = next_offset;
14215 } else {
14216 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14217 inner_depth.increment()?;
14218 }
14219 let val_ref =
14220 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
14221 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
14222 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14223 {
14224 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14225 }
14226 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14227 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14228 }
14229 }
14230
14231 next_offset += envelope_size;
14232 _next_ordinal_to_read += 1;
14233 if next_offset >= end_offset {
14234 return Ok(());
14235 }
14236
14237 while _next_ordinal_to_read < 6 {
14239 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14240 _next_ordinal_to_read += 1;
14241 next_offset += envelope_size;
14242 }
14243
14244 let next_out_of_line = decoder.next_out_of_line();
14245 let handles_before = decoder.remaining_handles();
14246 if let Some((inlined, num_bytes, num_handles)) =
14247 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14248 {
14249 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14250 if inlined != (member_inline_size <= 4) {
14251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14252 }
14253 let inner_offset;
14254 let mut inner_depth = depth.clone();
14255 if inlined {
14256 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14257 inner_offset = next_offset;
14258 } else {
14259 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14260 inner_depth.increment()?;
14261 }
14262 let val_ref = self.source_dictionary.get_or_insert_with(|| {
14263 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
14264 });
14265 fidl::decode!(
14266 fidl::encoding::BoundedString<1024>,
14267 D,
14268 val_ref,
14269 decoder,
14270 inner_offset,
14271 inner_depth
14272 )?;
14273 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14274 {
14275 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14276 }
14277 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14278 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14279 }
14280 }
14281
14282 next_offset += envelope_size;
14283
14284 while next_offset < end_offset {
14286 _next_ordinal_to_read += 1;
14287 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14288 next_offset += envelope_size;
14289 }
14290
14291 Ok(())
14292 }
14293 }
14294
14295 impl OfferConfiguration {
14296 #[inline(always)]
14297 fn max_ordinal_present(&self) -> u64 {
14298 if let Some(_) = self.source_dictionary {
14299 return 6;
14300 }
14301 if let Some(_) = self.availability {
14302 return 5;
14303 }
14304 if let Some(_) = self.target_name {
14305 return 4;
14306 }
14307 if let Some(_) = self.target {
14308 return 3;
14309 }
14310 if let Some(_) = self.source_name {
14311 return 2;
14312 }
14313 if let Some(_) = self.source {
14314 return 1;
14315 }
14316 0
14317 }
14318 }
14319
14320 impl fidl::encoding::ValueTypeMarker for OfferConfiguration {
14321 type Borrowed<'a> = &'a Self;
14322 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14323 value
14324 }
14325 }
14326
14327 unsafe impl fidl::encoding::TypeMarker for OfferConfiguration {
14328 type Owned = Self;
14329
14330 #[inline(always)]
14331 fn inline_align(_context: fidl::encoding::Context) -> usize {
14332 8
14333 }
14334
14335 #[inline(always)]
14336 fn inline_size(_context: fidl::encoding::Context) -> usize {
14337 16
14338 }
14339 }
14340
14341 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferConfiguration, D>
14342 for &OfferConfiguration
14343 {
14344 unsafe fn encode(
14345 self,
14346 encoder: &mut fidl::encoding::Encoder<'_, D>,
14347 offset: usize,
14348 mut depth: fidl::encoding::Depth,
14349 ) -> fidl::Result<()> {
14350 encoder.debug_check_bounds::<OfferConfiguration>(offset);
14351 let max_ordinal: u64 = self.max_ordinal_present();
14353 encoder.write_num(max_ordinal, offset);
14354 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14355 if max_ordinal == 0 {
14357 return Ok(());
14358 }
14359 depth.increment()?;
14360 let envelope_size = 8;
14361 let bytes_len = max_ordinal as usize * envelope_size;
14362 #[allow(unused_variables)]
14363 let offset = encoder.out_of_line_offset(bytes_len);
14364 let mut _prev_end_offset: usize = 0;
14365 if 1 > max_ordinal {
14366 return Ok(());
14367 }
14368
14369 let cur_offset: usize = (1 - 1) * envelope_size;
14372
14373 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14375
14376 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14381 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14382 encoder,
14383 offset + cur_offset,
14384 depth,
14385 )?;
14386
14387 _prev_end_offset = cur_offset + envelope_size;
14388 if 2 > max_ordinal {
14389 return Ok(());
14390 }
14391
14392 let cur_offset: usize = (2 - 1) * envelope_size;
14395
14396 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14398
14399 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14404 self.source_name.as_ref().map(
14405 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14406 ),
14407 encoder,
14408 offset + cur_offset,
14409 depth,
14410 )?;
14411
14412 _prev_end_offset = cur_offset + envelope_size;
14413 if 3 > max_ordinal {
14414 return Ok(());
14415 }
14416
14417 let cur_offset: usize = (3 - 1) * envelope_size;
14420
14421 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14423
14424 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14429 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14430 encoder,
14431 offset + cur_offset,
14432 depth,
14433 )?;
14434
14435 _prev_end_offset = cur_offset + envelope_size;
14436 if 4 > max_ordinal {
14437 return Ok(());
14438 }
14439
14440 let cur_offset: usize = (4 - 1) * envelope_size;
14443
14444 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14446
14447 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14452 self.target_name.as_ref().map(
14453 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14454 ),
14455 encoder,
14456 offset + cur_offset,
14457 depth,
14458 )?;
14459
14460 _prev_end_offset = cur_offset + envelope_size;
14461 if 5 > max_ordinal {
14462 return Ok(());
14463 }
14464
14465 let cur_offset: usize = (5 - 1) * envelope_size;
14468
14469 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14471
14472 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
14477 self.availability
14478 .as_ref()
14479 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
14480 encoder,
14481 offset + cur_offset,
14482 depth,
14483 )?;
14484
14485 _prev_end_offset = cur_offset + envelope_size;
14486 if 6 > max_ordinal {
14487 return Ok(());
14488 }
14489
14490 let cur_offset: usize = (6 - 1) * envelope_size;
14493
14494 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14496
14497 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
14502 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
14503 encoder, offset + cur_offset, depth
14504 )?;
14505
14506 _prev_end_offset = cur_offset + envelope_size;
14507
14508 Ok(())
14509 }
14510 }
14511
14512 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferConfiguration {
14513 #[inline(always)]
14514 fn new_empty() -> Self {
14515 Self::default()
14516 }
14517
14518 unsafe fn decode(
14519 &mut self,
14520 decoder: &mut fidl::encoding::Decoder<'_, D>,
14521 offset: usize,
14522 mut depth: fidl::encoding::Depth,
14523 ) -> fidl::Result<()> {
14524 decoder.debug_check_bounds::<Self>(offset);
14525 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14526 None => return Err(fidl::Error::NotNullable),
14527 Some(len) => len,
14528 };
14529 if len == 0 {
14531 return Ok(());
14532 };
14533 depth.increment()?;
14534 let envelope_size = 8;
14535 let bytes_len = len * envelope_size;
14536 let offset = decoder.out_of_line_offset(bytes_len)?;
14537 let mut _next_ordinal_to_read = 0;
14539 let mut next_offset = offset;
14540 let end_offset = offset + bytes_len;
14541 _next_ordinal_to_read += 1;
14542 if next_offset >= end_offset {
14543 return Ok(());
14544 }
14545
14546 while _next_ordinal_to_read < 1 {
14548 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14549 _next_ordinal_to_read += 1;
14550 next_offset += envelope_size;
14551 }
14552
14553 let next_out_of_line = decoder.next_out_of_line();
14554 let handles_before = decoder.remaining_handles();
14555 if let Some((inlined, num_bytes, num_handles)) =
14556 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14557 {
14558 let member_inline_size =
14559 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14560 if inlined != (member_inline_size <= 4) {
14561 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14562 }
14563 let inner_offset;
14564 let mut inner_depth = depth.clone();
14565 if inlined {
14566 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14567 inner_offset = next_offset;
14568 } else {
14569 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14570 inner_depth.increment()?;
14571 }
14572 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14573 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14574 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14575 {
14576 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14577 }
14578 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14579 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14580 }
14581 }
14582
14583 next_offset += envelope_size;
14584 _next_ordinal_to_read += 1;
14585 if next_offset >= end_offset {
14586 return Ok(());
14587 }
14588
14589 while _next_ordinal_to_read < 2 {
14591 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14592 _next_ordinal_to_read += 1;
14593 next_offset += envelope_size;
14594 }
14595
14596 let next_out_of_line = decoder.next_out_of_line();
14597 let handles_before = decoder.remaining_handles();
14598 if let Some((inlined, num_bytes, num_handles)) =
14599 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14600 {
14601 let member_inline_size =
14602 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14603 decoder.context,
14604 );
14605 if inlined != (member_inline_size <= 4) {
14606 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14607 }
14608 let inner_offset;
14609 let mut inner_depth = depth.clone();
14610 if inlined {
14611 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14612 inner_offset = next_offset;
14613 } else {
14614 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14615 inner_depth.increment()?;
14616 }
14617 let val_ref = self
14618 .source_name
14619 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14620 fidl::decode!(
14621 fidl::encoding::BoundedString<100>,
14622 D,
14623 val_ref,
14624 decoder,
14625 inner_offset,
14626 inner_depth
14627 )?;
14628 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14629 {
14630 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14631 }
14632 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14633 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14634 }
14635 }
14636
14637 next_offset += envelope_size;
14638 _next_ordinal_to_read += 1;
14639 if next_offset >= end_offset {
14640 return Ok(());
14641 }
14642
14643 while _next_ordinal_to_read < 3 {
14645 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14646 _next_ordinal_to_read += 1;
14647 next_offset += envelope_size;
14648 }
14649
14650 let next_out_of_line = decoder.next_out_of_line();
14651 let handles_before = decoder.remaining_handles();
14652 if let Some((inlined, num_bytes, num_handles)) =
14653 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14654 {
14655 let member_inline_size =
14656 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14657 if inlined != (member_inline_size <= 4) {
14658 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14659 }
14660 let inner_offset;
14661 let mut inner_depth = depth.clone();
14662 if inlined {
14663 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14664 inner_offset = next_offset;
14665 } else {
14666 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14667 inner_depth.increment()?;
14668 }
14669 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14670 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14671 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14672 {
14673 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14674 }
14675 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14676 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14677 }
14678 }
14679
14680 next_offset += envelope_size;
14681 _next_ordinal_to_read += 1;
14682 if next_offset >= end_offset {
14683 return Ok(());
14684 }
14685
14686 while _next_ordinal_to_read < 4 {
14688 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14689 _next_ordinal_to_read += 1;
14690 next_offset += envelope_size;
14691 }
14692
14693 let next_out_of_line = decoder.next_out_of_line();
14694 let handles_before = decoder.remaining_handles();
14695 if let Some((inlined, num_bytes, num_handles)) =
14696 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14697 {
14698 let member_inline_size =
14699 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14700 decoder.context,
14701 );
14702 if inlined != (member_inline_size <= 4) {
14703 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14704 }
14705 let inner_offset;
14706 let mut inner_depth = depth.clone();
14707 if inlined {
14708 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14709 inner_offset = next_offset;
14710 } else {
14711 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14712 inner_depth.increment()?;
14713 }
14714 let val_ref = self
14715 .target_name
14716 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14717 fidl::decode!(
14718 fidl::encoding::BoundedString<100>,
14719 D,
14720 val_ref,
14721 decoder,
14722 inner_offset,
14723 inner_depth
14724 )?;
14725 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14726 {
14727 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14728 }
14729 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14730 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14731 }
14732 }
14733
14734 next_offset += envelope_size;
14735 _next_ordinal_to_read += 1;
14736 if next_offset >= end_offset {
14737 return Ok(());
14738 }
14739
14740 while _next_ordinal_to_read < 5 {
14742 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14743 _next_ordinal_to_read += 1;
14744 next_offset += envelope_size;
14745 }
14746
14747 let next_out_of_line = decoder.next_out_of_line();
14748 let handles_before = decoder.remaining_handles();
14749 if let Some((inlined, num_bytes, num_handles)) =
14750 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14751 {
14752 let member_inline_size =
14753 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14754 if inlined != (member_inline_size <= 4) {
14755 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14756 }
14757 let inner_offset;
14758 let mut inner_depth = depth.clone();
14759 if inlined {
14760 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14761 inner_offset = next_offset;
14762 } else {
14763 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14764 inner_depth.increment()?;
14765 }
14766 let val_ref =
14767 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
14768 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
14769 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14770 {
14771 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14772 }
14773 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14774 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14775 }
14776 }
14777
14778 next_offset += envelope_size;
14779 _next_ordinal_to_read += 1;
14780 if next_offset >= end_offset {
14781 return Ok(());
14782 }
14783
14784 while _next_ordinal_to_read < 6 {
14786 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14787 _next_ordinal_to_read += 1;
14788 next_offset += envelope_size;
14789 }
14790
14791 let next_out_of_line = decoder.next_out_of_line();
14792 let handles_before = decoder.remaining_handles();
14793 if let Some((inlined, num_bytes, num_handles)) =
14794 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14795 {
14796 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14797 if inlined != (member_inline_size <= 4) {
14798 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14799 }
14800 let inner_offset;
14801 let mut inner_depth = depth.clone();
14802 if inlined {
14803 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14804 inner_offset = next_offset;
14805 } else {
14806 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14807 inner_depth.increment()?;
14808 }
14809 let val_ref = self.source_dictionary.get_or_insert_with(|| {
14810 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
14811 });
14812 fidl::decode!(
14813 fidl::encoding::BoundedString<1024>,
14814 D,
14815 val_ref,
14816 decoder,
14817 inner_offset,
14818 inner_depth
14819 )?;
14820 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14821 {
14822 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14823 }
14824 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14825 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14826 }
14827 }
14828
14829 next_offset += envelope_size;
14830
14831 while next_offset < end_offset {
14833 _next_ordinal_to_read += 1;
14834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14835 next_offset += envelope_size;
14836 }
14837
14838 Ok(())
14839 }
14840 }
14841
14842 impl OfferDictionary {
14843 #[inline(always)]
14844 fn max_ordinal_present(&self) -> u64 {
14845 if let Some(_) = self.source_dictionary {
14846 return 7;
14847 }
14848 if let Some(_) = self.availability {
14849 return 6;
14850 }
14851 if let Some(_) = self.dependency_type {
14852 return 5;
14853 }
14854 if let Some(_) = self.target_name {
14855 return 4;
14856 }
14857 if let Some(_) = self.target {
14858 return 3;
14859 }
14860 if let Some(_) = self.source_name {
14861 return 2;
14862 }
14863 if let Some(_) = self.source {
14864 return 1;
14865 }
14866 0
14867 }
14868 }
14869
14870 impl fidl::encoding::ValueTypeMarker for OfferDictionary {
14871 type Borrowed<'a> = &'a Self;
14872 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14873 value
14874 }
14875 }
14876
14877 unsafe impl fidl::encoding::TypeMarker for OfferDictionary {
14878 type Owned = Self;
14879
14880 #[inline(always)]
14881 fn inline_align(_context: fidl::encoding::Context) -> usize {
14882 8
14883 }
14884
14885 #[inline(always)]
14886 fn inline_size(_context: fidl::encoding::Context) -> usize {
14887 16
14888 }
14889 }
14890
14891 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferDictionary, D>
14892 for &OfferDictionary
14893 {
14894 unsafe fn encode(
14895 self,
14896 encoder: &mut fidl::encoding::Encoder<'_, D>,
14897 offset: usize,
14898 mut depth: fidl::encoding::Depth,
14899 ) -> fidl::Result<()> {
14900 encoder.debug_check_bounds::<OfferDictionary>(offset);
14901 let max_ordinal: u64 = self.max_ordinal_present();
14903 encoder.write_num(max_ordinal, offset);
14904 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14905 if max_ordinal == 0 {
14907 return Ok(());
14908 }
14909 depth.increment()?;
14910 let envelope_size = 8;
14911 let bytes_len = max_ordinal as usize * envelope_size;
14912 #[allow(unused_variables)]
14913 let offset = encoder.out_of_line_offset(bytes_len);
14914 let mut _prev_end_offset: usize = 0;
14915 if 1 > max_ordinal {
14916 return Ok(());
14917 }
14918
14919 let cur_offset: usize = (1 - 1) * envelope_size;
14922
14923 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14925
14926 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14931 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14932 encoder,
14933 offset + cur_offset,
14934 depth,
14935 )?;
14936
14937 _prev_end_offset = cur_offset + envelope_size;
14938 if 2 > max_ordinal {
14939 return Ok(());
14940 }
14941
14942 let cur_offset: usize = (2 - 1) * envelope_size;
14945
14946 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14948
14949 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14954 self.source_name.as_ref().map(
14955 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14956 ),
14957 encoder,
14958 offset + cur_offset,
14959 depth,
14960 )?;
14961
14962 _prev_end_offset = cur_offset + envelope_size;
14963 if 3 > max_ordinal {
14964 return Ok(());
14965 }
14966
14967 let cur_offset: usize = (3 - 1) * envelope_size;
14970
14971 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14973
14974 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14979 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14980 encoder,
14981 offset + cur_offset,
14982 depth,
14983 )?;
14984
14985 _prev_end_offset = cur_offset + envelope_size;
14986 if 4 > max_ordinal {
14987 return Ok(());
14988 }
14989
14990 let cur_offset: usize = (4 - 1) * envelope_size;
14993
14994 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14996
14997 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
15002 self.target_name.as_ref().map(
15003 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
15004 ),
15005 encoder,
15006 offset + cur_offset,
15007 depth,
15008 )?;
15009
15010 _prev_end_offset = cur_offset + envelope_size;
15011 if 5 > max_ordinal {
15012 return Ok(());
15013 }
15014
15015 let cur_offset: usize = (5 - 1) * envelope_size;
15018
15019 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15021
15022 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
15027 self.dependency_type
15028 .as_ref()
15029 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
15030 encoder,
15031 offset + cur_offset,
15032 depth,
15033 )?;
15034
15035 _prev_end_offset = cur_offset + envelope_size;
15036 if 6 > max_ordinal {
15037 return Ok(());
15038 }
15039
15040 let cur_offset: usize = (6 - 1) * envelope_size;
15043
15044 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15046
15047 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
15052 self.availability
15053 .as_ref()
15054 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
15055 encoder,
15056 offset + cur_offset,
15057 depth,
15058 )?;
15059
15060 _prev_end_offset = cur_offset + envelope_size;
15061 if 7 > max_ordinal {
15062 return Ok(());
15063 }
15064
15065 let cur_offset: usize = (7 - 1) * envelope_size;
15068
15069 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15071
15072 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
15077 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
15078 encoder, offset + cur_offset, depth
15079 )?;
15080
15081 _prev_end_offset = cur_offset + envelope_size;
15082
15083 Ok(())
15084 }
15085 }
15086
15087 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferDictionary {
15088 #[inline(always)]
15089 fn new_empty() -> Self {
15090 Self::default()
15091 }
15092
15093 unsafe fn decode(
15094 &mut self,
15095 decoder: &mut fidl::encoding::Decoder<'_, D>,
15096 offset: usize,
15097 mut depth: fidl::encoding::Depth,
15098 ) -> fidl::Result<()> {
15099 decoder.debug_check_bounds::<Self>(offset);
15100 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15101 None => return Err(fidl::Error::NotNullable),
15102 Some(len) => len,
15103 };
15104 if len == 0 {
15106 return Ok(());
15107 };
15108 depth.increment()?;
15109 let envelope_size = 8;
15110 let bytes_len = len * envelope_size;
15111 let offset = decoder.out_of_line_offset(bytes_len)?;
15112 let mut _next_ordinal_to_read = 0;
15114 let mut next_offset = offset;
15115 let end_offset = offset + bytes_len;
15116 _next_ordinal_to_read += 1;
15117 if next_offset >= end_offset {
15118 return Ok(());
15119 }
15120
15121 while _next_ordinal_to_read < 1 {
15123 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15124 _next_ordinal_to_read += 1;
15125 next_offset += envelope_size;
15126 }
15127
15128 let next_out_of_line = decoder.next_out_of_line();
15129 let handles_before = decoder.remaining_handles();
15130 if let Some((inlined, num_bytes, num_handles)) =
15131 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15132 {
15133 let member_inline_size =
15134 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15135 if inlined != (member_inline_size <= 4) {
15136 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15137 }
15138 let inner_offset;
15139 let mut inner_depth = depth.clone();
15140 if inlined {
15141 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15142 inner_offset = next_offset;
15143 } else {
15144 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15145 inner_depth.increment()?;
15146 }
15147 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15148 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15149 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15150 {
15151 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15152 }
15153 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15154 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15155 }
15156 }
15157
15158 next_offset += envelope_size;
15159 _next_ordinal_to_read += 1;
15160 if next_offset >= end_offset {
15161 return Ok(());
15162 }
15163
15164 while _next_ordinal_to_read < 2 {
15166 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15167 _next_ordinal_to_read += 1;
15168 next_offset += envelope_size;
15169 }
15170
15171 let next_out_of_line = decoder.next_out_of_line();
15172 let handles_before = decoder.remaining_handles();
15173 if let Some((inlined, num_bytes, num_handles)) =
15174 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15175 {
15176 let member_inline_size =
15177 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15178 decoder.context,
15179 );
15180 if inlined != (member_inline_size <= 4) {
15181 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15182 }
15183 let inner_offset;
15184 let mut inner_depth = depth.clone();
15185 if inlined {
15186 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15187 inner_offset = next_offset;
15188 } else {
15189 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15190 inner_depth.increment()?;
15191 }
15192 let val_ref = self
15193 .source_name
15194 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15195 fidl::decode!(
15196 fidl::encoding::BoundedString<100>,
15197 D,
15198 val_ref,
15199 decoder,
15200 inner_offset,
15201 inner_depth
15202 )?;
15203 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15204 {
15205 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15206 }
15207 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15208 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15209 }
15210 }
15211
15212 next_offset += envelope_size;
15213 _next_ordinal_to_read += 1;
15214 if next_offset >= end_offset {
15215 return Ok(());
15216 }
15217
15218 while _next_ordinal_to_read < 3 {
15220 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15221 _next_ordinal_to_read += 1;
15222 next_offset += envelope_size;
15223 }
15224
15225 let next_out_of_line = decoder.next_out_of_line();
15226 let handles_before = decoder.remaining_handles();
15227 if let Some((inlined, num_bytes, num_handles)) =
15228 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15229 {
15230 let member_inline_size =
15231 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15232 if inlined != (member_inline_size <= 4) {
15233 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15234 }
15235 let inner_offset;
15236 let mut inner_depth = depth.clone();
15237 if inlined {
15238 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15239 inner_offset = next_offset;
15240 } else {
15241 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15242 inner_depth.increment()?;
15243 }
15244 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15245 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15246 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15247 {
15248 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15249 }
15250 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15251 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15252 }
15253 }
15254
15255 next_offset += envelope_size;
15256 _next_ordinal_to_read += 1;
15257 if next_offset >= end_offset {
15258 return Ok(());
15259 }
15260
15261 while _next_ordinal_to_read < 4 {
15263 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15264 _next_ordinal_to_read += 1;
15265 next_offset += envelope_size;
15266 }
15267
15268 let next_out_of_line = decoder.next_out_of_line();
15269 let handles_before = decoder.remaining_handles();
15270 if let Some((inlined, num_bytes, num_handles)) =
15271 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15272 {
15273 let member_inline_size =
15274 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15275 decoder.context,
15276 );
15277 if inlined != (member_inline_size <= 4) {
15278 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15279 }
15280 let inner_offset;
15281 let mut inner_depth = depth.clone();
15282 if inlined {
15283 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15284 inner_offset = next_offset;
15285 } else {
15286 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15287 inner_depth.increment()?;
15288 }
15289 let val_ref = self
15290 .target_name
15291 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15292 fidl::decode!(
15293 fidl::encoding::BoundedString<100>,
15294 D,
15295 val_ref,
15296 decoder,
15297 inner_offset,
15298 inner_depth
15299 )?;
15300 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15301 {
15302 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15303 }
15304 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15305 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15306 }
15307 }
15308
15309 next_offset += envelope_size;
15310 _next_ordinal_to_read += 1;
15311 if next_offset >= end_offset {
15312 return Ok(());
15313 }
15314
15315 while _next_ordinal_to_read < 5 {
15317 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15318 _next_ordinal_to_read += 1;
15319 next_offset += envelope_size;
15320 }
15321
15322 let next_out_of_line = decoder.next_out_of_line();
15323 let handles_before = decoder.remaining_handles();
15324 if let Some((inlined, num_bytes, num_handles)) =
15325 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15326 {
15327 let member_inline_size =
15328 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15329 if inlined != (member_inline_size <= 4) {
15330 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15331 }
15332 let inner_offset;
15333 let mut inner_depth = depth.clone();
15334 if inlined {
15335 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15336 inner_offset = next_offset;
15337 } else {
15338 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15339 inner_depth.increment()?;
15340 }
15341 let val_ref =
15342 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
15343 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
15344 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15345 {
15346 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15347 }
15348 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15349 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15350 }
15351 }
15352
15353 next_offset += envelope_size;
15354 _next_ordinal_to_read += 1;
15355 if next_offset >= end_offset {
15356 return Ok(());
15357 }
15358
15359 while _next_ordinal_to_read < 6 {
15361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15362 _next_ordinal_to_read += 1;
15363 next_offset += envelope_size;
15364 }
15365
15366 let next_out_of_line = decoder.next_out_of_line();
15367 let handles_before = decoder.remaining_handles();
15368 if let Some((inlined, num_bytes, num_handles)) =
15369 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15370 {
15371 let member_inline_size =
15372 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15373 if inlined != (member_inline_size <= 4) {
15374 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15375 }
15376 let inner_offset;
15377 let mut inner_depth = depth.clone();
15378 if inlined {
15379 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15380 inner_offset = next_offset;
15381 } else {
15382 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15383 inner_depth.increment()?;
15384 }
15385 let val_ref =
15386 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
15387 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
15388 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15389 {
15390 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15391 }
15392 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15393 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15394 }
15395 }
15396
15397 next_offset += envelope_size;
15398 _next_ordinal_to_read += 1;
15399 if next_offset >= end_offset {
15400 return Ok(());
15401 }
15402
15403 while _next_ordinal_to_read < 7 {
15405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15406 _next_ordinal_to_read += 1;
15407 next_offset += envelope_size;
15408 }
15409
15410 let next_out_of_line = decoder.next_out_of_line();
15411 let handles_before = decoder.remaining_handles();
15412 if let Some((inlined, num_bytes, num_handles)) =
15413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15414 {
15415 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15416 if inlined != (member_inline_size <= 4) {
15417 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15418 }
15419 let inner_offset;
15420 let mut inner_depth = depth.clone();
15421 if inlined {
15422 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15423 inner_offset = next_offset;
15424 } else {
15425 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15426 inner_depth.increment()?;
15427 }
15428 let val_ref = self.source_dictionary.get_or_insert_with(|| {
15429 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
15430 });
15431 fidl::decode!(
15432 fidl::encoding::BoundedString<1024>,
15433 D,
15434 val_ref,
15435 decoder,
15436 inner_offset,
15437 inner_depth
15438 )?;
15439 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15440 {
15441 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15442 }
15443 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15444 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15445 }
15446 }
15447
15448 next_offset += envelope_size;
15449
15450 while next_offset < end_offset {
15452 _next_ordinal_to_read += 1;
15453 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15454 next_offset += envelope_size;
15455 }
15456
15457 Ok(())
15458 }
15459 }
15460
15461 impl OfferDirectory {
15462 #[inline(always)]
15463 fn max_ordinal_present(&self) -> u64 {
15464 if let Some(_) = self.source_dictionary {
15465 return 9;
15466 }
15467 if let Some(_) = self.availability {
15468 return 8;
15469 }
15470 if let Some(_) = self.dependency_type {
15471 return 7;
15472 }
15473 if let Some(_) = self.subdir {
15474 return 6;
15475 }
15476 if let Some(_) = self.rights {
15477 return 5;
15478 }
15479 if let Some(_) = self.target_name {
15480 return 4;
15481 }
15482 if let Some(_) = self.target {
15483 return 3;
15484 }
15485 if let Some(_) = self.source_name {
15486 return 2;
15487 }
15488 if let Some(_) = self.source {
15489 return 1;
15490 }
15491 0
15492 }
15493 }
15494
15495 impl fidl::encoding::ValueTypeMarker for OfferDirectory {
15496 type Borrowed<'a> = &'a Self;
15497 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15498 value
15499 }
15500 }
15501
15502 unsafe impl fidl::encoding::TypeMarker for OfferDirectory {
15503 type Owned = Self;
15504
15505 #[inline(always)]
15506 fn inline_align(_context: fidl::encoding::Context) -> usize {
15507 8
15508 }
15509
15510 #[inline(always)]
15511 fn inline_size(_context: fidl::encoding::Context) -> usize {
15512 16
15513 }
15514 }
15515
15516 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferDirectory, D>
15517 for &OfferDirectory
15518 {
15519 unsafe fn encode(
15520 self,
15521 encoder: &mut fidl::encoding::Encoder<'_, D>,
15522 offset: usize,
15523 mut depth: fidl::encoding::Depth,
15524 ) -> fidl::Result<()> {
15525 encoder.debug_check_bounds::<OfferDirectory>(offset);
15526 let max_ordinal: u64 = self.max_ordinal_present();
15528 encoder.write_num(max_ordinal, offset);
15529 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15530 if max_ordinal == 0 {
15532 return Ok(());
15533 }
15534 depth.increment()?;
15535 let envelope_size = 8;
15536 let bytes_len = max_ordinal as usize * envelope_size;
15537 #[allow(unused_variables)]
15538 let offset = encoder.out_of_line_offset(bytes_len);
15539 let mut _prev_end_offset: usize = 0;
15540 if 1 > max_ordinal {
15541 return Ok(());
15542 }
15543
15544 let cur_offset: usize = (1 - 1) * envelope_size;
15547
15548 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15550
15551 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
15556 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
15557 encoder,
15558 offset + cur_offset,
15559 depth,
15560 )?;
15561
15562 _prev_end_offset = cur_offset + envelope_size;
15563 if 2 > max_ordinal {
15564 return Ok(());
15565 }
15566
15567 let cur_offset: usize = (2 - 1) * envelope_size;
15570
15571 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15573
15574 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
15579 self.source_name.as_ref().map(
15580 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
15581 ),
15582 encoder,
15583 offset + cur_offset,
15584 depth,
15585 )?;
15586
15587 _prev_end_offset = cur_offset + envelope_size;
15588 if 3 > max_ordinal {
15589 return Ok(());
15590 }
15591
15592 let cur_offset: usize = (3 - 1) * envelope_size;
15595
15596 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15598
15599 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
15604 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
15605 encoder,
15606 offset + cur_offset,
15607 depth,
15608 )?;
15609
15610 _prev_end_offset = cur_offset + envelope_size;
15611 if 4 > max_ordinal {
15612 return Ok(());
15613 }
15614
15615 let cur_offset: usize = (4 - 1) * envelope_size;
15618
15619 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15621
15622 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
15627 self.target_name.as_ref().map(
15628 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
15629 ),
15630 encoder,
15631 offset + cur_offset,
15632 depth,
15633 )?;
15634
15635 _prev_end_offset = cur_offset + envelope_size;
15636 if 5 > max_ordinal {
15637 return Ok(());
15638 }
15639
15640 let cur_offset: usize = (5 - 1) * envelope_size;
15643
15644 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15646
15647 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io__common::Operations, D>(
15652 self.rights.as_ref().map(<fidl_fuchsia_io__common::Operations as fidl::encoding::ValueTypeMarker>::borrow),
15653 encoder, offset + cur_offset, depth
15654 )?;
15655
15656 _prev_end_offset = cur_offset + envelope_size;
15657 if 6 > max_ordinal {
15658 return Ok(());
15659 }
15660
15661 let cur_offset: usize = (6 - 1) * envelope_size;
15664
15665 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15667
15668 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
15673 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
15674 encoder, offset + cur_offset, depth
15675 )?;
15676
15677 _prev_end_offset = cur_offset + envelope_size;
15678 if 7 > max_ordinal {
15679 return Ok(());
15680 }
15681
15682 let cur_offset: usize = (7 - 1) * envelope_size;
15685
15686 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15688
15689 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
15694 self.dependency_type
15695 .as_ref()
15696 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
15697 encoder,
15698 offset + cur_offset,
15699 depth,
15700 )?;
15701
15702 _prev_end_offset = cur_offset + envelope_size;
15703 if 8 > max_ordinal {
15704 return Ok(());
15705 }
15706
15707 let cur_offset: usize = (8 - 1) * envelope_size;
15710
15711 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15713
15714 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
15719 self.availability
15720 .as_ref()
15721 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
15722 encoder,
15723 offset + cur_offset,
15724 depth,
15725 )?;
15726
15727 _prev_end_offset = cur_offset + envelope_size;
15728 if 9 > max_ordinal {
15729 return Ok(());
15730 }
15731
15732 let cur_offset: usize = (9 - 1) * envelope_size;
15735
15736 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15738
15739 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
15744 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
15745 encoder, offset + cur_offset, depth
15746 )?;
15747
15748 _prev_end_offset = cur_offset + envelope_size;
15749
15750 Ok(())
15751 }
15752 }
15753
15754 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferDirectory {
15755 #[inline(always)]
15756 fn new_empty() -> Self {
15757 Self::default()
15758 }
15759
15760 unsafe fn decode(
15761 &mut self,
15762 decoder: &mut fidl::encoding::Decoder<'_, D>,
15763 offset: usize,
15764 mut depth: fidl::encoding::Depth,
15765 ) -> fidl::Result<()> {
15766 decoder.debug_check_bounds::<Self>(offset);
15767 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15768 None => return Err(fidl::Error::NotNullable),
15769 Some(len) => len,
15770 };
15771 if len == 0 {
15773 return Ok(());
15774 };
15775 depth.increment()?;
15776 let envelope_size = 8;
15777 let bytes_len = len * envelope_size;
15778 let offset = decoder.out_of_line_offset(bytes_len)?;
15779 let mut _next_ordinal_to_read = 0;
15781 let mut next_offset = offset;
15782 let end_offset = offset + bytes_len;
15783 _next_ordinal_to_read += 1;
15784 if next_offset >= end_offset {
15785 return Ok(());
15786 }
15787
15788 while _next_ordinal_to_read < 1 {
15790 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15791 _next_ordinal_to_read += 1;
15792 next_offset += envelope_size;
15793 }
15794
15795 let next_out_of_line = decoder.next_out_of_line();
15796 let handles_before = decoder.remaining_handles();
15797 if let Some((inlined, num_bytes, num_handles)) =
15798 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15799 {
15800 let member_inline_size =
15801 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15802 if inlined != (member_inline_size <= 4) {
15803 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15804 }
15805 let inner_offset;
15806 let mut inner_depth = depth.clone();
15807 if inlined {
15808 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15809 inner_offset = next_offset;
15810 } else {
15811 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15812 inner_depth.increment()?;
15813 }
15814 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15815 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15816 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15817 {
15818 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15819 }
15820 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15821 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15822 }
15823 }
15824
15825 next_offset += envelope_size;
15826 _next_ordinal_to_read += 1;
15827 if next_offset >= end_offset {
15828 return Ok(());
15829 }
15830
15831 while _next_ordinal_to_read < 2 {
15833 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15834 _next_ordinal_to_read += 1;
15835 next_offset += envelope_size;
15836 }
15837
15838 let next_out_of_line = decoder.next_out_of_line();
15839 let handles_before = decoder.remaining_handles();
15840 if let Some((inlined, num_bytes, num_handles)) =
15841 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15842 {
15843 let member_inline_size =
15844 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15845 decoder.context,
15846 );
15847 if inlined != (member_inline_size <= 4) {
15848 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15849 }
15850 let inner_offset;
15851 let mut inner_depth = depth.clone();
15852 if inlined {
15853 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15854 inner_offset = next_offset;
15855 } else {
15856 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15857 inner_depth.increment()?;
15858 }
15859 let val_ref = self
15860 .source_name
15861 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15862 fidl::decode!(
15863 fidl::encoding::BoundedString<100>,
15864 D,
15865 val_ref,
15866 decoder,
15867 inner_offset,
15868 inner_depth
15869 )?;
15870 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15871 {
15872 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15873 }
15874 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15875 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15876 }
15877 }
15878
15879 next_offset += envelope_size;
15880 _next_ordinal_to_read += 1;
15881 if next_offset >= end_offset {
15882 return Ok(());
15883 }
15884
15885 while _next_ordinal_to_read < 3 {
15887 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15888 _next_ordinal_to_read += 1;
15889 next_offset += envelope_size;
15890 }
15891
15892 let next_out_of_line = decoder.next_out_of_line();
15893 let handles_before = decoder.remaining_handles();
15894 if let Some((inlined, num_bytes, num_handles)) =
15895 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15896 {
15897 let member_inline_size =
15898 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15899 if inlined != (member_inline_size <= 4) {
15900 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15901 }
15902 let inner_offset;
15903 let mut inner_depth = depth.clone();
15904 if inlined {
15905 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15906 inner_offset = next_offset;
15907 } else {
15908 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15909 inner_depth.increment()?;
15910 }
15911 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15912 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15913 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15914 {
15915 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15916 }
15917 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15918 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15919 }
15920 }
15921
15922 next_offset += envelope_size;
15923 _next_ordinal_to_read += 1;
15924 if next_offset >= end_offset {
15925 return Ok(());
15926 }
15927
15928 while _next_ordinal_to_read < 4 {
15930 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15931 _next_ordinal_to_read += 1;
15932 next_offset += envelope_size;
15933 }
15934
15935 let next_out_of_line = decoder.next_out_of_line();
15936 let handles_before = decoder.remaining_handles();
15937 if let Some((inlined, num_bytes, num_handles)) =
15938 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15939 {
15940 let member_inline_size =
15941 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15942 decoder.context,
15943 );
15944 if inlined != (member_inline_size <= 4) {
15945 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15946 }
15947 let inner_offset;
15948 let mut inner_depth = depth.clone();
15949 if inlined {
15950 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15951 inner_offset = next_offset;
15952 } else {
15953 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15954 inner_depth.increment()?;
15955 }
15956 let val_ref = self
15957 .target_name
15958 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15959 fidl::decode!(
15960 fidl::encoding::BoundedString<100>,
15961 D,
15962 val_ref,
15963 decoder,
15964 inner_offset,
15965 inner_depth
15966 )?;
15967 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15968 {
15969 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15970 }
15971 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15972 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15973 }
15974 }
15975
15976 next_offset += envelope_size;
15977 _next_ordinal_to_read += 1;
15978 if next_offset >= end_offset {
15979 return Ok(());
15980 }
15981
15982 while _next_ordinal_to_read < 5 {
15984 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15985 _next_ordinal_to_read += 1;
15986 next_offset += envelope_size;
15987 }
15988
15989 let next_out_of_line = decoder.next_out_of_line();
15990 let handles_before = decoder.remaining_handles();
15991 if let Some((inlined, num_bytes, num_handles)) =
15992 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15993 {
15994 let member_inline_size = <fidl_fuchsia_io__common::Operations as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15995 if inlined != (member_inline_size <= 4) {
15996 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15997 }
15998 let inner_offset;
15999 let mut inner_depth = depth.clone();
16000 if inlined {
16001 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16002 inner_offset = next_offset;
16003 } else {
16004 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16005 inner_depth.increment()?;
16006 }
16007 let val_ref = self.rights.get_or_insert_with(|| {
16008 fidl::new_empty!(fidl_fuchsia_io__common::Operations, D)
16009 });
16010 fidl::decode!(
16011 fidl_fuchsia_io__common::Operations,
16012 D,
16013 val_ref,
16014 decoder,
16015 inner_offset,
16016 inner_depth
16017 )?;
16018 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16019 {
16020 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16021 }
16022 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16023 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16024 }
16025 }
16026
16027 next_offset += envelope_size;
16028 _next_ordinal_to_read += 1;
16029 if next_offset >= end_offset {
16030 return Ok(());
16031 }
16032
16033 while _next_ordinal_to_read < 6 {
16035 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16036 _next_ordinal_to_read += 1;
16037 next_offset += envelope_size;
16038 }
16039
16040 let next_out_of_line = decoder.next_out_of_line();
16041 let handles_before = decoder.remaining_handles();
16042 if let Some((inlined, num_bytes, num_handles)) =
16043 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16044 {
16045 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16046 if inlined != (member_inline_size <= 4) {
16047 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16048 }
16049 let inner_offset;
16050 let mut inner_depth = depth.clone();
16051 if inlined {
16052 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16053 inner_offset = next_offset;
16054 } else {
16055 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16056 inner_depth.increment()?;
16057 }
16058 let val_ref = self.subdir.get_or_insert_with(|| {
16059 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
16060 });
16061 fidl::decode!(
16062 fidl::encoding::BoundedString<1024>,
16063 D,
16064 val_ref,
16065 decoder,
16066 inner_offset,
16067 inner_depth
16068 )?;
16069 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16070 {
16071 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16072 }
16073 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16074 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16075 }
16076 }
16077
16078 next_offset += envelope_size;
16079 _next_ordinal_to_read += 1;
16080 if next_offset >= end_offset {
16081 return Ok(());
16082 }
16083
16084 while _next_ordinal_to_read < 7 {
16086 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16087 _next_ordinal_to_read += 1;
16088 next_offset += envelope_size;
16089 }
16090
16091 let next_out_of_line = decoder.next_out_of_line();
16092 let handles_before = decoder.remaining_handles();
16093 if let Some((inlined, num_bytes, num_handles)) =
16094 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16095 {
16096 let member_inline_size =
16097 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16098 if inlined != (member_inline_size <= 4) {
16099 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16100 }
16101 let inner_offset;
16102 let mut inner_depth = depth.clone();
16103 if inlined {
16104 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16105 inner_offset = next_offset;
16106 } else {
16107 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16108 inner_depth.increment()?;
16109 }
16110 let val_ref =
16111 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
16112 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
16113 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16114 {
16115 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16116 }
16117 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16118 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16119 }
16120 }
16121
16122 next_offset += envelope_size;
16123 _next_ordinal_to_read += 1;
16124 if next_offset >= end_offset {
16125 return Ok(());
16126 }
16127
16128 while _next_ordinal_to_read < 8 {
16130 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16131 _next_ordinal_to_read += 1;
16132 next_offset += envelope_size;
16133 }
16134
16135 let next_out_of_line = decoder.next_out_of_line();
16136 let handles_before = decoder.remaining_handles();
16137 if let Some((inlined, num_bytes, num_handles)) =
16138 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16139 {
16140 let member_inline_size =
16141 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16142 if inlined != (member_inline_size <= 4) {
16143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16144 }
16145 let inner_offset;
16146 let mut inner_depth = depth.clone();
16147 if inlined {
16148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16149 inner_offset = next_offset;
16150 } else {
16151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16152 inner_depth.increment()?;
16153 }
16154 let val_ref =
16155 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
16156 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
16157 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16158 {
16159 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16160 }
16161 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16162 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16163 }
16164 }
16165
16166 next_offset += envelope_size;
16167 _next_ordinal_to_read += 1;
16168 if next_offset >= end_offset {
16169 return Ok(());
16170 }
16171
16172 while _next_ordinal_to_read < 9 {
16174 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16175 _next_ordinal_to_read += 1;
16176 next_offset += envelope_size;
16177 }
16178
16179 let next_out_of_line = decoder.next_out_of_line();
16180 let handles_before = decoder.remaining_handles();
16181 if let Some((inlined, num_bytes, num_handles)) =
16182 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16183 {
16184 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16185 if inlined != (member_inline_size <= 4) {
16186 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16187 }
16188 let inner_offset;
16189 let mut inner_depth = depth.clone();
16190 if inlined {
16191 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16192 inner_offset = next_offset;
16193 } else {
16194 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16195 inner_depth.increment()?;
16196 }
16197 let val_ref = self.source_dictionary.get_or_insert_with(|| {
16198 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
16199 });
16200 fidl::decode!(
16201 fidl::encoding::BoundedString<1024>,
16202 D,
16203 val_ref,
16204 decoder,
16205 inner_offset,
16206 inner_depth
16207 )?;
16208 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16209 {
16210 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16211 }
16212 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16213 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16214 }
16215 }
16216
16217 next_offset += envelope_size;
16218
16219 while next_offset < end_offset {
16221 _next_ordinal_to_read += 1;
16222 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16223 next_offset += envelope_size;
16224 }
16225
16226 Ok(())
16227 }
16228 }
16229
16230 impl OfferEventStream {
16231 #[inline(always)]
16232 fn max_ordinal_present(&self) -> u64 {
16233 if let Some(_) = self.availability {
16234 return 7;
16235 }
16236 if let Some(_) = self.target_name {
16237 return 5;
16238 }
16239 if let Some(_) = self.target {
16240 return 4;
16241 }
16242 if let Some(_) = self.scope {
16243 return 3;
16244 }
16245 if let Some(_) = self.source_name {
16246 return 2;
16247 }
16248 if let Some(_) = self.source {
16249 return 1;
16250 }
16251 0
16252 }
16253 }
16254
16255 impl fidl::encoding::ValueTypeMarker for OfferEventStream {
16256 type Borrowed<'a> = &'a Self;
16257 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16258 value
16259 }
16260 }
16261
16262 unsafe impl fidl::encoding::TypeMarker for OfferEventStream {
16263 type Owned = Self;
16264
16265 #[inline(always)]
16266 fn inline_align(_context: fidl::encoding::Context) -> usize {
16267 8
16268 }
16269
16270 #[inline(always)]
16271 fn inline_size(_context: fidl::encoding::Context) -> usize {
16272 16
16273 }
16274 }
16275
16276 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferEventStream, D>
16277 for &OfferEventStream
16278 {
16279 unsafe fn encode(
16280 self,
16281 encoder: &mut fidl::encoding::Encoder<'_, D>,
16282 offset: usize,
16283 mut depth: fidl::encoding::Depth,
16284 ) -> fidl::Result<()> {
16285 encoder.debug_check_bounds::<OfferEventStream>(offset);
16286 let max_ordinal: u64 = self.max_ordinal_present();
16288 encoder.write_num(max_ordinal, offset);
16289 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16290 if max_ordinal == 0 {
16292 return Ok(());
16293 }
16294 depth.increment()?;
16295 let envelope_size = 8;
16296 let bytes_len = max_ordinal as usize * envelope_size;
16297 #[allow(unused_variables)]
16298 let offset = encoder.out_of_line_offset(bytes_len);
16299 let mut _prev_end_offset: usize = 0;
16300 if 1 > max_ordinal {
16301 return Ok(());
16302 }
16303
16304 let cur_offset: usize = (1 - 1) * envelope_size;
16307
16308 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16310
16311 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16316 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16317 encoder,
16318 offset + cur_offset,
16319 depth,
16320 )?;
16321
16322 _prev_end_offset = cur_offset + envelope_size;
16323 if 2 > max_ordinal {
16324 return Ok(());
16325 }
16326
16327 let cur_offset: usize = (2 - 1) * envelope_size;
16330
16331 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16333
16334 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16339 self.source_name.as_ref().map(
16340 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16341 ),
16342 encoder,
16343 offset + cur_offset,
16344 depth,
16345 )?;
16346
16347 _prev_end_offset = cur_offset + envelope_size;
16348 if 3 > max_ordinal {
16349 return Ok(());
16350 }
16351
16352 let cur_offset: usize = (3 - 1) * envelope_size;
16355
16356 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16358
16359 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Ref>, D>(
16364 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<Ref> as fidl::encoding::ValueTypeMarker>::borrow),
16365 encoder, offset + cur_offset, depth
16366 )?;
16367
16368 _prev_end_offset = cur_offset + envelope_size;
16369 if 4 > max_ordinal {
16370 return Ok(());
16371 }
16372
16373 let cur_offset: usize = (4 - 1) * envelope_size;
16376
16377 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16379
16380 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16385 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16386 encoder,
16387 offset + cur_offset,
16388 depth,
16389 )?;
16390
16391 _prev_end_offset = cur_offset + envelope_size;
16392 if 5 > max_ordinal {
16393 return Ok(());
16394 }
16395
16396 let cur_offset: usize = (5 - 1) * envelope_size;
16399
16400 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16402
16403 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16408 self.target_name.as_ref().map(
16409 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16410 ),
16411 encoder,
16412 offset + cur_offset,
16413 depth,
16414 )?;
16415
16416 _prev_end_offset = cur_offset + envelope_size;
16417 if 7 > max_ordinal {
16418 return Ok(());
16419 }
16420
16421 let cur_offset: usize = (7 - 1) * envelope_size;
16424
16425 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16427
16428 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
16433 self.availability
16434 .as_ref()
16435 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
16436 encoder,
16437 offset + cur_offset,
16438 depth,
16439 )?;
16440
16441 _prev_end_offset = cur_offset + envelope_size;
16442
16443 Ok(())
16444 }
16445 }
16446
16447 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferEventStream {
16448 #[inline(always)]
16449 fn new_empty() -> Self {
16450 Self::default()
16451 }
16452
16453 unsafe fn decode(
16454 &mut self,
16455 decoder: &mut fidl::encoding::Decoder<'_, D>,
16456 offset: usize,
16457 mut depth: fidl::encoding::Depth,
16458 ) -> fidl::Result<()> {
16459 decoder.debug_check_bounds::<Self>(offset);
16460 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16461 None => return Err(fidl::Error::NotNullable),
16462 Some(len) => len,
16463 };
16464 if len == 0 {
16466 return Ok(());
16467 };
16468 depth.increment()?;
16469 let envelope_size = 8;
16470 let bytes_len = len * envelope_size;
16471 let offset = decoder.out_of_line_offset(bytes_len)?;
16472 let mut _next_ordinal_to_read = 0;
16474 let mut next_offset = offset;
16475 let end_offset = offset + bytes_len;
16476 _next_ordinal_to_read += 1;
16477 if next_offset >= end_offset {
16478 return Ok(());
16479 }
16480
16481 while _next_ordinal_to_read < 1 {
16483 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16484 _next_ordinal_to_read += 1;
16485 next_offset += envelope_size;
16486 }
16487
16488 let next_out_of_line = decoder.next_out_of_line();
16489 let handles_before = decoder.remaining_handles();
16490 if let Some((inlined, num_bytes, num_handles)) =
16491 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16492 {
16493 let member_inline_size =
16494 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16495 if inlined != (member_inline_size <= 4) {
16496 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16497 }
16498 let inner_offset;
16499 let mut inner_depth = depth.clone();
16500 if inlined {
16501 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16502 inner_offset = next_offset;
16503 } else {
16504 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16505 inner_depth.increment()?;
16506 }
16507 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
16508 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
16509 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16510 {
16511 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16512 }
16513 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16514 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16515 }
16516 }
16517
16518 next_offset += envelope_size;
16519 _next_ordinal_to_read += 1;
16520 if next_offset >= end_offset {
16521 return Ok(());
16522 }
16523
16524 while _next_ordinal_to_read < 2 {
16526 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16527 _next_ordinal_to_read += 1;
16528 next_offset += envelope_size;
16529 }
16530
16531 let next_out_of_line = decoder.next_out_of_line();
16532 let handles_before = decoder.remaining_handles();
16533 if let Some((inlined, num_bytes, num_handles)) =
16534 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16535 {
16536 let member_inline_size =
16537 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
16538 decoder.context,
16539 );
16540 if inlined != (member_inline_size <= 4) {
16541 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16542 }
16543 let inner_offset;
16544 let mut inner_depth = depth.clone();
16545 if inlined {
16546 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16547 inner_offset = next_offset;
16548 } else {
16549 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16550 inner_depth.increment()?;
16551 }
16552 let val_ref = self
16553 .source_name
16554 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
16555 fidl::decode!(
16556 fidl::encoding::BoundedString<100>,
16557 D,
16558 val_ref,
16559 decoder,
16560 inner_offset,
16561 inner_depth
16562 )?;
16563 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16564 {
16565 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16566 }
16567 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16568 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16569 }
16570 }
16571
16572 next_offset += envelope_size;
16573 _next_ordinal_to_read += 1;
16574 if next_offset >= end_offset {
16575 return Ok(());
16576 }
16577
16578 while _next_ordinal_to_read < 3 {
16580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16581 _next_ordinal_to_read += 1;
16582 next_offset += envelope_size;
16583 }
16584
16585 let next_out_of_line = decoder.next_out_of_line();
16586 let handles_before = decoder.remaining_handles();
16587 if let Some((inlined, num_bytes, num_handles)) =
16588 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16589 {
16590 let member_inline_size = <fidl::encoding::UnboundedVector<Ref> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16591 if inlined != (member_inline_size <= 4) {
16592 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16593 }
16594 let inner_offset;
16595 let mut inner_depth = depth.clone();
16596 if inlined {
16597 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16598 inner_offset = next_offset;
16599 } else {
16600 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16601 inner_depth.increment()?;
16602 }
16603 let val_ref = self.scope.get_or_insert_with(|| {
16604 fidl::new_empty!(fidl::encoding::UnboundedVector<Ref>, D)
16605 });
16606 fidl::decode!(
16607 fidl::encoding::UnboundedVector<Ref>,
16608 D,
16609 val_ref,
16610 decoder,
16611 inner_offset,
16612 inner_depth
16613 )?;
16614 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16615 {
16616 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16617 }
16618 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16619 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16620 }
16621 }
16622
16623 next_offset += envelope_size;
16624 _next_ordinal_to_read += 1;
16625 if next_offset >= end_offset {
16626 return Ok(());
16627 }
16628
16629 while _next_ordinal_to_read < 4 {
16631 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16632 _next_ordinal_to_read += 1;
16633 next_offset += envelope_size;
16634 }
16635
16636 let next_out_of_line = decoder.next_out_of_line();
16637 let handles_before = decoder.remaining_handles();
16638 if let Some((inlined, num_bytes, num_handles)) =
16639 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16640 {
16641 let member_inline_size =
16642 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16643 if inlined != (member_inline_size <= 4) {
16644 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16645 }
16646 let inner_offset;
16647 let mut inner_depth = depth.clone();
16648 if inlined {
16649 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16650 inner_offset = next_offset;
16651 } else {
16652 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16653 inner_depth.increment()?;
16654 }
16655 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
16656 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
16657 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16658 {
16659 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16660 }
16661 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16662 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16663 }
16664 }
16665
16666 next_offset += envelope_size;
16667 _next_ordinal_to_read += 1;
16668 if next_offset >= end_offset {
16669 return Ok(());
16670 }
16671
16672 while _next_ordinal_to_read < 5 {
16674 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16675 _next_ordinal_to_read += 1;
16676 next_offset += envelope_size;
16677 }
16678
16679 let next_out_of_line = decoder.next_out_of_line();
16680 let handles_before = decoder.remaining_handles();
16681 if let Some((inlined, num_bytes, num_handles)) =
16682 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16683 {
16684 let member_inline_size =
16685 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
16686 decoder.context,
16687 );
16688 if inlined != (member_inline_size <= 4) {
16689 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16690 }
16691 let inner_offset;
16692 let mut inner_depth = depth.clone();
16693 if inlined {
16694 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16695 inner_offset = next_offset;
16696 } else {
16697 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16698 inner_depth.increment()?;
16699 }
16700 let val_ref = self
16701 .target_name
16702 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
16703 fidl::decode!(
16704 fidl::encoding::BoundedString<100>,
16705 D,
16706 val_ref,
16707 decoder,
16708 inner_offset,
16709 inner_depth
16710 )?;
16711 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16712 {
16713 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16714 }
16715 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16716 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16717 }
16718 }
16719
16720 next_offset += envelope_size;
16721 _next_ordinal_to_read += 1;
16722 if next_offset >= end_offset {
16723 return Ok(());
16724 }
16725
16726 while _next_ordinal_to_read < 7 {
16728 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16729 _next_ordinal_to_read += 1;
16730 next_offset += envelope_size;
16731 }
16732
16733 let next_out_of_line = decoder.next_out_of_line();
16734 let handles_before = decoder.remaining_handles();
16735 if let Some((inlined, num_bytes, num_handles)) =
16736 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16737 {
16738 let member_inline_size =
16739 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16740 if inlined != (member_inline_size <= 4) {
16741 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16742 }
16743 let inner_offset;
16744 let mut inner_depth = depth.clone();
16745 if inlined {
16746 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16747 inner_offset = next_offset;
16748 } else {
16749 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16750 inner_depth.increment()?;
16751 }
16752 let val_ref =
16753 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
16754 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
16755 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16756 {
16757 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16758 }
16759 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16760 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16761 }
16762 }
16763
16764 next_offset += envelope_size;
16765
16766 while next_offset < end_offset {
16768 _next_ordinal_to_read += 1;
16769 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16770 next_offset += envelope_size;
16771 }
16772
16773 Ok(())
16774 }
16775 }
16776
16777 impl OfferProtocol {
16778 #[inline(always)]
16779 fn max_ordinal_present(&self) -> u64 {
16780 if let Some(_) = self.source_dictionary {
16781 return 7;
16782 }
16783 if let Some(_) = self.availability {
16784 return 6;
16785 }
16786 if let Some(_) = self.dependency_type {
16787 return 5;
16788 }
16789 if let Some(_) = self.target_name {
16790 return 4;
16791 }
16792 if let Some(_) = self.target {
16793 return 3;
16794 }
16795 if let Some(_) = self.source_name {
16796 return 2;
16797 }
16798 if let Some(_) = self.source {
16799 return 1;
16800 }
16801 0
16802 }
16803 }
16804
16805 impl fidl::encoding::ValueTypeMarker for OfferProtocol {
16806 type Borrowed<'a> = &'a Self;
16807 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16808 value
16809 }
16810 }
16811
16812 unsafe impl fidl::encoding::TypeMarker for OfferProtocol {
16813 type Owned = Self;
16814
16815 #[inline(always)]
16816 fn inline_align(_context: fidl::encoding::Context) -> usize {
16817 8
16818 }
16819
16820 #[inline(always)]
16821 fn inline_size(_context: fidl::encoding::Context) -> usize {
16822 16
16823 }
16824 }
16825
16826 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferProtocol, D>
16827 for &OfferProtocol
16828 {
16829 unsafe fn encode(
16830 self,
16831 encoder: &mut fidl::encoding::Encoder<'_, D>,
16832 offset: usize,
16833 mut depth: fidl::encoding::Depth,
16834 ) -> fidl::Result<()> {
16835 encoder.debug_check_bounds::<OfferProtocol>(offset);
16836 let max_ordinal: u64 = self.max_ordinal_present();
16838 encoder.write_num(max_ordinal, offset);
16839 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16840 if max_ordinal == 0 {
16842 return Ok(());
16843 }
16844 depth.increment()?;
16845 let envelope_size = 8;
16846 let bytes_len = max_ordinal as usize * envelope_size;
16847 #[allow(unused_variables)]
16848 let offset = encoder.out_of_line_offset(bytes_len);
16849 let mut _prev_end_offset: usize = 0;
16850 if 1 > max_ordinal {
16851 return Ok(());
16852 }
16853
16854 let cur_offset: usize = (1 - 1) * envelope_size;
16857
16858 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16860
16861 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16866 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16867 encoder,
16868 offset + cur_offset,
16869 depth,
16870 )?;
16871
16872 _prev_end_offset = cur_offset + envelope_size;
16873 if 2 > max_ordinal {
16874 return Ok(());
16875 }
16876
16877 let cur_offset: usize = (2 - 1) * envelope_size;
16880
16881 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16883
16884 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16889 self.source_name.as_ref().map(
16890 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16891 ),
16892 encoder,
16893 offset + cur_offset,
16894 depth,
16895 )?;
16896
16897 _prev_end_offset = cur_offset + envelope_size;
16898 if 3 > max_ordinal {
16899 return Ok(());
16900 }
16901
16902 let cur_offset: usize = (3 - 1) * envelope_size;
16905
16906 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16908
16909 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16914 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16915 encoder,
16916 offset + cur_offset,
16917 depth,
16918 )?;
16919
16920 _prev_end_offset = cur_offset + envelope_size;
16921 if 4 > max_ordinal {
16922 return Ok(());
16923 }
16924
16925 let cur_offset: usize = (4 - 1) * envelope_size;
16928
16929 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16931
16932 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16937 self.target_name.as_ref().map(
16938 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16939 ),
16940 encoder,
16941 offset + cur_offset,
16942 depth,
16943 )?;
16944
16945 _prev_end_offset = cur_offset + envelope_size;
16946 if 5 > max_ordinal {
16947 return Ok(());
16948 }
16949
16950 let cur_offset: usize = (5 - 1) * envelope_size;
16953
16954 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16956
16957 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
16962 self.dependency_type
16963 .as_ref()
16964 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
16965 encoder,
16966 offset + cur_offset,
16967 depth,
16968 )?;
16969
16970 _prev_end_offset = cur_offset + envelope_size;
16971 if 6 > max_ordinal {
16972 return Ok(());
16973 }
16974
16975 let cur_offset: usize = (6 - 1) * envelope_size;
16978
16979 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16981
16982 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
16987 self.availability
16988 .as_ref()
16989 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
16990 encoder,
16991 offset + cur_offset,
16992 depth,
16993 )?;
16994
16995 _prev_end_offset = cur_offset + envelope_size;
16996 if 7 > max_ordinal {
16997 return Ok(());
16998 }
16999
17000 let cur_offset: usize = (7 - 1) * envelope_size;
17003
17004 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17006
17007 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
17012 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
17013 encoder, offset + cur_offset, depth
17014 )?;
17015
17016 _prev_end_offset = cur_offset + envelope_size;
17017
17018 Ok(())
17019 }
17020 }
17021
17022 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferProtocol {
17023 #[inline(always)]
17024 fn new_empty() -> Self {
17025 Self::default()
17026 }
17027
17028 unsafe fn decode(
17029 &mut self,
17030 decoder: &mut fidl::encoding::Decoder<'_, D>,
17031 offset: usize,
17032 mut depth: fidl::encoding::Depth,
17033 ) -> fidl::Result<()> {
17034 decoder.debug_check_bounds::<Self>(offset);
17035 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17036 None => return Err(fidl::Error::NotNullable),
17037 Some(len) => len,
17038 };
17039 if len == 0 {
17041 return Ok(());
17042 };
17043 depth.increment()?;
17044 let envelope_size = 8;
17045 let bytes_len = len * envelope_size;
17046 let offset = decoder.out_of_line_offset(bytes_len)?;
17047 let mut _next_ordinal_to_read = 0;
17049 let mut next_offset = offset;
17050 let end_offset = offset + bytes_len;
17051 _next_ordinal_to_read += 1;
17052 if next_offset >= end_offset {
17053 return Ok(());
17054 }
17055
17056 while _next_ordinal_to_read < 1 {
17058 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17059 _next_ordinal_to_read += 1;
17060 next_offset += envelope_size;
17061 }
17062
17063 let next_out_of_line = decoder.next_out_of_line();
17064 let handles_before = decoder.remaining_handles();
17065 if let Some((inlined, num_bytes, num_handles)) =
17066 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17067 {
17068 let member_inline_size =
17069 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17070 if inlined != (member_inline_size <= 4) {
17071 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17072 }
17073 let inner_offset;
17074 let mut inner_depth = depth.clone();
17075 if inlined {
17076 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17077 inner_offset = next_offset;
17078 } else {
17079 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17080 inner_depth.increment()?;
17081 }
17082 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17083 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17084 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17085 {
17086 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17087 }
17088 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17089 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17090 }
17091 }
17092
17093 next_offset += envelope_size;
17094 _next_ordinal_to_read += 1;
17095 if next_offset >= end_offset {
17096 return Ok(());
17097 }
17098
17099 while _next_ordinal_to_read < 2 {
17101 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17102 _next_ordinal_to_read += 1;
17103 next_offset += envelope_size;
17104 }
17105
17106 let next_out_of_line = decoder.next_out_of_line();
17107 let handles_before = decoder.remaining_handles();
17108 if let Some((inlined, num_bytes, num_handles)) =
17109 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17110 {
17111 let member_inline_size =
17112 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17113 decoder.context,
17114 );
17115 if inlined != (member_inline_size <= 4) {
17116 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17117 }
17118 let inner_offset;
17119 let mut inner_depth = depth.clone();
17120 if inlined {
17121 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17122 inner_offset = next_offset;
17123 } else {
17124 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17125 inner_depth.increment()?;
17126 }
17127 let val_ref = self
17128 .source_name
17129 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17130 fidl::decode!(
17131 fidl::encoding::BoundedString<100>,
17132 D,
17133 val_ref,
17134 decoder,
17135 inner_offset,
17136 inner_depth
17137 )?;
17138 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17139 {
17140 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17141 }
17142 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17143 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17144 }
17145 }
17146
17147 next_offset += envelope_size;
17148 _next_ordinal_to_read += 1;
17149 if next_offset >= end_offset {
17150 return Ok(());
17151 }
17152
17153 while _next_ordinal_to_read < 3 {
17155 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17156 _next_ordinal_to_read += 1;
17157 next_offset += envelope_size;
17158 }
17159
17160 let next_out_of_line = decoder.next_out_of_line();
17161 let handles_before = decoder.remaining_handles();
17162 if let Some((inlined, num_bytes, num_handles)) =
17163 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17164 {
17165 let member_inline_size =
17166 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17167 if inlined != (member_inline_size <= 4) {
17168 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17169 }
17170 let inner_offset;
17171 let mut inner_depth = depth.clone();
17172 if inlined {
17173 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17174 inner_offset = next_offset;
17175 } else {
17176 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17177 inner_depth.increment()?;
17178 }
17179 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17180 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17181 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17182 {
17183 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17184 }
17185 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17186 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17187 }
17188 }
17189
17190 next_offset += envelope_size;
17191 _next_ordinal_to_read += 1;
17192 if next_offset >= end_offset {
17193 return Ok(());
17194 }
17195
17196 while _next_ordinal_to_read < 4 {
17198 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17199 _next_ordinal_to_read += 1;
17200 next_offset += envelope_size;
17201 }
17202
17203 let next_out_of_line = decoder.next_out_of_line();
17204 let handles_before = decoder.remaining_handles();
17205 if let Some((inlined, num_bytes, num_handles)) =
17206 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17207 {
17208 let member_inline_size =
17209 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17210 decoder.context,
17211 );
17212 if inlined != (member_inline_size <= 4) {
17213 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17214 }
17215 let inner_offset;
17216 let mut inner_depth = depth.clone();
17217 if inlined {
17218 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17219 inner_offset = next_offset;
17220 } else {
17221 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17222 inner_depth.increment()?;
17223 }
17224 let val_ref = self
17225 .target_name
17226 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17227 fidl::decode!(
17228 fidl::encoding::BoundedString<100>,
17229 D,
17230 val_ref,
17231 decoder,
17232 inner_offset,
17233 inner_depth
17234 )?;
17235 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17236 {
17237 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17238 }
17239 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17240 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17241 }
17242 }
17243
17244 next_offset += envelope_size;
17245 _next_ordinal_to_read += 1;
17246 if next_offset >= end_offset {
17247 return Ok(());
17248 }
17249
17250 while _next_ordinal_to_read < 5 {
17252 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17253 _next_ordinal_to_read += 1;
17254 next_offset += envelope_size;
17255 }
17256
17257 let next_out_of_line = decoder.next_out_of_line();
17258 let handles_before = decoder.remaining_handles();
17259 if let Some((inlined, num_bytes, num_handles)) =
17260 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17261 {
17262 let member_inline_size =
17263 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17264 if inlined != (member_inline_size <= 4) {
17265 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17266 }
17267 let inner_offset;
17268 let mut inner_depth = depth.clone();
17269 if inlined {
17270 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17271 inner_offset = next_offset;
17272 } else {
17273 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17274 inner_depth.increment()?;
17275 }
17276 let val_ref =
17277 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
17278 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
17279 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17280 {
17281 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17282 }
17283 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17284 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17285 }
17286 }
17287
17288 next_offset += envelope_size;
17289 _next_ordinal_to_read += 1;
17290 if next_offset >= end_offset {
17291 return Ok(());
17292 }
17293
17294 while _next_ordinal_to_read < 6 {
17296 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17297 _next_ordinal_to_read += 1;
17298 next_offset += envelope_size;
17299 }
17300
17301 let next_out_of_line = decoder.next_out_of_line();
17302 let handles_before = decoder.remaining_handles();
17303 if let Some((inlined, num_bytes, num_handles)) =
17304 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17305 {
17306 let member_inline_size =
17307 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17308 if inlined != (member_inline_size <= 4) {
17309 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17310 }
17311 let inner_offset;
17312 let mut inner_depth = depth.clone();
17313 if inlined {
17314 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17315 inner_offset = next_offset;
17316 } else {
17317 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17318 inner_depth.increment()?;
17319 }
17320 let val_ref =
17321 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
17322 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
17323 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17324 {
17325 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17326 }
17327 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17328 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17329 }
17330 }
17331
17332 next_offset += envelope_size;
17333 _next_ordinal_to_read += 1;
17334 if next_offset >= end_offset {
17335 return Ok(());
17336 }
17337
17338 while _next_ordinal_to_read < 7 {
17340 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17341 _next_ordinal_to_read += 1;
17342 next_offset += envelope_size;
17343 }
17344
17345 let next_out_of_line = decoder.next_out_of_line();
17346 let handles_before = decoder.remaining_handles();
17347 if let Some((inlined, num_bytes, num_handles)) =
17348 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17349 {
17350 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17351 if inlined != (member_inline_size <= 4) {
17352 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17353 }
17354 let inner_offset;
17355 let mut inner_depth = depth.clone();
17356 if inlined {
17357 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17358 inner_offset = next_offset;
17359 } else {
17360 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17361 inner_depth.increment()?;
17362 }
17363 let val_ref = self.source_dictionary.get_or_insert_with(|| {
17364 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
17365 });
17366 fidl::decode!(
17367 fidl::encoding::BoundedString<1024>,
17368 D,
17369 val_ref,
17370 decoder,
17371 inner_offset,
17372 inner_depth
17373 )?;
17374 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17375 {
17376 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17377 }
17378 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17379 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17380 }
17381 }
17382
17383 next_offset += envelope_size;
17384
17385 while next_offset < end_offset {
17387 _next_ordinal_to_read += 1;
17388 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17389 next_offset += envelope_size;
17390 }
17391
17392 Ok(())
17393 }
17394 }
17395
17396 impl OfferResolver {
17397 #[inline(always)]
17398 fn max_ordinal_present(&self) -> u64 {
17399 if let Some(_) = self.source_dictionary {
17400 return 5;
17401 }
17402 if let Some(_) = self.target_name {
17403 return 4;
17404 }
17405 if let Some(_) = self.target {
17406 return 3;
17407 }
17408 if let Some(_) = self.source_name {
17409 return 2;
17410 }
17411 if let Some(_) = self.source {
17412 return 1;
17413 }
17414 0
17415 }
17416 }
17417
17418 impl fidl::encoding::ValueTypeMarker for OfferResolver {
17419 type Borrowed<'a> = &'a Self;
17420 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17421 value
17422 }
17423 }
17424
17425 unsafe impl fidl::encoding::TypeMarker for OfferResolver {
17426 type Owned = Self;
17427
17428 #[inline(always)]
17429 fn inline_align(_context: fidl::encoding::Context) -> usize {
17430 8
17431 }
17432
17433 #[inline(always)]
17434 fn inline_size(_context: fidl::encoding::Context) -> usize {
17435 16
17436 }
17437 }
17438
17439 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferResolver, D>
17440 for &OfferResolver
17441 {
17442 unsafe fn encode(
17443 self,
17444 encoder: &mut fidl::encoding::Encoder<'_, D>,
17445 offset: usize,
17446 mut depth: fidl::encoding::Depth,
17447 ) -> fidl::Result<()> {
17448 encoder.debug_check_bounds::<OfferResolver>(offset);
17449 let max_ordinal: u64 = self.max_ordinal_present();
17451 encoder.write_num(max_ordinal, offset);
17452 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17453 if max_ordinal == 0 {
17455 return Ok(());
17456 }
17457 depth.increment()?;
17458 let envelope_size = 8;
17459 let bytes_len = max_ordinal as usize * envelope_size;
17460 #[allow(unused_variables)]
17461 let offset = encoder.out_of_line_offset(bytes_len);
17462 let mut _prev_end_offset: usize = 0;
17463 if 1 > max_ordinal {
17464 return Ok(());
17465 }
17466
17467 let cur_offset: usize = (1 - 1) * envelope_size;
17470
17471 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17473
17474 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17479 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17480 encoder,
17481 offset + cur_offset,
17482 depth,
17483 )?;
17484
17485 _prev_end_offset = cur_offset + envelope_size;
17486 if 2 > max_ordinal {
17487 return Ok(());
17488 }
17489
17490 let cur_offset: usize = (2 - 1) * envelope_size;
17493
17494 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17496
17497 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17502 self.source_name.as_ref().map(
17503 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
17504 ),
17505 encoder,
17506 offset + cur_offset,
17507 depth,
17508 )?;
17509
17510 _prev_end_offset = cur_offset + envelope_size;
17511 if 3 > max_ordinal {
17512 return Ok(());
17513 }
17514
17515 let cur_offset: usize = (3 - 1) * envelope_size;
17518
17519 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17521
17522 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17527 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17528 encoder,
17529 offset + cur_offset,
17530 depth,
17531 )?;
17532
17533 _prev_end_offset = cur_offset + envelope_size;
17534 if 4 > max_ordinal {
17535 return Ok(());
17536 }
17537
17538 let cur_offset: usize = (4 - 1) * envelope_size;
17541
17542 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17544
17545 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17550 self.target_name.as_ref().map(
17551 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
17552 ),
17553 encoder,
17554 offset + cur_offset,
17555 depth,
17556 )?;
17557
17558 _prev_end_offset = cur_offset + envelope_size;
17559 if 5 > max_ordinal {
17560 return Ok(());
17561 }
17562
17563 let cur_offset: usize = (5 - 1) * envelope_size;
17566
17567 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17569
17570 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
17575 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
17576 encoder, offset + cur_offset, depth
17577 )?;
17578
17579 _prev_end_offset = cur_offset + envelope_size;
17580
17581 Ok(())
17582 }
17583 }
17584
17585 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferResolver {
17586 #[inline(always)]
17587 fn new_empty() -> Self {
17588 Self::default()
17589 }
17590
17591 unsafe fn decode(
17592 &mut self,
17593 decoder: &mut fidl::encoding::Decoder<'_, D>,
17594 offset: usize,
17595 mut depth: fidl::encoding::Depth,
17596 ) -> fidl::Result<()> {
17597 decoder.debug_check_bounds::<Self>(offset);
17598 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17599 None => return Err(fidl::Error::NotNullable),
17600 Some(len) => len,
17601 };
17602 if len == 0 {
17604 return Ok(());
17605 };
17606 depth.increment()?;
17607 let envelope_size = 8;
17608 let bytes_len = len * envelope_size;
17609 let offset = decoder.out_of_line_offset(bytes_len)?;
17610 let mut _next_ordinal_to_read = 0;
17612 let mut next_offset = offset;
17613 let end_offset = offset + bytes_len;
17614 _next_ordinal_to_read += 1;
17615 if next_offset >= end_offset {
17616 return Ok(());
17617 }
17618
17619 while _next_ordinal_to_read < 1 {
17621 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17622 _next_ordinal_to_read += 1;
17623 next_offset += envelope_size;
17624 }
17625
17626 let next_out_of_line = decoder.next_out_of_line();
17627 let handles_before = decoder.remaining_handles();
17628 if let Some((inlined, num_bytes, num_handles)) =
17629 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17630 {
17631 let member_inline_size =
17632 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17633 if inlined != (member_inline_size <= 4) {
17634 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17635 }
17636 let inner_offset;
17637 let mut inner_depth = depth.clone();
17638 if inlined {
17639 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17640 inner_offset = next_offset;
17641 } else {
17642 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17643 inner_depth.increment()?;
17644 }
17645 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17646 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17647 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17648 {
17649 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17650 }
17651 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17652 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17653 }
17654 }
17655
17656 next_offset += envelope_size;
17657 _next_ordinal_to_read += 1;
17658 if next_offset >= end_offset {
17659 return Ok(());
17660 }
17661
17662 while _next_ordinal_to_read < 2 {
17664 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17665 _next_ordinal_to_read += 1;
17666 next_offset += envelope_size;
17667 }
17668
17669 let next_out_of_line = decoder.next_out_of_line();
17670 let handles_before = decoder.remaining_handles();
17671 if let Some((inlined, num_bytes, num_handles)) =
17672 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17673 {
17674 let member_inline_size =
17675 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17676 decoder.context,
17677 );
17678 if inlined != (member_inline_size <= 4) {
17679 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17680 }
17681 let inner_offset;
17682 let mut inner_depth = depth.clone();
17683 if inlined {
17684 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17685 inner_offset = next_offset;
17686 } else {
17687 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17688 inner_depth.increment()?;
17689 }
17690 let val_ref = self
17691 .source_name
17692 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17693 fidl::decode!(
17694 fidl::encoding::BoundedString<100>,
17695 D,
17696 val_ref,
17697 decoder,
17698 inner_offset,
17699 inner_depth
17700 )?;
17701 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17702 {
17703 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17704 }
17705 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17706 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17707 }
17708 }
17709
17710 next_offset += envelope_size;
17711 _next_ordinal_to_read += 1;
17712 if next_offset >= end_offset {
17713 return Ok(());
17714 }
17715
17716 while _next_ordinal_to_read < 3 {
17718 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17719 _next_ordinal_to_read += 1;
17720 next_offset += envelope_size;
17721 }
17722
17723 let next_out_of_line = decoder.next_out_of_line();
17724 let handles_before = decoder.remaining_handles();
17725 if let Some((inlined, num_bytes, num_handles)) =
17726 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17727 {
17728 let member_inline_size =
17729 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17730 if inlined != (member_inline_size <= 4) {
17731 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17732 }
17733 let inner_offset;
17734 let mut inner_depth = depth.clone();
17735 if inlined {
17736 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17737 inner_offset = next_offset;
17738 } else {
17739 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17740 inner_depth.increment()?;
17741 }
17742 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17743 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17744 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17745 {
17746 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17747 }
17748 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17749 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17750 }
17751 }
17752
17753 next_offset += envelope_size;
17754 _next_ordinal_to_read += 1;
17755 if next_offset >= end_offset {
17756 return Ok(());
17757 }
17758
17759 while _next_ordinal_to_read < 4 {
17761 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17762 _next_ordinal_to_read += 1;
17763 next_offset += envelope_size;
17764 }
17765
17766 let next_out_of_line = decoder.next_out_of_line();
17767 let handles_before = decoder.remaining_handles();
17768 if let Some((inlined, num_bytes, num_handles)) =
17769 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17770 {
17771 let member_inline_size =
17772 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17773 decoder.context,
17774 );
17775 if inlined != (member_inline_size <= 4) {
17776 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17777 }
17778 let inner_offset;
17779 let mut inner_depth = depth.clone();
17780 if inlined {
17781 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17782 inner_offset = next_offset;
17783 } else {
17784 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17785 inner_depth.increment()?;
17786 }
17787 let val_ref = self
17788 .target_name
17789 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17790 fidl::decode!(
17791 fidl::encoding::BoundedString<100>,
17792 D,
17793 val_ref,
17794 decoder,
17795 inner_offset,
17796 inner_depth
17797 )?;
17798 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17799 {
17800 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17801 }
17802 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17803 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17804 }
17805 }
17806
17807 next_offset += envelope_size;
17808 _next_ordinal_to_read += 1;
17809 if next_offset >= end_offset {
17810 return Ok(());
17811 }
17812
17813 while _next_ordinal_to_read < 5 {
17815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17816 _next_ordinal_to_read += 1;
17817 next_offset += envelope_size;
17818 }
17819
17820 let next_out_of_line = decoder.next_out_of_line();
17821 let handles_before = decoder.remaining_handles();
17822 if let Some((inlined, num_bytes, num_handles)) =
17823 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17824 {
17825 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17826 if inlined != (member_inline_size <= 4) {
17827 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17828 }
17829 let inner_offset;
17830 let mut inner_depth = depth.clone();
17831 if inlined {
17832 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17833 inner_offset = next_offset;
17834 } else {
17835 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17836 inner_depth.increment()?;
17837 }
17838 let val_ref = self.source_dictionary.get_or_insert_with(|| {
17839 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
17840 });
17841 fidl::decode!(
17842 fidl::encoding::BoundedString<1024>,
17843 D,
17844 val_ref,
17845 decoder,
17846 inner_offset,
17847 inner_depth
17848 )?;
17849 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17850 {
17851 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17852 }
17853 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17854 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17855 }
17856 }
17857
17858 next_offset += envelope_size;
17859
17860 while next_offset < end_offset {
17862 _next_ordinal_to_read += 1;
17863 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17864 next_offset += envelope_size;
17865 }
17866
17867 Ok(())
17868 }
17869 }
17870
17871 impl OfferRunner {
17872 #[inline(always)]
17873 fn max_ordinal_present(&self) -> u64 {
17874 if let Some(_) = self.source_dictionary {
17875 return 5;
17876 }
17877 if let Some(_) = self.target_name {
17878 return 4;
17879 }
17880 if let Some(_) = self.target {
17881 return 3;
17882 }
17883 if let Some(_) = self.source_name {
17884 return 2;
17885 }
17886 if let Some(_) = self.source {
17887 return 1;
17888 }
17889 0
17890 }
17891 }
17892
17893 impl fidl::encoding::ValueTypeMarker for OfferRunner {
17894 type Borrowed<'a> = &'a Self;
17895 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17896 value
17897 }
17898 }
17899
17900 unsafe impl fidl::encoding::TypeMarker for OfferRunner {
17901 type Owned = Self;
17902
17903 #[inline(always)]
17904 fn inline_align(_context: fidl::encoding::Context) -> usize {
17905 8
17906 }
17907
17908 #[inline(always)]
17909 fn inline_size(_context: fidl::encoding::Context) -> usize {
17910 16
17911 }
17912 }
17913
17914 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferRunner, D>
17915 for &OfferRunner
17916 {
17917 unsafe fn encode(
17918 self,
17919 encoder: &mut fidl::encoding::Encoder<'_, D>,
17920 offset: usize,
17921 mut depth: fidl::encoding::Depth,
17922 ) -> fidl::Result<()> {
17923 encoder.debug_check_bounds::<OfferRunner>(offset);
17924 let max_ordinal: u64 = self.max_ordinal_present();
17926 encoder.write_num(max_ordinal, offset);
17927 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17928 if max_ordinal == 0 {
17930 return Ok(());
17931 }
17932 depth.increment()?;
17933 let envelope_size = 8;
17934 let bytes_len = max_ordinal as usize * envelope_size;
17935 #[allow(unused_variables)]
17936 let offset = encoder.out_of_line_offset(bytes_len);
17937 let mut _prev_end_offset: usize = 0;
17938 if 1 > max_ordinal {
17939 return Ok(());
17940 }
17941
17942 let cur_offset: usize = (1 - 1) * envelope_size;
17945
17946 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17948
17949 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17954 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17955 encoder,
17956 offset + cur_offset,
17957 depth,
17958 )?;
17959
17960 _prev_end_offset = cur_offset + envelope_size;
17961 if 2 > max_ordinal {
17962 return Ok(());
17963 }
17964
17965 let cur_offset: usize = (2 - 1) * envelope_size;
17968
17969 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17971
17972 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17977 self.source_name.as_ref().map(
17978 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
17979 ),
17980 encoder,
17981 offset + cur_offset,
17982 depth,
17983 )?;
17984
17985 _prev_end_offset = cur_offset + envelope_size;
17986 if 3 > max_ordinal {
17987 return Ok(());
17988 }
17989
17990 let cur_offset: usize = (3 - 1) * envelope_size;
17993
17994 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17996
17997 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18002 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18003 encoder,
18004 offset + cur_offset,
18005 depth,
18006 )?;
18007
18008 _prev_end_offset = cur_offset + envelope_size;
18009 if 4 > max_ordinal {
18010 return Ok(());
18011 }
18012
18013 let cur_offset: usize = (4 - 1) * envelope_size;
18016
18017 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18019
18020 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
18025 self.target_name.as_ref().map(
18026 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18027 ),
18028 encoder,
18029 offset + cur_offset,
18030 depth,
18031 )?;
18032
18033 _prev_end_offset = cur_offset + envelope_size;
18034 if 5 > max_ordinal {
18035 return Ok(());
18036 }
18037
18038 let cur_offset: usize = (5 - 1) * envelope_size;
18041
18042 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18044
18045 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
18050 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
18051 encoder, offset + cur_offset, depth
18052 )?;
18053
18054 _prev_end_offset = cur_offset + envelope_size;
18055
18056 Ok(())
18057 }
18058 }
18059
18060 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferRunner {
18061 #[inline(always)]
18062 fn new_empty() -> Self {
18063 Self::default()
18064 }
18065
18066 unsafe fn decode(
18067 &mut self,
18068 decoder: &mut fidl::encoding::Decoder<'_, D>,
18069 offset: usize,
18070 mut depth: fidl::encoding::Depth,
18071 ) -> fidl::Result<()> {
18072 decoder.debug_check_bounds::<Self>(offset);
18073 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18074 None => return Err(fidl::Error::NotNullable),
18075 Some(len) => len,
18076 };
18077 if len == 0 {
18079 return Ok(());
18080 };
18081 depth.increment()?;
18082 let envelope_size = 8;
18083 let bytes_len = len * envelope_size;
18084 let offset = decoder.out_of_line_offset(bytes_len)?;
18085 let mut _next_ordinal_to_read = 0;
18087 let mut next_offset = offset;
18088 let end_offset = offset + bytes_len;
18089 _next_ordinal_to_read += 1;
18090 if next_offset >= end_offset {
18091 return Ok(());
18092 }
18093
18094 while _next_ordinal_to_read < 1 {
18096 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18097 _next_ordinal_to_read += 1;
18098 next_offset += envelope_size;
18099 }
18100
18101 let next_out_of_line = decoder.next_out_of_line();
18102 let handles_before = decoder.remaining_handles();
18103 if let Some((inlined, num_bytes, num_handles)) =
18104 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18105 {
18106 let member_inline_size =
18107 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18108 if inlined != (member_inline_size <= 4) {
18109 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18110 }
18111 let inner_offset;
18112 let mut inner_depth = depth.clone();
18113 if inlined {
18114 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18115 inner_offset = next_offset;
18116 } else {
18117 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18118 inner_depth.increment()?;
18119 }
18120 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18121 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18122 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18123 {
18124 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18125 }
18126 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18127 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18128 }
18129 }
18130
18131 next_offset += envelope_size;
18132 _next_ordinal_to_read += 1;
18133 if next_offset >= end_offset {
18134 return Ok(());
18135 }
18136
18137 while _next_ordinal_to_read < 2 {
18139 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18140 _next_ordinal_to_read += 1;
18141 next_offset += envelope_size;
18142 }
18143
18144 let next_out_of_line = decoder.next_out_of_line();
18145 let handles_before = decoder.remaining_handles();
18146 if let Some((inlined, num_bytes, num_handles)) =
18147 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18148 {
18149 let member_inline_size =
18150 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18151 decoder.context,
18152 );
18153 if inlined != (member_inline_size <= 4) {
18154 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18155 }
18156 let inner_offset;
18157 let mut inner_depth = depth.clone();
18158 if inlined {
18159 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18160 inner_offset = next_offset;
18161 } else {
18162 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18163 inner_depth.increment()?;
18164 }
18165 let val_ref = self
18166 .source_name
18167 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18168 fidl::decode!(
18169 fidl::encoding::BoundedString<100>,
18170 D,
18171 val_ref,
18172 decoder,
18173 inner_offset,
18174 inner_depth
18175 )?;
18176 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18177 {
18178 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18179 }
18180 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18181 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18182 }
18183 }
18184
18185 next_offset += envelope_size;
18186 _next_ordinal_to_read += 1;
18187 if next_offset >= end_offset {
18188 return Ok(());
18189 }
18190
18191 while _next_ordinal_to_read < 3 {
18193 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18194 _next_ordinal_to_read += 1;
18195 next_offset += envelope_size;
18196 }
18197
18198 let next_out_of_line = decoder.next_out_of_line();
18199 let handles_before = decoder.remaining_handles();
18200 if let Some((inlined, num_bytes, num_handles)) =
18201 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18202 {
18203 let member_inline_size =
18204 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18205 if inlined != (member_inline_size <= 4) {
18206 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18207 }
18208 let inner_offset;
18209 let mut inner_depth = depth.clone();
18210 if inlined {
18211 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18212 inner_offset = next_offset;
18213 } else {
18214 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18215 inner_depth.increment()?;
18216 }
18217 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18218 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18219 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18220 {
18221 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18222 }
18223 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18224 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18225 }
18226 }
18227
18228 next_offset += envelope_size;
18229 _next_ordinal_to_read += 1;
18230 if next_offset >= end_offset {
18231 return Ok(());
18232 }
18233
18234 while _next_ordinal_to_read < 4 {
18236 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18237 _next_ordinal_to_read += 1;
18238 next_offset += envelope_size;
18239 }
18240
18241 let next_out_of_line = decoder.next_out_of_line();
18242 let handles_before = decoder.remaining_handles();
18243 if let Some((inlined, num_bytes, num_handles)) =
18244 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18245 {
18246 let member_inline_size =
18247 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18248 decoder.context,
18249 );
18250 if inlined != (member_inline_size <= 4) {
18251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18252 }
18253 let inner_offset;
18254 let mut inner_depth = depth.clone();
18255 if inlined {
18256 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18257 inner_offset = next_offset;
18258 } else {
18259 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18260 inner_depth.increment()?;
18261 }
18262 let val_ref = self
18263 .target_name
18264 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18265 fidl::decode!(
18266 fidl::encoding::BoundedString<100>,
18267 D,
18268 val_ref,
18269 decoder,
18270 inner_offset,
18271 inner_depth
18272 )?;
18273 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18274 {
18275 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18276 }
18277 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18278 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18279 }
18280 }
18281
18282 next_offset += envelope_size;
18283 _next_ordinal_to_read += 1;
18284 if next_offset >= end_offset {
18285 return Ok(());
18286 }
18287
18288 while _next_ordinal_to_read < 5 {
18290 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18291 _next_ordinal_to_read += 1;
18292 next_offset += envelope_size;
18293 }
18294
18295 let next_out_of_line = decoder.next_out_of_line();
18296 let handles_before = decoder.remaining_handles();
18297 if let Some((inlined, num_bytes, num_handles)) =
18298 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18299 {
18300 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18301 if inlined != (member_inline_size <= 4) {
18302 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18303 }
18304 let inner_offset;
18305 let mut inner_depth = depth.clone();
18306 if inlined {
18307 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18308 inner_offset = next_offset;
18309 } else {
18310 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18311 inner_depth.increment()?;
18312 }
18313 let val_ref = self.source_dictionary.get_or_insert_with(|| {
18314 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
18315 });
18316 fidl::decode!(
18317 fidl::encoding::BoundedString<1024>,
18318 D,
18319 val_ref,
18320 decoder,
18321 inner_offset,
18322 inner_depth
18323 )?;
18324 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18325 {
18326 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18327 }
18328 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18329 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18330 }
18331 }
18332
18333 next_offset += envelope_size;
18334
18335 while next_offset < end_offset {
18337 _next_ordinal_to_read += 1;
18338 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18339 next_offset += envelope_size;
18340 }
18341
18342 Ok(())
18343 }
18344 }
18345
18346 impl OfferService {
18347 #[inline(always)]
18348 fn max_ordinal_present(&self) -> u64 {
18349 if let Some(_) = self.dependency_type {
18350 return 9;
18351 }
18352 if let Some(_) = self.source_dictionary {
18353 return 8;
18354 }
18355 if let Some(_) = self.availability {
18356 return 7;
18357 }
18358 if let Some(_) = self.renamed_instances {
18359 return 6;
18360 }
18361 if let Some(_) = self.source_instance_filter {
18362 return 5;
18363 }
18364 if let Some(_) = self.target_name {
18365 return 4;
18366 }
18367 if let Some(_) = self.target {
18368 return 3;
18369 }
18370 if let Some(_) = self.source_name {
18371 return 2;
18372 }
18373 if let Some(_) = self.source {
18374 return 1;
18375 }
18376 0
18377 }
18378 }
18379
18380 impl fidl::encoding::ValueTypeMarker for OfferService {
18381 type Borrowed<'a> = &'a Self;
18382 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18383 value
18384 }
18385 }
18386
18387 unsafe impl fidl::encoding::TypeMarker for OfferService {
18388 type Owned = Self;
18389
18390 #[inline(always)]
18391 fn inline_align(_context: fidl::encoding::Context) -> usize {
18392 8
18393 }
18394
18395 #[inline(always)]
18396 fn inline_size(_context: fidl::encoding::Context) -> usize {
18397 16
18398 }
18399 }
18400
18401 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferService, D>
18402 for &OfferService
18403 {
18404 unsafe fn encode(
18405 self,
18406 encoder: &mut fidl::encoding::Encoder<'_, D>,
18407 offset: usize,
18408 mut depth: fidl::encoding::Depth,
18409 ) -> fidl::Result<()> {
18410 encoder.debug_check_bounds::<OfferService>(offset);
18411 let max_ordinal: u64 = self.max_ordinal_present();
18413 encoder.write_num(max_ordinal, offset);
18414 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18415 if max_ordinal == 0 {
18417 return Ok(());
18418 }
18419 depth.increment()?;
18420 let envelope_size = 8;
18421 let bytes_len = max_ordinal as usize * envelope_size;
18422 #[allow(unused_variables)]
18423 let offset = encoder.out_of_line_offset(bytes_len);
18424 let mut _prev_end_offset: usize = 0;
18425 if 1 > max_ordinal {
18426 return Ok(());
18427 }
18428
18429 let cur_offset: usize = (1 - 1) * envelope_size;
18432
18433 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18435
18436 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18441 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18442 encoder,
18443 offset + cur_offset,
18444 depth,
18445 )?;
18446
18447 _prev_end_offset = cur_offset + envelope_size;
18448 if 2 > max_ordinal {
18449 return Ok(());
18450 }
18451
18452 let cur_offset: usize = (2 - 1) * envelope_size;
18455
18456 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18458
18459 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
18464 self.source_name.as_ref().map(
18465 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18466 ),
18467 encoder,
18468 offset + cur_offset,
18469 depth,
18470 )?;
18471
18472 _prev_end_offset = cur_offset + envelope_size;
18473 if 3 > max_ordinal {
18474 return Ok(());
18475 }
18476
18477 let cur_offset: usize = (3 - 1) * envelope_size;
18480
18481 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18483
18484 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18489 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18490 encoder,
18491 offset + cur_offset,
18492 depth,
18493 )?;
18494
18495 _prev_end_offset = cur_offset + envelope_size;
18496 if 4 > max_ordinal {
18497 return Ok(());
18498 }
18499
18500 let cur_offset: usize = (4 - 1) * envelope_size;
18503
18504 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18506
18507 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
18512 self.target_name.as_ref().map(
18513 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18514 ),
18515 encoder,
18516 offset + cur_offset,
18517 depth,
18518 )?;
18519
18520 _prev_end_offset = cur_offset + envelope_size;
18521 if 5 > max_ordinal {
18522 return Ok(());
18523 }
18524
18525 let cur_offset: usize = (5 - 1) * envelope_size;
18528
18529 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18531
18532 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>>, D>(
18537 self.source_instance_filter.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>> as fidl::encoding::ValueTypeMarker>::borrow),
18538 encoder, offset + cur_offset, depth
18539 )?;
18540
18541 _prev_end_offset = cur_offset + envelope_size;
18542 if 6 > max_ordinal {
18543 return Ok(());
18544 }
18545
18546 let cur_offset: usize = (6 - 1) * envelope_size;
18549
18550 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18552
18553 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<NameMapping>, D>(
18558 self.renamed_instances.as_ref().map(<fidl::encoding::UnboundedVector<NameMapping> as fidl::encoding::ValueTypeMarker>::borrow),
18559 encoder, offset + cur_offset, depth
18560 )?;
18561
18562 _prev_end_offset = cur_offset + envelope_size;
18563 if 7 > max_ordinal {
18564 return Ok(());
18565 }
18566
18567 let cur_offset: usize = (7 - 1) * envelope_size;
18570
18571 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18573
18574 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
18579 self.availability
18580 .as_ref()
18581 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
18582 encoder,
18583 offset + cur_offset,
18584 depth,
18585 )?;
18586
18587 _prev_end_offset = cur_offset + envelope_size;
18588 if 8 > max_ordinal {
18589 return Ok(());
18590 }
18591
18592 let cur_offset: usize = (8 - 1) * envelope_size;
18595
18596 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18598
18599 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
18604 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
18605 encoder, offset + cur_offset, depth
18606 )?;
18607
18608 _prev_end_offset = cur_offset + envelope_size;
18609 if 9 > max_ordinal {
18610 return Ok(());
18611 }
18612
18613 let cur_offset: usize = (9 - 1) * envelope_size;
18616
18617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18619
18620 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
18625 self.dependency_type
18626 .as_ref()
18627 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
18628 encoder,
18629 offset + cur_offset,
18630 depth,
18631 )?;
18632
18633 _prev_end_offset = cur_offset + envelope_size;
18634
18635 Ok(())
18636 }
18637 }
18638
18639 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferService {
18640 #[inline(always)]
18641 fn new_empty() -> Self {
18642 Self::default()
18643 }
18644
18645 unsafe fn decode(
18646 &mut self,
18647 decoder: &mut fidl::encoding::Decoder<'_, D>,
18648 offset: usize,
18649 mut depth: fidl::encoding::Depth,
18650 ) -> fidl::Result<()> {
18651 decoder.debug_check_bounds::<Self>(offset);
18652 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18653 None => return Err(fidl::Error::NotNullable),
18654 Some(len) => len,
18655 };
18656 if len == 0 {
18658 return Ok(());
18659 };
18660 depth.increment()?;
18661 let envelope_size = 8;
18662 let bytes_len = len * envelope_size;
18663 let offset = decoder.out_of_line_offset(bytes_len)?;
18664 let mut _next_ordinal_to_read = 0;
18666 let mut next_offset = offset;
18667 let end_offset = offset + bytes_len;
18668 _next_ordinal_to_read += 1;
18669 if next_offset >= end_offset {
18670 return Ok(());
18671 }
18672
18673 while _next_ordinal_to_read < 1 {
18675 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18676 _next_ordinal_to_read += 1;
18677 next_offset += envelope_size;
18678 }
18679
18680 let next_out_of_line = decoder.next_out_of_line();
18681 let handles_before = decoder.remaining_handles();
18682 if let Some((inlined, num_bytes, num_handles)) =
18683 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18684 {
18685 let member_inline_size =
18686 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18687 if inlined != (member_inline_size <= 4) {
18688 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18689 }
18690 let inner_offset;
18691 let mut inner_depth = depth.clone();
18692 if inlined {
18693 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18694 inner_offset = next_offset;
18695 } else {
18696 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18697 inner_depth.increment()?;
18698 }
18699 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18700 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18701 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18702 {
18703 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18704 }
18705 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18706 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18707 }
18708 }
18709
18710 next_offset += envelope_size;
18711 _next_ordinal_to_read += 1;
18712 if next_offset >= end_offset {
18713 return Ok(());
18714 }
18715
18716 while _next_ordinal_to_read < 2 {
18718 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18719 _next_ordinal_to_read += 1;
18720 next_offset += envelope_size;
18721 }
18722
18723 let next_out_of_line = decoder.next_out_of_line();
18724 let handles_before = decoder.remaining_handles();
18725 if let Some((inlined, num_bytes, num_handles)) =
18726 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18727 {
18728 let member_inline_size =
18729 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18730 decoder.context,
18731 );
18732 if inlined != (member_inline_size <= 4) {
18733 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18734 }
18735 let inner_offset;
18736 let mut inner_depth = depth.clone();
18737 if inlined {
18738 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18739 inner_offset = next_offset;
18740 } else {
18741 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18742 inner_depth.increment()?;
18743 }
18744 let val_ref = self
18745 .source_name
18746 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18747 fidl::decode!(
18748 fidl::encoding::BoundedString<100>,
18749 D,
18750 val_ref,
18751 decoder,
18752 inner_offset,
18753 inner_depth
18754 )?;
18755 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18756 {
18757 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18758 }
18759 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18760 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18761 }
18762 }
18763
18764 next_offset += envelope_size;
18765 _next_ordinal_to_read += 1;
18766 if next_offset >= end_offset {
18767 return Ok(());
18768 }
18769
18770 while _next_ordinal_to_read < 3 {
18772 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18773 _next_ordinal_to_read += 1;
18774 next_offset += envelope_size;
18775 }
18776
18777 let next_out_of_line = decoder.next_out_of_line();
18778 let handles_before = decoder.remaining_handles();
18779 if let Some((inlined, num_bytes, num_handles)) =
18780 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18781 {
18782 let member_inline_size =
18783 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18784 if inlined != (member_inline_size <= 4) {
18785 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18786 }
18787 let inner_offset;
18788 let mut inner_depth = depth.clone();
18789 if inlined {
18790 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18791 inner_offset = next_offset;
18792 } else {
18793 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18794 inner_depth.increment()?;
18795 }
18796 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18797 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18798 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18799 {
18800 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18801 }
18802 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18803 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18804 }
18805 }
18806
18807 next_offset += envelope_size;
18808 _next_ordinal_to_read += 1;
18809 if next_offset >= end_offset {
18810 return Ok(());
18811 }
18812
18813 while _next_ordinal_to_read < 4 {
18815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18816 _next_ordinal_to_read += 1;
18817 next_offset += envelope_size;
18818 }
18819
18820 let next_out_of_line = decoder.next_out_of_line();
18821 let handles_before = decoder.remaining_handles();
18822 if let Some((inlined, num_bytes, num_handles)) =
18823 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18824 {
18825 let member_inline_size =
18826 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18827 decoder.context,
18828 );
18829 if inlined != (member_inline_size <= 4) {
18830 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18831 }
18832 let inner_offset;
18833 let mut inner_depth = depth.clone();
18834 if inlined {
18835 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18836 inner_offset = next_offset;
18837 } else {
18838 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18839 inner_depth.increment()?;
18840 }
18841 let val_ref = self
18842 .target_name
18843 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18844 fidl::decode!(
18845 fidl::encoding::BoundedString<100>,
18846 D,
18847 val_ref,
18848 decoder,
18849 inner_offset,
18850 inner_depth
18851 )?;
18852 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18853 {
18854 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18855 }
18856 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18857 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18858 }
18859 }
18860
18861 next_offset += envelope_size;
18862 _next_ordinal_to_read += 1;
18863 if next_offset >= end_offset {
18864 return Ok(());
18865 }
18866
18867 while _next_ordinal_to_read < 5 {
18869 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18870 _next_ordinal_to_read += 1;
18871 next_offset += envelope_size;
18872 }
18873
18874 let next_out_of_line = decoder.next_out_of_line();
18875 let handles_before = decoder.remaining_handles();
18876 if let Some((inlined, num_bytes, num_handles)) =
18877 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18878 {
18879 let member_inline_size = <fidl::encoding::UnboundedVector<
18880 fidl::encoding::BoundedString<100>,
18881 > as fidl::encoding::TypeMarker>::inline_size(
18882 decoder.context
18883 );
18884 if inlined != (member_inline_size <= 4) {
18885 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18886 }
18887 let inner_offset;
18888 let mut inner_depth = depth.clone();
18889 if inlined {
18890 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18891 inner_offset = next_offset;
18892 } else {
18893 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18894 inner_depth.increment()?;
18895 }
18896 let val_ref = self.source_instance_filter.get_or_insert_with(|| {
18897 fidl::new_empty!(
18898 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>>,
18899 D
18900 )
18901 });
18902 fidl::decode!(
18903 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>>,
18904 D,
18905 val_ref,
18906 decoder,
18907 inner_offset,
18908 inner_depth
18909 )?;
18910 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18911 {
18912 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18913 }
18914 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18915 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18916 }
18917 }
18918
18919 next_offset += envelope_size;
18920 _next_ordinal_to_read += 1;
18921 if next_offset >= end_offset {
18922 return Ok(());
18923 }
18924
18925 while _next_ordinal_to_read < 6 {
18927 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18928 _next_ordinal_to_read += 1;
18929 next_offset += envelope_size;
18930 }
18931
18932 let next_out_of_line = decoder.next_out_of_line();
18933 let handles_before = decoder.remaining_handles();
18934 if let Some((inlined, num_bytes, num_handles)) =
18935 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18936 {
18937 let member_inline_size = <fidl::encoding::UnboundedVector<NameMapping> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18938 if inlined != (member_inline_size <= 4) {
18939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18940 }
18941 let inner_offset;
18942 let mut inner_depth = depth.clone();
18943 if inlined {
18944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18945 inner_offset = next_offset;
18946 } else {
18947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18948 inner_depth.increment()?;
18949 }
18950 let val_ref = self.renamed_instances.get_or_insert_with(|| {
18951 fidl::new_empty!(fidl::encoding::UnboundedVector<NameMapping>, D)
18952 });
18953 fidl::decode!(
18954 fidl::encoding::UnboundedVector<NameMapping>,
18955 D,
18956 val_ref,
18957 decoder,
18958 inner_offset,
18959 inner_depth
18960 )?;
18961 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18962 {
18963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18964 }
18965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18967 }
18968 }
18969
18970 next_offset += envelope_size;
18971 _next_ordinal_to_read += 1;
18972 if next_offset >= end_offset {
18973 return Ok(());
18974 }
18975
18976 while _next_ordinal_to_read < 7 {
18978 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18979 _next_ordinal_to_read += 1;
18980 next_offset += envelope_size;
18981 }
18982
18983 let next_out_of_line = decoder.next_out_of_line();
18984 let handles_before = decoder.remaining_handles();
18985 if let Some((inlined, num_bytes, num_handles)) =
18986 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18987 {
18988 let member_inline_size =
18989 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18990 if inlined != (member_inline_size <= 4) {
18991 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18992 }
18993 let inner_offset;
18994 let mut inner_depth = depth.clone();
18995 if inlined {
18996 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18997 inner_offset = next_offset;
18998 } else {
18999 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19000 inner_depth.increment()?;
19001 }
19002 let val_ref =
19003 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
19004 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
19005 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19006 {
19007 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19008 }
19009 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19010 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19011 }
19012 }
19013
19014 next_offset += envelope_size;
19015 _next_ordinal_to_read += 1;
19016 if next_offset >= end_offset {
19017 return Ok(());
19018 }
19019
19020 while _next_ordinal_to_read < 8 {
19022 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19023 _next_ordinal_to_read += 1;
19024 next_offset += envelope_size;
19025 }
19026
19027 let next_out_of_line = decoder.next_out_of_line();
19028 let handles_before = decoder.remaining_handles();
19029 if let Some((inlined, num_bytes, num_handles)) =
19030 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19031 {
19032 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19033 if inlined != (member_inline_size <= 4) {
19034 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19035 }
19036 let inner_offset;
19037 let mut inner_depth = depth.clone();
19038 if inlined {
19039 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19040 inner_offset = next_offset;
19041 } else {
19042 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19043 inner_depth.increment()?;
19044 }
19045 let val_ref = self.source_dictionary.get_or_insert_with(|| {
19046 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
19047 });
19048 fidl::decode!(
19049 fidl::encoding::BoundedString<1024>,
19050 D,
19051 val_ref,
19052 decoder,
19053 inner_offset,
19054 inner_depth
19055 )?;
19056 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19057 {
19058 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19059 }
19060 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19061 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19062 }
19063 }
19064
19065 next_offset += envelope_size;
19066 _next_ordinal_to_read += 1;
19067 if next_offset >= end_offset {
19068 return Ok(());
19069 }
19070
19071 while _next_ordinal_to_read < 9 {
19073 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19074 _next_ordinal_to_read += 1;
19075 next_offset += envelope_size;
19076 }
19077
19078 let next_out_of_line = decoder.next_out_of_line();
19079 let handles_before = decoder.remaining_handles();
19080 if let Some((inlined, num_bytes, num_handles)) =
19081 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19082 {
19083 let member_inline_size =
19084 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19085 if inlined != (member_inline_size <= 4) {
19086 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19087 }
19088 let inner_offset;
19089 let mut inner_depth = depth.clone();
19090 if inlined {
19091 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19092 inner_offset = next_offset;
19093 } else {
19094 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19095 inner_depth.increment()?;
19096 }
19097 let val_ref =
19098 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
19099 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
19100 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19101 {
19102 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19103 }
19104 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19105 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19106 }
19107 }
19108
19109 next_offset += envelope_size;
19110
19111 while next_offset < end_offset {
19113 _next_ordinal_to_read += 1;
19114 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19115 next_offset += envelope_size;
19116 }
19117
19118 Ok(())
19119 }
19120 }
19121
19122 impl OfferStorage {
19123 #[inline(always)]
19124 fn max_ordinal_present(&self) -> u64 {
19125 if let Some(_) = self.availability {
19126 return 5;
19127 }
19128 if let Some(_) = self.target_name {
19129 return 4;
19130 }
19131 if let Some(_) = self.target {
19132 return 3;
19133 }
19134 if let Some(_) = self.source {
19135 return 2;
19136 }
19137 if let Some(_) = self.source_name {
19138 return 1;
19139 }
19140 0
19141 }
19142 }
19143
19144 impl fidl::encoding::ValueTypeMarker for OfferStorage {
19145 type Borrowed<'a> = &'a Self;
19146 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19147 value
19148 }
19149 }
19150
19151 unsafe impl fidl::encoding::TypeMarker for OfferStorage {
19152 type Owned = Self;
19153
19154 #[inline(always)]
19155 fn inline_align(_context: fidl::encoding::Context) -> usize {
19156 8
19157 }
19158
19159 #[inline(always)]
19160 fn inline_size(_context: fidl::encoding::Context) -> usize {
19161 16
19162 }
19163 }
19164
19165 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferStorage, D>
19166 for &OfferStorage
19167 {
19168 unsafe fn encode(
19169 self,
19170 encoder: &mut fidl::encoding::Encoder<'_, D>,
19171 offset: usize,
19172 mut depth: fidl::encoding::Depth,
19173 ) -> fidl::Result<()> {
19174 encoder.debug_check_bounds::<OfferStorage>(offset);
19175 let max_ordinal: u64 = self.max_ordinal_present();
19177 encoder.write_num(max_ordinal, offset);
19178 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19179 if max_ordinal == 0 {
19181 return Ok(());
19182 }
19183 depth.increment()?;
19184 let envelope_size = 8;
19185 let bytes_len = max_ordinal as usize * envelope_size;
19186 #[allow(unused_variables)]
19187 let offset = encoder.out_of_line_offset(bytes_len);
19188 let mut _prev_end_offset: usize = 0;
19189 if 1 > max_ordinal {
19190 return Ok(());
19191 }
19192
19193 let cur_offset: usize = (1 - 1) * envelope_size;
19196
19197 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19199
19200 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19205 self.source_name.as_ref().map(
19206 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19207 ),
19208 encoder,
19209 offset + cur_offset,
19210 depth,
19211 )?;
19212
19213 _prev_end_offset = cur_offset + envelope_size;
19214 if 2 > max_ordinal {
19215 return Ok(());
19216 }
19217
19218 let cur_offset: usize = (2 - 1) * envelope_size;
19221
19222 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19224
19225 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
19230 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
19231 encoder,
19232 offset + cur_offset,
19233 depth,
19234 )?;
19235
19236 _prev_end_offset = cur_offset + envelope_size;
19237 if 3 > max_ordinal {
19238 return Ok(());
19239 }
19240
19241 let cur_offset: usize = (3 - 1) * envelope_size;
19244
19245 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19247
19248 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
19253 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
19254 encoder,
19255 offset + cur_offset,
19256 depth,
19257 )?;
19258
19259 _prev_end_offset = cur_offset + envelope_size;
19260 if 4 > max_ordinal {
19261 return Ok(());
19262 }
19263
19264 let cur_offset: usize = (4 - 1) * envelope_size;
19267
19268 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19270
19271 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19276 self.target_name.as_ref().map(
19277 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19278 ),
19279 encoder,
19280 offset + cur_offset,
19281 depth,
19282 )?;
19283
19284 _prev_end_offset = cur_offset + envelope_size;
19285 if 5 > max_ordinal {
19286 return Ok(());
19287 }
19288
19289 let cur_offset: usize = (5 - 1) * envelope_size;
19292
19293 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19295
19296 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
19301 self.availability
19302 .as_ref()
19303 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
19304 encoder,
19305 offset + cur_offset,
19306 depth,
19307 )?;
19308
19309 _prev_end_offset = cur_offset + envelope_size;
19310
19311 Ok(())
19312 }
19313 }
19314
19315 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferStorage {
19316 #[inline(always)]
19317 fn new_empty() -> Self {
19318 Self::default()
19319 }
19320
19321 unsafe fn decode(
19322 &mut self,
19323 decoder: &mut fidl::encoding::Decoder<'_, D>,
19324 offset: usize,
19325 mut depth: fidl::encoding::Depth,
19326 ) -> fidl::Result<()> {
19327 decoder.debug_check_bounds::<Self>(offset);
19328 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19329 None => return Err(fidl::Error::NotNullable),
19330 Some(len) => len,
19331 };
19332 if len == 0 {
19334 return Ok(());
19335 };
19336 depth.increment()?;
19337 let envelope_size = 8;
19338 let bytes_len = len * envelope_size;
19339 let offset = decoder.out_of_line_offset(bytes_len)?;
19340 let mut _next_ordinal_to_read = 0;
19342 let mut next_offset = offset;
19343 let end_offset = offset + bytes_len;
19344 _next_ordinal_to_read += 1;
19345 if next_offset >= end_offset {
19346 return Ok(());
19347 }
19348
19349 while _next_ordinal_to_read < 1 {
19351 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19352 _next_ordinal_to_read += 1;
19353 next_offset += envelope_size;
19354 }
19355
19356 let next_out_of_line = decoder.next_out_of_line();
19357 let handles_before = decoder.remaining_handles();
19358 if let Some((inlined, num_bytes, num_handles)) =
19359 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19360 {
19361 let member_inline_size =
19362 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19363 decoder.context,
19364 );
19365 if inlined != (member_inline_size <= 4) {
19366 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19367 }
19368 let inner_offset;
19369 let mut inner_depth = depth.clone();
19370 if inlined {
19371 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19372 inner_offset = next_offset;
19373 } else {
19374 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19375 inner_depth.increment()?;
19376 }
19377 let val_ref = self
19378 .source_name
19379 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19380 fidl::decode!(
19381 fidl::encoding::BoundedString<100>,
19382 D,
19383 val_ref,
19384 decoder,
19385 inner_offset,
19386 inner_depth
19387 )?;
19388 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19389 {
19390 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19391 }
19392 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19393 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19394 }
19395 }
19396
19397 next_offset += envelope_size;
19398 _next_ordinal_to_read += 1;
19399 if next_offset >= end_offset {
19400 return Ok(());
19401 }
19402
19403 while _next_ordinal_to_read < 2 {
19405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19406 _next_ordinal_to_read += 1;
19407 next_offset += envelope_size;
19408 }
19409
19410 let next_out_of_line = decoder.next_out_of_line();
19411 let handles_before = decoder.remaining_handles();
19412 if let Some((inlined, num_bytes, num_handles)) =
19413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19414 {
19415 let member_inline_size =
19416 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19417 if inlined != (member_inline_size <= 4) {
19418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19419 }
19420 let inner_offset;
19421 let mut inner_depth = depth.clone();
19422 if inlined {
19423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19424 inner_offset = next_offset;
19425 } else {
19426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19427 inner_depth.increment()?;
19428 }
19429 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
19430 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
19431 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19432 {
19433 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19434 }
19435 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19436 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19437 }
19438 }
19439
19440 next_offset += envelope_size;
19441 _next_ordinal_to_read += 1;
19442 if next_offset >= end_offset {
19443 return Ok(());
19444 }
19445
19446 while _next_ordinal_to_read < 3 {
19448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19449 _next_ordinal_to_read += 1;
19450 next_offset += envelope_size;
19451 }
19452
19453 let next_out_of_line = decoder.next_out_of_line();
19454 let handles_before = decoder.remaining_handles();
19455 if let Some((inlined, num_bytes, num_handles)) =
19456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19457 {
19458 let member_inline_size =
19459 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19460 if inlined != (member_inline_size <= 4) {
19461 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19462 }
19463 let inner_offset;
19464 let mut inner_depth = depth.clone();
19465 if inlined {
19466 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19467 inner_offset = next_offset;
19468 } else {
19469 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19470 inner_depth.increment()?;
19471 }
19472 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
19473 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
19474 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19475 {
19476 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19477 }
19478 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19479 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19480 }
19481 }
19482
19483 next_offset += envelope_size;
19484 _next_ordinal_to_read += 1;
19485 if next_offset >= end_offset {
19486 return Ok(());
19487 }
19488
19489 while _next_ordinal_to_read < 4 {
19491 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19492 _next_ordinal_to_read += 1;
19493 next_offset += envelope_size;
19494 }
19495
19496 let next_out_of_line = decoder.next_out_of_line();
19497 let handles_before = decoder.remaining_handles();
19498 if let Some((inlined, num_bytes, num_handles)) =
19499 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19500 {
19501 let member_inline_size =
19502 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19503 decoder.context,
19504 );
19505 if inlined != (member_inline_size <= 4) {
19506 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19507 }
19508 let inner_offset;
19509 let mut inner_depth = depth.clone();
19510 if inlined {
19511 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19512 inner_offset = next_offset;
19513 } else {
19514 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19515 inner_depth.increment()?;
19516 }
19517 let val_ref = self
19518 .target_name
19519 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19520 fidl::decode!(
19521 fidl::encoding::BoundedString<100>,
19522 D,
19523 val_ref,
19524 decoder,
19525 inner_offset,
19526 inner_depth
19527 )?;
19528 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19529 {
19530 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19531 }
19532 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19533 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19534 }
19535 }
19536
19537 next_offset += envelope_size;
19538 _next_ordinal_to_read += 1;
19539 if next_offset >= end_offset {
19540 return Ok(());
19541 }
19542
19543 while _next_ordinal_to_read < 5 {
19545 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19546 _next_ordinal_to_read += 1;
19547 next_offset += envelope_size;
19548 }
19549
19550 let next_out_of_line = decoder.next_out_of_line();
19551 let handles_before = decoder.remaining_handles();
19552 if let Some((inlined, num_bytes, num_handles)) =
19553 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19554 {
19555 let member_inline_size =
19556 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19557 if inlined != (member_inline_size <= 4) {
19558 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19559 }
19560 let inner_offset;
19561 let mut inner_depth = depth.clone();
19562 if inlined {
19563 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19564 inner_offset = next_offset;
19565 } else {
19566 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19567 inner_depth.increment()?;
19568 }
19569 let val_ref =
19570 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
19571 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
19572 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19573 {
19574 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19575 }
19576 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19577 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19578 }
19579 }
19580
19581 next_offset += envelope_size;
19582
19583 while next_offset < end_offset {
19585 _next_ordinal_to_read += 1;
19586 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19587 next_offset += envelope_size;
19588 }
19589
19590 Ok(())
19591 }
19592 }
19593
19594 impl Program {
19595 #[inline(always)]
19596 fn max_ordinal_present(&self) -> u64 {
19597 if let Some(_) = self.info {
19598 return 2;
19599 }
19600 if let Some(_) = self.runner {
19601 return 1;
19602 }
19603 0
19604 }
19605 }
19606
19607 impl fidl::encoding::ValueTypeMarker for Program {
19608 type Borrowed<'a> = &'a Self;
19609 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19610 value
19611 }
19612 }
19613
19614 unsafe impl fidl::encoding::TypeMarker for Program {
19615 type Owned = Self;
19616
19617 #[inline(always)]
19618 fn inline_align(_context: fidl::encoding::Context) -> usize {
19619 8
19620 }
19621
19622 #[inline(always)]
19623 fn inline_size(_context: fidl::encoding::Context) -> usize {
19624 16
19625 }
19626 }
19627
19628 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Program, D> for &Program {
19629 unsafe fn encode(
19630 self,
19631 encoder: &mut fidl::encoding::Encoder<'_, D>,
19632 offset: usize,
19633 mut depth: fidl::encoding::Depth,
19634 ) -> fidl::Result<()> {
19635 encoder.debug_check_bounds::<Program>(offset);
19636 let max_ordinal: u64 = self.max_ordinal_present();
19638 encoder.write_num(max_ordinal, offset);
19639 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19640 if max_ordinal == 0 {
19642 return Ok(());
19643 }
19644 depth.increment()?;
19645 let envelope_size = 8;
19646 let bytes_len = max_ordinal as usize * envelope_size;
19647 #[allow(unused_variables)]
19648 let offset = encoder.out_of_line_offset(bytes_len);
19649 let mut _prev_end_offset: usize = 0;
19650 if 1 > max_ordinal {
19651 return Ok(());
19652 }
19653
19654 let cur_offset: usize = (1 - 1) * envelope_size;
19657
19658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19660
19661 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19666 self.runner.as_ref().map(
19667 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19668 ),
19669 encoder,
19670 offset + cur_offset,
19671 depth,
19672 )?;
19673
19674 _prev_end_offset = cur_offset + envelope_size;
19675 if 2 > max_ordinal {
19676 return Ok(());
19677 }
19678
19679 let cur_offset: usize = (2 - 1) * envelope_size;
19682
19683 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19685
19686 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data__common::Dictionary, D>(
19691 self.info.as_ref().map(<fidl_fuchsia_data__common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
19692 encoder, offset + cur_offset, depth
19693 )?;
19694
19695 _prev_end_offset = cur_offset + envelope_size;
19696
19697 Ok(())
19698 }
19699 }
19700
19701 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Program {
19702 #[inline(always)]
19703 fn new_empty() -> Self {
19704 Self::default()
19705 }
19706
19707 unsafe fn decode(
19708 &mut self,
19709 decoder: &mut fidl::encoding::Decoder<'_, D>,
19710 offset: usize,
19711 mut depth: fidl::encoding::Depth,
19712 ) -> fidl::Result<()> {
19713 decoder.debug_check_bounds::<Self>(offset);
19714 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19715 None => return Err(fidl::Error::NotNullable),
19716 Some(len) => len,
19717 };
19718 if len == 0 {
19720 return Ok(());
19721 };
19722 depth.increment()?;
19723 let envelope_size = 8;
19724 let bytes_len = len * envelope_size;
19725 let offset = decoder.out_of_line_offset(bytes_len)?;
19726 let mut _next_ordinal_to_read = 0;
19728 let mut next_offset = offset;
19729 let end_offset = offset + bytes_len;
19730 _next_ordinal_to_read += 1;
19731 if next_offset >= end_offset {
19732 return Ok(());
19733 }
19734
19735 while _next_ordinal_to_read < 1 {
19737 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19738 _next_ordinal_to_read += 1;
19739 next_offset += envelope_size;
19740 }
19741
19742 let next_out_of_line = decoder.next_out_of_line();
19743 let handles_before = decoder.remaining_handles();
19744 if let Some((inlined, num_bytes, num_handles)) =
19745 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19746 {
19747 let member_inline_size =
19748 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19749 decoder.context,
19750 );
19751 if inlined != (member_inline_size <= 4) {
19752 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19753 }
19754 let inner_offset;
19755 let mut inner_depth = depth.clone();
19756 if inlined {
19757 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19758 inner_offset = next_offset;
19759 } else {
19760 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19761 inner_depth.increment()?;
19762 }
19763 let val_ref = self
19764 .runner
19765 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19766 fidl::decode!(
19767 fidl::encoding::BoundedString<100>,
19768 D,
19769 val_ref,
19770 decoder,
19771 inner_offset,
19772 inner_depth
19773 )?;
19774 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19775 {
19776 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19777 }
19778 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19779 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19780 }
19781 }
19782
19783 next_offset += envelope_size;
19784 _next_ordinal_to_read += 1;
19785 if next_offset >= end_offset {
19786 return Ok(());
19787 }
19788
19789 while _next_ordinal_to_read < 2 {
19791 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19792 _next_ordinal_to_read += 1;
19793 next_offset += envelope_size;
19794 }
19795
19796 let next_out_of_line = decoder.next_out_of_line();
19797 let handles_before = decoder.remaining_handles();
19798 if let Some((inlined, num_bytes, num_handles)) =
19799 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19800 {
19801 let member_inline_size = <fidl_fuchsia_data__common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19802 if inlined != (member_inline_size <= 4) {
19803 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19804 }
19805 let inner_offset;
19806 let mut inner_depth = depth.clone();
19807 if inlined {
19808 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19809 inner_offset = next_offset;
19810 } else {
19811 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19812 inner_depth.increment()?;
19813 }
19814 let val_ref = self.info.get_or_insert_with(|| {
19815 fidl::new_empty!(fidl_fuchsia_data__common::Dictionary, D)
19816 });
19817 fidl::decode!(
19818 fidl_fuchsia_data__common::Dictionary,
19819 D,
19820 val_ref,
19821 decoder,
19822 inner_offset,
19823 inner_depth
19824 )?;
19825 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19826 {
19827 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19828 }
19829 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19830 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19831 }
19832 }
19833
19834 next_offset += envelope_size;
19835
19836 while next_offset < end_offset {
19838 _next_ordinal_to_read += 1;
19839 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19840 next_offset += envelope_size;
19841 }
19842
19843 Ok(())
19844 }
19845 }
19846
19847 impl Protocol {
19848 #[inline(always)]
19849 fn max_ordinal_present(&self) -> u64 {
19850 if let Some(_) = self.delivery {
19851 return 3;
19852 }
19853 if let Some(_) = self.source_path {
19854 return 2;
19855 }
19856 if let Some(_) = self.name {
19857 return 1;
19858 }
19859 0
19860 }
19861 }
19862
19863 impl fidl::encoding::ValueTypeMarker for Protocol {
19864 type Borrowed<'a> = &'a Self;
19865 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19866 value
19867 }
19868 }
19869
19870 unsafe impl fidl::encoding::TypeMarker for Protocol {
19871 type Owned = Self;
19872
19873 #[inline(always)]
19874 fn inline_align(_context: fidl::encoding::Context) -> usize {
19875 8
19876 }
19877
19878 #[inline(always)]
19879 fn inline_size(_context: fidl::encoding::Context) -> usize {
19880 16
19881 }
19882 }
19883
19884 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Protocol, D> for &Protocol {
19885 unsafe fn encode(
19886 self,
19887 encoder: &mut fidl::encoding::Encoder<'_, D>,
19888 offset: usize,
19889 mut depth: fidl::encoding::Depth,
19890 ) -> fidl::Result<()> {
19891 encoder.debug_check_bounds::<Protocol>(offset);
19892 let max_ordinal: u64 = self.max_ordinal_present();
19894 encoder.write_num(max_ordinal, offset);
19895 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19896 if max_ordinal == 0 {
19898 return Ok(());
19899 }
19900 depth.increment()?;
19901 let envelope_size = 8;
19902 let bytes_len = max_ordinal as usize * envelope_size;
19903 #[allow(unused_variables)]
19904 let offset = encoder.out_of_line_offset(bytes_len);
19905 let mut _prev_end_offset: usize = 0;
19906 if 1 > max_ordinal {
19907 return Ok(());
19908 }
19909
19910 let cur_offset: usize = (1 - 1) * envelope_size;
19913
19914 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19916
19917 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19922 self.name.as_ref().map(
19923 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19924 ),
19925 encoder,
19926 offset + cur_offset,
19927 depth,
19928 )?;
19929
19930 _prev_end_offset = cur_offset + envelope_size;
19931 if 2 > max_ordinal {
19932 return Ok(());
19933 }
19934
19935 let cur_offset: usize = (2 - 1) * envelope_size;
19938
19939 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19941
19942 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
19947 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
19948 encoder, offset + cur_offset, depth
19949 )?;
19950
19951 _prev_end_offset = cur_offset + envelope_size;
19952 if 3 > max_ordinal {
19953 return Ok(());
19954 }
19955
19956 let cur_offset: usize = (3 - 1) * envelope_size;
19959
19960 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19962
19963 fidl::encoding::encode_in_envelope_optional::<DeliveryType, D>(
19968 self.delivery
19969 .as_ref()
19970 .map(<DeliveryType as fidl::encoding::ValueTypeMarker>::borrow),
19971 encoder,
19972 offset + cur_offset,
19973 depth,
19974 )?;
19975
19976 _prev_end_offset = cur_offset + envelope_size;
19977
19978 Ok(())
19979 }
19980 }
19981
19982 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Protocol {
19983 #[inline(always)]
19984 fn new_empty() -> Self {
19985 Self::default()
19986 }
19987
19988 unsafe fn decode(
19989 &mut self,
19990 decoder: &mut fidl::encoding::Decoder<'_, D>,
19991 offset: usize,
19992 mut depth: fidl::encoding::Depth,
19993 ) -> fidl::Result<()> {
19994 decoder.debug_check_bounds::<Self>(offset);
19995 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19996 None => return Err(fidl::Error::NotNullable),
19997 Some(len) => len,
19998 };
19999 if len == 0 {
20001 return Ok(());
20002 };
20003 depth.increment()?;
20004 let envelope_size = 8;
20005 let bytes_len = len * envelope_size;
20006 let offset = decoder.out_of_line_offset(bytes_len)?;
20007 let mut _next_ordinal_to_read = 0;
20009 let mut next_offset = offset;
20010 let end_offset = offset + bytes_len;
20011 _next_ordinal_to_read += 1;
20012 if next_offset >= end_offset {
20013 return Ok(());
20014 }
20015
20016 while _next_ordinal_to_read < 1 {
20018 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20019 _next_ordinal_to_read += 1;
20020 next_offset += envelope_size;
20021 }
20022
20023 let next_out_of_line = decoder.next_out_of_line();
20024 let handles_before = decoder.remaining_handles();
20025 if let Some((inlined, num_bytes, num_handles)) =
20026 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20027 {
20028 let member_inline_size =
20029 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20030 decoder.context,
20031 );
20032 if inlined != (member_inline_size <= 4) {
20033 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20034 }
20035 let inner_offset;
20036 let mut inner_depth = depth.clone();
20037 if inlined {
20038 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20039 inner_offset = next_offset;
20040 } else {
20041 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20042 inner_depth.increment()?;
20043 }
20044 let val_ref = self
20045 .name
20046 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20047 fidl::decode!(
20048 fidl::encoding::BoundedString<100>,
20049 D,
20050 val_ref,
20051 decoder,
20052 inner_offset,
20053 inner_depth
20054 )?;
20055 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20056 {
20057 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20058 }
20059 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20060 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20061 }
20062 }
20063
20064 next_offset += envelope_size;
20065 _next_ordinal_to_read += 1;
20066 if next_offset >= end_offset {
20067 return Ok(());
20068 }
20069
20070 while _next_ordinal_to_read < 2 {
20072 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20073 _next_ordinal_to_read += 1;
20074 next_offset += envelope_size;
20075 }
20076
20077 let next_out_of_line = decoder.next_out_of_line();
20078 let handles_before = decoder.remaining_handles();
20079 if let Some((inlined, num_bytes, num_handles)) =
20080 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20081 {
20082 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20083 if inlined != (member_inline_size <= 4) {
20084 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20085 }
20086 let inner_offset;
20087 let mut inner_depth = depth.clone();
20088 if inlined {
20089 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20090 inner_offset = next_offset;
20091 } else {
20092 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20093 inner_depth.increment()?;
20094 }
20095 let val_ref = self.source_path.get_or_insert_with(|| {
20096 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
20097 });
20098 fidl::decode!(
20099 fidl::encoding::BoundedString<1024>,
20100 D,
20101 val_ref,
20102 decoder,
20103 inner_offset,
20104 inner_depth
20105 )?;
20106 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20107 {
20108 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20109 }
20110 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20111 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20112 }
20113 }
20114
20115 next_offset += envelope_size;
20116 _next_ordinal_to_read += 1;
20117 if next_offset >= end_offset {
20118 return Ok(());
20119 }
20120
20121 while _next_ordinal_to_read < 3 {
20123 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20124 _next_ordinal_to_read += 1;
20125 next_offset += envelope_size;
20126 }
20127
20128 let next_out_of_line = decoder.next_out_of_line();
20129 let handles_before = decoder.remaining_handles();
20130 if let Some((inlined, num_bytes, num_handles)) =
20131 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20132 {
20133 let member_inline_size =
20134 <DeliveryType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20135 if inlined != (member_inline_size <= 4) {
20136 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20137 }
20138 let inner_offset;
20139 let mut inner_depth = depth.clone();
20140 if inlined {
20141 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20142 inner_offset = next_offset;
20143 } else {
20144 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20145 inner_depth.increment()?;
20146 }
20147 let val_ref =
20148 self.delivery.get_or_insert_with(|| fidl::new_empty!(DeliveryType, D));
20149 fidl::decode!(DeliveryType, D, val_ref, decoder, inner_offset, inner_depth)?;
20150 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20151 {
20152 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20153 }
20154 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20155 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20156 }
20157 }
20158
20159 next_offset += envelope_size;
20160
20161 while next_offset < end_offset {
20163 _next_ordinal_to_read += 1;
20164 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20165 next_offset += envelope_size;
20166 }
20167
20168 Ok(())
20169 }
20170 }
20171
20172 impl Resolver {
20173 #[inline(always)]
20174 fn max_ordinal_present(&self) -> u64 {
20175 if let Some(_) = self.source_path {
20176 return 2;
20177 }
20178 if let Some(_) = self.name {
20179 return 1;
20180 }
20181 0
20182 }
20183 }
20184
20185 impl fidl::encoding::ValueTypeMarker for Resolver {
20186 type Borrowed<'a> = &'a Self;
20187 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20188 value
20189 }
20190 }
20191
20192 unsafe impl fidl::encoding::TypeMarker for Resolver {
20193 type Owned = Self;
20194
20195 #[inline(always)]
20196 fn inline_align(_context: fidl::encoding::Context) -> usize {
20197 8
20198 }
20199
20200 #[inline(always)]
20201 fn inline_size(_context: fidl::encoding::Context) -> usize {
20202 16
20203 }
20204 }
20205
20206 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Resolver, D> for &Resolver {
20207 unsafe fn encode(
20208 self,
20209 encoder: &mut fidl::encoding::Encoder<'_, D>,
20210 offset: usize,
20211 mut depth: fidl::encoding::Depth,
20212 ) -> fidl::Result<()> {
20213 encoder.debug_check_bounds::<Resolver>(offset);
20214 let max_ordinal: u64 = self.max_ordinal_present();
20216 encoder.write_num(max_ordinal, offset);
20217 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20218 if max_ordinal == 0 {
20220 return Ok(());
20221 }
20222 depth.increment()?;
20223 let envelope_size = 8;
20224 let bytes_len = max_ordinal as usize * envelope_size;
20225 #[allow(unused_variables)]
20226 let offset = encoder.out_of_line_offset(bytes_len);
20227 let mut _prev_end_offset: usize = 0;
20228 if 1 > max_ordinal {
20229 return Ok(());
20230 }
20231
20232 let cur_offset: usize = (1 - 1) * envelope_size;
20235
20236 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20238
20239 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20244 self.name.as_ref().map(
20245 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20246 ),
20247 encoder,
20248 offset + cur_offset,
20249 depth,
20250 )?;
20251
20252 _prev_end_offset = cur_offset + envelope_size;
20253 if 2 > max_ordinal {
20254 return Ok(());
20255 }
20256
20257 let cur_offset: usize = (2 - 1) * envelope_size;
20260
20261 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20263
20264 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
20269 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
20270 encoder, offset + cur_offset, depth
20271 )?;
20272
20273 _prev_end_offset = cur_offset + envelope_size;
20274
20275 Ok(())
20276 }
20277 }
20278
20279 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Resolver {
20280 #[inline(always)]
20281 fn new_empty() -> Self {
20282 Self::default()
20283 }
20284
20285 unsafe fn decode(
20286 &mut self,
20287 decoder: &mut fidl::encoding::Decoder<'_, D>,
20288 offset: usize,
20289 mut depth: fidl::encoding::Depth,
20290 ) -> fidl::Result<()> {
20291 decoder.debug_check_bounds::<Self>(offset);
20292 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20293 None => return Err(fidl::Error::NotNullable),
20294 Some(len) => len,
20295 };
20296 if len == 0 {
20298 return Ok(());
20299 };
20300 depth.increment()?;
20301 let envelope_size = 8;
20302 let bytes_len = len * envelope_size;
20303 let offset = decoder.out_of_line_offset(bytes_len)?;
20304 let mut _next_ordinal_to_read = 0;
20306 let mut next_offset = offset;
20307 let end_offset = offset + bytes_len;
20308 _next_ordinal_to_read += 1;
20309 if next_offset >= end_offset {
20310 return Ok(());
20311 }
20312
20313 while _next_ordinal_to_read < 1 {
20315 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20316 _next_ordinal_to_read += 1;
20317 next_offset += envelope_size;
20318 }
20319
20320 let next_out_of_line = decoder.next_out_of_line();
20321 let handles_before = decoder.remaining_handles();
20322 if let Some((inlined, num_bytes, num_handles)) =
20323 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20324 {
20325 let member_inline_size =
20326 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20327 decoder.context,
20328 );
20329 if inlined != (member_inline_size <= 4) {
20330 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20331 }
20332 let inner_offset;
20333 let mut inner_depth = depth.clone();
20334 if inlined {
20335 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20336 inner_offset = next_offset;
20337 } else {
20338 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20339 inner_depth.increment()?;
20340 }
20341 let val_ref = self
20342 .name
20343 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20344 fidl::decode!(
20345 fidl::encoding::BoundedString<100>,
20346 D,
20347 val_ref,
20348 decoder,
20349 inner_offset,
20350 inner_depth
20351 )?;
20352 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20353 {
20354 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20355 }
20356 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20357 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20358 }
20359 }
20360
20361 next_offset += envelope_size;
20362 _next_ordinal_to_read += 1;
20363 if next_offset >= end_offset {
20364 return Ok(());
20365 }
20366
20367 while _next_ordinal_to_read < 2 {
20369 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20370 _next_ordinal_to_read += 1;
20371 next_offset += envelope_size;
20372 }
20373
20374 let next_out_of_line = decoder.next_out_of_line();
20375 let handles_before = decoder.remaining_handles();
20376 if let Some((inlined, num_bytes, num_handles)) =
20377 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20378 {
20379 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20380 if inlined != (member_inline_size <= 4) {
20381 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20382 }
20383 let inner_offset;
20384 let mut inner_depth = depth.clone();
20385 if inlined {
20386 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20387 inner_offset = next_offset;
20388 } else {
20389 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20390 inner_depth.increment()?;
20391 }
20392 let val_ref = self.source_path.get_or_insert_with(|| {
20393 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
20394 });
20395 fidl::decode!(
20396 fidl::encoding::BoundedString<1024>,
20397 D,
20398 val_ref,
20399 decoder,
20400 inner_offset,
20401 inner_depth
20402 )?;
20403 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20404 {
20405 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20406 }
20407 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20408 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20409 }
20410 }
20411
20412 next_offset += envelope_size;
20413
20414 while next_offset < end_offset {
20416 _next_ordinal_to_read += 1;
20417 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20418 next_offset += envelope_size;
20419 }
20420
20421 Ok(())
20422 }
20423 }
20424
20425 impl ResolverRegistration {
20426 #[inline(always)]
20427 fn max_ordinal_present(&self) -> u64 {
20428 if let Some(_) = self.scheme {
20429 return 3;
20430 }
20431 if let Some(_) = self.source {
20432 return 2;
20433 }
20434 if let Some(_) = self.resolver {
20435 return 1;
20436 }
20437 0
20438 }
20439 }
20440
20441 impl fidl::encoding::ValueTypeMarker for ResolverRegistration {
20442 type Borrowed<'a> = &'a Self;
20443 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20444 value
20445 }
20446 }
20447
20448 unsafe impl fidl::encoding::TypeMarker for ResolverRegistration {
20449 type Owned = Self;
20450
20451 #[inline(always)]
20452 fn inline_align(_context: fidl::encoding::Context) -> usize {
20453 8
20454 }
20455
20456 #[inline(always)]
20457 fn inline_size(_context: fidl::encoding::Context) -> usize {
20458 16
20459 }
20460 }
20461
20462 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ResolverRegistration, D>
20463 for &ResolverRegistration
20464 {
20465 unsafe fn encode(
20466 self,
20467 encoder: &mut fidl::encoding::Encoder<'_, D>,
20468 offset: usize,
20469 mut depth: fidl::encoding::Depth,
20470 ) -> fidl::Result<()> {
20471 encoder.debug_check_bounds::<ResolverRegistration>(offset);
20472 let max_ordinal: u64 = self.max_ordinal_present();
20474 encoder.write_num(max_ordinal, offset);
20475 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20476 if max_ordinal == 0 {
20478 return Ok(());
20479 }
20480 depth.increment()?;
20481 let envelope_size = 8;
20482 let bytes_len = max_ordinal as usize * envelope_size;
20483 #[allow(unused_variables)]
20484 let offset = encoder.out_of_line_offset(bytes_len);
20485 let mut _prev_end_offset: usize = 0;
20486 if 1 > max_ordinal {
20487 return Ok(());
20488 }
20489
20490 let cur_offset: usize = (1 - 1) * envelope_size;
20493
20494 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20496
20497 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20502 self.resolver.as_ref().map(
20503 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20504 ),
20505 encoder,
20506 offset + cur_offset,
20507 depth,
20508 )?;
20509
20510 _prev_end_offset = cur_offset + envelope_size;
20511 if 2 > max_ordinal {
20512 return Ok(());
20513 }
20514
20515 let cur_offset: usize = (2 - 1) * envelope_size;
20518
20519 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20521
20522 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
20527 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
20528 encoder,
20529 offset + cur_offset,
20530 depth,
20531 )?;
20532
20533 _prev_end_offset = cur_offset + envelope_size;
20534 if 3 > max_ordinal {
20535 return Ok(());
20536 }
20537
20538 let cur_offset: usize = (3 - 1) * envelope_size;
20541
20542 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20544
20545 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20550 self.scheme.as_ref().map(
20551 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20552 ),
20553 encoder,
20554 offset + cur_offset,
20555 depth,
20556 )?;
20557
20558 _prev_end_offset = cur_offset + envelope_size;
20559
20560 Ok(())
20561 }
20562 }
20563
20564 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ResolverRegistration {
20565 #[inline(always)]
20566 fn new_empty() -> Self {
20567 Self::default()
20568 }
20569
20570 unsafe fn decode(
20571 &mut self,
20572 decoder: &mut fidl::encoding::Decoder<'_, D>,
20573 offset: usize,
20574 mut depth: fidl::encoding::Depth,
20575 ) -> fidl::Result<()> {
20576 decoder.debug_check_bounds::<Self>(offset);
20577 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20578 None => return Err(fidl::Error::NotNullable),
20579 Some(len) => len,
20580 };
20581 if len == 0 {
20583 return Ok(());
20584 };
20585 depth.increment()?;
20586 let envelope_size = 8;
20587 let bytes_len = len * envelope_size;
20588 let offset = decoder.out_of_line_offset(bytes_len)?;
20589 let mut _next_ordinal_to_read = 0;
20591 let mut next_offset = offset;
20592 let end_offset = offset + bytes_len;
20593 _next_ordinal_to_read += 1;
20594 if next_offset >= end_offset {
20595 return Ok(());
20596 }
20597
20598 while _next_ordinal_to_read < 1 {
20600 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20601 _next_ordinal_to_read += 1;
20602 next_offset += envelope_size;
20603 }
20604
20605 let next_out_of_line = decoder.next_out_of_line();
20606 let handles_before = decoder.remaining_handles();
20607 if let Some((inlined, num_bytes, num_handles)) =
20608 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20609 {
20610 let member_inline_size =
20611 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20612 decoder.context,
20613 );
20614 if inlined != (member_inline_size <= 4) {
20615 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20616 }
20617 let inner_offset;
20618 let mut inner_depth = depth.clone();
20619 if inlined {
20620 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20621 inner_offset = next_offset;
20622 } else {
20623 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20624 inner_depth.increment()?;
20625 }
20626 let val_ref = self
20627 .resolver
20628 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20629 fidl::decode!(
20630 fidl::encoding::BoundedString<100>,
20631 D,
20632 val_ref,
20633 decoder,
20634 inner_offset,
20635 inner_depth
20636 )?;
20637 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20638 {
20639 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20640 }
20641 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20642 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20643 }
20644 }
20645
20646 next_offset += envelope_size;
20647 _next_ordinal_to_read += 1;
20648 if next_offset >= end_offset {
20649 return Ok(());
20650 }
20651
20652 while _next_ordinal_to_read < 2 {
20654 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20655 _next_ordinal_to_read += 1;
20656 next_offset += envelope_size;
20657 }
20658
20659 let next_out_of_line = decoder.next_out_of_line();
20660 let handles_before = decoder.remaining_handles();
20661 if let Some((inlined, num_bytes, num_handles)) =
20662 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20663 {
20664 let member_inline_size =
20665 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20666 if inlined != (member_inline_size <= 4) {
20667 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20668 }
20669 let inner_offset;
20670 let mut inner_depth = depth.clone();
20671 if inlined {
20672 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20673 inner_offset = next_offset;
20674 } else {
20675 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20676 inner_depth.increment()?;
20677 }
20678 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
20679 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
20680 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20681 {
20682 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20683 }
20684 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20685 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20686 }
20687 }
20688
20689 next_offset += envelope_size;
20690 _next_ordinal_to_read += 1;
20691 if next_offset >= end_offset {
20692 return Ok(());
20693 }
20694
20695 while _next_ordinal_to_read < 3 {
20697 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20698 _next_ordinal_to_read += 1;
20699 next_offset += envelope_size;
20700 }
20701
20702 let next_out_of_line = decoder.next_out_of_line();
20703 let handles_before = decoder.remaining_handles();
20704 if let Some((inlined, num_bytes, num_handles)) =
20705 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20706 {
20707 let member_inline_size =
20708 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20709 decoder.context,
20710 );
20711 if inlined != (member_inline_size <= 4) {
20712 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20713 }
20714 let inner_offset;
20715 let mut inner_depth = depth.clone();
20716 if inlined {
20717 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20718 inner_offset = next_offset;
20719 } else {
20720 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20721 inner_depth.increment()?;
20722 }
20723 let val_ref = self
20724 .scheme
20725 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20726 fidl::decode!(
20727 fidl::encoding::BoundedString<100>,
20728 D,
20729 val_ref,
20730 decoder,
20731 inner_offset,
20732 inner_depth
20733 )?;
20734 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20735 {
20736 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20737 }
20738 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20739 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20740 }
20741 }
20742
20743 next_offset += envelope_size;
20744
20745 while next_offset < end_offset {
20747 _next_ordinal_to_read += 1;
20748 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20749 next_offset += envelope_size;
20750 }
20751
20752 Ok(())
20753 }
20754 }
20755
20756 impl Runner {
20757 #[inline(always)]
20758 fn max_ordinal_present(&self) -> u64 {
20759 if let Some(_) = self.source_path {
20760 return 2;
20761 }
20762 if let Some(_) = self.name {
20763 return 1;
20764 }
20765 0
20766 }
20767 }
20768
20769 impl fidl::encoding::ValueTypeMarker for Runner {
20770 type Borrowed<'a> = &'a Self;
20771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20772 value
20773 }
20774 }
20775
20776 unsafe impl fidl::encoding::TypeMarker for Runner {
20777 type Owned = Self;
20778
20779 #[inline(always)]
20780 fn inline_align(_context: fidl::encoding::Context) -> usize {
20781 8
20782 }
20783
20784 #[inline(always)]
20785 fn inline_size(_context: fidl::encoding::Context) -> usize {
20786 16
20787 }
20788 }
20789
20790 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Runner, D> for &Runner {
20791 unsafe fn encode(
20792 self,
20793 encoder: &mut fidl::encoding::Encoder<'_, D>,
20794 offset: usize,
20795 mut depth: fidl::encoding::Depth,
20796 ) -> fidl::Result<()> {
20797 encoder.debug_check_bounds::<Runner>(offset);
20798 let max_ordinal: u64 = self.max_ordinal_present();
20800 encoder.write_num(max_ordinal, offset);
20801 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20802 if max_ordinal == 0 {
20804 return Ok(());
20805 }
20806 depth.increment()?;
20807 let envelope_size = 8;
20808 let bytes_len = max_ordinal as usize * envelope_size;
20809 #[allow(unused_variables)]
20810 let offset = encoder.out_of_line_offset(bytes_len);
20811 let mut _prev_end_offset: usize = 0;
20812 if 1 > max_ordinal {
20813 return Ok(());
20814 }
20815
20816 let cur_offset: usize = (1 - 1) * envelope_size;
20819
20820 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20822
20823 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20828 self.name.as_ref().map(
20829 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20830 ),
20831 encoder,
20832 offset + cur_offset,
20833 depth,
20834 )?;
20835
20836 _prev_end_offset = cur_offset + envelope_size;
20837 if 2 > max_ordinal {
20838 return Ok(());
20839 }
20840
20841 let cur_offset: usize = (2 - 1) * envelope_size;
20844
20845 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20847
20848 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
20853 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
20854 encoder, offset + cur_offset, depth
20855 )?;
20856
20857 _prev_end_offset = cur_offset + envelope_size;
20858
20859 Ok(())
20860 }
20861 }
20862
20863 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Runner {
20864 #[inline(always)]
20865 fn new_empty() -> Self {
20866 Self::default()
20867 }
20868
20869 unsafe fn decode(
20870 &mut self,
20871 decoder: &mut fidl::encoding::Decoder<'_, D>,
20872 offset: usize,
20873 mut depth: fidl::encoding::Depth,
20874 ) -> fidl::Result<()> {
20875 decoder.debug_check_bounds::<Self>(offset);
20876 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20877 None => return Err(fidl::Error::NotNullable),
20878 Some(len) => len,
20879 };
20880 if len == 0 {
20882 return Ok(());
20883 };
20884 depth.increment()?;
20885 let envelope_size = 8;
20886 let bytes_len = len * envelope_size;
20887 let offset = decoder.out_of_line_offset(bytes_len)?;
20888 let mut _next_ordinal_to_read = 0;
20890 let mut next_offset = offset;
20891 let end_offset = offset + bytes_len;
20892 _next_ordinal_to_read += 1;
20893 if next_offset >= end_offset {
20894 return Ok(());
20895 }
20896
20897 while _next_ordinal_to_read < 1 {
20899 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20900 _next_ordinal_to_read += 1;
20901 next_offset += envelope_size;
20902 }
20903
20904 let next_out_of_line = decoder.next_out_of_line();
20905 let handles_before = decoder.remaining_handles();
20906 if let Some((inlined, num_bytes, num_handles)) =
20907 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20908 {
20909 let member_inline_size =
20910 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20911 decoder.context,
20912 );
20913 if inlined != (member_inline_size <= 4) {
20914 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20915 }
20916 let inner_offset;
20917 let mut inner_depth = depth.clone();
20918 if inlined {
20919 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20920 inner_offset = next_offset;
20921 } else {
20922 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20923 inner_depth.increment()?;
20924 }
20925 let val_ref = self
20926 .name
20927 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20928 fidl::decode!(
20929 fidl::encoding::BoundedString<100>,
20930 D,
20931 val_ref,
20932 decoder,
20933 inner_offset,
20934 inner_depth
20935 )?;
20936 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20937 {
20938 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20939 }
20940 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20941 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20942 }
20943 }
20944
20945 next_offset += envelope_size;
20946 _next_ordinal_to_read += 1;
20947 if next_offset >= end_offset {
20948 return Ok(());
20949 }
20950
20951 while _next_ordinal_to_read < 2 {
20953 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20954 _next_ordinal_to_read += 1;
20955 next_offset += envelope_size;
20956 }
20957
20958 let next_out_of_line = decoder.next_out_of_line();
20959 let handles_before = decoder.remaining_handles();
20960 if let Some((inlined, num_bytes, num_handles)) =
20961 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20962 {
20963 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20964 if inlined != (member_inline_size <= 4) {
20965 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20966 }
20967 let inner_offset;
20968 let mut inner_depth = depth.clone();
20969 if inlined {
20970 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20971 inner_offset = next_offset;
20972 } else {
20973 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20974 inner_depth.increment()?;
20975 }
20976 let val_ref = self.source_path.get_or_insert_with(|| {
20977 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
20978 });
20979 fidl::decode!(
20980 fidl::encoding::BoundedString<1024>,
20981 D,
20982 val_ref,
20983 decoder,
20984 inner_offset,
20985 inner_depth
20986 )?;
20987 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20988 {
20989 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20990 }
20991 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20992 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20993 }
20994 }
20995
20996 next_offset += envelope_size;
20997
20998 while next_offset < end_offset {
21000 _next_ordinal_to_read += 1;
21001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21002 next_offset += envelope_size;
21003 }
21004
21005 Ok(())
21006 }
21007 }
21008
21009 impl RunnerRegistration {
21010 #[inline(always)]
21011 fn max_ordinal_present(&self) -> u64 {
21012 if let Some(_) = self.target_name {
21013 return 3;
21014 }
21015 if let Some(_) = self.source {
21016 return 2;
21017 }
21018 if let Some(_) = self.source_name {
21019 return 1;
21020 }
21021 0
21022 }
21023 }
21024
21025 impl fidl::encoding::ValueTypeMarker for RunnerRegistration {
21026 type Borrowed<'a> = &'a Self;
21027 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21028 value
21029 }
21030 }
21031
21032 unsafe impl fidl::encoding::TypeMarker for RunnerRegistration {
21033 type Owned = Self;
21034
21035 #[inline(always)]
21036 fn inline_align(_context: fidl::encoding::Context) -> usize {
21037 8
21038 }
21039
21040 #[inline(always)]
21041 fn inline_size(_context: fidl::encoding::Context) -> usize {
21042 16
21043 }
21044 }
21045
21046 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RunnerRegistration, D>
21047 for &RunnerRegistration
21048 {
21049 unsafe fn encode(
21050 self,
21051 encoder: &mut fidl::encoding::Encoder<'_, D>,
21052 offset: usize,
21053 mut depth: fidl::encoding::Depth,
21054 ) -> fidl::Result<()> {
21055 encoder.debug_check_bounds::<RunnerRegistration>(offset);
21056 let max_ordinal: u64 = self.max_ordinal_present();
21058 encoder.write_num(max_ordinal, offset);
21059 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21060 if max_ordinal == 0 {
21062 return Ok(());
21063 }
21064 depth.increment()?;
21065 let envelope_size = 8;
21066 let bytes_len = max_ordinal as usize * envelope_size;
21067 #[allow(unused_variables)]
21068 let offset = encoder.out_of_line_offset(bytes_len);
21069 let mut _prev_end_offset: usize = 0;
21070 if 1 > max_ordinal {
21071 return Ok(());
21072 }
21073
21074 let cur_offset: usize = (1 - 1) * envelope_size;
21077
21078 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21080
21081 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21086 self.source_name.as_ref().map(
21087 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21088 ),
21089 encoder,
21090 offset + cur_offset,
21091 depth,
21092 )?;
21093
21094 _prev_end_offset = cur_offset + envelope_size;
21095 if 2 > max_ordinal {
21096 return Ok(());
21097 }
21098
21099 let cur_offset: usize = (2 - 1) * envelope_size;
21102
21103 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21105
21106 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
21111 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
21112 encoder,
21113 offset + cur_offset,
21114 depth,
21115 )?;
21116
21117 _prev_end_offset = cur_offset + envelope_size;
21118 if 3 > max_ordinal {
21119 return Ok(());
21120 }
21121
21122 let cur_offset: usize = (3 - 1) * envelope_size;
21125
21126 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21128
21129 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21134 self.target_name.as_ref().map(
21135 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21136 ),
21137 encoder,
21138 offset + cur_offset,
21139 depth,
21140 )?;
21141
21142 _prev_end_offset = cur_offset + envelope_size;
21143
21144 Ok(())
21145 }
21146 }
21147
21148 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RunnerRegistration {
21149 #[inline(always)]
21150 fn new_empty() -> Self {
21151 Self::default()
21152 }
21153
21154 unsafe fn decode(
21155 &mut self,
21156 decoder: &mut fidl::encoding::Decoder<'_, D>,
21157 offset: usize,
21158 mut depth: fidl::encoding::Depth,
21159 ) -> fidl::Result<()> {
21160 decoder.debug_check_bounds::<Self>(offset);
21161 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21162 None => return Err(fidl::Error::NotNullable),
21163 Some(len) => len,
21164 };
21165 if len == 0 {
21167 return Ok(());
21168 };
21169 depth.increment()?;
21170 let envelope_size = 8;
21171 let bytes_len = len * envelope_size;
21172 let offset = decoder.out_of_line_offset(bytes_len)?;
21173 let mut _next_ordinal_to_read = 0;
21175 let mut next_offset = offset;
21176 let end_offset = offset + bytes_len;
21177 _next_ordinal_to_read += 1;
21178 if next_offset >= end_offset {
21179 return Ok(());
21180 }
21181
21182 while _next_ordinal_to_read < 1 {
21184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21185 _next_ordinal_to_read += 1;
21186 next_offset += envelope_size;
21187 }
21188
21189 let next_out_of_line = decoder.next_out_of_line();
21190 let handles_before = decoder.remaining_handles();
21191 if let Some((inlined, num_bytes, num_handles)) =
21192 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21193 {
21194 let member_inline_size =
21195 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21196 decoder.context,
21197 );
21198 if inlined != (member_inline_size <= 4) {
21199 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21200 }
21201 let inner_offset;
21202 let mut inner_depth = depth.clone();
21203 if inlined {
21204 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21205 inner_offset = next_offset;
21206 } else {
21207 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21208 inner_depth.increment()?;
21209 }
21210 let val_ref = self
21211 .source_name
21212 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21213 fidl::decode!(
21214 fidl::encoding::BoundedString<100>,
21215 D,
21216 val_ref,
21217 decoder,
21218 inner_offset,
21219 inner_depth
21220 )?;
21221 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21222 {
21223 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21224 }
21225 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21226 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21227 }
21228 }
21229
21230 next_offset += envelope_size;
21231 _next_ordinal_to_read += 1;
21232 if next_offset >= end_offset {
21233 return Ok(());
21234 }
21235
21236 while _next_ordinal_to_read < 2 {
21238 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21239 _next_ordinal_to_read += 1;
21240 next_offset += envelope_size;
21241 }
21242
21243 let next_out_of_line = decoder.next_out_of_line();
21244 let handles_before = decoder.remaining_handles();
21245 if let Some((inlined, num_bytes, num_handles)) =
21246 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21247 {
21248 let member_inline_size =
21249 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21250 if inlined != (member_inline_size <= 4) {
21251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21252 }
21253 let inner_offset;
21254 let mut inner_depth = depth.clone();
21255 if inlined {
21256 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21257 inner_offset = next_offset;
21258 } else {
21259 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21260 inner_depth.increment()?;
21261 }
21262 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
21263 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
21264 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21265 {
21266 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21267 }
21268 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21269 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21270 }
21271 }
21272
21273 next_offset += envelope_size;
21274 _next_ordinal_to_read += 1;
21275 if next_offset >= end_offset {
21276 return Ok(());
21277 }
21278
21279 while _next_ordinal_to_read < 3 {
21281 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21282 _next_ordinal_to_read += 1;
21283 next_offset += envelope_size;
21284 }
21285
21286 let next_out_of_line = decoder.next_out_of_line();
21287 let handles_before = decoder.remaining_handles();
21288 if let Some((inlined, num_bytes, num_handles)) =
21289 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21290 {
21291 let member_inline_size =
21292 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21293 decoder.context,
21294 );
21295 if inlined != (member_inline_size <= 4) {
21296 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21297 }
21298 let inner_offset;
21299 let mut inner_depth = depth.clone();
21300 if inlined {
21301 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21302 inner_offset = next_offset;
21303 } else {
21304 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21305 inner_depth.increment()?;
21306 }
21307 let val_ref = self
21308 .target_name
21309 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21310 fidl::decode!(
21311 fidl::encoding::BoundedString<100>,
21312 D,
21313 val_ref,
21314 decoder,
21315 inner_offset,
21316 inner_depth
21317 )?;
21318 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21319 {
21320 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21321 }
21322 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21323 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21324 }
21325 }
21326
21327 next_offset += envelope_size;
21328
21329 while next_offset < end_offset {
21331 _next_ordinal_to_read += 1;
21332 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21333 next_offset += envelope_size;
21334 }
21335
21336 Ok(())
21337 }
21338 }
21339
21340 impl Service {
21341 #[inline(always)]
21342 fn max_ordinal_present(&self) -> u64 {
21343 if let Some(_) = self.source_path {
21344 return 2;
21345 }
21346 if let Some(_) = self.name {
21347 return 1;
21348 }
21349 0
21350 }
21351 }
21352
21353 impl fidl::encoding::ValueTypeMarker for Service {
21354 type Borrowed<'a> = &'a Self;
21355 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21356 value
21357 }
21358 }
21359
21360 unsafe impl fidl::encoding::TypeMarker for Service {
21361 type Owned = Self;
21362
21363 #[inline(always)]
21364 fn inline_align(_context: fidl::encoding::Context) -> usize {
21365 8
21366 }
21367
21368 #[inline(always)]
21369 fn inline_size(_context: fidl::encoding::Context) -> usize {
21370 16
21371 }
21372 }
21373
21374 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Service, D> for &Service {
21375 unsafe fn encode(
21376 self,
21377 encoder: &mut fidl::encoding::Encoder<'_, D>,
21378 offset: usize,
21379 mut depth: fidl::encoding::Depth,
21380 ) -> fidl::Result<()> {
21381 encoder.debug_check_bounds::<Service>(offset);
21382 let max_ordinal: u64 = self.max_ordinal_present();
21384 encoder.write_num(max_ordinal, offset);
21385 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21386 if max_ordinal == 0 {
21388 return Ok(());
21389 }
21390 depth.increment()?;
21391 let envelope_size = 8;
21392 let bytes_len = max_ordinal as usize * envelope_size;
21393 #[allow(unused_variables)]
21394 let offset = encoder.out_of_line_offset(bytes_len);
21395 let mut _prev_end_offset: usize = 0;
21396 if 1 > max_ordinal {
21397 return Ok(());
21398 }
21399
21400 let cur_offset: usize = (1 - 1) * envelope_size;
21403
21404 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21406
21407 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21412 self.name.as_ref().map(
21413 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21414 ),
21415 encoder,
21416 offset + cur_offset,
21417 depth,
21418 )?;
21419
21420 _prev_end_offset = cur_offset + envelope_size;
21421 if 2 > max_ordinal {
21422 return Ok(());
21423 }
21424
21425 let cur_offset: usize = (2 - 1) * envelope_size;
21428
21429 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21431
21432 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
21437 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
21438 encoder, offset + cur_offset, depth
21439 )?;
21440
21441 _prev_end_offset = cur_offset + envelope_size;
21442
21443 Ok(())
21444 }
21445 }
21446
21447 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Service {
21448 #[inline(always)]
21449 fn new_empty() -> Self {
21450 Self::default()
21451 }
21452
21453 unsafe fn decode(
21454 &mut self,
21455 decoder: &mut fidl::encoding::Decoder<'_, D>,
21456 offset: usize,
21457 mut depth: fidl::encoding::Depth,
21458 ) -> fidl::Result<()> {
21459 decoder.debug_check_bounds::<Self>(offset);
21460 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21461 None => return Err(fidl::Error::NotNullable),
21462 Some(len) => len,
21463 };
21464 if len == 0 {
21466 return Ok(());
21467 };
21468 depth.increment()?;
21469 let envelope_size = 8;
21470 let bytes_len = len * envelope_size;
21471 let offset = decoder.out_of_line_offset(bytes_len)?;
21472 let mut _next_ordinal_to_read = 0;
21474 let mut next_offset = offset;
21475 let end_offset = offset + bytes_len;
21476 _next_ordinal_to_read += 1;
21477 if next_offset >= end_offset {
21478 return Ok(());
21479 }
21480
21481 while _next_ordinal_to_read < 1 {
21483 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21484 _next_ordinal_to_read += 1;
21485 next_offset += envelope_size;
21486 }
21487
21488 let next_out_of_line = decoder.next_out_of_line();
21489 let handles_before = decoder.remaining_handles();
21490 if let Some((inlined, num_bytes, num_handles)) =
21491 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21492 {
21493 let member_inline_size =
21494 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21495 decoder.context,
21496 );
21497 if inlined != (member_inline_size <= 4) {
21498 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21499 }
21500 let inner_offset;
21501 let mut inner_depth = depth.clone();
21502 if inlined {
21503 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21504 inner_offset = next_offset;
21505 } else {
21506 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21507 inner_depth.increment()?;
21508 }
21509 let val_ref = self
21510 .name
21511 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21512 fidl::decode!(
21513 fidl::encoding::BoundedString<100>,
21514 D,
21515 val_ref,
21516 decoder,
21517 inner_offset,
21518 inner_depth
21519 )?;
21520 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21521 {
21522 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21523 }
21524 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21525 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21526 }
21527 }
21528
21529 next_offset += envelope_size;
21530 _next_ordinal_to_read += 1;
21531 if next_offset >= end_offset {
21532 return Ok(());
21533 }
21534
21535 while _next_ordinal_to_read < 2 {
21537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21538 _next_ordinal_to_read += 1;
21539 next_offset += envelope_size;
21540 }
21541
21542 let next_out_of_line = decoder.next_out_of_line();
21543 let handles_before = decoder.remaining_handles();
21544 if let Some((inlined, num_bytes, num_handles)) =
21545 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21546 {
21547 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21548 if inlined != (member_inline_size <= 4) {
21549 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21550 }
21551 let inner_offset;
21552 let mut inner_depth = depth.clone();
21553 if inlined {
21554 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21555 inner_offset = next_offset;
21556 } else {
21557 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21558 inner_depth.increment()?;
21559 }
21560 let val_ref = self.source_path.get_or_insert_with(|| {
21561 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
21562 });
21563 fidl::decode!(
21564 fidl::encoding::BoundedString<1024>,
21565 D,
21566 val_ref,
21567 decoder,
21568 inner_offset,
21569 inner_depth
21570 )?;
21571 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21572 {
21573 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21574 }
21575 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21576 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21577 }
21578 }
21579
21580 next_offset += envelope_size;
21581
21582 while next_offset < end_offset {
21584 _next_ordinal_to_read += 1;
21585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21586 next_offset += envelope_size;
21587 }
21588
21589 Ok(())
21590 }
21591 }
21592
21593 impl Storage {
21594 #[inline(always)]
21595 fn max_ordinal_present(&self) -> u64 {
21596 if let Some(_) = self.storage_id {
21597 return 5;
21598 }
21599 if let Some(_) = self.subdir {
21600 return 4;
21601 }
21602 if let Some(_) = self.backing_dir {
21603 return 3;
21604 }
21605 if let Some(_) = self.source {
21606 return 2;
21607 }
21608 if let Some(_) = self.name {
21609 return 1;
21610 }
21611 0
21612 }
21613 }
21614
21615 impl fidl::encoding::ValueTypeMarker for Storage {
21616 type Borrowed<'a> = &'a Self;
21617 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21618 value
21619 }
21620 }
21621
21622 unsafe impl fidl::encoding::TypeMarker for Storage {
21623 type Owned = Self;
21624
21625 #[inline(always)]
21626 fn inline_align(_context: fidl::encoding::Context) -> usize {
21627 8
21628 }
21629
21630 #[inline(always)]
21631 fn inline_size(_context: fidl::encoding::Context) -> usize {
21632 16
21633 }
21634 }
21635
21636 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Storage, D> for &Storage {
21637 unsafe fn encode(
21638 self,
21639 encoder: &mut fidl::encoding::Encoder<'_, D>,
21640 offset: usize,
21641 mut depth: fidl::encoding::Depth,
21642 ) -> fidl::Result<()> {
21643 encoder.debug_check_bounds::<Storage>(offset);
21644 let max_ordinal: u64 = self.max_ordinal_present();
21646 encoder.write_num(max_ordinal, offset);
21647 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21648 if max_ordinal == 0 {
21650 return Ok(());
21651 }
21652 depth.increment()?;
21653 let envelope_size = 8;
21654 let bytes_len = max_ordinal as usize * envelope_size;
21655 #[allow(unused_variables)]
21656 let offset = encoder.out_of_line_offset(bytes_len);
21657 let mut _prev_end_offset: usize = 0;
21658 if 1 > max_ordinal {
21659 return Ok(());
21660 }
21661
21662 let cur_offset: usize = (1 - 1) * envelope_size;
21665
21666 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21668
21669 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21674 self.name.as_ref().map(
21675 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21676 ),
21677 encoder,
21678 offset + cur_offset,
21679 depth,
21680 )?;
21681
21682 _prev_end_offset = cur_offset + envelope_size;
21683 if 2 > max_ordinal {
21684 return Ok(());
21685 }
21686
21687 let cur_offset: usize = (2 - 1) * envelope_size;
21690
21691 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21693
21694 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
21699 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
21700 encoder,
21701 offset + cur_offset,
21702 depth,
21703 )?;
21704
21705 _prev_end_offset = cur_offset + envelope_size;
21706 if 3 > max_ordinal {
21707 return Ok(());
21708 }
21709
21710 let cur_offset: usize = (3 - 1) * envelope_size;
21713
21714 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21716
21717 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21722 self.backing_dir.as_ref().map(
21723 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21724 ),
21725 encoder,
21726 offset + cur_offset,
21727 depth,
21728 )?;
21729
21730 _prev_end_offset = cur_offset + envelope_size;
21731 if 4 > max_ordinal {
21732 return Ok(());
21733 }
21734
21735 let cur_offset: usize = (4 - 1) * envelope_size;
21738
21739 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21741
21742 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
21747 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
21748 encoder, offset + cur_offset, depth
21749 )?;
21750
21751 _prev_end_offset = cur_offset + envelope_size;
21752 if 5 > max_ordinal {
21753 return Ok(());
21754 }
21755
21756 let cur_offset: usize = (5 - 1) * envelope_size;
21759
21760 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21762
21763 fidl::encoding::encode_in_envelope_optional::<StorageId, D>(
21768 self.storage_id
21769 .as_ref()
21770 .map(<StorageId as fidl::encoding::ValueTypeMarker>::borrow),
21771 encoder,
21772 offset + cur_offset,
21773 depth,
21774 )?;
21775
21776 _prev_end_offset = cur_offset + envelope_size;
21777
21778 Ok(())
21779 }
21780 }
21781
21782 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Storage {
21783 #[inline(always)]
21784 fn new_empty() -> Self {
21785 Self::default()
21786 }
21787
21788 unsafe fn decode(
21789 &mut self,
21790 decoder: &mut fidl::encoding::Decoder<'_, D>,
21791 offset: usize,
21792 mut depth: fidl::encoding::Depth,
21793 ) -> fidl::Result<()> {
21794 decoder.debug_check_bounds::<Self>(offset);
21795 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21796 None => return Err(fidl::Error::NotNullable),
21797 Some(len) => len,
21798 };
21799 if len == 0 {
21801 return Ok(());
21802 };
21803 depth.increment()?;
21804 let envelope_size = 8;
21805 let bytes_len = len * envelope_size;
21806 let offset = decoder.out_of_line_offset(bytes_len)?;
21807 let mut _next_ordinal_to_read = 0;
21809 let mut next_offset = offset;
21810 let end_offset = offset + bytes_len;
21811 _next_ordinal_to_read += 1;
21812 if next_offset >= end_offset {
21813 return Ok(());
21814 }
21815
21816 while _next_ordinal_to_read < 1 {
21818 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21819 _next_ordinal_to_read += 1;
21820 next_offset += envelope_size;
21821 }
21822
21823 let next_out_of_line = decoder.next_out_of_line();
21824 let handles_before = decoder.remaining_handles();
21825 if let Some((inlined, num_bytes, num_handles)) =
21826 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21827 {
21828 let member_inline_size =
21829 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21830 decoder.context,
21831 );
21832 if inlined != (member_inline_size <= 4) {
21833 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21834 }
21835 let inner_offset;
21836 let mut inner_depth = depth.clone();
21837 if inlined {
21838 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21839 inner_offset = next_offset;
21840 } else {
21841 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21842 inner_depth.increment()?;
21843 }
21844 let val_ref = self
21845 .name
21846 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21847 fidl::decode!(
21848 fidl::encoding::BoundedString<100>,
21849 D,
21850 val_ref,
21851 decoder,
21852 inner_offset,
21853 inner_depth
21854 )?;
21855 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21856 {
21857 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21858 }
21859 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21860 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21861 }
21862 }
21863
21864 next_offset += envelope_size;
21865 _next_ordinal_to_read += 1;
21866 if next_offset >= end_offset {
21867 return Ok(());
21868 }
21869
21870 while _next_ordinal_to_read < 2 {
21872 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21873 _next_ordinal_to_read += 1;
21874 next_offset += envelope_size;
21875 }
21876
21877 let next_out_of_line = decoder.next_out_of_line();
21878 let handles_before = decoder.remaining_handles();
21879 if let Some((inlined, num_bytes, num_handles)) =
21880 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21881 {
21882 let member_inline_size =
21883 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21884 if inlined != (member_inline_size <= 4) {
21885 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21886 }
21887 let inner_offset;
21888 let mut inner_depth = depth.clone();
21889 if inlined {
21890 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21891 inner_offset = next_offset;
21892 } else {
21893 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21894 inner_depth.increment()?;
21895 }
21896 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
21897 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
21898 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21899 {
21900 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21901 }
21902 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21903 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21904 }
21905 }
21906
21907 next_offset += envelope_size;
21908 _next_ordinal_to_read += 1;
21909 if next_offset >= end_offset {
21910 return Ok(());
21911 }
21912
21913 while _next_ordinal_to_read < 3 {
21915 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21916 _next_ordinal_to_read += 1;
21917 next_offset += envelope_size;
21918 }
21919
21920 let next_out_of_line = decoder.next_out_of_line();
21921 let handles_before = decoder.remaining_handles();
21922 if let Some((inlined, num_bytes, num_handles)) =
21923 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21924 {
21925 let member_inline_size =
21926 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21927 decoder.context,
21928 );
21929 if inlined != (member_inline_size <= 4) {
21930 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21931 }
21932 let inner_offset;
21933 let mut inner_depth = depth.clone();
21934 if inlined {
21935 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21936 inner_offset = next_offset;
21937 } else {
21938 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21939 inner_depth.increment()?;
21940 }
21941 let val_ref = self
21942 .backing_dir
21943 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21944 fidl::decode!(
21945 fidl::encoding::BoundedString<100>,
21946 D,
21947 val_ref,
21948 decoder,
21949 inner_offset,
21950 inner_depth
21951 )?;
21952 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21953 {
21954 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21955 }
21956 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21957 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21958 }
21959 }
21960
21961 next_offset += envelope_size;
21962 _next_ordinal_to_read += 1;
21963 if next_offset >= end_offset {
21964 return Ok(());
21965 }
21966
21967 while _next_ordinal_to_read < 4 {
21969 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21970 _next_ordinal_to_read += 1;
21971 next_offset += envelope_size;
21972 }
21973
21974 let next_out_of_line = decoder.next_out_of_line();
21975 let handles_before = decoder.remaining_handles();
21976 if let Some((inlined, num_bytes, num_handles)) =
21977 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21978 {
21979 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21980 if inlined != (member_inline_size <= 4) {
21981 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21982 }
21983 let inner_offset;
21984 let mut inner_depth = depth.clone();
21985 if inlined {
21986 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21987 inner_offset = next_offset;
21988 } else {
21989 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21990 inner_depth.increment()?;
21991 }
21992 let val_ref = self.subdir.get_or_insert_with(|| {
21993 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
21994 });
21995 fidl::decode!(
21996 fidl::encoding::BoundedString<1024>,
21997 D,
21998 val_ref,
21999 decoder,
22000 inner_offset,
22001 inner_depth
22002 )?;
22003 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22004 {
22005 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22006 }
22007 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22008 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22009 }
22010 }
22011
22012 next_offset += envelope_size;
22013 _next_ordinal_to_read += 1;
22014 if next_offset >= end_offset {
22015 return Ok(());
22016 }
22017
22018 while _next_ordinal_to_read < 5 {
22020 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22021 _next_ordinal_to_read += 1;
22022 next_offset += envelope_size;
22023 }
22024
22025 let next_out_of_line = decoder.next_out_of_line();
22026 let handles_before = decoder.remaining_handles();
22027 if let Some((inlined, num_bytes, num_handles)) =
22028 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22029 {
22030 let member_inline_size =
22031 <StorageId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22032 if inlined != (member_inline_size <= 4) {
22033 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22034 }
22035 let inner_offset;
22036 let mut inner_depth = depth.clone();
22037 if inlined {
22038 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22039 inner_offset = next_offset;
22040 } else {
22041 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22042 inner_depth.increment()?;
22043 }
22044 let val_ref = self.storage_id.get_or_insert_with(|| fidl::new_empty!(StorageId, D));
22045 fidl::decode!(StorageId, D, val_ref, decoder, inner_offset, inner_depth)?;
22046 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22047 {
22048 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22049 }
22050 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22051 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22052 }
22053 }
22054
22055 next_offset += envelope_size;
22056
22057 while next_offset < end_offset {
22059 _next_ordinal_to_read += 1;
22060 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22061 next_offset += envelope_size;
22062 }
22063
22064 Ok(())
22065 }
22066 }
22067
22068 impl UseConfiguration {
22069 #[inline(always)]
22070 fn max_ordinal_present(&self) -> u64 {
22071 if let Some(_) = self.source_dictionary {
22072 return 7;
22073 }
22074 if let Some(_) = self.default {
22075 return 6;
22076 }
22077 if let Some(_) = self.type_ {
22078 return 5;
22079 }
22080 if let Some(_) = self.availability {
22081 return 4;
22082 }
22083 if let Some(_) = self.target_name {
22084 return 3;
22085 }
22086 if let Some(_) = self.source_name {
22087 return 2;
22088 }
22089 if let Some(_) = self.source {
22090 return 1;
22091 }
22092 0
22093 }
22094 }
22095
22096 impl fidl::encoding::ValueTypeMarker for UseConfiguration {
22097 type Borrowed<'a> = &'a Self;
22098 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22099 value
22100 }
22101 }
22102
22103 unsafe impl fidl::encoding::TypeMarker for UseConfiguration {
22104 type Owned = Self;
22105
22106 #[inline(always)]
22107 fn inline_align(_context: fidl::encoding::Context) -> usize {
22108 8
22109 }
22110
22111 #[inline(always)]
22112 fn inline_size(_context: fidl::encoding::Context) -> usize {
22113 16
22114 }
22115 }
22116
22117 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseConfiguration, D>
22118 for &UseConfiguration
22119 {
22120 unsafe fn encode(
22121 self,
22122 encoder: &mut fidl::encoding::Encoder<'_, D>,
22123 offset: usize,
22124 mut depth: fidl::encoding::Depth,
22125 ) -> fidl::Result<()> {
22126 encoder.debug_check_bounds::<UseConfiguration>(offset);
22127 let max_ordinal: u64 = self.max_ordinal_present();
22129 encoder.write_num(max_ordinal, offset);
22130 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22131 if max_ordinal == 0 {
22133 return Ok(());
22134 }
22135 depth.increment()?;
22136 let envelope_size = 8;
22137 let bytes_len = max_ordinal as usize * envelope_size;
22138 #[allow(unused_variables)]
22139 let offset = encoder.out_of_line_offset(bytes_len);
22140 let mut _prev_end_offset: usize = 0;
22141 if 1 > max_ordinal {
22142 return Ok(());
22143 }
22144
22145 let cur_offset: usize = (1 - 1) * envelope_size;
22148
22149 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22151
22152 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
22157 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
22158 encoder,
22159 offset + cur_offset,
22160 depth,
22161 )?;
22162
22163 _prev_end_offset = cur_offset + envelope_size;
22164 if 2 > max_ordinal {
22165 return Ok(());
22166 }
22167
22168 let cur_offset: usize = (2 - 1) * envelope_size;
22171
22172 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22174
22175 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
22180 self.source_name.as_ref().map(
22181 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
22182 ),
22183 encoder,
22184 offset + cur_offset,
22185 depth,
22186 )?;
22187
22188 _prev_end_offset = cur_offset + envelope_size;
22189 if 3 > max_ordinal {
22190 return Ok(());
22191 }
22192
22193 let cur_offset: usize = (3 - 1) * envelope_size;
22196
22197 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22199
22200 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
22205 self.target_name.as_ref().map(
22206 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
22207 ),
22208 encoder,
22209 offset + cur_offset,
22210 depth,
22211 )?;
22212
22213 _prev_end_offset = cur_offset + envelope_size;
22214 if 4 > max_ordinal {
22215 return Ok(());
22216 }
22217
22218 let cur_offset: usize = (4 - 1) * envelope_size;
22221
22222 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22224
22225 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
22230 self.availability
22231 .as_ref()
22232 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
22233 encoder,
22234 offset + cur_offset,
22235 depth,
22236 )?;
22237
22238 _prev_end_offset = cur_offset + envelope_size;
22239 if 5 > max_ordinal {
22240 return Ok(());
22241 }
22242
22243 let cur_offset: usize = (5 - 1) * envelope_size;
22246
22247 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22249
22250 fidl::encoding::encode_in_envelope_optional::<ConfigType, D>(
22255 self.type_.as_ref().map(<ConfigType as fidl::encoding::ValueTypeMarker>::borrow),
22256 encoder,
22257 offset + cur_offset,
22258 depth,
22259 )?;
22260
22261 _prev_end_offset = cur_offset + envelope_size;
22262 if 6 > max_ordinal {
22263 return Ok(());
22264 }
22265
22266 let cur_offset: usize = (6 - 1) * envelope_size;
22269
22270 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22272
22273 fidl::encoding::encode_in_envelope_optional::<ConfigValue, D>(
22278 self.default.as_ref().map(<ConfigValue as fidl::encoding::ValueTypeMarker>::borrow),
22279 encoder,
22280 offset + cur_offset,
22281 depth,
22282 )?;
22283
22284 _prev_end_offset = cur_offset + envelope_size;
22285 if 7 > max_ordinal {
22286 return Ok(());
22287 }
22288
22289 let cur_offset: usize = (7 - 1) * envelope_size;
22292
22293 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22295
22296 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
22301 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
22302 encoder, offset + cur_offset, depth
22303 )?;
22304
22305 _prev_end_offset = cur_offset + envelope_size;
22306
22307 Ok(())
22308 }
22309 }
22310
22311 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseConfiguration {
22312 #[inline(always)]
22313 fn new_empty() -> Self {
22314 Self::default()
22315 }
22316
22317 unsafe fn decode(
22318 &mut self,
22319 decoder: &mut fidl::encoding::Decoder<'_, D>,
22320 offset: usize,
22321 mut depth: fidl::encoding::Depth,
22322 ) -> fidl::Result<()> {
22323 decoder.debug_check_bounds::<Self>(offset);
22324 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22325 None => return Err(fidl::Error::NotNullable),
22326 Some(len) => len,
22327 };
22328 if len == 0 {
22330 return Ok(());
22331 };
22332 depth.increment()?;
22333 let envelope_size = 8;
22334 let bytes_len = len * envelope_size;
22335 let offset = decoder.out_of_line_offset(bytes_len)?;
22336 let mut _next_ordinal_to_read = 0;
22338 let mut next_offset = offset;
22339 let end_offset = offset + bytes_len;
22340 _next_ordinal_to_read += 1;
22341 if next_offset >= end_offset {
22342 return Ok(());
22343 }
22344
22345 while _next_ordinal_to_read < 1 {
22347 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22348 _next_ordinal_to_read += 1;
22349 next_offset += envelope_size;
22350 }
22351
22352 let next_out_of_line = decoder.next_out_of_line();
22353 let handles_before = decoder.remaining_handles();
22354 if let Some((inlined, num_bytes, num_handles)) =
22355 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22356 {
22357 let member_inline_size =
22358 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22359 if inlined != (member_inline_size <= 4) {
22360 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22361 }
22362 let inner_offset;
22363 let mut inner_depth = depth.clone();
22364 if inlined {
22365 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22366 inner_offset = next_offset;
22367 } else {
22368 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22369 inner_depth.increment()?;
22370 }
22371 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
22372 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
22373 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22374 {
22375 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22376 }
22377 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22378 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22379 }
22380 }
22381
22382 next_offset += envelope_size;
22383 _next_ordinal_to_read += 1;
22384 if next_offset >= end_offset {
22385 return Ok(());
22386 }
22387
22388 while _next_ordinal_to_read < 2 {
22390 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22391 _next_ordinal_to_read += 1;
22392 next_offset += envelope_size;
22393 }
22394
22395 let next_out_of_line = decoder.next_out_of_line();
22396 let handles_before = decoder.remaining_handles();
22397 if let Some((inlined, num_bytes, num_handles)) =
22398 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22399 {
22400 let member_inline_size =
22401 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
22402 decoder.context,
22403 );
22404 if inlined != (member_inline_size <= 4) {
22405 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22406 }
22407 let inner_offset;
22408 let mut inner_depth = depth.clone();
22409 if inlined {
22410 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22411 inner_offset = next_offset;
22412 } else {
22413 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22414 inner_depth.increment()?;
22415 }
22416 let val_ref = self
22417 .source_name
22418 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
22419 fidl::decode!(
22420 fidl::encoding::BoundedString<100>,
22421 D,
22422 val_ref,
22423 decoder,
22424 inner_offset,
22425 inner_depth
22426 )?;
22427 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22428 {
22429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22430 }
22431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22433 }
22434 }
22435
22436 next_offset += envelope_size;
22437 _next_ordinal_to_read += 1;
22438 if next_offset >= end_offset {
22439 return Ok(());
22440 }
22441
22442 while _next_ordinal_to_read < 3 {
22444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22445 _next_ordinal_to_read += 1;
22446 next_offset += envelope_size;
22447 }
22448
22449 let next_out_of_line = decoder.next_out_of_line();
22450 let handles_before = decoder.remaining_handles();
22451 if let Some((inlined, num_bytes, num_handles)) =
22452 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22453 {
22454 let member_inline_size =
22455 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
22456 decoder.context,
22457 );
22458 if inlined != (member_inline_size <= 4) {
22459 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22460 }
22461 let inner_offset;
22462 let mut inner_depth = depth.clone();
22463 if inlined {
22464 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22465 inner_offset = next_offset;
22466 } else {
22467 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22468 inner_depth.increment()?;
22469 }
22470 let val_ref = self
22471 .target_name
22472 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
22473 fidl::decode!(
22474 fidl::encoding::BoundedString<100>,
22475 D,
22476 val_ref,
22477 decoder,
22478 inner_offset,
22479 inner_depth
22480 )?;
22481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22482 {
22483 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22484 }
22485 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22486 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22487 }
22488 }
22489
22490 next_offset += envelope_size;
22491 _next_ordinal_to_read += 1;
22492 if next_offset >= end_offset {
22493 return Ok(());
22494 }
22495
22496 while _next_ordinal_to_read < 4 {
22498 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22499 _next_ordinal_to_read += 1;
22500 next_offset += envelope_size;
22501 }
22502
22503 let next_out_of_line = decoder.next_out_of_line();
22504 let handles_before = decoder.remaining_handles();
22505 if let Some((inlined, num_bytes, num_handles)) =
22506 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22507 {
22508 let member_inline_size =
22509 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22510 if inlined != (member_inline_size <= 4) {
22511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22512 }
22513 let inner_offset;
22514 let mut inner_depth = depth.clone();
22515 if inlined {
22516 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22517 inner_offset = next_offset;
22518 } else {
22519 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22520 inner_depth.increment()?;
22521 }
22522 let val_ref =
22523 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
22524 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
22525 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22526 {
22527 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22528 }
22529 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22530 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22531 }
22532 }
22533
22534 next_offset += envelope_size;
22535 _next_ordinal_to_read += 1;
22536 if next_offset >= end_offset {
22537 return Ok(());
22538 }
22539
22540 while _next_ordinal_to_read < 5 {
22542 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22543 _next_ordinal_to_read += 1;
22544 next_offset += envelope_size;
22545 }
22546
22547 let next_out_of_line = decoder.next_out_of_line();
22548 let handles_before = decoder.remaining_handles();
22549 if let Some((inlined, num_bytes, num_handles)) =
22550 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22551 {
22552 let member_inline_size =
22553 <ConfigType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22554 if inlined != (member_inline_size <= 4) {
22555 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22556 }
22557 let inner_offset;
22558 let mut inner_depth = depth.clone();
22559 if inlined {
22560 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22561 inner_offset = next_offset;
22562 } else {
22563 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22564 inner_depth.increment()?;
22565 }
22566 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(ConfigType, D));
22567 fidl::decode!(ConfigType, D, val_ref, decoder, inner_offset, inner_depth)?;
22568 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22569 {
22570 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22571 }
22572 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22573 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22574 }
22575 }
22576
22577 next_offset += envelope_size;
22578 _next_ordinal_to_read += 1;
22579 if next_offset >= end_offset {
22580 return Ok(());
22581 }
22582
22583 while _next_ordinal_to_read < 6 {
22585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22586 _next_ordinal_to_read += 1;
22587 next_offset += envelope_size;
22588 }
22589
22590 let next_out_of_line = decoder.next_out_of_line();
22591 let handles_before = decoder.remaining_handles();
22592 if let Some((inlined, num_bytes, num_handles)) =
22593 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22594 {
22595 let member_inline_size =
22596 <ConfigValue as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22597 if inlined != (member_inline_size <= 4) {
22598 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22599 }
22600 let inner_offset;
22601 let mut inner_depth = depth.clone();
22602 if inlined {
22603 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22604 inner_offset = next_offset;
22605 } else {
22606 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22607 inner_depth.increment()?;
22608 }
22609 let val_ref = self.default.get_or_insert_with(|| fidl::new_empty!(ConfigValue, D));
22610 fidl::decode!(ConfigValue, D, val_ref, decoder, inner_offset, inner_depth)?;
22611 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22612 {
22613 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22614 }
22615 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22616 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22617 }
22618 }
22619
22620 next_offset += envelope_size;
22621 _next_ordinal_to_read += 1;
22622 if next_offset >= end_offset {
22623 return Ok(());
22624 }
22625
22626 while _next_ordinal_to_read < 7 {
22628 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22629 _next_ordinal_to_read += 1;
22630 next_offset += envelope_size;
22631 }
22632
22633 let next_out_of_line = decoder.next_out_of_line();
22634 let handles_before = decoder.remaining_handles();
22635 if let Some((inlined, num_bytes, num_handles)) =
22636 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22637 {
22638 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22639 if inlined != (member_inline_size <= 4) {
22640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22641 }
22642 let inner_offset;
22643 let mut inner_depth = depth.clone();
22644 if inlined {
22645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22646 inner_offset = next_offset;
22647 } else {
22648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22649 inner_depth.increment()?;
22650 }
22651 let val_ref = self.source_dictionary.get_or_insert_with(|| {
22652 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
22653 });
22654 fidl::decode!(
22655 fidl::encoding::BoundedString<1024>,
22656 D,
22657 val_ref,
22658 decoder,
22659 inner_offset,
22660 inner_depth
22661 )?;
22662 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22663 {
22664 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22665 }
22666 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22667 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22668 }
22669 }
22670
22671 next_offset += envelope_size;
22672
22673 while next_offset < end_offset {
22675 _next_ordinal_to_read += 1;
22676 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22677 next_offset += envelope_size;
22678 }
22679
22680 Ok(())
22681 }
22682 }
22683
22684 impl UseDictionary {
22685 #[inline(always)]
22686 fn max_ordinal_present(&self) -> u64 {
22687 if let Some(_) = self.source_dictionary {
22688 return 8;
22689 }
22690 if let Some(_) = self.availability {
22691 return 7;
22692 }
22693 if let Some(_) = self.dependency_type {
22694 return 6;
22695 }
22696 if let Some(_) = self.target_path {
22697 return 3;
22698 }
22699 if let Some(_) = self.source_name {
22700 return 2;
22701 }
22702 if let Some(_) = self.source {
22703 return 1;
22704 }
22705 0
22706 }
22707 }
22708
22709 impl fidl::encoding::ValueTypeMarker for UseDictionary {
22710 type Borrowed<'a> = &'a Self;
22711 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22712 value
22713 }
22714 }
22715
22716 unsafe impl fidl::encoding::TypeMarker for UseDictionary {
22717 type Owned = Self;
22718
22719 #[inline(always)]
22720 fn inline_align(_context: fidl::encoding::Context) -> usize {
22721 8
22722 }
22723
22724 #[inline(always)]
22725 fn inline_size(_context: fidl::encoding::Context) -> usize {
22726 16
22727 }
22728 }
22729
22730 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseDictionary, D>
22731 for &UseDictionary
22732 {
22733 unsafe fn encode(
22734 self,
22735 encoder: &mut fidl::encoding::Encoder<'_, D>,
22736 offset: usize,
22737 mut depth: fidl::encoding::Depth,
22738 ) -> fidl::Result<()> {
22739 encoder.debug_check_bounds::<UseDictionary>(offset);
22740 let max_ordinal: u64 = self.max_ordinal_present();
22742 encoder.write_num(max_ordinal, offset);
22743 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22744 if max_ordinal == 0 {
22746 return Ok(());
22747 }
22748 depth.increment()?;
22749 let envelope_size = 8;
22750 let bytes_len = max_ordinal as usize * envelope_size;
22751 #[allow(unused_variables)]
22752 let offset = encoder.out_of_line_offset(bytes_len);
22753 let mut _prev_end_offset: usize = 0;
22754 if 1 > max_ordinal {
22755 return Ok(());
22756 }
22757
22758 let cur_offset: usize = (1 - 1) * envelope_size;
22761
22762 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22764
22765 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
22770 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
22771 encoder,
22772 offset + cur_offset,
22773 depth,
22774 )?;
22775
22776 _prev_end_offset = cur_offset + envelope_size;
22777 if 2 > max_ordinal {
22778 return Ok(());
22779 }
22780
22781 let cur_offset: usize = (2 - 1) * envelope_size;
22784
22785 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22787
22788 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
22793 self.source_name.as_ref().map(
22794 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
22795 ),
22796 encoder,
22797 offset + cur_offset,
22798 depth,
22799 )?;
22800
22801 _prev_end_offset = cur_offset + envelope_size;
22802 if 3 > max_ordinal {
22803 return Ok(());
22804 }
22805
22806 let cur_offset: usize = (3 - 1) * envelope_size;
22809
22810 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22812
22813 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
22818 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
22819 encoder, offset + cur_offset, depth
22820 )?;
22821
22822 _prev_end_offset = cur_offset + envelope_size;
22823 if 6 > max_ordinal {
22824 return Ok(());
22825 }
22826
22827 let cur_offset: usize = (6 - 1) * envelope_size;
22830
22831 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22833
22834 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
22839 self.dependency_type
22840 .as_ref()
22841 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
22842 encoder,
22843 offset + cur_offset,
22844 depth,
22845 )?;
22846
22847 _prev_end_offset = cur_offset + envelope_size;
22848 if 7 > max_ordinal {
22849 return Ok(());
22850 }
22851
22852 let cur_offset: usize = (7 - 1) * envelope_size;
22855
22856 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22858
22859 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
22864 self.availability
22865 .as_ref()
22866 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
22867 encoder,
22868 offset + cur_offset,
22869 depth,
22870 )?;
22871
22872 _prev_end_offset = cur_offset + envelope_size;
22873 if 8 > max_ordinal {
22874 return Ok(());
22875 }
22876
22877 let cur_offset: usize = (8 - 1) * envelope_size;
22880
22881 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22883
22884 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
22889 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
22890 encoder, offset + cur_offset, depth
22891 )?;
22892
22893 _prev_end_offset = cur_offset + envelope_size;
22894
22895 Ok(())
22896 }
22897 }
22898
22899 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseDictionary {
22900 #[inline(always)]
22901 fn new_empty() -> Self {
22902 Self::default()
22903 }
22904
22905 unsafe fn decode(
22906 &mut self,
22907 decoder: &mut fidl::encoding::Decoder<'_, D>,
22908 offset: usize,
22909 mut depth: fidl::encoding::Depth,
22910 ) -> fidl::Result<()> {
22911 decoder.debug_check_bounds::<Self>(offset);
22912 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22913 None => return Err(fidl::Error::NotNullable),
22914 Some(len) => len,
22915 };
22916 if len == 0 {
22918 return Ok(());
22919 };
22920 depth.increment()?;
22921 let envelope_size = 8;
22922 let bytes_len = len * envelope_size;
22923 let offset = decoder.out_of_line_offset(bytes_len)?;
22924 let mut _next_ordinal_to_read = 0;
22926 let mut next_offset = offset;
22927 let end_offset = offset + bytes_len;
22928 _next_ordinal_to_read += 1;
22929 if next_offset >= end_offset {
22930 return Ok(());
22931 }
22932
22933 while _next_ordinal_to_read < 1 {
22935 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22936 _next_ordinal_to_read += 1;
22937 next_offset += envelope_size;
22938 }
22939
22940 let next_out_of_line = decoder.next_out_of_line();
22941 let handles_before = decoder.remaining_handles();
22942 if let Some((inlined, num_bytes, num_handles)) =
22943 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22944 {
22945 let member_inline_size =
22946 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22947 if inlined != (member_inline_size <= 4) {
22948 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22949 }
22950 let inner_offset;
22951 let mut inner_depth = depth.clone();
22952 if inlined {
22953 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22954 inner_offset = next_offset;
22955 } else {
22956 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22957 inner_depth.increment()?;
22958 }
22959 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
22960 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
22961 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22962 {
22963 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22964 }
22965 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22966 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22967 }
22968 }
22969
22970 next_offset += envelope_size;
22971 _next_ordinal_to_read += 1;
22972 if next_offset >= end_offset {
22973 return Ok(());
22974 }
22975
22976 while _next_ordinal_to_read < 2 {
22978 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22979 _next_ordinal_to_read += 1;
22980 next_offset += envelope_size;
22981 }
22982
22983 let next_out_of_line = decoder.next_out_of_line();
22984 let handles_before = decoder.remaining_handles();
22985 if let Some((inlined, num_bytes, num_handles)) =
22986 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22987 {
22988 let member_inline_size =
22989 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
22990 decoder.context,
22991 );
22992 if inlined != (member_inline_size <= 4) {
22993 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22994 }
22995 let inner_offset;
22996 let mut inner_depth = depth.clone();
22997 if inlined {
22998 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22999 inner_offset = next_offset;
23000 } else {
23001 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23002 inner_depth.increment()?;
23003 }
23004 let val_ref = self
23005 .source_name
23006 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
23007 fidl::decode!(
23008 fidl::encoding::BoundedString<100>,
23009 D,
23010 val_ref,
23011 decoder,
23012 inner_offset,
23013 inner_depth
23014 )?;
23015 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23016 {
23017 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23018 }
23019 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23020 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23021 }
23022 }
23023
23024 next_offset += envelope_size;
23025 _next_ordinal_to_read += 1;
23026 if next_offset >= end_offset {
23027 return Ok(());
23028 }
23029
23030 while _next_ordinal_to_read < 3 {
23032 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23033 _next_ordinal_to_read += 1;
23034 next_offset += envelope_size;
23035 }
23036
23037 let next_out_of_line = decoder.next_out_of_line();
23038 let handles_before = decoder.remaining_handles();
23039 if let Some((inlined, num_bytes, num_handles)) =
23040 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23041 {
23042 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23043 if inlined != (member_inline_size <= 4) {
23044 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23045 }
23046 let inner_offset;
23047 let mut inner_depth = depth.clone();
23048 if inlined {
23049 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23050 inner_offset = next_offset;
23051 } else {
23052 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23053 inner_depth.increment()?;
23054 }
23055 let val_ref = self.target_path.get_or_insert_with(|| {
23056 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23057 });
23058 fidl::decode!(
23059 fidl::encoding::BoundedString<1024>,
23060 D,
23061 val_ref,
23062 decoder,
23063 inner_offset,
23064 inner_depth
23065 )?;
23066 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23067 {
23068 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23069 }
23070 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23071 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23072 }
23073 }
23074
23075 next_offset += envelope_size;
23076 _next_ordinal_to_read += 1;
23077 if next_offset >= end_offset {
23078 return Ok(());
23079 }
23080
23081 while _next_ordinal_to_read < 6 {
23083 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23084 _next_ordinal_to_read += 1;
23085 next_offset += envelope_size;
23086 }
23087
23088 let next_out_of_line = decoder.next_out_of_line();
23089 let handles_before = decoder.remaining_handles();
23090 if let Some((inlined, num_bytes, num_handles)) =
23091 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23092 {
23093 let member_inline_size =
23094 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23095 if inlined != (member_inline_size <= 4) {
23096 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23097 }
23098 let inner_offset;
23099 let mut inner_depth = depth.clone();
23100 if inlined {
23101 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23102 inner_offset = next_offset;
23103 } else {
23104 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23105 inner_depth.increment()?;
23106 }
23107 let val_ref =
23108 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
23109 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
23110 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23111 {
23112 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23113 }
23114 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23115 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23116 }
23117 }
23118
23119 next_offset += envelope_size;
23120 _next_ordinal_to_read += 1;
23121 if next_offset >= end_offset {
23122 return Ok(());
23123 }
23124
23125 while _next_ordinal_to_read < 7 {
23127 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23128 _next_ordinal_to_read += 1;
23129 next_offset += envelope_size;
23130 }
23131
23132 let next_out_of_line = decoder.next_out_of_line();
23133 let handles_before = decoder.remaining_handles();
23134 if let Some((inlined, num_bytes, num_handles)) =
23135 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23136 {
23137 let member_inline_size =
23138 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23139 if inlined != (member_inline_size <= 4) {
23140 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23141 }
23142 let inner_offset;
23143 let mut inner_depth = depth.clone();
23144 if inlined {
23145 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23146 inner_offset = next_offset;
23147 } else {
23148 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23149 inner_depth.increment()?;
23150 }
23151 let val_ref =
23152 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
23153 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
23154 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23155 {
23156 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23157 }
23158 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23159 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23160 }
23161 }
23162
23163 next_offset += envelope_size;
23164 _next_ordinal_to_read += 1;
23165 if next_offset >= end_offset {
23166 return Ok(());
23167 }
23168
23169 while _next_ordinal_to_read < 8 {
23171 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23172 _next_ordinal_to_read += 1;
23173 next_offset += envelope_size;
23174 }
23175
23176 let next_out_of_line = decoder.next_out_of_line();
23177 let handles_before = decoder.remaining_handles();
23178 if let Some((inlined, num_bytes, num_handles)) =
23179 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23180 {
23181 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23182 if inlined != (member_inline_size <= 4) {
23183 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23184 }
23185 let inner_offset;
23186 let mut inner_depth = depth.clone();
23187 if inlined {
23188 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23189 inner_offset = next_offset;
23190 } else {
23191 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23192 inner_depth.increment()?;
23193 }
23194 let val_ref = self.source_dictionary.get_or_insert_with(|| {
23195 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23196 });
23197 fidl::decode!(
23198 fidl::encoding::BoundedString<1024>,
23199 D,
23200 val_ref,
23201 decoder,
23202 inner_offset,
23203 inner_depth
23204 )?;
23205 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23206 {
23207 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23208 }
23209 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23210 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23211 }
23212 }
23213
23214 next_offset += envelope_size;
23215
23216 while next_offset < end_offset {
23218 _next_ordinal_to_read += 1;
23219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23220 next_offset += envelope_size;
23221 }
23222
23223 Ok(())
23224 }
23225 }
23226
23227 impl UseDirectory {
23228 #[inline(always)]
23229 fn max_ordinal_present(&self) -> u64 {
23230 if let Some(_) = self.source_dictionary {
23231 return 8;
23232 }
23233 if let Some(_) = self.availability {
23234 return 7;
23235 }
23236 if let Some(_) = self.dependency_type {
23237 return 6;
23238 }
23239 if let Some(_) = self.subdir {
23240 return 5;
23241 }
23242 if let Some(_) = self.rights {
23243 return 4;
23244 }
23245 if let Some(_) = self.target_path {
23246 return 3;
23247 }
23248 if let Some(_) = self.source_name {
23249 return 2;
23250 }
23251 if let Some(_) = self.source {
23252 return 1;
23253 }
23254 0
23255 }
23256 }
23257
23258 impl fidl::encoding::ValueTypeMarker for UseDirectory {
23259 type Borrowed<'a> = &'a Self;
23260 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23261 value
23262 }
23263 }
23264
23265 unsafe impl fidl::encoding::TypeMarker for UseDirectory {
23266 type Owned = Self;
23267
23268 #[inline(always)]
23269 fn inline_align(_context: fidl::encoding::Context) -> usize {
23270 8
23271 }
23272
23273 #[inline(always)]
23274 fn inline_size(_context: fidl::encoding::Context) -> usize {
23275 16
23276 }
23277 }
23278
23279 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseDirectory, D>
23280 for &UseDirectory
23281 {
23282 unsafe fn encode(
23283 self,
23284 encoder: &mut fidl::encoding::Encoder<'_, D>,
23285 offset: usize,
23286 mut depth: fidl::encoding::Depth,
23287 ) -> fidl::Result<()> {
23288 encoder.debug_check_bounds::<UseDirectory>(offset);
23289 let max_ordinal: u64 = self.max_ordinal_present();
23291 encoder.write_num(max_ordinal, offset);
23292 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
23293 if max_ordinal == 0 {
23295 return Ok(());
23296 }
23297 depth.increment()?;
23298 let envelope_size = 8;
23299 let bytes_len = max_ordinal as usize * envelope_size;
23300 #[allow(unused_variables)]
23301 let offset = encoder.out_of_line_offset(bytes_len);
23302 let mut _prev_end_offset: usize = 0;
23303 if 1 > max_ordinal {
23304 return Ok(());
23305 }
23306
23307 let cur_offset: usize = (1 - 1) * envelope_size;
23310
23311 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23313
23314 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
23319 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
23320 encoder,
23321 offset + cur_offset,
23322 depth,
23323 )?;
23324
23325 _prev_end_offset = cur_offset + envelope_size;
23326 if 2 > max_ordinal {
23327 return Ok(());
23328 }
23329
23330 let cur_offset: usize = (2 - 1) * envelope_size;
23333
23334 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23336
23337 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
23342 self.source_name.as_ref().map(
23343 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
23344 ),
23345 encoder,
23346 offset + cur_offset,
23347 depth,
23348 )?;
23349
23350 _prev_end_offset = cur_offset + envelope_size;
23351 if 3 > max_ordinal {
23352 return Ok(());
23353 }
23354
23355 let cur_offset: usize = (3 - 1) * envelope_size;
23358
23359 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23361
23362 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
23367 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
23368 encoder, offset + cur_offset, depth
23369 )?;
23370
23371 _prev_end_offset = cur_offset + envelope_size;
23372 if 4 > max_ordinal {
23373 return Ok(());
23374 }
23375
23376 let cur_offset: usize = (4 - 1) * envelope_size;
23379
23380 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23382
23383 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io__common::Operations, D>(
23388 self.rights.as_ref().map(<fidl_fuchsia_io__common::Operations as fidl::encoding::ValueTypeMarker>::borrow),
23389 encoder, offset + cur_offset, depth
23390 )?;
23391
23392 _prev_end_offset = cur_offset + envelope_size;
23393 if 5 > max_ordinal {
23394 return Ok(());
23395 }
23396
23397 let cur_offset: usize = (5 - 1) * envelope_size;
23400
23401 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23403
23404 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
23409 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
23410 encoder, offset + cur_offset, depth
23411 )?;
23412
23413 _prev_end_offset = cur_offset + envelope_size;
23414 if 6 > max_ordinal {
23415 return Ok(());
23416 }
23417
23418 let cur_offset: usize = (6 - 1) * envelope_size;
23421
23422 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23424
23425 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
23430 self.dependency_type
23431 .as_ref()
23432 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
23433 encoder,
23434 offset + cur_offset,
23435 depth,
23436 )?;
23437
23438 _prev_end_offset = cur_offset + envelope_size;
23439 if 7 > max_ordinal {
23440 return Ok(());
23441 }
23442
23443 let cur_offset: usize = (7 - 1) * envelope_size;
23446
23447 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23449
23450 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
23455 self.availability
23456 .as_ref()
23457 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
23458 encoder,
23459 offset + cur_offset,
23460 depth,
23461 )?;
23462
23463 _prev_end_offset = cur_offset + envelope_size;
23464 if 8 > max_ordinal {
23465 return Ok(());
23466 }
23467
23468 let cur_offset: usize = (8 - 1) * envelope_size;
23471
23472 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23474
23475 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
23480 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
23481 encoder, offset + cur_offset, depth
23482 )?;
23483
23484 _prev_end_offset = cur_offset + envelope_size;
23485
23486 Ok(())
23487 }
23488 }
23489
23490 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseDirectory {
23491 #[inline(always)]
23492 fn new_empty() -> Self {
23493 Self::default()
23494 }
23495
23496 unsafe fn decode(
23497 &mut self,
23498 decoder: &mut fidl::encoding::Decoder<'_, D>,
23499 offset: usize,
23500 mut depth: fidl::encoding::Depth,
23501 ) -> fidl::Result<()> {
23502 decoder.debug_check_bounds::<Self>(offset);
23503 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
23504 None => return Err(fidl::Error::NotNullable),
23505 Some(len) => len,
23506 };
23507 if len == 0 {
23509 return Ok(());
23510 };
23511 depth.increment()?;
23512 let envelope_size = 8;
23513 let bytes_len = len * envelope_size;
23514 let offset = decoder.out_of_line_offset(bytes_len)?;
23515 let mut _next_ordinal_to_read = 0;
23517 let mut next_offset = offset;
23518 let end_offset = offset + bytes_len;
23519 _next_ordinal_to_read += 1;
23520 if next_offset >= end_offset {
23521 return Ok(());
23522 }
23523
23524 while _next_ordinal_to_read < 1 {
23526 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23527 _next_ordinal_to_read += 1;
23528 next_offset += envelope_size;
23529 }
23530
23531 let next_out_of_line = decoder.next_out_of_line();
23532 let handles_before = decoder.remaining_handles();
23533 if let Some((inlined, num_bytes, num_handles)) =
23534 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23535 {
23536 let member_inline_size =
23537 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23538 if inlined != (member_inline_size <= 4) {
23539 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23540 }
23541 let inner_offset;
23542 let mut inner_depth = depth.clone();
23543 if inlined {
23544 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23545 inner_offset = next_offset;
23546 } else {
23547 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23548 inner_depth.increment()?;
23549 }
23550 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
23551 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
23552 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23553 {
23554 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23555 }
23556 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23557 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23558 }
23559 }
23560
23561 next_offset += envelope_size;
23562 _next_ordinal_to_read += 1;
23563 if next_offset >= end_offset {
23564 return Ok(());
23565 }
23566
23567 while _next_ordinal_to_read < 2 {
23569 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23570 _next_ordinal_to_read += 1;
23571 next_offset += envelope_size;
23572 }
23573
23574 let next_out_of_line = decoder.next_out_of_line();
23575 let handles_before = decoder.remaining_handles();
23576 if let Some((inlined, num_bytes, num_handles)) =
23577 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23578 {
23579 let member_inline_size =
23580 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
23581 decoder.context,
23582 );
23583 if inlined != (member_inline_size <= 4) {
23584 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23585 }
23586 let inner_offset;
23587 let mut inner_depth = depth.clone();
23588 if inlined {
23589 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23590 inner_offset = next_offset;
23591 } else {
23592 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23593 inner_depth.increment()?;
23594 }
23595 let val_ref = self
23596 .source_name
23597 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
23598 fidl::decode!(
23599 fidl::encoding::BoundedString<100>,
23600 D,
23601 val_ref,
23602 decoder,
23603 inner_offset,
23604 inner_depth
23605 )?;
23606 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23607 {
23608 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23609 }
23610 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23611 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23612 }
23613 }
23614
23615 next_offset += envelope_size;
23616 _next_ordinal_to_read += 1;
23617 if next_offset >= end_offset {
23618 return Ok(());
23619 }
23620
23621 while _next_ordinal_to_read < 3 {
23623 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23624 _next_ordinal_to_read += 1;
23625 next_offset += envelope_size;
23626 }
23627
23628 let next_out_of_line = decoder.next_out_of_line();
23629 let handles_before = decoder.remaining_handles();
23630 if let Some((inlined, num_bytes, num_handles)) =
23631 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23632 {
23633 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23634 if inlined != (member_inline_size <= 4) {
23635 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23636 }
23637 let inner_offset;
23638 let mut inner_depth = depth.clone();
23639 if inlined {
23640 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23641 inner_offset = next_offset;
23642 } else {
23643 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23644 inner_depth.increment()?;
23645 }
23646 let val_ref = self.target_path.get_or_insert_with(|| {
23647 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23648 });
23649 fidl::decode!(
23650 fidl::encoding::BoundedString<1024>,
23651 D,
23652 val_ref,
23653 decoder,
23654 inner_offset,
23655 inner_depth
23656 )?;
23657 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23658 {
23659 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23660 }
23661 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23662 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23663 }
23664 }
23665
23666 next_offset += envelope_size;
23667 _next_ordinal_to_read += 1;
23668 if next_offset >= end_offset {
23669 return Ok(());
23670 }
23671
23672 while _next_ordinal_to_read < 4 {
23674 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23675 _next_ordinal_to_read += 1;
23676 next_offset += envelope_size;
23677 }
23678
23679 let next_out_of_line = decoder.next_out_of_line();
23680 let handles_before = decoder.remaining_handles();
23681 if let Some((inlined, num_bytes, num_handles)) =
23682 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23683 {
23684 let member_inline_size = <fidl_fuchsia_io__common::Operations as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23685 if inlined != (member_inline_size <= 4) {
23686 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23687 }
23688 let inner_offset;
23689 let mut inner_depth = depth.clone();
23690 if inlined {
23691 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23692 inner_offset = next_offset;
23693 } else {
23694 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23695 inner_depth.increment()?;
23696 }
23697 let val_ref = self.rights.get_or_insert_with(|| {
23698 fidl::new_empty!(fidl_fuchsia_io__common::Operations, D)
23699 });
23700 fidl::decode!(
23701 fidl_fuchsia_io__common::Operations,
23702 D,
23703 val_ref,
23704 decoder,
23705 inner_offset,
23706 inner_depth
23707 )?;
23708 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23709 {
23710 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23711 }
23712 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23713 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23714 }
23715 }
23716
23717 next_offset += envelope_size;
23718 _next_ordinal_to_read += 1;
23719 if next_offset >= end_offset {
23720 return Ok(());
23721 }
23722
23723 while _next_ordinal_to_read < 5 {
23725 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23726 _next_ordinal_to_read += 1;
23727 next_offset += envelope_size;
23728 }
23729
23730 let next_out_of_line = decoder.next_out_of_line();
23731 let handles_before = decoder.remaining_handles();
23732 if let Some((inlined, num_bytes, num_handles)) =
23733 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23734 {
23735 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23736 if inlined != (member_inline_size <= 4) {
23737 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23738 }
23739 let inner_offset;
23740 let mut inner_depth = depth.clone();
23741 if inlined {
23742 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23743 inner_offset = next_offset;
23744 } else {
23745 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23746 inner_depth.increment()?;
23747 }
23748 let val_ref = self.subdir.get_or_insert_with(|| {
23749 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23750 });
23751 fidl::decode!(
23752 fidl::encoding::BoundedString<1024>,
23753 D,
23754 val_ref,
23755 decoder,
23756 inner_offset,
23757 inner_depth
23758 )?;
23759 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23760 {
23761 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23762 }
23763 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23764 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23765 }
23766 }
23767
23768 next_offset += envelope_size;
23769 _next_ordinal_to_read += 1;
23770 if next_offset >= end_offset {
23771 return Ok(());
23772 }
23773
23774 while _next_ordinal_to_read < 6 {
23776 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23777 _next_ordinal_to_read += 1;
23778 next_offset += envelope_size;
23779 }
23780
23781 let next_out_of_line = decoder.next_out_of_line();
23782 let handles_before = decoder.remaining_handles();
23783 if let Some((inlined, num_bytes, num_handles)) =
23784 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23785 {
23786 let member_inline_size =
23787 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23788 if inlined != (member_inline_size <= 4) {
23789 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23790 }
23791 let inner_offset;
23792 let mut inner_depth = depth.clone();
23793 if inlined {
23794 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23795 inner_offset = next_offset;
23796 } else {
23797 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23798 inner_depth.increment()?;
23799 }
23800 let val_ref =
23801 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
23802 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
23803 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23804 {
23805 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23806 }
23807 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23808 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23809 }
23810 }
23811
23812 next_offset += envelope_size;
23813 _next_ordinal_to_read += 1;
23814 if next_offset >= end_offset {
23815 return Ok(());
23816 }
23817
23818 while _next_ordinal_to_read < 7 {
23820 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23821 _next_ordinal_to_read += 1;
23822 next_offset += envelope_size;
23823 }
23824
23825 let next_out_of_line = decoder.next_out_of_line();
23826 let handles_before = decoder.remaining_handles();
23827 if let Some((inlined, num_bytes, num_handles)) =
23828 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23829 {
23830 let member_inline_size =
23831 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23832 if inlined != (member_inline_size <= 4) {
23833 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23834 }
23835 let inner_offset;
23836 let mut inner_depth = depth.clone();
23837 if inlined {
23838 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23839 inner_offset = next_offset;
23840 } else {
23841 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23842 inner_depth.increment()?;
23843 }
23844 let val_ref =
23845 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
23846 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
23847 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23848 {
23849 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23850 }
23851 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23852 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23853 }
23854 }
23855
23856 next_offset += envelope_size;
23857 _next_ordinal_to_read += 1;
23858 if next_offset >= end_offset {
23859 return Ok(());
23860 }
23861
23862 while _next_ordinal_to_read < 8 {
23864 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23865 _next_ordinal_to_read += 1;
23866 next_offset += envelope_size;
23867 }
23868
23869 let next_out_of_line = decoder.next_out_of_line();
23870 let handles_before = decoder.remaining_handles();
23871 if let Some((inlined, num_bytes, num_handles)) =
23872 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23873 {
23874 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23875 if inlined != (member_inline_size <= 4) {
23876 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23877 }
23878 let inner_offset;
23879 let mut inner_depth = depth.clone();
23880 if inlined {
23881 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23882 inner_offset = next_offset;
23883 } else {
23884 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23885 inner_depth.increment()?;
23886 }
23887 let val_ref = self.source_dictionary.get_or_insert_with(|| {
23888 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23889 });
23890 fidl::decode!(
23891 fidl::encoding::BoundedString<1024>,
23892 D,
23893 val_ref,
23894 decoder,
23895 inner_offset,
23896 inner_depth
23897 )?;
23898 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23899 {
23900 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23901 }
23902 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23903 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23904 }
23905 }
23906
23907 next_offset += envelope_size;
23908
23909 while next_offset < end_offset {
23911 _next_ordinal_to_read += 1;
23912 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23913 next_offset += envelope_size;
23914 }
23915
23916 Ok(())
23917 }
23918 }
23919
23920 impl UseEventStream {
23921 #[inline(always)]
23922 fn max_ordinal_present(&self) -> u64 {
23923 if let Some(_) = self.filter {
23924 return 6;
23925 }
23926 if let Some(_) = self.availability {
23927 return 5;
23928 }
23929 if let Some(_) = self.target_path {
23930 return 4;
23931 }
23932 if let Some(_) = self.scope {
23933 return 3;
23934 }
23935 if let Some(_) = self.source {
23936 return 2;
23937 }
23938 if let Some(_) = self.source_name {
23939 return 1;
23940 }
23941 0
23942 }
23943 }
23944
23945 impl fidl::encoding::ValueTypeMarker for UseEventStream {
23946 type Borrowed<'a> = &'a Self;
23947 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23948 value
23949 }
23950 }
23951
23952 unsafe impl fidl::encoding::TypeMarker for UseEventStream {
23953 type Owned = Self;
23954
23955 #[inline(always)]
23956 fn inline_align(_context: fidl::encoding::Context) -> usize {
23957 8
23958 }
23959
23960 #[inline(always)]
23961 fn inline_size(_context: fidl::encoding::Context) -> usize {
23962 16
23963 }
23964 }
23965
23966 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseEventStream, D>
23967 for &UseEventStream
23968 {
23969 unsafe fn encode(
23970 self,
23971 encoder: &mut fidl::encoding::Encoder<'_, D>,
23972 offset: usize,
23973 mut depth: fidl::encoding::Depth,
23974 ) -> fidl::Result<()> {
23975 encoder.debug_check_bounds::<UseEventStream>(offset);
23976 let max_ordinal: u64 = self.max_ordinal_present();
23978 encoder.write_num(max_ordinal, offset);
23979 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
23980 if max_ordinal == 0 {
23982 return Ok(());
23983 }
23984 depth.increment()?;
23985 let envelope_size = 8;
23986 let bytes_len = max_ordinal as usize * envelope_size;
23987 #[allow(unused_variables)]
23988 let offset = encoder.out_of_line_offset(bytes_len);
23989 let mut _prev_end_offset: usize = 0;
23990 if 1 > max_ordinal {
23991 return Ok(());
23992 }
23993
23994 let cur_offset: usize = (1 - 1) * envelope_size;
23997
23998 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24000
24001 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
24006 self.source_name.as_ref().map(
24007 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
24008 ),
24009 encoder,
24010 offset + cur_offset,
24011 depth,
24012 )?;
24013
24014 _prev_end_offset = cur_offset + envelope_size;
24015 if 2 > max_ordinal {
24016 return Ok(());
24017 }
24018
24019 let cur_offset: usize = (2 - 1) * envelope_size;
24022
24023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24025
24026 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
24031 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
24032 encoder,
24033 offset + cur_offset,
24034 depth,
24035 )?;
24036
24037 _prev_end_offset = cur_offset + envelope_size;
24038 if 3 > max_ordinal {
24039 return Ok(());
24040 }
24041
24042 let cur_offset: usize = (3 - 1) * envelope_size;
24045
24046 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24048
24049 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Ref>, D>(
24054 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<Ref> as fidl::encoding::ValueTypeMarker>::borrow),
24055 encoder, offset + cur_offset, depth
24056 )?;
24057
24058 _prev_end_offset = cur_offset + envelope_size;
24059 if 4 > max_ordinal {
24060 return Ok(());
24061 }
24062
24063 let cur_offset: usize = (4 - 1) * envelope_size;
24066
24067 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24069
24070 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
24075 self.target_path.as_ref().map(
24076 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
24077 ),
24078 encoder,
24079 offset + cur_offset,
24080 depth,
24081 )?;
24082
24083 _prev_end_offset = cur_offset + envelope_size;
24084 if 5 > max_ordinal {
24085 return Ok(());
24086 }
24087
24088 let cur_offset: usize = (5 - 1) * envelope_size;
24091
24092 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24094
24095 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
24100 self.availability
24101 .as_ref()
24102 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
24103 encoder,
24104 offset + cur_offset,
24105 depth,
24106 )?;
24107
24108 _prev_end_offset = cur_offset + envelope_size;
24109 if 6 > max_ordinal {
24110 return Ok(());
24111 }
24112
24113 let cur_offset: usize = (6 - 1) * envelope_size;
24116
24117 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24119
24120 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data__common::Dictionary, D>(
24125 self.filter.as_ref().map(<fidl_fuchsia_data__common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
24126 encoder, offset + cur_offset, depth
24127 )?;
24128
24129 _prev_end_offset = cur_offset + envelope_size;
24130
24131 Ok(())
24132 }
24133 }
24134
24135 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseEventStream {
24136 #[inline(always)]
24137 fn new_empty() -> Self {
24138 Self::default()
24139 }
24140
24141 unsafe fn decode(
24142 &mut self,
24143 decoder: &mut fidl::encoding::Decoder<'_, D>,
24144 offset: usize,
24145 mut depth: fidl::encoding::Depth,
24146 ) -> fidl::Result<()> {
24147 decoder.debug_check_bounds::<Self>(offset);
24148 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
24149 None => return Err(fidl::Error::NotNullable),
24150 Some(len) => len,
24151 };
24152 if len == 0 {
24154 return Ok(());
24155 };
24156 depth.increment()?;
24157 let envelope_size = 8;
24158 let bytes_len = len * envelope_size;
24159 let offset = decoder.out_of_line_offset(bytes_len)?;
24160 let mut _next_ordinal_to_read = 0;
24162 let mut next_offset = offset;
24163 let end_offset = offset + bytes_len;
24164 _next_ordinal_to_read += 1;
24165 if next_offset >= end_offset {
24166 return Ok(());
24167 }
24168
24169 while _next_ordinal_to_read < 1 {
24171 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24172 _next_ordinal_to_read += 1;
24173 next_offset += envelope_size;
24174 }
24175
24176 let next_out_of_line = decoder.next_out_of_line();
24177 let handles_before = decoder.remaining_handles();
24178 if let Some((inlined, num_bytes, num_handles)) =
24179 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24180 {
24181 let member_inline_size =
24182 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
24183 decoder.context,
24184 );
24185 if inlined != (member_inline_size <= 4) {
24186 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24187 }
24188 let inner_offset;
24189 let mut inner_depth = depth.clone();
24190 if inlined {
24191 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24192 inner_offset = next_offset;
24193 } else {
24194 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24195 inner_depth.increment()?;
24196 }
24197 let val_ref = self
24198 .source_name
24199 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
24200 fidl::decode!(
24201 fidl::encoding::BoundedString<100>,
24202 D,
24203 val_ref,
24204 decoder,
24205 inner_offset,
24206 inner_depth
24207 )?;
24208 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24209 {
24210 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24211 }
24212 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24213 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24214 }
24215 }
24216
24217 next_offset += envelope_size;
24218 _next_ordinal_to_read += 1;
24219 if next_offset >= end_offset {
24220 return Ok(());
24221 }
24222
24223 while _next_ordinal_to_read < 2 {
24225 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24226 _next_ordinal_to_read += 1;
24227 next_offset += envelope_size;
24228 }
24229
24230 let next_out_of_line = decoder.next_out_of_line();
24231 let handles_before = decoder.remaining_handles();
24232 if let Some((inlined, num_bytes, num_handles)) =
24233 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24234 {
24235 let member_inline_size =
24236 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24237 if inlined != (member_inline_size <= 4) {
24238 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24239 }
24240 let inner_offset;
24241 let mut inner_depth = depth.clone();
24242 if inlined {
24243 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24244 inner_offset = next_offset;
24245 } else {
24246 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24247 inner_depth.increment()?;
24248 }
24249 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
24250 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
24251 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24252 {
24253 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24254 }
24255 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24256 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24257 }
24258 }
24259
24260 next_offset += envelope_size;
24261 _next_ordinal_to_read += 1;
24262 if next_offset >= end_offset {
24263 return Ok(());
24264 }
24265
24266 while _next_ordinal_to_read < 3 {
24268 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24269 _next_ordinal_to_read += 1;
24270 next_offset += envelope_size;
24271 }
24272
24273 let next_out_of_line = decoder.next_out_of_line();
24274 let handles_before = decoder.remaining_handles();
24275 if let Some((inlined, num_bytes, num_handles)) =
24276 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24277 {
24278 let member_inline_size = <fidl::encoding::UnboundedVector<Ref> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24279 if inlined != (member_inline_size <= 4) {
24280 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24281 }
24282 let inner_offset;
24283 let mut inner_depth = depth.clone();
24284 if inlined {
24285 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24286 inner_offset = next_offset;
24287 } else {
24288 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24289 inner_depth.increment()?;
24290 }
24291 let val_ref = self.scope.get_or_insert_with(|| {
24292 fidl::new_empty!(fidl::encoding::UnboundedVector<Ref>, D)
24293 });
24294 fidl::decode!(
24295 fidl::encoding::UnboundedVector<Ref>,
24296 D,
24297 val_ref,
24298 decoder,
24299 inner_offset,
24300 inner_depth
24301 )?;
24302 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24303 {
24304 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24305 }
24306 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24307 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24308 }
24309 }
24310
24311 next_offset += envelope_size;
24312 _next_ordinal_to_read += 1;
24313 if next_offset >= end_offset {
24314 return Ok(());
24315 }
24316
24317 while _next_ordinal_to_read < 4 {
24319 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24320 _next_ordinal_to_read += 1;
24321 next_offset += envelope_size;
24322 }
24323
24324 let next_out_of_line = decoder.next_out_of_line();
24325 let handles_before = decoder.remaining_handles();
24326 if let Some((inlined, num_bytes, num_handles)) =
24327 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24328 {
24329 let member_inline_size =
24330 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
24331 decoder.context,
24332 );
24333 if inlined != (member_inline_size <= 4) {
24334 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24335 }
24336 let inner_offset;
24337 let mut inner_depth = depth.clone();
24338 if inlined {
24339 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24340 inner_offset = next_offset;
24341 } else {
24342 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24343 inner_depth.increment()?;
24344 }
24345 let val_ref = self
24346 .target_path
24347 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
24348 fidl::decode!(
24349 fidl::encoding::BoundedString<100>,
24350 D,
24351 val_ref,
24352 decoder,
24353 inner_offset,
24354 inner_depth
24355 )?;
24356 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24357 {
24358 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24359 }
24360 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24361 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24362 }
24363 }
24364
24365 next_offset += envelope_size;
24366 _next_ordinal_to_read += 1;
24367 if next_offset >= end_offset {
24368 return Ok(());
24369 }
24370
24371 while _next_ordinal_to_read < 5 {
24373 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24374 _next_ordinal_to_read += 1;
24375 next_offset += envelope_size;
24376 }
24377
24378 let next_out_of_line = decoder.next_out_of_line();
24379 let handles_before = decoder.remaining_handles();
24380 if let Some((inlined, num_bytes, num_handles)) =
24381 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24382 {
24383 let member_inline_size =
24384 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24385 if inlined != (member_inline_size <= 4) {
24386 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24387 }
24388 let inner_offset;
24389 let mut inner_depth = depth.clone();
24390 if inlined {
24391 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24392 inner_offset = next_offset;
24393 } else {
24394 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24395 inner_depth.increment()?;
24396 }
24397 let val_ref =
24398 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
24399 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
24400 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24401 {
24402 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24403 }
24404 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24405 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24406 }
24407 }
24408
24409 next_offset += envelope_size;
24410 _next_ordinal_to_read += 1;
24411 if next_offset >= end_offset {
24412 return Ok(());
24413 }
24414
24415 while _next_ordinal_to_read < 6 {
24417 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24418 _next_ordinal_to_read += 1;
24419 next_offset += envelope_size;
24420 }
24421
24422 let next_out_of_line = decoder.next_out_of_line();
24423 let handles_before = decoder.remaining_handles();
24424 if let Some((inlined, num_bytes, num_handles)) =
24425 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24426 {
24427 let member_inline_size = <fidl_fuchsia_data__common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24428 if inlined != (member_inline_size <= 4) {
24429 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24430 }
24431 let inner_offset;
24432 let mut inner_depth = depth.clone();
24433 if inlined {
24434 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24435 inner_offset = next_offset;
24436 } else {
24437 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24438 inner_depth.increment()?;
24439 }
24440 let val_ref = self.filter.get_or_insert_with(|| {
24441 fidl::new_empty!(fidl_fuchsia_data__common::Dictionary, D)
24442 });
24443 fidl::decode!(
24444 fidl_fuchsia_data__common::Dictionary,
24445 D,
24446 val_ref,
24447 decoder,
24448 inner_offset,
24449 inner_depth
24450 )?;
24451 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24452 {
24453 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24454 }
24455 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24456 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24457 }
24458 }
24459
24460 next_offset += envelope_size;
24461
24462 while next_offset < end_offset {
24464 _next_ordinal_to_read += 1;
24465 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24466 next_offset += envelope_size;
24467 }
24468
24469 Ok(())
24470 }
24471 }
24472
24473 impl UseProtocol {
24474 #[inline(always)]
24475 fn max_ordinal_present(&self) -> u64 {
24476 if let Some(_) = self.numbered_handle {
24477 return 7;
24478 }
24479 if let Some(_) = self.source_dictionary {
24480 return 6;
24481 }
24482 if let Some(_) = self.availability {
24483 return 5;
24484 }
24485 if let Some(_) = self.dependency_type {
24486 return 4;
24487 }
24488 if let Some(_) = self.target_path {
24489 return 3;
24490 }
24491 if let Some(_) = self.source_name {
24492 return 2;
24493 }
24494 if let Some(_) = self.source {
24495 return 1;
24496 }
24497 0
24498 }
24499 }
24500
24501 impl fidl::encoding::ValueTypeMarker for UseProtocol {
24502 type Borrowed<'a> = &'a Self;
24503 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24504 value
24505 }
24506 }
24507
24508 unsafe impl fidl::encoding::TypeMarker for UseProtocol {
24509 type Owned = Self;
24510
24511 #[inline(always)]
24512 fn inline_align(_context: fidl::encoding::Context) -> usize {
24513 8
24514 }
24515
24516 #[inline(always)]
24517 fn inline_size(_context: fidl::encoding::Context) -> usize {
24518 16
24519 }
24520 }
24521
24522 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseProtocol, D>
24523 for &UseProtocol
24524 {
24525 unsafe fn encode(
24526 self,
24527 encoder: &mut fidl::encoding::Encoder<'_, D>,
24528 offset: usize,
24529 mut depth: fidl::encoding::Depth,
24530 ) -> fidl::Result<()> {
24531 encoder.debug_check_bounds::<UseProtocol>(offset);
24532 let max_ordinal: u64 = self.max_ordinal_present();
24534 encoder.write_num(max_ordinal, offset);
24535 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
24536 if max_ordinal == 0 {
24538 return Ok(());
24539 }
24540 depth.increment()?;
24541 let envelope_size = 8;
24542 let bytes_len = max_ordinal as usize * envelope_size;
24543 #[allow(unused_variables)]
24544 let offset = encoder.out_of_line_offset(bytes_len);
24545 let mut _prev_end_offset: usize = 0;
24546 if 1 > max_ordinal {
24547 return Ok(());
24548 }
24549
24550 let cur_offset: usize = (1 - 1) * envelope_size;
24553
24554 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24556
24557 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
24562 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
24563 encoder,
24564 offset + cur_offset,
24565 depth,
24566 )?;
24567
24568 _prev_end_offset = cur_offset + envelope_size;
24569 if 2 > max_ordinal {
24570 return Ok(());
24571 }
24572
24573 let cur_offset: usize = (2 - 1) * envelope_size;
24576
24577 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24579
24580 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
24585 self.source_name.as_ref().map(
24586 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
24587 ),
24588 encoder,
24589 offset + cur_offset,
24590 depth,
24591 )?;
24592
24593 _prev_end_offset = cur_offset + envelope_size;
24594 if 3 > max_ordinal {
24595 return Ok(());
24596 }
24597
24598 let cur_offset: usize = (3 - 1) * envelope_size;
24601
24602 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24604
24605 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
24610 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
24611 encoder, offset + cur_offset, depth
24612 )?;
24613
24614 _prev_end_offset = cur_offset + envelope_size;
24615 if 4 > max_ordinal {
24616 return Ok(());
24617 }
24618
24619 let cur_offset: usize = (4 - 1) * envelope_size;
24622
24623 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24625
24626 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
24631 self.dependency_type
24632 .as_ref()
24633 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
24634 encoder,
24635 offset + cur_offset,
24636 depth,
24637 )?;
24638
24639 _prev_end_offset = cur_offset + envelope_size;
24640 if 5 > max_ordinal {
24641 return Ok(());
24642 }
24643
24644 let cur_offset: usize = (5 - 1) * envelope_size;
24647
24648 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24650
24651 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
24656 self.availability
24657 .as_ref()
24658 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
24659 encoder,
24660 offset + cur_offset,
24661 depth,
24662 )?;
24663
24664 _prev_end_offset = cur_offset + envelope_size;
24665 if 6 > max_ordinal {
24666 return Ok(());
24667 }
24668
24669 let cur_offset: usize = (6 - 1) * envelope_size;
24672
24673 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24675
24676 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
24681 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
24682 encoder, offset + cur_offset, depth
24683 )?;
24684
24685 _prev_end_offset = cur_offset + envelope_size;
24686 if 7 > max_ordinal {
24687 return Ok(());
24688 }
24689
24690 let cur_offset: usize = (7 - 1) * envelope_size;
24693
24694 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24696
24697 fidl::encoding::encode_in_envelope_optional::<u8, D>(
24702 self.numbered_handle.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
24703 encoder,
24704 offset + cur_offset,
24705 depth,
24706 )?;
24707
24708 _prev_end_offset = cur_offset + envelope_size;
24709
24710 Ok(())
24711 }
24712 }
24713
24714 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseProtocol {
24715 #[inline(always)]
24716 fn new_empty() -> Self {
24717 Self::default()
24718 }
24719
24720 unsafe fn decode(
24721 &mut self,
24722 decoder: &mut fidl::encoding::Decoder<'_, D>,
24723 offset: usize,
24724 mut depth: fidl::encoding::Depth,
24725 ) -> fidl::Result<()> {
24726 decoder.debug_check_bounds::<Self>(offset);
24727 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
24728 None => return Err(fidl::Error::NotNullable),
24729 Some(len) => len,
24730 };
24731 if len == 0 {
24733 return Ok(());
24734 };
24735 depth.increment()?;
24736 let envelope_size = 8;
24737 let bytes_len = len * envelope_size;
24738 let offset = decoder.out_of_line_offset(bytes_len)?;
24739 let mut _next_ordinal_to_read = 0;
24741 let mut next_offset = offset;
24742 let end_offset = offset + bytes_len;
24743 _next_ordinal_to_read += 1;
24744 if next_offset >= end_offset {
24745 return Ok(());
24746 }
24747
24748 while _next_ordinal_to_read < 1 {
24750 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24751 _next_ordinal_to_read += 1;
24752 next_offset += envelope_size;
24753 }
24754
24755 let next_out_of_line = decoder.next_out_of_line();
24756 let handles_before = decoder.remaining_handles();
24757 if let Some((inlined, num_bytes, num_handles)) =
24758 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24759 {
24760 let member_inline_size =
24761 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24762 if inlined != (member_inline_size <= 4) {
24763 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24764 }
24765 let inner_offset;
24766 let mut inner_depth = depth.clone();
24767 if inlined {
24768 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24769 inner_offset = next_offset;
24770 } else {
24771 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24772 inner_depth.increment()?;
24773 }
24774 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
24775 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
24776 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24777 {
24778 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24779 }
24780 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24781 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24782 }
24783 }
24784
24785 next_offset += envelope_size;
24786 _next_ordinal_to_read += 1;
24787 if next_offset >= end_offset {
24788 return Ok(());
24789 }
24790
24791 while _next_ordinal_to_read < 2 {
24793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24794 _next_ordinal_to_read += 1;
24795 next_offset += envelope_size;
24796 }
24797
24798 let next_out_of_line = decoder.next_out_of_line();
24799 let handles_before = decoder.remaining_handles();
24800 if let Some((inlined, num_bytes, num_handles)) =
24801 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24802 {
24803 let member_inline_size =
24804 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
24805 decoder.context,
24806 );
24807 if inlined != (member_inline_size <= 4) {
24808 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24809 }
24810 let inner_offset;
24811 let mut inner_depth = depth.clone();
24812 if inlined {
24813 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24814 inner_offset = next_offset;
24815 } else {
24816 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24817 inner_depth.increment()?;
24818 }
24819 let val_ref = self
24820 .source_name
24821 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
24822 fidl::decode!(
24823 fidl::encoding::BoundedString<100>,
24824 D,
24825 val_ref,
24826 decoder,
24827 inner_offset,
24828 inner_depth
24829 )?;
24830 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24831 {
24832 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24833 }
24834 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24835 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24836 }
24837 }
24838
24839 next_offset += envelope_size;
24840 _next_ordinal_to_read += 1;
24841 if next_offset >= end_offset {
24842 return Ok(());
24843 }
24844
24845 while _next_ordinal_to_read < 3 {
24847 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24848 _next_ordinal_to_read += 1;
24849 next_offset += envelope_size;
24850 }
24851
24852 let next_out_of_line = decoder.next_out_of_line();
24853 let handles_before = decoder.remaining_handles();
24854 if let Some((inlined, num_bytes, num_handles)) =
24855 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24856 {
24857 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24858 if inlined != (member_inline_size <= 4) {
24859 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24860 }
24861 let inner_offset;
24862 let mut inner_depth = depth.clone();
24863 if inlined {
24864 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24865 inner_offset = next_offset;
24866 } else {
24867 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24868 inner_depth.increment()?;
24869 }
24870 let val_ref = self.target_path.get_or_insert_with(|| {
24871 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
24872 });
24873 fidl::decode!(
24874 fidl::encoding::BoundedString<1024>,
24875 D,
24876 val_ref,
24877 decoder,
24878 inner_offset,
24879 inner_depth
24880 )?;
24881 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24882 {
24883 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24884 }
24885 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24886 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24887 }
24888 }
24889
24890 next_offset += envelope_size;
24891 _next_ordinal_to_read += 1;
24892 if next_offset >= end_offset {
24893 return Ok(());
24894 }
24895
24896 while _next_ordinal_to_read < 4 {
24898 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24899 _next_ordinal_to_read += 1;
24900 next_offset += envelope_size;
24901 }
24902
24903 let next_out_of_line = decoder.next_out_of_line();
24904 let handles_before = decoder.remaining_handles();
24905 if let Some((inlined, num_bytes, num_handles)) =
24906 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24907 {
24908 let member_inline_size =
24909 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24910 if inlined != (member_inline_size <= 4) {
24911 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24912 }
24913 let inner_offset;
24914 let mut inner_depth = depth.clone();
24915 if inlined {
24916 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24917 inner_offset = next_offset;
24918 } else {
24919 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24920 inner_depth.increment()?;
24921 }
24922 let val_ref =
24923 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
24924 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
24925 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24926 {
24927 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24928 }
24929 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24930 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24931 }
24932 }
24933
24934 next_offset += envelope_size;
24935 _next_ordinal_to_read += 1;
24936 if next_offset >= end_offset {
24937 return Ok(());
24938 }
24939
24940 while _next_ordinal_to_read < 5 {
24942 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24943 _next_ordinal_to_read += 1;
24944 next_offset += envelope_size;
24945 }
24946
24947 let next_out_of_line = decoder.next_out_of_line();
24948 let handles_before = decoder.remaining_handles();
24949 if let Some((inlined, num_bytes, num_handles)) =
24950 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24951 {
24952 let member_inline_size =
24953 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24954 if inlined != (member_inline_size <= 4) {
24955 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24956 }
24957 let inner_offset;
24958 let mut inner_depth = depth.clone();
24959 if inlined {
24960 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24961 inner_offset = next_offset;
24962 } else {
24963 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24964 inner_depth.increment()?;
24965 }
24966 let val_ref =
24967 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
24968 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
24969 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24970 {
24971 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24972 }
24973 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24974 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24975 }
24976 }
24977
24978 next_offset += envelope_size;
24979 _next_ordinal_to_read += 1;
24980 if next_offset >= end_offset {
24981 return Ok(());
24982 }
24983
24984 while _next_ordinal_to_read < 6 {
24986 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24987 _next_ordinal_to_read += 1;
24988 next_offset += envelope_size;
24989 }
24990
24991 let next_out_of_line = decoder.next_out_of_line();
24992 let handles_before = decoder.remaining_handles();
24993 if let Some((inlined, num_bytes, num_handles)) =
24994 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24995 {
24996 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24997 if inlined != (member_inline_size <= 4) {
24998 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24999 }
25000 let inner_offset;
25001 let mut inner_depth = depth.clone();
25002 if inlined {
25003 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25004 inner_offset = next_offset;
25005 } else {
25006 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25007 inner_depth.increment()?;
25008 }
25009 let val_ref = self.source_dictionary.get_or_insert_with(|| {
25010 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25011 });
25012 fidl::decode!(
25013 fidl::encoding::BoundedString<1024>,
25014 D,
25015 val_ref,
25016 decoder,
25017 inner_offset,
25018 inner_depth
25019 )?;
25020 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25021 {
25022 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25023 }
25024 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25025 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25026 }
25027 }
25028
25029 next_offset += envelope_size;
25030 _next_ordinal_to_read += 1;
25031 if next_offset >= end_offset {
25032 return Ok(());
25033 }
25034
25035 while _next_ordinal_to_read < 7 {
25037 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25038 _next_ordinal_to_read += 1;
25039 next_offset += envelope_size;
25040 }
25041
25042 let next_out_of_line = decoder.next_out_of_line();
25043 let handles_before = decoder.remaining_handles();
25044 if let Some((inlined, num_bytes, num_handles)) =
25045 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25046 {
25047 let member_inline_size =
25048 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25049 if inlined != (member_inline_size <= 4) {
25050 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25051 }
25052 let inner_offset;
25053 let mut inner_depth = depth.clone();
25054 if inlined {
25055 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25056 inner_offset = next_offset;
25057 } else {
25058 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25059 inner_depth.increment()?;
25060 }
25061 let val_ref = self.numbered_handle.get_or_insert_with(|| fidl::new_empty!(u8, D));
25062 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
25063 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25064 {
25065 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25066 }
25067 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25068 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25069 }
25070 }
25071
25072 next_offset += envelope_size;
25073
25074 while next_offset < end_offset {
25076 _next_ordinal_to_read += 1;
25077 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25078 next_offset += envelope_size;
25079 }
25080
25081 Ok(())
25082 }
25083 }
25084
25085 impl UseRunner {
25086 #[inline(always)]
25087 fn max_ordinal_present(&self) -> u64 {
25088 if let Some(_) = self.source_dictionary {
25089 return 3;
25090 }
25091 if let Some(_) = self.source_name {
25092 return 2;
25093 }
25094 if let Some(_) = self.source {
25095 return 1;
25096 }
25097 0
25098 }
25099 }
25100
25101 impl fidl::encoding::ValueTypeMarker for UseRunner {
25102 type Borrowed<'a> = &'a Self;
25103 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
25104 value
25105 }
25106 }
25107
25108 unsafe impl fidl::encoding::TypeMarker for UseRunner {
25109 type Owned = Self;
25110
25111 #[inline(always)]
25112 fn inline_align(_context: fidl::encoding::Context) -> usize {
25113 8
25114 }
25115
25116 #[inline(always)]
25117 fn inline_size(_context: fidl::encoding::Context) -> usize {
25118 16
25119 }
25120 }
25121
25122 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseRunner, D>
25123 for &UseRunner
25124 {
25125 unsafe fn encode(
25126 self,
25127 encoder: &mut fidl::encoding::Encoder<'_, D>,
25128 offset: usize,
25129 mut depth: fidl::encoding::Depth,
25130 ) -> fidl::Result<()> {
25131 encoder.debug_check_bounds::<UseRunner>(offset);
25132 let max_ordinal: u64 = self.max_ordinal_present();
25134 encoder.write_num(max_ordinal, offset);
25135 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
25136 if max_ordinal == 0 {
25138 return Ok(());
25139 }
25140 depth.increment()?;
25141 let envelope_size = 8;
25142 let bytes_len = max_ordinal as usize * envelope_size;
25143 #[allow(unused_variables)]
25144 let offset = encoder.out_of_line_offset(bytes_len);
25145 let mut _prev_end_offset: usize = 0;
25146 if 1 > max_ordinal {
25147 return Ok(());
25148 }
25149
25150 let cur_offset: usize = (1 - 1) * envelope_size;
25153
25154 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25156
25157 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
25162 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
25163 encoder,
25164 offset + cur_offset,
25165 depth,
25166 )?;
25167
25168 _prev_end_offset = cur_offset + envelope_size;
25169 if 2 > max_ordinal {
25170 return Ok(());
25171 }
25172
25173 let cur_offset: usize = (2 - 1) * envelope_size;
25176
25177 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25179
25180 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
25185 self.source_name.as_ref().map(
25186 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
25187 ),
25188 encoder,
25189 offset + cur_offset,
25190 depth,
25191 )?;
25192
25193 _prev_end_offset = cur_offset + envelope_size;
25194 if 3 > max_ordinal {
25195 return Ok(());
25196 }
25197
25198 let cur_offset: usize = (3 - 1) * envelope_size;
25201
25202 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25204
25205 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
25210 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
25211 encoder, offset + cur_offset, depth
25212 )?;
25213
25214 _prev_end_offset = cur_offset + envelope_size;
25215
25216 Ok(())
25217 }
25218 }
25219
25220 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseRunner {
25221 #[inline(always)]
25222 fn new_empty() -> Self {
25223 Self::default()
25224 }
25225
25226 unsafe fn decode(
25227 &mut self,
25228 decoder: &mut fidl::encoding::Decoder<'_, D>,
25229 offset: usize,
25230 mut depth: fidl::encoding::Depth,
25231 ) -> fidl::Result<()> {
25232 decoder.debug_check_bounds::<Self>(offset);
25233 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
25234 None => return Err(fidl::Error::NotNullable),
25235 Some(len) => len,
25236 };
25237 if len == 0 {
25239 return Ok(());
25240 };
25241 depth.increment()?;
25242 let envelope_size = 8;
25243 let bytes_len = len * envelope_size;
25244 let offset = decoder.out_of_line_offset(bytes_len)?;
25245 let mut _next_ordinal_to_read = 0;
25247 let mut next_offset = offset;
25248 let end_offset = offset + bytes_len;
25249 _next_ordinal_to_read += 1;
25250 if next_offset >= end_offset {
25251 return Ok(());
25252 }
25253
25254 while _next_ordinal_to_read < 1 {
25256 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25257 _next_ordinal_to_read += 1;
25258 next_offset += envelope_size;
25259 }
25260
25261 let next_out_of_line = decoder.next_out_of_line();
25262 let handles_before = decoder.remaining_handles();
25263 if let Some((inlined, num_bytes, num_handles)) =
25264 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25265 {
25266 let member_inline_size =
25267 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25268 if inlined != (member_inline_size <= 4) {
25269 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25270 }
25271 let inner_offset;
25272 let mut inner_depth = depth.clone();
25273 if inlined {
25274 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25275 inner_offset = next_offset;
25276 } else {
25277 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25278 inner_depth.increment()?;
25279 }
25280 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
25281 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
25282 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25283 {
25284 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25285 }
25286 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25287 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25288 }
25289 }
25290
25291 next_offset += envelope_size;
25292 _next_ordinal_to_read += 1;
25293 if next_offset >= end_offset {
25294 return Ok(());
25295 }
25296
25297 while _next_ordinal_to_read < 2 {
25299 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25300 _next_ordinal_to_read += 1;
25301 next_offset += envelope_size;
25302 }
25303
25304 let next_out_of_line = decoder.next_out_of_line();
25305 let handles_before = decoder.remaining_handles();
25306 if let Some((inlined, num_bytes, num_handles)) =
25307 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25308 {
25309 let member_inline_size =
25310 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
25311 decoder.context,
25312 );
25313 if inlined != (member_inline_size <= 4) {
25314 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25315 }
25316 let inner_offset;
25317 let mut inner_depth = depth.clone();
25318 if inlined {
25319 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25320 inner_offset = next_offset;
25321 } else {
25322 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25323 inner_depth.increment()?;
25324 }
25325 let val_ref = self
25326 .source_name
25327 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
25328 fidl::decode!(
25329 fidl::encoding::BoundedString<100>,
25330 D,
25331 val_ref,
25332 decoder,
25333 inner_offset,
25334 inner_depth
25335 )?;
25336 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25337 {
25338 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25339 }
25340 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25341 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25342 }
25343 }
25344
25345 next_offset += envelope_size;
25346 _next_ordinal_to_read += 1;
25347 if next_offset >= end_offset {
25348 return Ok(());
25349 }
25350
25351 while _next_ordinal_to_read < 3 {
25353 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25354 _next_ordinal_to_read += 1;
25355 next_offset += envelope_size;
25356 }
25357
25358 let next_out_of_line = decoder.next_out_of_line();
25359 let handles_before = decoder.remaining_handles();
25360 if let Some((inlined, num_bytes, num_handles)) =
25361 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25362 {
25363 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25364 if inlined != (member_inline_size <= 4) {
25365 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25366 }
25367 let inner_offset;
25368 let mut inner_depth = depth.clone();
25369 if inlined {
25370 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25371 inner_offset = next_offset;
25372 } else {
25373 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25374 inner_depth.increment()?;
25375 }
25376 let val_ref = self.source_dictionary.get_or_insert_with(|| {
25377 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25378 });
25379 fidl::decode!(
25380 fidl::encoding::BoundedString<1024>,
25381 D,
25382 val_ref,
25383 decoder,
25384 inner_offset,
25385 inner_depth
25386 )?;
25387 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25388 {
25389 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25390 }
25391 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25392 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25393 }
25394 }
25395
25396 next_offset += envelope_size;
25397
25398 while next_offset < end_offset {
25400 _next_ordinal_to_read += 1;
25401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25402 next_offset += envelope_size;
25403 }
25404
25405 Ok(())
25406 }
25407 }
25408
25409 impl UseService {
25410 #[inline(always)]
25411 fn max_ordinal_present(&self) -> u64 {
25412 if let Some(_) = self.source_dictionary {
25413 return 6;
25414 }
25415 if let Some(_) = self.availability {
25416 return 5;
25417 }
25418 if let Some(_) = self.dependency_type {
25419 return 4;
25420 }
25421 if let Some(_) = self.target_path {
25422 return 3;
25423 }
25424 if let Some(_) = self.source_name {
25425 return 2;
25426 }
25427 if let Some(_) = self.source {
25428 return 1;
25429 }
25430 0
25431 }
25432 }
25433
25434 impl fidl::encoding::ValueTypeMarker for UseService {
25435 type Borrowed<'a> = &'a Self;
25436 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
25437 value
25438 }
25439 }
25440
25441 unsafe impl fidl::encoding::TypeMarker for UseService {
25442 type Owned = Self;
25443
25444 #[inline(always)]
25445 fn inline_align(_context: fidl::encoding::Context) -> usize {
25446 8
25447 }
25448
25449 #[inline(always)]
25450 fn inline_size(_context: fidl::encoding::Context) -> usize {
25451 16
25452 }
25453 }
25454
25455 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseService, D>
25456 for &UseService
25457 {
25458 unsafe fn encode(
25459 self,
25460 encoder: &mut fidl::encoding::Encoder<'_, D>,
25461 offset: usize,
25462 mut depth: fidl::encoding::Depth,
25463 ) -> fidl::Result<()> {
25464 encoder.debug_check_bounds::<UseService>(offset);
25465 let max_ordinal: u64 = self.max_ordinal_present();
25467 encoder.write_num(max_ordinal, offset);
25468 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
25469 if max_ordinal == 0 {
25471 return Ok(());
25472 }
25473 depth.increment()?;
25474 let envelope_size = 8;
25475 let bytes_len = max_ordinal as usize * envelope_size;
25476 #[allow(unused_variables)]
25477 let offset = encoder.out_of_line_offset(bytes_len);
25478 let mut _prev_end_offset: usize = 0;
25479 if 1 > max_ordinal {
25480 return Ok(());
25481 }
25482
25483 let cur_offset: usize = (1 - 1) * envelope_size;
25486
25487 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25489
25490 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
25495 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
25496 encoder,
25497 offset + cur_offset,
25498 depth,
25499 )?;
25500
25501 _prev_end_offset = cur_offset + envelope_size;
25502 if 2 > max_ordinal {
25503 return Ok(());
25504 }
25505
25506 let cur_offset: usize = (2 - 1) * envelope_size;
25509
25510 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25512
25513 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
25518 self.source_name.as_ref().map(
25519 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
25520 ),
25521 encoder,
25522 offset + cur_offset,
25523 depth,
25524 )?;
25525
25526 _prev_end_offset = cur_offset + envelope_size;
25527 if 3 > max_ordinal {
25528 return Ok(());
25529 }
25530
25531 let cur_offset: usize = (3 - 1) * envelope_size;
25534
25535 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25537
25538 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
25543 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
25544 encoder, offset + cur_offset, depth
25545 )?;
25546
25547 _prev_end_offset = cur_offset + envelope_size;
25548 if 4 > max_ordinal {
25549 return Ok(());
25550 }
25551
25552 let cur_offset: usize = (4 - 1) * envelope_size;
25555
25556 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25558
25559 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
25564 self.dependency_type
25565 .as_ref()
25566 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
25567 encoder,
25568 offset + cur_offset,
25569 depth,
25570 )?;
25571
25572 _prev_end_offset = cur_offset + envelope_size;
25573 if 5 > max_ordinal {
25574 return Ok(());
25575 }
25576
25577 let cur_offset: usize = (5 - 1) * envelope_size;
25580
25581 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25583
25584 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
25589 self.availability
25590 .as_ref()
25591 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
25592 encoder,
25593 offset + cur_offset,
25594 depth,
25595 )?;
25596
25597 _prev_end_offset = cur_offset + envelope_size;
25598 if 6 > max_ordinal {
25599 return Ok(());
25600 }
25601
25602 let cur_offset: usize = (6 - 1) * envelope_size;
25605
25606 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25608
25609 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
25614 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
25615 encoder, offset + cur_offset, depth
25616 )?;
25617
25618 _prev_end_offset = cur_offset + envelope_size;
25619
25620 Ok(())
25621 }
25622 }
25623
25624 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseService {
25625 #[inline(always)]
25626 fn new_empty() -> Self {
25627 Self::default()
25628 }
25629
25630 unsafe fn decode(
25631 &mut self,
25632 decoder: &mut fidl::encoding::Decoder<'_, D>,
25633 offset: usize,
25634 mut depth: fidl::encoding::Depth,
25635 ) -> fidl::Result<()> {
25636 decoder.debug_check_bounds::<Self>(offset);
25637 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
25638 None => return Err(fidl::Error::NotNullable),
25639 Some(len) => len,
25640 };
25641 if len == 0 {
25643 return Ok(());
25644 };
25645 depth.increment()?;
25646 let envelope_size = 8;
25647 let bytes_len = len * envelope_size;
25648 let offset = decoder.out_of_line_offset(bytes_len)?;
25649 let mut _next_ordinal_to_read = 0;
25651 let mut next_offset = offset;
25652 let end_offset = offset + bytes_len;
25653 _next_ordinal_to_read += 1;
25654 if next_offset >= end_offset {
25655 return Ok(());
25656 }
25657
25658 while _next_ordinal_to_read < 1 {
25660 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25661 _next_ordinal_to_read += 1;
25662 next_offset += envelope_size;
25663 }
25664
25665 let next_out_of_line = decoder.next_out_of_line();
25666 let handles_before = decoder.remaining_handles();
25667 if let Some((inlined, num_bytes, num_handles)) =
25668 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25669 {
25670 let member_inline_size =
25671 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25672 if inlined != (member_inline_size <= 4) {
25673 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25674 }
25675 let inner_offset;
25676 let mut inner_depth = depth.clone();
25677 if inlined {
25678 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25679 inner_offset = next_offset;
25680 } else {
25681 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25682 inner_depth.increment()?;
25683 }
25684 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
25685 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
25686 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25687 {
25688 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25689 }
25690 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25691 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25692 }
25693 }
25694
25695 next_offset += envelope_size;
25696 _next_ordinal_to_read += 1;
25697 if next_offset >= end_offset {
25698 return Ok(());
25699 }
25700
25701 while _next_ordinal_to_read < 2 {
25703 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25704 _next_ordinal_to_read += 1;
25705 next_offset += envelope_size;
25706 }
25707
25708 let next_out_of_line = decoder.next_out_of_line();
25709 let handles_before = decoder.remaining_handles();
25710 if let Some((inlined, num_bytes, num_handles)) =
25711 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25712 {
25713 let member_inline_size =
25714 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
25715 decoder.context,
25716 );
25717 if inlined != (member_inline_size <= 4) {
25718 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25719 }
25720 let inner_offset;
25721 let mut inner_depth = depth.clone();
25722 if inlined {
25723 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25724 inner_offset = next_offset;
25725 } else {
25726 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25727 inner_depth.increment()?;
25728 }
25729 let val_ref = self
25730 .source_name
25731 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
25732 fidl::decode!(
25733 fidl::encoding::BoundedString<100>,
25734 D,
25735 val_ref,
25736 decoder,
25737 inner_offset,
25738 inner_depth
25739 )?;
25740 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25741 {
25742 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25743 }
25744 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25745 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25746 }
25747 }
25748
25749 next_offset += envelope_size;
25750 _next_ordinal_to_read += 1;
25751 if next_offset >= end_offset {
25752 return Ok(());
25753 }
25754
25755 while _next_ordinal_to_read < 3 {
25757 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25758 _next_ordinal_to_read += 1;
25759 next_offset += envelope_size;
25760 }
25761
25762 let next_out_of_line = decoder.next_out_of_line();
25763 let handles_before = decoder.remaining_handles();
25764 if let Some((inlined, num_bytes, num_handles)) =
25765 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25766 {
25767 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25768 if inlined != (member_inline_size <= 4) {
25769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25770 }
25771 let inner_offset;
25772 let mut inner_depth = depth.clone();
25773 if inlined {
25774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25775 inner_offset = next_offset;
25776 } else {
25777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25778 inner_depth.increment()?;
25779 }
25780 let val_ref = self.target_path.get_or_insert_with(|| {
25781 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25782 });
25783 fidl::decode!(
25784 fidl::encoding::BoundedString<1024>,
25785 D,
25786 val_ref,
25787 decoder,
25788 inner_offset,
25789 inner_depth
25790 )?;
25791 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25792 {
25793 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25794 }
25795 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25796 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25797 }
25798 }
25799
25800 next_offset += envelope_size;
25801 _next_ordinal_to_read += 1;
25802 if next_offset >= end_offset {
25803 return Ok(());
25804 }
25805
25806 while _next_ordinal_to_read < 4 {
25808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25809 _next_ordinal_to_read += 1;
25810 next_offset += envelope_size;
25811 }
25812
25813 let next_out_of_line = decoder.next_out_of_line();
25814 let handles_before = decoder.remaining_handles();
25815 if let Some((inlined, num_bytes, num_handles)) =
25816 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25817 {
25818 let member_inline_size =
25819 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25820 if inlined != (member_inline_size <= 4) {
25821 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25822 }
25823 let inner_offset;
25824 let mut inner_depth = depth.clone();
25825 if inlined {
25826 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25827 inner_offset = next_offset;
25828 } else {
25829 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25830 inner_depth.increment()?;
25831 }
25832 let val_ref =
25833 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
25834 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
25835 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25836 {
25837 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25838 }
25839 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25840 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25841 }
25842 }
25843
25844 next_offset += envelope_size;
25845 _next_ordinal_to_read += 1;
25846 if next_offset >= end_offset {
25847 return Ok(());
25848 }
25849
25850 while _next_ordinal_to_read < 5 {
25852 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25853 _next_ordinal_to_read += 1;
25854 next_offset += envelope_size;
25855 }
25856
25857 let next_out_of_line = decoder.next_out_of_line();
25858 let handles_before = decoder.remaining_handles();
25859 if let Some((inlined, num_bytes, num_handles)) =
25860 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25861 {
25862 let member_inline_size =
25863 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25864 if inlined != (member_inline_size <= 4) {
25865 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25866 }
25867 let inner_offset;
25868 let mut inner_depth = depth.clone();
25869 if inlined {
25870 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25871 inner_offset = next_offset;
25872 } else {
25873 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25874 inner_depth.increment()?;
25875 }
25876 let val_ref =
25877 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
25878 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
25879 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25880 {
25881 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25882 }
25883 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25884 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25885 }
25886 }
25887
25888 next_offset += envelope_size;
25889 _next_ordinal_to_read += 1;
25890 if next_offset >= end_offset {
25891 return Ok(());
25892 }
25893
25894 while _next_ordinal_to_read < 6 {
25896 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25897 _next_ordinal_to_read += 1;
25898 next_offset += envelope_size;
25899 }
25900
25901 let next_out_of_line = decoder.next_out_of_line();
25902 let handles_before = decoder.remaining_handles();
25903 if let Some((inlined, num_bytes, num_handles)) =
25904 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25905 {
25906 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25907 if inlined != (member_inline_size <= 4) {
25908 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25909 }
25910 let inner_offset;
25911 let mut inner_depth = depth.clone();
25912 if inlined {
25913 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25914 inner_offset = next_offset;
25915 } else {
25916 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25917 inner_depth.increment()?;
25918 }
25919 let val_ref = self.source_dictionary.get_or_insert_with(|| {
25920 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25921 });
25922 fidl::decode!(
25923 fidl::encoding::BoundedString<1024>,
25924 D,
25925 val_ref,
25926 decoder,
25927 inner_offset,
25928 inner_depth
25929 )?;
25930 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25931 {
25932 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25933 }
25934 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25935 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25936 }
25937 }
25938
25939 next_offset += envelope_size;
25940
25941 while next_offset < end_offset {
25943 _next_ordinal_to_read += 1;
25944 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25945 next_offset += envelope_size;
25946 }
25947
25948 Ok(())
25949 }
25950 }
25951
25952 impl UseStorage {
25953 #[inline(always)]
25954 fn max_ordinal_present(&self) -> u64 {
25955 if let Some(_) = self.availability {
25956 return 3;
25957 }
25958 if let Some(_) = self.target_path {
25959 return 2;
25960 }
25961 if let Some(_) = self.source_name {
25962 return 1;
25963 }
25964 0
25965 }
25966 }
25967
25968 impl fidl::encoding::ValueTypeMarker for UseStorage {
25969 type Borrowed<'a> = &'a Self;
25970 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
25971 value
25972 }
25973 }
25974
25975 unsafe impl fidl::encoding::TypeMarker for UseStorage {
25976 type Owned = Self;
25977
25978 #[inline(always)]
25979 fn inline_align(_context: fidl::encoding::Context) -> usize {
25980 8
25981 }
25982
25983 #[inline(always)]
25984 fn inline_size(_context: fidl::encoding::Context) -> usize {
25985 16
25986 }
25987 }
25988
25989 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseStorage, D>
25990 for &UseStorage
25991 {
25992 unsafe fn encode(
25993 self,
25994 encoder: &mut fidl::encoding::Encoder<'_, D>,
25995 offset: usize,
25996 mut depth: fidl::encoding::Depth,
25997 ) -> fidl::Result<()> {
25998 encoder.debug_check_bounds::<UseStorage>(offset);
25999 let max_ordinal: u64 = self.max_ordinal_present();
26001 encoder.write_num(max_ordinal, offset);
26002 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
26003 if max_ordinal == 0 {
26005 return Ok(());
26006 }
26007 depth.increment()?;
26008 let envelope_size = 8;
26009 let bytes_len = max_ordinal as usize * envelope_size;
26010 #[allow(unused_variables)]
26011 let offset = encoder.out_of_line_offset(bytes_len);
26012 let mut _prev_end_offset: usize = 0;
26013 if 1 > max_ordinal {
26014 return Ok(());
26015 }
26016
26017 let cur_offset: usize = (1 - 1) * envelope_size;
26020
26021 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
26023
26024 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
26029 self.source_name.as_ref().map(
26030 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
26031 ),
26032 encoder,
26033 offset + cur_offset,
26034 depth,
26035 )?;
26036
26037 _prev_end_offset = cur_offset + envelope_size;
26038 if 2 > max_ordinal {
26039 return Ok(());
26040 }
26041
26042 let cur_offset: usize = (2 - 1) * envelope_size;
26045
26046 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
26048
26049 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
26054 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
26055 encoder, offset + cur_offset, depth
26056 )?;
26057
26058 _prev_end_offset = cur_offset + envelope_size;
26059 if 3 > max_ordinal {
26060 return Ok(());
26061 }
26062
26063 let cur_offset: usize = (3 - 1) * envelope_size;
26066
26067 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
26069
26070 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
26075 self.availability
26076 .as_ref()
26077 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
26078 encoder,
26079 offset + cur_offset,
26080 depth,
26081 )?;
26082
26083 _prev_end_offset = cur_offset + envelope_size;
26084
26085 Ok(())
26086 }
26087 }
26088
26089 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseStorage {
26090 #[inline(always)]
26091 fn new_empty() -> Self {
26092 Self::default()
26093 }
26094
26095 unsafe fn decode(
26096 &mut self,
26097 decoder: &mut fidl::encoding::Decoder<'_, D>,
26098 offset: usize,
26099 mut depth: fidl::encoding::Depth,
26100 ) -> fidl::Result<()> {
26101 decoder.debug_check_bounds::<Self>(offset);
26102 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
26103 None => return Err(fidl::Error::NotNullable),
26104 Some(len) => len,
26105 };
26106 if len == 0 {
26108 return Ok(());
26109 };
26110 depth.increment()?;
26111 let envelope_size = 8;
26112 let bytes_len = len * envelope_size;
26113 let offset = decoder.out_of_line_offset(bytes_len)?;
26114 let mut _next_ordinal_to_read = 0;
26116 let mut next_offset = offset;
26117 let end_offset = offset + bytes_len;
26118 _next_ordinal_to_read += 1;
26119 if next_offset >= end_offset {
26120 return Ok(());
26121 }
26122
26123 while _next_ordinal_to_read < 1 {
26125 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
26126 _next_ordinal_to_read += 1;
26127 next_offset += envelope_size;
26128 }
26129
26130 let next_out_of_line = decoder.next_out_of_line();
26131 let handles_before = decoder.remaining_handles();
26132 if let Some((inlined, num_bytes, num_handles)) =
26133 fidl::encoding::decode_envelope_header(decoder, next_offset)?
26134 {
26135 let member_inline_size =
26136 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
26137 decoder.context,
26138 );
26139 if inlined != (member_inline_size <= 4) {
26140 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26141 }
26142 let inner_offset;
26143 let mut inner_depth = depth.clone();
26144 if inlined {
26145 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
26146 inner_offset = next_offset;
26147 } else {
26148 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26149 inner_depth.increment()?;
26150 }
26151 let val_ref = self
26152 .source_name
26153 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
26154 fidl::decode!(
26155 fidl::encoding::BoundedString<100>,
26156 D,
26157 val_ref,
26158 decoder,
26159 inner_offset,
26160 inner_depth
26161 )?;
26162 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
26163 {
26164 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26165 }
26166 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26167 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26168 }
26169 }
26170
26171 next_offset += envelope_size;
26172 _next_ordinal_to_read += 1;
26173 if next_offset >= end_offset {
26174 return Ok(());
26175 }
26176
26177 while _next_ordinal_to_read < 2 {
26179 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
26180 _next_ordinal_to_read += 1;
26181 next_offset += envelope_size;
26182 }
26183
26184 let next_out_of_line = decoder.next_out_of_line();
26185 let handles_before = decoder.remaining_handles();
26186 if let Some((inlined, num_bytes, num_handles)) =
26187 fidl::encoding::decode_envelope_header(decoder, next_offset)?
26188 {
26189 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
26190 if inlined != (member_inline_size <= 4) {
26191 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26192 }
26193 let inner_offset;
26194 let mut inner_depth = depth.clone();
26195 if inlined {
26196 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
26197 inner_offset = next_offset;
26198 } else {
26199 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26200 inner_depth.increment()?;
26201 }
26202 let val_ref = self.target_path.get_or_insert_with(|| {
26203 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
26204 });
26205 fidl::decode!(
26206 fidl::encoding::BoundedString<1024>,
26207 D,
26208 val_ref,
26209 decoder,
26210 inner_offset,
26211 inner_depth
26212 )?;
26213 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
26214 {
26215 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26216 }
26217 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26218 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26219 }
26220 }
26221
26222 next_offset += envelope_size;
26223 _next_ordinal_to_read += 1;
26224 if next_offset >= end_offset {
26225 return Ok(());
26226 }
26227
26228 while _next_ordinal_to_read < 3 {
26230 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
26231 _next_ordinal_to_read += 1;
26232 next_offset += envelope_size;
26233 }
26234
26235 let next_out_of_line = decoder.next_out_of_line();
26236 let handles_before = decoder.remaining_handles();
26237 if let Some((inlined, num_bytes, num_handles)) =
26238 fidl::encoding::decode_envelope_header(decoder, next_offset)?
26239 {
26240 let member_inline_size =
26241 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
26242 if inlined != (member_inline_size <= 4) {
26243 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26244 }
26245 let inner_offset;
26246 let mut inner_depth = depth.clone();
26247 if inlined {
26248 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
26249 inner_offset = next_offset;
26250 } else {
26251 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26252 inner_depth.increment()?;
26253 }
26254 let val_ref =
26255 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
26256 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
26257 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
26258 {
26259 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26260 }
26261 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26262 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26263 }
26264 }
26265
26266 next_offset += envelope_size;
26267
26268 while next_offset < end_offset {
26270 _next_ordinal_to_read += 1;
26271 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
26272 next_offset += envelope_size;
26273 }
26274
26275 Ok(())
26276 }
26277 }
26278
26279 impl fidl::encoding::ValueTypeMarker for Capability {
26280 type Borrowed<'a> = &'a Self;
26281 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26282 value
26283 }
26284 }
26285
26286 unsafe impl fidl::encoding::TypeMarker for Capability {
26287 type Owned = Self;
26288
26289 #[inline(always)]
26290 fn inline_align(_context: fidl::encoding::Context) -> usize {
26291 8
26292 }
26293
26294 #[inline(always)]
26295 fn inline_size(_context: fidl::encoding::Context) -> usize {
26296 16
26297 }
26298 }
26299
26300 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Capability, D>
26301 for &Capability
26302 {
26303 #[inline]
26304 unsafe fn encode(
26305 self,
26306 encoder: &mut fidl::encoding::Encoder<'_, D>,
26307 offset: usize,
26308 _depth: fidl::encoding::Depth,
26309 ) -> fidl::Result<()> {
26310 encoder.debug_check_bounds::<Capability>(offset);
26311 encoder.write_num::<u64>(self.ordinal(), offset);
26312 match self {
26313 Capability::Service(ref val) => fidl::encoding::encode_in_envelope::<Service, D>(
26314 <Service as fidl::encoding::ValueTypeMarker>::borrow(val),
26315 encoder,
26316 offset + 8,
26317 _depth,
26318 ),
26319 Capability::Protocol(ref val) => fidl::encoding::encode_in_envelope::<Protocol, D>(
26320 <Protocol as fidl::encoding::ValueTypeMarker>::borrow(val),
26321 encoder,
26322 offset + 8,
26323 _depth,
26324 ),
26325 Capability::Directory(ref val) => {
26326 fidl::encoding::encode_in_envelope::<Directory, D>(
26327 <Directory as fidl::encoding::ValueTypeMarker>::borrow(val),
26328 encoder,
26329 offset + 8,
26330 _depth,
26331 )
26332 }
26333 Capability::Storage(ref val) => fidl::encoding::encode_in_envelope::<Storage, D>(
26334 <Storage as fidl::encoding::ValueTypeMarker>::borrow(val),
26335 encoder,
26336 offset + 8,
26337 _depth,
26338 ),
26339 Capability::Runner(ref val) => fidl::encoding::encode_in_envelope::<Runner, D>(
26340 <Runner as fidl::encoding::ValueTypeMarker>::borrow(val),
26341 encoder,
26342 offset + 8,
26343 _depth,
26344 ),
26345 Capability::Resolver(ref val) => fidl::encoding::encode_in_envelope::<Resolver, D>(
26346 <Resolver as fidl::encoding::ValueTypeMarker>::borrow(val),
26347 encoder,
26348 offset + 8,
26349 _depth,
26350 ),
26351 Capability::EventStream(ref val) => {
26352 fidl::encoding::encode_in_envelope::<EventStream, D>(
26353 <EventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
26354 encoder,
26355 offset + 8,
26356 _depth,
26357 )
26358 }
26359 Capability::Dictionary(ref val) => {
26360 fidl::encoding::encode_in_envelope::<Dictionary, D>(
26361 <Dictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
26362 encoder,
26363 offset + 8,
26364 _depth,
26365 )
26366 }
26367 Capability::Config(ref val) => {
26368 fidl::encoding::encode_in_envelope::<Configuration, D>(
26369 <Configuration as fidl::encoding::ValueTypeMarker>::borrow(val),
26370 encoder,
26371 offset + 8,
26372 _depth,
26373 )
26374 }
26375 Capability::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26376 }
26377 }
26378 }
26379
26380 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Capability {
26381 #[inline(always)]
26382 fn new_empty() -> Self {
26383 Self::__SourceBreaking { unknown_ordinal: 0 }
26384 }
26385
26386 #[inline]
26387 unsafe fn decode(
26388 &mut self,
26389 decoder: &mut fidl::encoding::Decoder<'_, D>,
26390 offset: usize,
26391 mut depth: fidl::encoding::Depth,
26392 ) -> fidl::Result<()> {
26393 decoder.debug_check_bounds::<Self>(offset);
26394 #[allow(unused_variables)]
26395 let next_out_of_line = decoder.next_out_of_line();
26396 let handles_before = decoder.remaining_handles();
26397 let (ordinal, inlined, num_bytes, num_handles) =
26398 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26399
26400 let member_inline_size = match ordinal {
26401 1 => <Service as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26402 2 => <Protocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26403 3 => <Directory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26404 4 => <Storage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26405 5 => <Runner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26406 6 => <Resolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26407 8 => <EventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26408 9 => <Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26409 10 => <Configuration as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26410 0 => return Err(fidl::Error::UnknownUnionTag),
26411 _ => num_bytes as usize,
26412 };
26413
26414 if inlined != (member_inline_size <= 4) {
26415 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26416 }
26417 let _inner_offset;
26418 if inlined {
26419 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26420 _inner_offset = offset + 8;
26421 } else {
26422 depth.increment()?;
26423 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26424 }
26425 match ordinal {
26426 1 => {
26427 #[allow(irrefutable_let_patterns)]
26428 if let Capability::Service(_) = self {
26429 } else {
26431 *self = Capability::Service(fidl::new_empty!(Service, D));
26433 }
26434 #[allow(irrefutable_let_patterns)]
26435 if let Capability::Service(ref mut val) = self {
26436 fidl::decode!(Service, D, val, decoder, _inner_offset, depth)?;
26437 } else {
26438 unreachable!()
26439 }
26440 }
26441 2 => {
26442 #[allow(irrefutable_let_patterns)]
26443 if let Capability::Protocol(_) = self {
26444 } else {
26446 *self = Capability::Protocol(fidl::new_empty!(Protocol, D));
26448 }
26449 #[allow(irrefutable_let_patterns)]
26450 if let Capability::Protocol(ref mut val) = self {
26451 fidl::decode!(Protocol, D, val, decoder, _inner_offset, depth)?;
26452 } else {
26453 unreachable!()
26454 }
26455 }
26456 3 => {
26457 #[allow(irrefutable_let_patterns)]
26458 if let Capability::Directory(_) = self {
26459 } else {
26461 *self = Capability::Directory(fidl::new_empty!(Directory, D));
26463 }
26464 #[allow(irrefutable_let_patterns)]
26465 if let Capability::Directory(ref mut val) = self {
26466 fidl::decode!(Directory, D, val, decoder, _inner_offset, depth)?;
26467 } else {
26468 unreachable!()
26469 }
26470 }
26471 4 => {
26472 #[allow(irrefutable_let_patterns)]
26473 if let Capability::Storage(_) = self {
26474 } else {
26476 *self = Capability::Storage(fidl::new_empty!(Storage, D));
26478 }
26479 #[allow(irrefutable_let_patterns)]
26480 if let Capability::Storage(ref mut val) = self {
26481 fidl::decode!(Storage, D, val, decoder, _inner_offset, depth)?;
26482 } else {
26483 unreachable!()
26484 }
26485 }
26486 5 => {
26487 #[allow(irrefutable_let_patterns)]
26488 if let Capability::Runner(_) = self {
26489 } else {
26491 *self = Capability::Runner(fidl::new_empty!(Runner, D));
26493 }
26494 #[allow(irrefutable_let_patterns)]
26495 if let Capability::Runner(ref mut val) = self {
26496 fidl::decode!(Runner, D, val, decoder, _inner_offset, depth)?;
26497 } else {
26498 unreachable!()
26499 }
26500 }
26501 6 => {
26502 #[allow(irrefutable_let_patterns)]
26503 if let Capability::Resolver(_) = self {
26504 } else {
26506 *self = Capability::Resolver(fidl::new_empty!(Resolver, D));
26508 }
26509 #[allow(irrefutable_let_patterns)]
26510 if let Capability::Resolver(ref mut val) = self {
26511 fidl::decode!(Resolver, D, val, decoder, _inner_offset, depth)?;
26512 } else {
26513 unreachable!()
26514 }
26515 }
26516 8 => {
26517 #[allow(irrefutable_let_patterns)]
26518 if let Capability::EventStream(_) = self {
26519 } else {
26521 *self = Capability::EventStream(fidl::new_empty!(EventStream, D));
26523 }
26524 #[allow(irrefutable_let_patterns)]
26525 if let Capability::EventStream(ref mut val) = self {
26526 fidl::decode!(EventStream, D, val, decoder, _inner_offset, depth)?;
26527 } else {
26528 unreachable!()
26529 }
26530 }
26531 9 => {
26532 #[allow(irrefutable_let_patterns)]
26533 if let Capability::Dictionary(_) = self {
26534 } else {
26536 *self = Capability::Dictionary(fidl::new_empty!(Dictionary, D));
26538 }
26539 #[allow(irrefutable_let_patterns)]
26540 if let Capability::Dictionary(ref mut val) = self {
26541 fidl::decode!(Dictionary, D, val, decoder, _inner_offset, depth)?;
26542 } else {
26543 unreachable!()
26544 }
26545 }
26546 10 => {
26547 #[allow(irrefutable_let_patterns)]
26548 if let Capability::Config(_) = self {
26549 } else {
26551 *self = Capability::Config(fidl::new_empty!(Configuration, D));
26553 }
26554 #[allow(irrefutable_let_patterns)]
26555 if let Capability::Config(ref mut val) = self {
26556 fidl::decode!(Configuration, D, val, decoder, _inner_offset, depth)?;
26557 } else {
26558 unreachable!()
26559 }
26560 }
26561 #[allow(deprecated)]
26562 ordinal => {
26563 for _ in 0..num_handles {
26564 decoder.drop_next_handle()?;
26565 }
26566 *self = Capability::__SourceBreaking { unknown_ordinal: ordinal };
26567 }
26568 }
26569 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
26570 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26571 }
26572 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26573 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26574 }
26575 Ok(())
26576 }
26577 }
26578
26579 impl fidl::encoding::ValueTypeMarker for ConfigChecksum {
26580 type Borrowed<'a> = &'a Self;
26581 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26582 value
26583 }
26584 }
26585
26586 unsafe impl fidl::encoding::TypeMarker for ConfigChecksum {
26587 type Owned = Self;
26588
26589 #[inline(always)]
26590 fn inline_align(_context: fidl::encoding::Context) -> usize {
26591 8
26592 }
26593
26594 #[inline(always)]
26595 fn inline_size(_context: fidl::encoding::Context) -> usize {
26596 16
26597 }
26598 }
26599
26600 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigChecksum, D>
26601 for &ConfigChecksum
26602 {
26603 #[inline]
26604 unsafe fn encode(
26605 self,
26606 encoder: &mut fidl::encoding::Encoder<'_, D>,
26607 offset: usize,
26608 _depth: fidl::encoding::Depth,
26609 ) -> fidl::Result<()> {
26610 encoder.debug_check_bounds::<ConfigChecksum>(offset);
26611 encoder.write_num::<u64>(self.ordinal(), offset);
26612 match self {
26613 ConfigChecksum::Sha256(ref val) => fidl::encoding::encode_in_envelope::<
26614 fidl::encoding::Array<u8, 32>,
26615 D,
26616 >(
26617 <fidl::encoding::Array<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow(val),
26618 encoder,
26619 offset + 8,
26620 _depth,
26621 ),
26622 ConfigChecksum::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26623 }
26624 }
26625 }
26626
26627 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigChecksum {
26628 #[inline(always)]
26629 fn new_empty() -> Self {
26630 Self::__SourceBreaking { unknown_ordinal: 0 }
26631 }
26632
26633 #[inline]
26634 unsafe fn decode(
26635 &mut self,
26636 decoder: &mut fidl::encoding::Decoder<'_, D>,
26637 offset: usize,
26638 mut depth: fidl::encoding::Depth,
26639 ) -> fidl::Result<()> {
26640 decoder.debug_check_bounds::<Self>(offset);
26641 #[allow(unused_variables)]
26642 let next_out_of_line = decoder.next_out_of_line();
26643 let handles_before = decoder.remaining_handles();
26644 let (ordinal, inlined, num_bytes, num_handles) =
26645 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26646
26647 let member_inline_size = match ordinal {
26648 1 => <fidl::encoding::Array<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
26649 decoder.context,
26650 ),
26651 0 => return Err(fidl::Error::UnknownUnionTag),
26652 _ => num_bytes as usize,
26653 };
26654
26655 if inlined != (member_inline_size <= 4) {
26656 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26657 }
26658 let _inner_offset;
26659 if inlined {
26660 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26661 _inner_offset = offset + 8;
26662 } else {
26663 depth.increment()?;
26664 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26665 }
26666 match ordinal {
26667 1 => {
26668 #[allow(irrefutable_let_patterns)]
26669 if let ConfigChecksum::Sha256(_) = self {
26670 } else {
26672 *self = ConfigChecksum::Sha256(
26674 fidl::new_empty!(fidl::encoding::Array<u8, 32>, D),
26675 );
26676 }
26677 #[allow(irrefutable_let_patterns)]
26678 if let ConfigChecksum::Sha256(ref mut val) = self {
26679 fidl::decode!(fidl::encoding::Array<u8, 32>, D, val, decoder, _inner_offset, depth)?;
26680 } else {
26681 unreachable!()
26682 }
26683 }
26684 #[allow(deprecated)]
26685 ordinal => {
26686 for _ in 0..num_handles {
26687 decoder.drop_next_handle()?;
26688 }
26689 *self = ConfigChecksum::__SourceBreaking { unknown_ordinal: ordinal };
26690 }
26691 }
26692 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
26693 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26694 }
26695 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26696 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26697 }
26698 Ok(())
26699 }
26700 }
26701
26702 impl fidl::encoding::ValueTypeMarker for ConfigSingleValue {
26703 type Borrowed<'a> = &'a Self;
26704 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26705 value
26706 }
26707 }
26708
26709 unsafe impl fidl::encoding::TypeMarker for ConfigSingleValue {
26710 type Owned = Self;
26711
26712 #[inline(always)]
26713 fn inline_align(_context: fidl::encoding::Context) -> usize {
26714 8
26715 }
26716
26717 #[inline(always)]
26718 fn inline_size(_context: fidl::encoding::Context) -> usize {
26719 16
26720 }
26721 }
26722
26723 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigSingleValue, D>
26724 for &ConfigSingleValue
26725 {
26726 #[inline]
26727 unsafe fn encode(
26728 self,
26729 encoder: &mut fidl::encoding::Encoder<'_, D>,
26730 offset: usize,
26731 _depth: fidl::encoding::Depth,
26732 ) -> fidl::Result<()> {
26733 encoder.debug_check_bounds::<ConfigSingleValue>(offset);
26734 encoder.write_num::<u64>(self.ordinal(), offset);
26735 match self {
26736 ConfigSingleValue::Bool(ref val) => fidl::encoding::encode_in_envelope::<bool, D>(
26737 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
26738 encoder,
26739 offset + 8,
26740 _depth,
26741 ),
26742 ConfigSingleValue::Uint8(ref val) => fidl::encoding::encode_in_envelope::<u8, D>(
26743 <u8 as fidl::encoding::ValueTypeMarker>::borrow(val),
26744 encoder,
26745 offset + 8,
26746 _depth,
26747 ),
26748 ConfigSingleValue::Uint16(ref val) => fidl::encoding::encode_in_envelope::<u16, D>(
26749 <u16 as fidl::encoding::ValueTypeMarker>::borrow(val),
26750 encoder,
26751 offset + 8,
26752 _depth,
26753 ),
26754 ConfigSingleValue::Uint32(ref val) => fidl::encoding::encode_in_envelope::<u32, D>(
26755 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
26756 encoder,
26757 offset + 8,
26758 _depth,
26759 ),
26760 ConfigSingleValue::Uint64(ref val) => fidl::encoding::encode_in_envelope::<u64, D>(
26761 <u64 as fidl::encoding::ValueTypeMarker>::borrow(val),
26762 encoder,
26763 offset + 8,
26764 _depth,
26765 ),
26766 ConfigSingleValue::Int8(ref val) => fidl::encoding::encode_in_envelope::<i8, D>(
26767 <i8 as fidl::encoding::ValueTypeMarker>::borrow(val),
26768 encoder,
26769 offset + 8,
26770 _depth,
26771 ),
26772 ConfigSingleValue::Int16(ref val) => fidl::encoding::encode_in_envelope::<i16, D>(
26773 <i16 as fidl::encoding::ValueTypeMarker>::borrow(val),
26774 encoder,
26775 offset + 8,
26776 _depth,
26777 ),
26778 ConfigSingleValue::Int32(ref val) => fidl::encoding::encode_in_envelope::<i32, D>(
26779 <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
26780 encoder,
26781 offset + 8,
26782 _depth,
26783 ),
26784 ConfigSingleValue::Int64(ref val) => fidl::encoding::encode_in_envelope::<i64, D>(
26785 <i64 as fidl::encoding::ValueTypeMarker>::borrow(val),
26786 encoder,
26787 offset + 8,
26788 _depth,
26789 ),
26790 ConfigSingleValue::String(ref val) => fidl::encoding::encode_in_envelope::<
26791 fidl::encoding::UnboundedString,
26792 D,
26793 >(
26794 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
26795 val,
26796 ),
26797 encoder,
26798 offset + 8,
26799 _depth,
26800 ),
26801 ConfigSingleValue::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26802 }
26803 }
26804 }
26805
26806 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigSingleValue {
26807 #[inline(always)]
26808 fn new_empty() -> Self {
26809 Self::__SourceBreaking { unknown_ordinal: 0 }
26810 }
26811
26812 #[inline]
26813 unsafe fn decode(
26814 &mut self,
26815 decoder: &mut fidl::encoding::Decoder<'_, D>,
26816 offset: usize,
26817 mut depth: fidl::encoding::Depth,
26818 ) -> fidl::Result<()> {
26819 decoder.debug_check_bounds::<Self>(offset);
26820 #[allow(unused_variables)]
26821 let next_out_of_line = decoder.next_out_of_line();
26822 let handles_before = decoder.remaining_handles();
26823 let (ordinal, inlined, num_bytes, num_handles) =
26824 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26825
26826 let member_inline_size = match ordinal {
26827 1 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26828 2 => <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26829 3 => <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26830 4 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26831 5 => <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26832 6 => <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26833 7 => <i16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26834 8 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26835 9 => <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26836 10 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
26837 decoder.context,
26838 ),
26839 0 => return Err(fidl::Error::UnknownUnionTag),
26840 _ => num_bytes as usize,
26841 };
26842
26843 if inlined != (member_inline_size <= 4) {
26844 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26845 }
26846 let _inner_offset;
26847 if inlined {
26848 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26849 _inner_offset = offset + 8;
26850 } else {
26851 depth.increment()?;
26852 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26853 }
26854 match ordinal {
26855 1 => {
26856 #[allow(irrefutable_let_patterns)]
26857 if let ConfigSingleValue::Bool(_) = self {
26858 } else {
26860 *self = ConfigSingleValue::Bool(fidl::new_empty!(bool, D));
26862 }
26863 #[allow(irrefutable_let_patterns)]
26864 if let ConfigSingleValue::Bool(ref mut val) = self {
26865 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
26866 } else {
26867 unreachable!()
26868 }
26869 }
26870 2 => {
26871 #[allow(irrefutable_let_patterns)]
26872 if let ConfigSingleValue::Uint8(_) = self {
26873 } else {
26875 *self = ConfigSingleValue::Uint8(fidl::new_empty!(u8, D));
26877 }
26878 #[allow(irrefutable_let_patterns)]
26879 if let ConfigSingleValue::Uint8(ref mut val) = self {
26880 fidl::decode!(u8, D, val, decoder, _inner_offset, depth)?;
26881 } else {
26882 unreachable!()
26883 }
26884 }
26885 3 => {
26886 #[allow(irrefutable_let_patterns)]
26887 if let ConfigSingleValue::Uint16(_) = self {
26888 } else {
26890 *self = ConfigSingleValue::Uint16(fidl::new_empty!(u16, D));
26892 }
26893 #[allow(irrefutable_let_patterns)]
26894 if let ConfigSingleValue::Uint16(ref mut val) = self {
26895 fidl::decode!(u16, D, val, decoder, _inner_offset, depth)?;
26896 } else {
26897 unreachable!()
26898 }
26899 }
26900 4 => {
26901 #[allow(irrefutable_let_patterns)]
26902 if let ConfigSingleValue::Uint32(_) = self {
26903 } else {
26905 *self = ConfigSingleValue::Uint32(fidl::new_empty!(u32, D));
26907 }
26908 #[allow(irrefutable_let_patterns)]
26909 if let ConfigSingleValue::Uint32(ref mut val) = self {
26910 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
26911 } else {
26912 unreachable!()
26913 }
26914 }
26915 5 => {
26916 #[allow(irrefutable_let_patterns)]
26917 if let ConfigSingleValue::Uint64(_) = self {
26918 } else {
26920 *self = ConfigSingleValue::Uint64(fidl::new_empty!(u64, D));
26922 }
26923 #[allow(irrefutable_let_patterns)]
26924 if let ConfigSingleValue::Uint64(ref mut val) = self {
26925 fidl::decode!(u64, D, val, decoder, _inner_offset, depth)?;
26926 } else {
26927 unreachable!()
26928 }
26929 }
26930 6 => {
26931 #[allow(irrefutable_let_patterns)]
26932 if let ConfigSingleValue::Int8(_) = self {
26933 } else {
26935 *self = ConfigSingleValue::Int8(fidl::new_empty!(i8, D));
26937 }
26938 #[allow(irrefutable_let_patterns)]
26939 if let ConfigSingleValue::Int8(ref mut val) = self {
26940 fidl::decode!(i8, D, val, decoder, _inner_offset, depth)?;
26941 } else {
26942 unreachable!()
26943 }
26944 }
26945 7 => {
26946 #[allow(irrefutable_let_patterns)]
26947 if let ConfigSingleValue::Int16(_) = self {
26948 } else {
26950 *self = ConfigSingleValue::Int16(fidl::new_empty!(i16, D));
26952 }
26953 #[allow(irrefutable_let_patterns)]
26954 if let ConfigSingleValue::Int16(ref mut val) = self {
26955 fidl::decode!(i16, D, val, decoder, _inner_offset, depth)?;
26956 } else {
26957 unreachable!()
26958 }
26959 }
26960 8 => {
26961 #[allow(irrefutable_let_patterns)]
26962 if let ConfigSingleValue::Int32(_) = self {
26963 } else {
26965 *self = ConfigSingleValue::Int32(fidl::new_empty!(i32, D));
26967 }
26968 #[allow(irrefutable_let_patterns)]
26969 if let ConfigSingleValue::Int32(ref mut val) = self {
26970 fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
26971 } else {
26972 unreachable!()
26973 }
26974 }
26975 9 => {
26976 #[allow(irrefutable_let_patterns)]
26977 if let ConfigSingleValue::Int64(_) = self {
26978 } else {
26980 *self = ConfigSingleValue::Int64(fidl::new_empty!(i64, D));
26982 }
26983 #[allow(irrefutable_let_patterns)]
26984 if let ConfigSingleValue::Int64(ref mut val) = self {
26985 fidl::decode!(i64, D, val, decoder, _inner_offset, depth)?;
26986 } else {
26987 unreachable!()
26988 }
26989 }
26990 10 => {
26991 #[allow(irrefutable_let_patterns)]
26992 if let ConfigSingleValue::String(_) = self {
26993 } else {
26995 *self = ConfigSingleValue::String(fidl::new_empty!(
26997 fidl::encoding::UnboundedString,
26998 D
26999 ));
27000 }
27001 #[allow(irrefutable_let_patterns)]
27002 if let ConfigSingleValue::String(ref mut val) = self {
27003 fidl::decode!(
27004 fidl::encoding::UnboundedString,
27005 D,
27006 val,
27007 decoder,
27008 _inner_offset,
27009 depth
27010 )?;
27011 } else {
27012 unreachable!()
27013 }
27014 }
27015 #[allow(deprecated)]
27016 ordinal => {
27017 for _ in 0..num_handles {
27018 decoder.drop_next_handle()?;
27019 }
27020 *self = ConfigSingleValue::__SourceBreaking { unknown_ordinal: ordinal };
27021 }
27022 }
27023 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27024 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27025 }
27026 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27027 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27028 }
27029 Ok(())
27030 }
27031 }
27032
27033 impl fidl::encoding::ValueTypeMarker for ConfigValue {
27034 type Borrowed<'a> = &'a Self;
27035 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27036 value
27037 }
27038 }
27039
27040 unsafe impl fidl::encoding::TypeMarker for ConfigValue {
27041 type Owned = Self;
27042
27043 #[inline(always)]
27044 fn inline_align(_context: fidl::encoding::Context) -> usize {
27045 8
27046 }
27047
27048 #[inline(always)]
27049 fn inline_size(_context: fidl::encoding::Context) -> usize {
27050 16
27051 }
27052 }
27053
27054 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValue, D>
27055 for &ConfigValue
27056 {
27057 #[inline]
27058 unsafe fn encode(
27059 self,
27060 encoder: &mut fidl::encoding::Encoder<'_, D>,
27061 offset: usize,
27062 _depth: fidl::encoding::Depth,
27063 ) -> fidl::Result<()> {
27064 encoder.debug_check_bounds::<ConfigValue>(offset);
27065 encoder.write_num::<u64>(self.ordinal(), offset);
27066 match self {
27067 ConfigValue::Single(ref val) => {
27068 fidl::encoding::encode_in_envelope::<ConfigSingleValue, D>(
27069 <ConfigSingleValue as fidl::encoding::ValueTypeMarker>::borrow(val),
27070 encoder,
27071 offset + 8,
27072 _depth,
27073 )
27074 }
27075 ConfigValue::Vector(ref val) => {
27076 fidl::encoding::encode_in_envelope::<ConfigVectorValue, D>(
27077 <ConfigVectorValue as fidl::encoding::ValueTypeMarker>::borrow(val),
27078 encoder,
27079 offset + 8,
27080 _depth,
27081 )
27082 }
27083 ConfigValue::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27084 }
27085 }
27086 }
27087
27088 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValue {
27089 #[inline(always)]
27090 fn new_empty() -> Self {
27091 Self::__SourceBreaking { unknown_ordinal: 0 }
27092 }
27093
27094 #[inline]
27095 unsafe fn decode(
27096 &mut self,
27097 decoder: &mut fidl::encoding::Decoder<'_, D>,
27098 offset: usize,
27099 mut depth: fidl::encoding::Depth,
27100 ) -> fidl::Result<()> {
27101 decoder.debug_check_bounds::<Self>(offset);
27102 #[allow(unused_variables)]
27103 let next_out_of_line = decoder.next_out_of_line();
27104 let handles_before = decoder.remaining_handles();
27105 let (ordinal, inlined, num_bytes, num_handles) =
27106 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27107
27108 let member_inline_size = match ordinal {
27109 1 => {
27110 <ConfigSingleValue as fidl::encoding::TypeMarker>::inline_size(decoder.context)
27111 }
27112 2 => {
27113 <ConfigVectorValue as fidl::encoding::TypeMarker>::inline_size(decoder.context)
27114 }
27115 0 => return Err(fidl::Error::UnknownUnionTag),
27116 _ => num_bytes as usize,
27117 };
27118
27119 if inlined != (member_inline_size <= 4) {
27120 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27121 }
27122 let _inner_offset;
27123 if inlined {
27124 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27125 _inner_offset = offset + 8;
27126 } else {
27127 depth.increment()?;
27128 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27129 }
27130 match ordinal {
27131 1 => {
27132 #[allow(irrefutable_let_patterns)]
27133 if let ConfigValue::Single(_) = self {
27134 } else {
27136 *self = ConfigValue::Single(fidl::new_empty!(ConfigSingleValue, D));
27138 }
27139 #[allow(irrefutable_let_patterns)]
27140 if let ConfigValue::Single(ref mut val) = self {
27141 fidl::decode!(ConfigSingleValue, D, val, decoder, _inner_offset, depth)?;
27142 } else {
27143 unreachable!()
27144 }
27145 }
27146 2 => {
27147 #[allow(irrefutable_let_patterns)]
27148 if let ConfigValue::Vector(_) = self {
27149 } else {
27151 *self = ConfigValue::Vector(fidl::new_empty!(ConfigVectorValue, D));
27153 }
27154 #[allow(irrefutable_let_patterns)]
27155 if let ConfigValue::Vector(ref mut val) = self {
27156 fidl::decode!(ConfigVectorValue, D, val, decoder, _inner_offset, depth)?;
27157 } else {
27158 unreachable!()
27159 }
27160 }
27161 #[allow(deprecated)]
27162 ordinal => {
27163 for _ in 0..num_handles {
27164 decoder.drop_next_handle()?;
27165 }
27166 *self = ConfigValue::__SourceBreaking { unknown_ordinal: ordinal };
27167 }
27168 }
27169 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27170 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27171 }
27172 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27173 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27174 }
27175 Ok(())
27176 }
27177 }
27178
27179 impl fidl::encoding::ValueTypeMarker for ConfigValueSource {
27180 type Borrowed<'a> = &'a Self;
27181 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27182 value
27183 }
27184 }
27185
27186 unsafe impl fidl::encoding::TypeMarker for ConfigValueSource {
27187 type Owned = Self;
27188
27189 #[inline(always)]
27190 fn inline_align(_context: fidl::encoding::Context) -> usize {
27191 8
27192 }
27193
27194 #[inline(always)]
27195 fn inline_size(_context: fidl::encoding::Context) -> usize {
27196 16
27197 }
27198 }
27199
27200 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValueSource, D>
27201 for &ConfigValueSource
27202 {
27203 #[inline]
27204 unsafe fn encode(
27205 self,
27206 encoder: &mut fidl::encoding::Encoder<'_, D>,
27207 offset: usize,
27208 _depth: fidl::encoding::Depth,
27209 ) -> fidl::Result<()> {
27210 encoder.debug_check_bounds::<ConfigValueSource>(offset);
27211 encoder.write_num::<u64>(self.ordinal(), offset);
27212 match self {
27213 ConfigValueSource::PackagePath(ref val) => fidl::encoding::encode_in_envelope::<
27214 fidl::encoding::UnboundedString,
27215 D,
27216 >(
27217 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
27218 val,
27219 ),
27220 encoder,
27221 offset + 8,
27222 _depth,
27223 ),
27224 ConfigValueSource::Capabilities(ref val) => {
27225 fidl::encoding::encode_in_envelope::<ConfigSourceCapabilities, D>(
27226 <ConfigSourceCapabilities as fidl::encoding::ValueTypeMarker>::borrow(val),
27227 encoder,
27228 offset + 8,
27229 _depth,
27230 )
27231 }
27232 ConfigValueSource::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27233 }
27234 }
27235 }
27236
27237 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValueSource {
27238 #[inline(always)]
27239 fn new_empty() -> Self {
27240 Self::__SourceBreaking { unknown_ordinal: 0 }
27241 }
27242
27243 #[inline]
27244 unsafe fn decode(
27245 &mut self,
27246 decoder: &mut fidl::encoding::Decoder<'_, D>,
27247 offset: usize,
27248 mut depth: fidl::encoding::Depth,
27249 ) -> fidl::Result<()> {
27250 decoder.debug_check_bounds::<Self>(offset);
27251 #[allow(unused_variables)]
27252 let next_out_of_line = decoder.next_out_of_line();
27253 let handles_before = decoder.remaining_handles();
27254 let (ordinal, inlined, num_bytes, num_handles) =
27255 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27256
27257 let member_inline_size = match ordinal {
27258 1 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
27259 decoder.context,
27260 ),
27261 2 => <ConfigSourceCapabilities as fidl::encoding::TypeMarker>::inline_size(
27262 decoder.context,
27263 ),
27264 0 => return Err(fidl::Error::UnknownUnionTag),
27265 _ => num_bytes as usize,
27266 };
27267
27268 if inlined != (member_inline_size <= 4) {
27269 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27270 }
27271 let _inner_offset;
27272 if inlined {
27273 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27274 _inner_offset = offset + 8;
27275 } else {
27276 depth.increment()?;
27277 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27278 }
27279 match ordinal {
27280 1 => {
27281 #[allow(irrefutable_let_patterns)]
27282 if let ConfigValueSource::PackagePath(_) = self {
27283 } else {
27285 *self = ConfigValueSource::PackagePath(fidl::new_empty!(
27287 fidl::encoding::UnboundedString,
27288 D
27289 ));
27290 }
27291 #[allow(irrefutable_let_patterns)]
27292 if let ConfigValueSource::PackagePath(ref mut val) = self {
27293 fidl::decode!(
27294 fidl::encoding::UnboundedString,
27295 D,
27296 val,
27297 decoder,
27298 _inner_offset,
27299 depth
27300 )?;
27301 } else {
27302 unreachable!()
27303 }
27304 }
27305 2 => {
27306 #[allow(irrefutable_let_patterns)]
27307 if let ConfigValueSource::Capabilities(_) = self {
27308 } else {
27310 *self = ConfigValueSource::Capabilities(fidl::new_empty!(
27312 ConfigSourceCapabilities,
27313 D
27314 ));
27315 }
27316 #[allow(irrefutable_let_patterns)]
27317 if let ConfigValueSource::Capabilities(ref mut val) = self {
27318 fidl::decode!(
27319 ConfigSourceCapabilities,
27320 D,
27321 val,
27322 decoder,
27323 _inner_offset,
27324 depth
27325 )?;
27326 } else {
27327 unreachable!()
27328 }
27329 }
27330 #[allow(deprecated)]
27331 ordinal => {
27332 for _ in 0..num_handles {
27333 decoder.drop_next_handle()?;
27334 }
27335 *self = ConfigValueSource::__SourceBreaking { unknown_ordinal: ordinal };
27336 }
27337 }
27338 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27339 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27340 }
27341 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27342 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27343 }
27344 Ok(())
27345 }
27346 }
27347
27348 impl fidl::encoding::ValueTypeMarker for ConfigVectorValue {
27349 type Borrowed<'a> = &'a Self;
27350 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27351 value
27352 }
27353 }
27354
27355 unsafe impl fidl::encoding::TypeMarker for ConfigVectorValue {
27356 type Owned = Self;
27357
27358 #[inline(always)]
27359 fn inline_align(_context: fidl::encoding::Context) -> usize {
27360 8
27361 }
27362
27363 #[inline(always)]
27364 fn inline_size(_context: fidl::encoding::Context) -> usize {
27365 16
27366 }
27367 }
27368
27369 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigVectorValue, D>
27370 for &ConfigVectorValue
27371 {
27372 #[inline]
27373 unsafe fn encode(
27374 self,
27375 encoder: &mut fidl::encoding::Encoder<'_, D>,
27376 offset: usize,
27377 _depth: fidl::encoding::Depth,
27378 ) -> fidl::Result<()> {
27379 encoder.debug_check_bounds::<ConfigVectorValue>(offset);
27380 encoder.write_num::<u64>(self.ordinal(), offset);
27381 match self {
27382 ConfigVectorValue::BoolVector(ref val) => {
27383 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<bool>, D>(
27384 <fidl::encoding::UnboundedVector<bool> as fidl::encoding::ValueTypeMarker>::borrow(val),
27385 encoder, offset + 8, _depth
27386 )
27387 }
27388 ConfigVectorValue::Uint8Vector(ref val) => {
27389 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u8>, D>(
27390 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(val),
27391 encoder, offset + 8, _depth
27392 )
27393 }
27394 ConfigVectorValue::Uint16Vector(ref val) => {
27395 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u16>, D>(
27396 <fidl::encoding::UnboundedVector<u16> as fidl::encoding::ValueTypeMarker>::borrow(val),
27397 encoder, offset + 8, _depth
27398 )
27399 }
27400 ConfigVectorValue::Uint32Vector(ref val) => {
27401 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u32>, D>(
27402 <fidl::encoding::UnboundedVector<u32> as fidl::encoding::ValueTypeMarker>::borrow(val),
27403 encoder, offset + 8, _depth
27404 )
27405 }
27406 ConfigVectorValue::Uint64Vector(ref val) => {
27407 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u64>, D>(
27408 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(val),
27409 encoder, offset + 8, _depth
27410 )
27411 }
27412 ConfigVectorValue::Int8Vector(ref val) => {
27413 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i8>, D>(
27414 <fidl::encoding::UnboundedVector<i8> as fidl::encoding::ValueTypeMarker>::borrow(val),
27415 encoder, offset + 8, _depth
27416 )
27417 }
27418 ConfigVectorValue::Int16Vector(ref val) => {
27419 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i16>, D>(
27420 <fidl::encoding::UnboundedVector<i16> as fidl::encoding::ValueTypeMarker>::borrow(val),
27421 encoder, offset + 8, _depth
27422 )
27423 }
27424 ConfigVectorValue::Int32Vector(ref val) => {
27425 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i32>, D>(
27426 <fidl::encoding::UnboundedVector<i32> as fidl::encoding::ValueTypeMarker>::borrow(val),
27427 encoder, offset + 8, _depth
27428 )
27429 }
27430 ConfigVectorValue::Int64Vector(ref val) => {
27431 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i64>, D>(
27432 <fidl::encoding::UnboundedVector<i64> as fidl::encoding::ValueTypeMarker>::borrow(val),
27433 encoder, offset + 8, _depth
27434 )
27435 }
27436 ConfigVectorValue::StringVector(ref val) => {
27437 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>, D>(
27438 <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(val),
27439 encoder, offset + 8, _depth
27440 )
27441 }
27442 ConfigVectorValue::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27443 }
27444 }
27445 }
27446
27447 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigVectorValue {
27448 #[inline(always)]
27449 fn new_empty() -> Self {
27450 Self::__SourceBreaking { unknown_ordinal: 0 }
27451 }
27452
27453 #[inline]
27454 unsafe fn decode(
27455 &mut self,
27456 decoder: &mut fidl::encoding::Decoder<'_, D>,
27457 offset: usize,
27458 mut depth: fidl::encoding::Depth,
27459 ) -> fidl::Result<()> {
27460 decoder.debug_check_bounds::<Self>(offset);
27461 #[allow(unused_variables)]
27462 let next_out_of_line = decoder.next_out_of_line();
27463 let handles_before = decoder.remaining_handles();
27464 let (ordinal, inlined, num_bytes, num_handles) =
27465 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27466
27467 let member_inline_size = match ordinal {
27468 1 => <fidl::encoding::UnboundedVector<bool> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27469 2 => <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27470 3 => <fidl::encoding::UnboundedVector<u16> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27471 4 => <fidl::encoding::UnboundedVector<u32> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27472 5 => <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27473 6 => <fidl::encoding::UnboundedVector<i8> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27474 7 => <fidl::encoding::UnboundedVector<i16> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27475 8 => <fidl::encoding::UnboundedVector<i32> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27476 9 => <fidl::encoding::UnboundedVector<i64> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27477 10 => <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27478 0 => return Err(fidl::Error::UnknownUnionTag),
27479 _ => num_bytes as usize,
27480 };
27481
27482 if inlined != (member_inline_size <= 4) {
27483 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27484 }
27485 let _inner_offset;
27486 if inlined {
27487 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27488 _inner_offset = offset + 8;
27489 } else {
27490 depth.increment()?;
27491 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27492 }
27493 match ordinal {
27494 1 => {
27495 #[allow(irrefutable_let_patterns)]
27496 if let ConfigVectorValue::BoolVector(_) = self {
27497 } else {
27499 *self = ConfigVectorValue::BoolVector(fidl::new_empty!(
27501 fidl::encoding::UnboundedVector<bool>,
27502 D
27503 ));
27504 }
27505 #[allow(irrefutable_let_patterns)]
27506 if let ConfigVectorValue::BoolVector(ref mut val) = self {
27507 fidl::decode!(
27508 fidl::encoding::UnboundedVector<bool>,
27509 D,
27510 val,
27511 decoder,
27512 _inner_offset,
27513 depth
27514 )?;
27515 } else {
27516 unreachable!()
27517 }
27518 }
27519 2 => {
27520 #[allow(irrefutable_let_patterns)]
27521 if let ConfigVectorValue::Uint8Vector(_) = self {
27522 } else {
27524 *self = ConfigVectorValue::Uint8Vector(fidl::new_empty!(
27526 fidl::encoding::UnboundedVector<u8>,
27527 D
27528 ));
27529 }
27530 #[allow(irrefutable_let_patterns)]
27531 if let ConfigVectorValue::Uint8Vector(ref mut val) = self {
27532 fidl::decode!(
27533 fidl::encoding::UnboundedVector<u8>,
27534 D,
27535 val,
27536 decoder,
27537 _inner_offset,
27538 depth
27539 )?;
27540 } else {
27541 unreachable!()
27542 }
27543 }
27544 3 => {
27545 #[allow(irrefutable_let_patterns)]
27546 if let ConfigVectorValue::Uint16Vector(_) = self {
27547 } else {
27549 *self = ConfigVectorValue::Uint16Vector(fidl::new_empty!(
27551 fidl::encoding::UnboundedVector<u16>,
27552 D
27553 ));
27554 }
27555 #[allow(irrefutable_let_patterns)]
27556 if let ConfigVectorValue::Uint16Vector(ref mut val) = self {
27557 fidl::decode!(
27558 fidl::encoding::UnboundedVector<u16>,
27559 D,
27560 val,
27561 decoder,
27562 _inner_offset,
27563 depth
27564 )?;
27565 } else {
27566 unreachable!()
27567 }
27568 }
27569 4 => {
27570 #[allow(irrefutable_let_patterns)]
27571 if let ConfigVectorValue::Uint32Vector(_) = self {
27572 } else {
27574 *self = ConfigVectorValue::Uint32Vector(fidl::new_empty!(
27576 fidl::encoding::UnboundedVector<u32>,
27577 D
27578 ));
27579 }
27580 #[allow(irrefutable_let_patterns)]
27581 if let ConfigVectorValue::Uint32Vector(ref mut val) = self {
27582 fidl::decode!(
27583 fidl::encoding::UnboundedVector<u32>,
27584 D,
27585 val,
27586 decoder,
27587 _inner_offset,
27588 depth
27589 )?;
27590 } else {
27591 unreachable!()
27592 }
27593 }
27594 5 => {
27595 #[allow(irrefutable_let_patterns)]
27596 if let ConfigVectorValue::Uint64Vector(_) = self {
27597 } else {
27599 *self = ConfigVectorValue::Uint64Vector(fidl::new_empty!(
27601 fidl::encoding::UnboundedVector<u64>,
27602 D
27603 ));
27604 }
27605 #[allow(irrefutable_let_patterns)]
27606 if let ConfigVectorValue::Uint64Vector(ref mut val) = self {
27607 fidl::decode!(
27608 fidl::encoding::UnboundedVector<u64>,
27609 D,
27610 val,
27611 decoder,
27612 _inner_offset,
27613 depth
27614 )?;
27615 } else {
27616 unreachable!()
27617 }
27618 }
27619 6 => {
27620 #[allow(irrefutable_let_patterns)]
27621 if let ConfigVectorValue::Int8Vector(_) = self {
27622 } else {
27624 *self = ConfigVectorValue::Int8Vector(fidl::new_empty!(
27626 fidl::encoding::UnboundedVector<i8>,
27627 D
27628 ));
27629 }
27630 #[allow(irrefutable_let_patterns)]
27631 if let ConfigVectorValue::Int8Vector(ref mut val) = self {
27632 fidl::decode!(
27633 fidl::encoding::UnboundedVector<i8>,
27634 D,
27635 val,
27636 decoder,
27637 _inner_offset,
27638 depth
27639 )?;
27640 } else {
27641 unreachable!()
27642 }
27643 }
27644 7 => {
27645 #[allow(irrefutable_let_patterns)]
27646 if let ConfigVectorValue::Int16Vector(_) = self {
27647 } else {
27649 *self = ConfigVectorValue::Int16Vector(fidl::new_empty!(
27651 fidl::encoding::UnboundedVector<i16>,
27652 D
27653 ));
27654 }
27655 #[allow(irrefutable_let_patterns)]
27656 if let ConfigVectorValue::Int16Vector(ref mut val) = self {
27657 fidl::decode!(
27658 fidl::encoding::UnboundedVector<i16>,
27659 D,
27660 val,
27661 decoder,
27662 _inner_offset,
27663 depth
27664 )?;
27665 } else {
27666 unreachable!()
27667 }
27668 }
27669 8 => {
27670 #[allow(irrefutable_let_patterns)]
27671 if let ConfigVectorValue::Int32Vector(_) = self {
27672 } else {
27674 *self = ConfigVectorValue::Int32Vector(fidl::new_empty!(
27676 fidl::encoding::UnboundedVector<i32>,
27677 D
27678 ));
27679 }
27680 #[allow(irrefutable_let_patterns)]
27681 if let ConfigVectorValue::Int32Vector(ref mut val) = self {
27682 fidl::decode!(
27683 fidl::encoding::UnboundedVector<i32>,
27684 D,
27685 val,
27686 decoder,
27687 _inner_offset,
27688 depth
27689 )?;
27690 } else {
27691 unreachable!()
27692 }
27693 }
27694 9 => {
27695 #[allow(irrefutable_let_patterns)]
27696 if let ConfigVectorValue::Int64Vector(_) = self {
27697 } else {
27699 *self = ConfigVectorValue::Int64Vector(fidl::new_empty!(
27701 fidl::encoding::UnboundedVector<i64>,
27702 D
27703 ));
27704 }
27705 #[allow(irrefutable_let_patterns)]
27706 if let ConfigVectorValue::Int64Vector(ref mut val) = self {
27707 fidl::decode!(
27708 fidl::encoding::UnboundedVector<i64>,
27709 D,
27710 val,
27711 decoder,
27712 _inner_offset,
27713 depth
27714 )?;
27715 } else {
27716 unreachable!()
27717 }
27718 }
27719 10 => {
27720 #[allow(irrefutable_let_patterns)]
27721 if let ConfigVectorValue::StringVector(_) = self {
27722 } else {
27724 *self = ConfigVectorValue::StringVector(fidl::new_empty!(
27726 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
27727 D
27728 ));
27729 }
27730 #[allow(irrefutable_let_patterns)]
27731 if let ConfigVectorValue::StringVector(ref mut val) = self {
27732 fidl::decode!(
27733 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
27734 D,
27735 val,
27736 decoder,
27737 _inner_offset,
27738 depth
27739 )?;
27740 } else {
27741 unreachable!()
27742 }
27743 }
27744 #[allow(deprecated)]
27745 ordinal => {
27746 for _ in 0..num_handles {
27747 decoder.drop_next_handle()?;
27748 }
27749 *self = ConfigVectorValue::__SourceBreaking { unknown_ordinal: ordinal };
27750 }
27751 }
27752 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27753 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27754 }
27755 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27756 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27757 }
27758 Ok(())
27759 }
27760 }
27761
27762 impl fidl::encoding::ValueTypeMarker for DebugRegistration {
27763 type Borrowed<'a> = &'a Self;
27764 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27765 value
27766 }
27767 }
27768
27769 unsafe impl fidl::encoding::TypeMarker for DebugRegistration {
27770 type Owned = Self;
27771
27772 #[inline(always)]
27773 fn inline_align(_context: fidl::encoding::Context) -> usize {
27774 8
27775 }
27776
27777 #[inline(always)]
27778 fn inline_size(_context: fidl::encoding::Context) -> usize {
27779 16
27780 }
27781 }
27782
27783 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DebugRegistration, D>
27784 for &DebugRegistration
27785 {
27786 #[inline]
27787 unsafe fn encode(
27788 self,
27789 encoder: &mut fidl::encoding::Encoder<'_, D>,
27790 offset: usize,
27791 _depth: fidl::encoding::Depth,
27792 ) -> fidl::Result<()> {
27793 encoder.debug_check_bounds::<DebugRegistration>(offset);
27794 encoder.write_num::<u64>(self.ordinal(), offset);
27795 match self {
27796 DebugRegistration::Protocol(ref val) => {
27797 fidl::encoding::encode_in_envelope::<DebugProtocolRegistration, D>(
27798 <DebugProtocolRegistration as fidl::encoding::ValueTypeMarker>::borrow(val),
27799 encoder,
27800 offset + 8,
27801 _depth,
27802 )
27803 }
27804 DebugRegistration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27805 }
27806 }
27807 }
27808
27809 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DebugRegistration {
27810 #[inline(always)]
27811 fn new_empty() -> Self {
27812 Self::__SourceBreaking { unknown_ordinal: 0 }
27813 }
27814
27815 #[inline]
27816 unsafe fn decode(
27817 &mut self,
27818 decoder: &mut fidl::encoding::Decoder<'_, D>,
27819 offset: usize,
27820 mut depth: fidl::encoding::Depth,
27821 ) -> fidl::Result<()> {
27822 decoder.debug_check_bounds::<Self>(offset);
27823 #[allow(unused_variables)]
27824 let next_out_of_line = decoder.next_out_of_line();
27825 let handles_before = decoder.remaining_handles();
27826 let (ordinal, inlined, num_bytes, num_handles) =
27827 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27828
27829 let member_inline_size = match ordinal {
27830 1 => <DebugProtocolRegistration as fidl::encoding::TypeMarker>::inline_size(
27831 decoder.context,
27832 ),
27833 0 => return Err(fidl::Error::UnknownUnionTag),
27834 _ => num_bytes as usize,
27835 };
27836
27837 if inlined != (member_inline_size <= 4) {
27838 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27839 }
27840 let _inner_offset;
27841 if inlined {
27842 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27843 _inner_offset = offset + 8;
27844 } else {
27845 depth.increment()?;
27846 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27847 }
27848 match ordinal {
27849 1 => {
27850 #[allow(irrefutable_let_patterns)]
27851 if let DebugRegistration::Protocol(_) = self {
27852 } else {
27854 *self = DebugRegistration::Protocol(fidl::new_empty!(
27856 DebugProtocolRegistration,
27857 D
27858 ));
27859 }
27860 #[allow(irrefutable_let_patterns)]
27861 if let DebugRegistration::Protocol(ref mut val) = self {
27862 fidl::decode!(
27863 DebugProtocolRegistration,
27864 D,
27865 val,
27866 decoder,
27867 _inner_offset,
27868 depth
27869 )?;
27870 } else {
27871 unreachable!()
27872 }
27873 }
27874 #[allow(deprecated)]
27875 ordinal => {
27876 for _ in 0..num_handles {
27877 decoder.drop_next_handle()?;
27878 }
27879 *self = DebugRegistration::__SourceBreaking { unknown_ordinal: ordinal };
27880 }
27881 }
27882 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27883 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27884 }
27885 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27886 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27887 }
27888 Ok(())
27889 }
27890 }
27891
27892 impl fidl::encoding::ValueTypeMarker for Expose {
27893 type Borrowed<'a> = &'a Self;
27894 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27895 value
27896 }
27897 }
27898
27899 unsafe impl fidl::encoding::TypeMarker for Expose {
27900 type Owned = Self;
27901
27902 #[inline(always)]
27903 fn inline_align(_context: fidl::encoding::Context) -> usize {
27904 8
27905 }
27906
27907 #[inline(always)]
27908 fn inline_size(_context: fidl::encoding::Context) -> usize {
27909 16
27910 }
27911 }
27912
27913 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Expose, D> for &Expose {
27914 #[inline]
27915 unsafe fn encode(
27916 self,
27917 encoder: &mut fidl::encoding::Encoder<'_, D>,
27918 offset: usize,
27919 _depth: fidl::encoding::Depth,
27920 ) -> fidl::Result<()> {
27921 encoder.debug_check_bounds::<Expose>(offset);
27922 encoder.write_num::<u64>(self.ordinal(), offset);
27923 match self {
27924 Expose::Service(ref val) => fidl::encoding::encode_in_envelope::<ExposeService, D>(
27925 <ExposeService as fidl::encoding::ValueTypeMarker>::borrow(val),
27926 encoder,
27927 offset + 8,
27928 _depth,
27929 ),
27930 Expose::Protocol(ref val) => {
27931 fidl::encoding::encode_in_envelope::<ExposeProtocol, D>(
27932 <ExposeProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
27933 encoder,
27934 offset + 8,
27935 _depth,
27936 )
27937 }
27938 Expose::Directory(ref val) => {
27939 fidl::encoding::encode_in_envelope::<ExposeDirectory, D>(
27940 <ExposeDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
27941 encoder,
27942 offset + 8,
27943 _depth,
27944 )
27945 }
27946 Expose::Runner(ref val) => fidl::encoding::encode_in_envelope::<ExposeRunner, D>(
27947 <ExposeRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
27948 encoder,
27949 offset + 8,
27950 _depth,
27951 ),
27952 Expose::Resolver(ref val) => {
27953 fidl::encoding::encode_in_envelope::<ExposeResolver, D>(
27954 <ExposeResolver as fidl::encoding::ValueTypeMarker>::borrow(val),
27955 encoder,
27956 offset + 8,
27957 _depth,
27958 )
27959 }
27960 Expose::Dictionary(ref val) => {
27961 fidl::encoding::encode_in_envelope::<ExposeDictionary, D>(
27962 <ExposeDictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
27963 encoder,
27964 offset + 8,
27965 _depth,
27966 )
27967 }
27968 Expose::Config(ref val) => {
27969 fidl::encoding::encode_in_envelope::<ExposeConfiguration, D>(
27970 <ExposeConfiguration as fidl::encoding::ValueTypeMarker>::borrow(val),
27971 encoder,
27972 offset + 8,
27973 _depth,
27974 )
27975 }
27976 Expose::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27977 }
27978 }
27979 }
27980
27981 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Expose {
27982 #[inline(always)]
27983 fn new_empty() -> Self {
27984 Self::__SourceBreaking { unknown_ordinal: 0 }
27985 }
27986
27987 #[inline]
27988 unsafe fn decode(
27989 &mut self,
27990 decoder: &mut fidl::encoding::Decoder<'_, D>,
27991 offset: usize,
27992 mut depth: fidl::encoding::Depth,
27993 ) -> fidl::Result<()> {
27994 decoder.debug_check_bounds::<Self>(offset);
27995 #[allow(unused_variables)]
27996 let next_out_of_line = decoder.next_out_of_line();
27997 let handles_before = decoder.remaining_handles();
27998 let (ordinal, inlined, num_bytes, num_handles) =
27999 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28000
28001 let member_inline_size = match ordinal {
28002 1 => <ExposeService as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28003 2 => <ExposeProtocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28004 3 => <ExposeDirectory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28005 4 => <ExposeRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28006 5 => <ExposeResolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28007 7 => <ExposeDictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28008 8 => <ExposeConfiguration as fidl::encoding::TypeMarker>::inline_size(
28009 decoder.context,
28010 ),
28011 0 => return Err(fidl::Error::UnknownUnionTag),
28012 _ => num_bytes as usize,
28013 };
28014
28015 if inlined != (member_inline_size <= 4) {
28016 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28017 }
28018 let _inner_offset;
28019 if inlined {
28020 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28021 _inner_offset = offset + 8;
28022 } else {
28023 depth.increment()?;
28024 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28025 }
28026 match ordinal {
28027 1 => {
28028 #[allow(irrefutable_let_patterns)]
28029 if let Expose::Service(_) = self {
28030 } else {
28032 *self = Expose::Service(fidl::new_empty!(ExposeService, D));
28034 }
28035 #[allow(irrefutable_let_patterns)]
28036 if let Expose::Service(ref mut val) = self {
28037 fidl::decode!(ExposeService, D, val, decoder, _inner_offset, depth)?;
28038 } else {
28039 unreachable!()
28040 }
28041 }
28042 2 => {
28043 #[allow(irrefutable_let_patterns)]
28044 if let Expose::Protocol(_) = self {
28045 } else {
28047 *self = Expose::Protocol(fidl::new_empty!(ExposeProtocol, D));
28049 }
28050 #[allow(irrefutable_let_patterns)]
28051 if let Expose::Protocol(ref mut val) = self {
28052 fidl::decode!(ExposeProtocol, D, val, decoder, _inner_offset, depth)?;
28053 } else {
28054 unreachable!()
28055 }
28056 }
28057 3 => {
28058 #[allow(irrefutable_let_patterns)]
28059 if let Expose::Directory(_) = self {
28060 } else {
28062 *self = Expose::Directory(fidl::new_empty!(ExposeDirectory, D));
28064 }
28065 #[allow(irrefutable_let_patterns)]
28066 if let Expose::Directory(ref mut val) = self {
28067 fidl::decode!(ExposeDirectory, D, val, decoder, _inner_offset, depth)?;
28068 } else {
28069 unreachable!()
28070 }
28071 }
28072 4 => {
28073 #[allow(irrefutable_let_patterns)]
28074 if let Expose::Runner(_) = self {
28075 } else {
28077 *self = Expose::Runner(fidl::new_empty!(ExposeRunner, D));
28079 }
28080 #[allow(irrefutable_let_patterns)]
28081 if let Expose::Runner(ref mut val) = self {
28082 fidl::decode!(ExposeRunner, D, val, decoder, _inner_offset, depth)?;
28083 } else {
28084 unreachable!()
28085 }
28086 }
28087 5 => {
28088 #[allow(irrefutable_let_patterns)]
28089 if let Expose::Resolver(_) = self {
28090 } else {
28092 *self = Expose::Resolver(fidl::new_empty!(ExposeResolver, D));
28094 }
28095 #[allow(irrefutable_let_patterns)]
28096 if let Expose::Resolver(ref mut val) = self {
28097 fidl::decode!(ExposeResolver, D, val, decoder, _inner_offset, depth)?;
28098 } else {
28099 unreachable!()
28100 }
28101 }
28102 7 => {
28103 #[allow(irrefutable_let_patterns)]
28104 if let Expose::Dictionary(_) = self {
28105 } else {
28107 *self = Expose::Dictionary(fidl::new_empty!(ExposeDictionary, D));
28109 }
28110 #[allow(irrefutable_let_patterns)]
28111 if let Expose::Dictionary(ref mut val) = self {
28112 fidl::decode!(ExposeDictionary, D, val, decoder, _inner_offset, depth)?;
28113 } else {
28114 unreachable!()
28115 }
28116 }
28117 8 => {
28118 #[allow(irrefutable_let_patterns)]
28119 if let Expose::Config(_) = self {
28120 } else {
28122 *self = Expose::Config(fidl::new_empty!(ExposeConfiguration, D));
28124 }
28125 #[allow(irrefutable_let_patterns)]
28126 if let Expose::Config(ref mut val) = self {
28127 fidl::decode!(ExposeConfiguration, D, val, decoder, _inner_offset, depth)?;
28128 } else {
28129 unreachable!()
28130 }
28131 }
28132 #[allow(deprecated)]
28133 ordinal => {
28134 for _ in 0..num_handles {
28135 decoder.drop_next_handle()?;
28136 }
28137 *self = Expose::__SourceBreaking { unknown_ordinal: ordinal };
28138 }
28139 }
28140 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28141 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28142 }
28143 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28144 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28145 }
28146 Ok(())
28147 }
28148 }
28149
28150 impl fidl::encoding::ValueTypeMarker for LayoutConstraint {
28151 type Borrowed<'a> = &'a Self;
28152 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28153 value
28154 }
28155 }
28156
28157 unsafe impl fidl::encoding::TypeMarker for LayoutConstraint {
28158 type Owned = Self;
28159
28160 #[inline(always)]
28161 fn inline_align(_context: fidl::encoding::Context) -> usize {
28162 8
28163 }
28164
28165 #[inline(always)]
28166 fn inline_size(_context: fidl::encoding::Context) -> usize {
28167 16
28168 }
28169 }
28170
28171 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LayoutConstraint, D>
28172 for &LayoutConstraint
28173 {
28174 #[inline]
28175 unsafe fn encode(
28176 self,
28177 encoder: &mut fidl::encoding::Encoder<'_, D>,
28178 offset: usize,
28179 _depth: fidl::encoding::Depth,
28180 ) -> fidl::Result<()> {
28181 encoder.debug_check_bounds::<LayoutConstraint>(offset);
28182 encoder.write_num::<u64>(self.ordinal(), offset);
28183 match self {
28184 LayoutConstraint::MaxSize(ref val) => fidl::encoding::encode_in_envelope::<u32, D>(
28185 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
28186 encoder,
28187 offset + 8,
28188 _depth,
28189 ),
28190 LayoutConstraint::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28191 }
28192 }
28193 }
28194
28195 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LayoutConstraint {
28196 #[inline(always)]
28197 fn new_empty() -> Self {
28198 Self::__SourceBreaking { unknown_ordinal: 0 }
28199 }
28200
28201 #[inline]
28202 unsafe fn decode(
28203 &mut self,
28204 decoder: &mut fidl::encoding::Decoder<'_, D>,
28205 offset: usize,
28206 mut depth: fidl::encoding::Depth,
28207 ) -> fidl::Result<()> {
28208 decoder.debug_check_bounds::<Self>(offset);
28209 #[allow(unused_variables)]
28210 let next_out_of_line = decoder.next_out_of_line();
28211 let handles_before = decoder.remaining_handles();
28212 let (ordinal, inlined, num_bytes, num_handles) =
28213 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28214
28215 let member_inline_size = match ordinal {
28216 1 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28217 0 => return Err(fidl::Error::UnknownUnionTag),
28218 _ => num_bytes as usize,
28219 };
28220
28221 if inlined != (member_inline_size <= 4) {
28222 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28223 }
28224 let _inner_offset;
28225 if inlined {
28226 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28227 _inner_offset = offset + 8;
28228 } else {
28229 depth.increment()?;
28230 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28231 }
28232 match ordinal {
28233 1 => {
28234 #[allow(irrefutable_let_patterns)]
28235 if let LayoutConstraint::MaxSize(_) = self {
28236 } else {
28238 *self = LayoutConstraint::MaxSize(fidl::new_empty!(u32, D));
28240 }
28241 #[allow(irrefutable_let_patterns)]
28242 if let LayoutConstraint::MaxSize(ref mut val) = self {
28243 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
28244 } else {
28245 unreachable!()
28246 }
28247 }
28248 #[allow(deprecated)]
28249 ordinal => {
28250 for _ in 0..num_handles {
28251 decoder.drop_next_handle()?;
28252 }
28253 *self = LayoutConstraint::__SourceBreaking { unknown_ordinal: ordinal };
28254 }
28255 }
28256 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28257 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28258 }
28259 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28260 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28261 }
28262 Ok(())
28263 }
28264 }
28265
28266 impl fidl::encoding::ValueTypeMarker for LayoutParameter {
28267 type Borrowed<'a> = &'a Self;
28268 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28269 value
28270 }
28271 }
28272
28273 unsafe impl fidl::encoding::TypeMarker for LayoutParameter {
28274 type Owned = Self;
28275
28276 #[inline(always)]
28277 fn inline_align(_context: fidl::encoding::Context) -> usize {
28278 8
28279 }
28280
28281 #[inline(always)]
28282 fn inline_size(_context: fidl::encoding::Context) -> usize {
28283 16
28284 }
28285 }
28286
28287 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LayoutParameter, D>
28288 for &LayoutParameter
28289 {
28290 #[inline]
28291 unsafe fn encode(
28292 self,
28293 encoder: &mut fidl::encoding::Encoder<'_, D>,
28294 offset: usize,
28295 _depth: fidl::encoding::Depth,
28296 ) -> fidl::Result<()> {
28297 encoder.debug_check_bounds::<LayoutParameter>(offset);
28298 encoder.write_num::<u64>(self.ordinal(), offset);
28299 match self {
28300 LayoutParameter::NestedType(ref val) => {
28301 fidl::encoding::encode_in_envelope::<ConfigType, D>(
28302 <ConfigType as fidl::encoding::ValueTypeMarker>::borrow(val),
28303 encoder,
28304 offset + 8,
28305 _depth,
28306 )
28307 }
28308 LayoutParameter::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28309 }
28310 }
28311 }
28312
28313 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LayoutParameter {
28314 #[inline(always)]
28315 fn new_empty() -> Self {
28316 Self::__SourceBreaking { unknown_ordinal: 0 }
28317 }
28318
28319 #[inline]
28320 unsafe fn decode(
28321 &mut self,
28322 decoder: &mut fidl::encoding::Decoder<'_, D>,
28323 offset: usize,
28324 mut depth: fidl::encoding::Depth,
28325 ) -> fidl::Result<()> {
28326 decoder.debug_check_bounds::<Self>(offset);
28327 #[allow(unused_variables)]
28328 let next_out_of_line = decoder.next_out_of_line();
28329 let handles_before = decoder.remaining_handles();
28330 let (ordinal, inlined, num_bytes, num_handles) =
28331 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28332
28333 let member_inline_size = match ordinal {
28334 1 => <ConfigType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28335 0 => return Err(fidl::Error::UnknownUnionTag),
28336 _ => num_bytes as usize,
28337 };
28338
28339 if inlined != (member_inline_size <= 4) {
28340 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28341 }
28342 let _inner_offset;
28343 if inlined {
28344 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28345 _inner_offset = offset + 8;
28346 } else {
28347 depth.increment()?;
28348 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28349 }
28350 match ordinal {
28351 1 => {
28352 #[allow(irrefutable_let_patterns)]
28353 if let LayoutParameter::NestedType(_) = self {
28354 } else {
28356 *self = LayoutParameter::NestedType(fidl::new_empty!(ConfigType, D));
28358 }
28359 #[allow(irrefutable_let_patterns)]
28360 if let LayoutParameter::NestedType(ref mut val) = self {
28361 fidl::decode!(ConfigType, D, val, decoder, _inner_offset, depth)?;
28362 } else {
28363 unreachable!()
28364 }
28365 }
28366 #[allow(deprecated)]
28367 ordinal => {
28368 for _ in 0..num_handles {
28369 decoder.drop_next_handle()?;
28370 }
28371 *self = LayoutParameter::__SourceBreaking { unknown_ordinal: ordinal };
28372 }
28373 }
28374 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28375 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28376 }
28377 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28378 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28379 }
28380 Ok(())
28381 }
28382 }
28383
28384 impl fidl::encoding::ValueTypeMarker for Offer {
28385 type Borrowed<'a> = &'a Self;
28386 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28387 value
28388 }
28389 }
28390
28391 unsafe impl fidl::encoding::TypeMarker for Offer {
28392 type Owned = Self;
28393
28394 #[inline(always)]
28395 fn inline_align(_context: fidl::encoding::Context) -> usize {
28396 8
28397 }
28398
28399 #[inline(always)]
28400 fn inline_size(_context: fidl::encoding::Context) -> usize {
28401 16
28402 }
28403 }
28404
28405 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Offer, D> for &Offer {
28406 #[inline]
28407 unsafe fn encode(
28408 self,
28409 encoder: &mut fidl::encoding::Encoder<'_, D>,
28410 offset: usize,
28411 _depth: fidl::encoding::Depth,
28412 ) -> fidl::Result<()> {
28413 encoder.debug_check_bounds::<Offer>(offset);
28414 encoder.write_num::<u64>(self.ordinal(), offset);
28415 match self {
28416 Offer::Service(ref val) => fidl::encoding::encode_in_envelope::<OfferService, D>(
28417 <OfferService as fidl::encoding::ValueTypeMarker>::borrow(val),
28418 encoder,
28419 offset + 8,
28420 _depth,
28421 ),
28422 Offer::Protocol(ref val) => fidl::encoding::encode_in_envelope::<OfferProtocol, D>(
28423 <OfferProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
28424 encoder,
28425 offset + 8,
28426 _depth,
28427 ),
28428 Offer::Directory(ref val) => {
28429 fidl::encoding::encode_in_envelope::<OfferDirectory, D>(
28430 <OfferDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
28431 encoder,
28432 offset + 8,
28433 _depth,
28434 )
28435 }
28436 Offer::Storage(ref val) => fidl::encoding::encode_in_envelope::<OfferStorage, D>(
28437 <OfferStorage as fidl::encoding::ValueTypeMarker>::borrow(val),
28438 encoder,
28439 offset + 8,
28440 _depth,
28441 ),
28442 Offer::Runner(ref val) => fidl::encoding::encode_in_envelope::<OfferRunner, D>(
28443 <OfferRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
28444 encoder,
28445 offset + 8,
28446 _depth,
28447 ),
28448 Offer::Resolver(ref val) => fidl::encoding::encode_in_envelope::<OfferResolver, D>(
28449 <OfferResolver as fidl::encoding::ValueTypeMarker>::borrow(val),
28450 encoder,
28451 offset + 8,
28452 _depth,
28453 ),
28454 Offer::EventStream(ref val) => {
28455 fidl::encoding::encode_in_envelope::<OfferEventStream, D>(
28456 <OfferEventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
28457 encoder,
28458 offset + 8,
28459 _depth,
28460 )
28461 }
28462 Offer::Dictionary(ref val) => {
28463 fidl::encoding::encode_in_envelope::<OfferDictionary, D>(
28464 <OfferDictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
28465 encoder,
28466 offset + 8,
28467 _depth,
28468 )
28469 }
28470 Offer::Config(ref val) => {
28471 fidl::encoding::encode_in_envelope::<OfferConfiguration, D>(
28472 <OfferConfiguration as fidl::encoding::ValueTypeMarker>::borrow(val),
28473 encoder,
28474 offset + 8,
28475 _depth,
28476 )
28477 }
28478 Offer::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28479 }
28480 }
28481 }
28482
28483 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Offer {
28484 #[inline(always)]
28485 fn new_empty() -> Self {
28486 Self::__SourceBreaking { unknown_ordinal: 0 }
28487 }
28488
28489 #[inline]
28490 unsafe fn decode(
28491 &mut self,
28492 decoder: &mut fidl::encoding::Decoder<'_, D>,
28493 offset: usize,
28494 mut depth: fidl::encoding::Depth,
28495 ) -> fidl::Result<()> {
28496 decoder.debug_check_bounds::<Self>(offset);
28497 #[allow(unused_variables)]
28498 let next_out_of_line = decoder.next_out_of_line();
28499 let handles_before = decoder.remaining_handles();
28500 let (ordinal, inlined, num_bytes, num_handles) =
28501 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28502
28503 let member_inline_size = match ordinal {
28504 1 => <OfferService as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28505 2 => <OfferProtocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28506 3 => <OfferDirectory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28507 4 => <OfferStorage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28508 5 => <OfferRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28509 6 => <OfferResolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28510 8 => <OfferEventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28511 9 => <OfferDictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28512 10 => {
28513 <OfferConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context)
28514 }
28515 0 => return Err(fidl::Error::UnknownUnionTag),
28516 _ => num_bytes as usize,
28517 };
28518
28519 if inlined != (member_inline_size <= 4) {
28520 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28521 }
28522 let _inner_offset;
28523 if inlined {
28524 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28525 _inner_offset = offset + 8;
28526 } else {
28527 depth.increment()?;
28528 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28529 }
28530 match ordinal {
28531 1 => {
28532 #[allow(irrefutable_let_patterns)]
28533 if let Offer::Service(_) = self {
28534 } else {
28536 *self = Offer::Service(fidl::new_empty!(OfferService, D));
28538 }
28539 #[allow(irrefutable_let_patterns)]
28540 if let Offer::Service(ref mut val) = self {
28541 fidl::decode!(OfferService, D, val, decoder, _inner_offset, depth)?;
28542 } else {
28543 unreachable!()
28544 }
28545 }
28546 2 => {
28547 #[allow(irrefutable_let_patterns)]
28548 if let Offer::Protocol(_) = self {
28549 } else {
28551 *self = Offer::Protocol(fidl::new_empty!(OfferProtocol, D));
28553 }
28554 #[allow(irrefutable_let_patterns)]
28555 if let Offer::Protocol(ref mut val) = self {
28556 fidl::decode!(OfferProtocol, D, val, decoder, _inner_offset, depth)?;
28557 } else {
28558 unreachable!()
28559 }
28560 }
28561 3 => {
28562 #[allow(irrefutable_let_patterns)]
28563 if let Offer::Directory(_) = self {
28564 } else {
28566 *self = Offer::Directory(fidl::new_empty!(OfferDirectory, D));
28568 }
28569 #[allow(irrefutable_let_patterns)]
28570 if let Offer::Directory(ref mut val) = self {
28571 fidl::decode!(OfferDirectory, D, val, decoder, _inner_offset, depth)?;
28572 } else {
28573 unreachable!()
28574 }
28575 }
28576 4 => {
28577 #[allow(irrefutable_let_patterns)]
28578 if let Offer::Storage(_) = self {
28579 } else {
28581 *self = Offer::Storage(fidl::new_empty!(OfferStorage, D));
28583 }
28584 #[allow(irrefutable_let_patterns)]
28585 if let Offer::Storage(ref mut val) = self {
28586 fidl::decode!(OfferStorage, D, val, decoder, _inner_offset, depth)?;
28587 } else {
28588 unreachable!()
28589 }
28590 }
28591 5 => {
28592 #[allow(irrefutable_let_patterns)]
28593 if let Offer::Runner(_) = self {
28594 } else {
28596 *self = Offer::Runner(fidl::new_empty!(OfferRunner, D));
28598 }
28599 #[allow(irrefutable_let_patterns)]
28600 if let Offer::Runner(ref mut val) = self {
28601 fidl::decode!(OfferRunner, D, val, decoder, _inner_offset, depth)?;
28602 } else {
28603 unreachable!()
28604 }
28605 }
28606 6 => {
28607 #[allow(irrefutable_let_patterns)]
28608 if let Offer::Resolver(_) = self {
28609 } else {
28611 *self = Offer::Resolver(fidl::new_empty!(OfferResolver, D));
28613 }
28614 #[allow(irrefutable_let_patterns)]
28615 if let Offer::Resolver(ref mut val) = self {
28616 fidl::decode!(OfferResolver, D, val, decoder, _inner_offset, depth)?;
28617 } else {
28618 unreachable!()
28619 }
28620 }
28621 8 => {
28622 #[allow(irrefutable_let_patterns)]
28623 if let Offer::EventStream(_) = self {
28624 } else {
28626 *self = Offer::EventStream(fidl::new_empty!(OfferEventStream, D));
28628 }
28629 #[allow(irrefutable_let_patterns)]
28630 if let Offer::EventStream(ref mut val) = self {
28631 fidl::decode!(OfferEventStream, D, val, decoder, _inner_offset, depth)?;
28632 } else {
28633 unreachable!()
28634 }
28635 }
28636 9 => {
28637 #[allow(irrefutable_let_patterns)]
28638 if let Offer::Dictionary(_) = self {
28639 } else {
28641 *self = Offer::Dictionary(fidl::new_empty!(OfferDictionary, D));
28643 }
28644 #[allow(irrefutable_let_patterns)]
28645 if let Offer::Dictionary(ref mut val) = self {
28646 fidl::decode!(OfferDictionary, D, val, decoder, _inner_offset, depth)?;
28647 } else {
28648 unreachable!()
28649 }
28650 }
28651 10 => {
28652 #[allow(irrefutable_let_patterns)]
28653 if let Offer::Config(_) = self {
28654 } else {
28656 *self = Offer::Config(fidl::new_empty!(OfferConfiguration, D));
28658 }
28659 #[allow(irrefutable_let_patterns)]
28660 if let Offer::Config(ref mut val) = self {
28661 fidl::decode!(OfferConfiguration, D, val, decoder, _inner_offset, depth)?;
28662 } else {
28663 unreachable!()
28664 }
28665 }
28666 #[allow(deprecated)]
28667 ordinal => {
28668 for _ in 0..num_handles {
28669 decoder.drop_next_handle()?;
28670 }
28671 *self = Offer::__SourceBreaking { unknown_ordinal: ordinal };
28672 }
28673 }
28674 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28675 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28676 }
28677 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28678 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28679 }
28680 Ok(())
28681 }
28682 }
28683
28684 impl fidl::encoding::ValueTypeMarker for Ref {
28685 type Borrowed<'a> = &'a Self;
28686 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28687 value
28688 }
28689 }
28690
28691 unsafe impl fidl::encoding::TypeMarker for Ref {
28692 type Owned = Self;
28693
28694 #[inline(always)]
28695 fn inline_align(_context: fidl::encoding::Context) -> usize {
28696 8
28697 }
28698
28699 #[inline(always)]
28700 fn inline_size(_context: fidl::encoding::Context) -> usize {
28701 16
28702 }
28703 }
28704
28705 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ref, D> for &Ref {
28706 #[inline]
28707 unsafe fn encode(
28708 self,
28709 encoder: &mut fidl::encoding::Encoder<'_, D>,
28710 offset: usize,
28711 _depth: fidl::encoding::Depth,
28712 ) -> fidl::Result<()> {
28713 encoder.debug_check_bounds::<Ref>(offset);
28714 encoder.write_num::<u64>(self.ordinal(), offset);
28715 match self {
28716 Ref::Parent(ref val) => fidl::encoding::encode_in_envelope::<ParentRef, D>(
28717 <ParentRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28718 encoder,
28719 offset + 8,
28720 _depth,
28721 ),
28722 Ref::Self_(ref val) => fidl::encoding::encode_in_envelope::<SelfRef, D>(
28723 <SelfRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28724 encoder,
28725 offset + 8,
28726 _depth,
28727 ),
28728 Ref::Child(ref val) => fidl::encoding::encode_in_envelope::<ChildRef, D>(
28729 <ChildRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28730 encoder,
28731 offset + 8,
28732 _depth,
28733 ),
28734 Ref::Collection(ref val) => fidl::encoding::encode_in_envelope::<CollectionRef, D>(
28735 <CollectionRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28736 encoder,
28737 offset + 8,
28738 _depth,
28739 ),
28740 Ref::Framework(ref val) => fidl::encoding::encode_in_envelope::<FrameworkRef, D>(
28741 <FrameworkRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28742 encoder,
28743 offset + 8,
28744 _depth,
28745 ),
28746 Ref::Capability(ref val) => fidl::encoding::encode_in_envelope::<CapabilityRef, D>(
28747 <CapabilityRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28748 encoder,
28749 offset + 8,
28750 _depth,
28751 ),
28752 Ref::Debug(ref val) => fidl::encoding::encode_in_envelope::<DebugRef, D>(
28753 <DebugRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28754 encoder,
28755 offset + 8,
28756 _depth,
28757 ),
28758 Ref::VoidType(ref val) => fidl::encoding::encode_in_envelope::<VoidRef, D>(
28759 <VoidRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28760 encoder,
28761 offset + 8,
28762 _depth,
28763 ),
28764 Ref::Environment(ref val) => {
28765 fidl::encoding::encode_in_envelope::<EnvironmentRef, D>(
28766 <EnvironmentRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28767 encoder,
28768 offset + 8,
28769 _depth,
28770 )
28771 }
28772 Ref::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28773 }
28774 }
28775 }
28776
28777 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ref {
28778 #[inline(always)]
28779 fn new_empty() -> Self {
28780 Self::__SourceBreaking { unknown_ordinal: 0 }
28781 }
28782
28783 #[inline]
28784 unsafe fn decode(
28785 &mut self,
28786 decoder: &mut fidl::encoding::Decoder<'_, D>,
28787 offset: usize,
28788 mut depth: fidl::encoding::Depth,
28789 ) -> fidl::Result<()> {
28790 decoder.debug_check_bounds::<Self>(offset);
28791 #[allow(unused_variables)]
28792 let next_out_of_line = decoder.next_out_of_line();
28793 let handles_before = decoder.remaining_handles();
28794 let (ordinal, inlined, num_bytes, num_handles) =
28795 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28796
28797 let member_inline_size = match ordinal {
28798 1 => <ParentRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28799 2 => <SelfRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28800 3 => <ChildRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28801 4 => <CollectionRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28802 5 => <FrameworkRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28803 6 => <CapabilityRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28804 7 => <DebugRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28805 8 => <VoidRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28806 9 => <EnvironmentRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28807 0 => return Err(fidl::Error::UnknownUnionTag),
28808 _ => num_bytes as usize,
28809 };
28810
28811 if inlined != (member_inline_size <= 4) {
28812 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28813 }
28814 let _inner_offset;
28815 if inlined {
28816 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28817 _inner_offset = offset + 8;
28818 } else {
28819 depth.increment()?;
28820 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28821 }
28822 match ordinal {
28823 1 => {
28824 #[allow(irrefutable_let_patterns)]
28825 if let Ref::Parent(_) = self {
28826 } else {
28828 *self = Ref::Parent(fidl::new_empty!(ParentRef, D));
28830 }
28831 #[allow(irrefutable_let_patterns)]
28832 if let Ref::Parent(ref mut val) = self {
28833 fidl::decode!(ParentRef, D, val, decoder, _inner_offset, depth)?;
28834 } else {
28835 unreachable!()
28836 }
28837 }
28838 2 => {
28839 #[allow(irrefutable_let_patterns)]
28840 if let Ref::Self_(_) = self {
28841 } else {
28843 *self = Ref::Self_(fidl::new_empty!(SelfRef, D));
28845 }
28846 #[allow(irrefutable_let_patterns)]
28847 if let Ref::Self_(ref mut val) = self {
28848 fidl::decode!(SelfRef, D, val, decoder, _inner_offset, depth)?;
28849 } else {
28850 unreachable!()
28851 }
28852 }
28853 3 => {
28854 #[allow(irrefutable_let_patterns)]
28855 if let Ref::Child(_) = self {
28856 } else {
28858 *self = Ref::Child(fidl::new_empty!(ChildRef, D));
28860 }
28861 #[allow(irrefutable_let_patterns)]
28862 if let Ref::Child(ref mut val) = self {
28863 fidl::decode!(ChildRef, D, val, decoder, _inner_offset, depth)?;
28864 } else {
28865 unreachable!()
28866 }
28867 }
28868 4 => {
28869 #[allow(irrefutable_let_patterns)]
28870 if let Ref::Collection(_) = self {
28871 } else {
28873 *self = Ref::Collection(fidl::new_empty!(CollectionRef, D));
28875 }
28876 #[allow(irrefutable_let_patterns)]
28877 if let Ref::Collection(ref mut val) = self {
28878 fidl::decode!(CollectionRef, D, val, decoder, _inner_offset, depth)?;
28879 } else {
28880 unreachable!()
28881 }
28882 }
28883 5 => {
28884 #[allow(irrefutable_let_patterns)]
28885 if let Ref::Framework(_) = self {
28886 } else {
28888 *self = Ref::Framework(fidl::new_empty!(FrameworkRef, D));
28890 }
28891 #[allow(irrefutable_let_patterns)]
28892 if let Ref::Framework(ref mut val) = self {
28893 fidl::decode!(FrameworkRef, D, val, decoder, _inner_offset, depth)?;
28894 } else {
28895 unreachable!()
28896 }
28897 }
28898 6 => {
28899 #[allow(irrefutable_let_patterns)]
28900 if let Ref::Capability(_) = self {
28901 } else {
28903 *self = Ref::Capability(fidl::new_empty!(CapabilityRef, D));
28905 }
28906 #[allow(irrefutable_let_patterns)]
28907 if let Ref::Capability(ref mut val) = self {
28908 fidl::decode!(CapabilityRef, D, val, decoder, _inner_offset, depth)?;
28909 } else {
28910 unreachable!()
28911 }
28912 }
28913 7 => {
28914 #[allow(irrefutable_let_patterns)]
28915 if let Ref::Debug(_) = self {
28916 } else {
28918 *self = Ref::Debug(fidl::new_empty!(DebugRef, D));
28920 }
28921 #[allow(irrefutable_let_patterns)]
28922 if let Ref::Debug(ref mut val) = self {
28923 fidl::decode!(DebugRef, D, val, decoder, _inner_offset, depth)?;
28924 } else {
28925 unreachable!()
28926 }
28927 }
28928 8 => {
28929 #[allow(irrefutable_let_patterns)]
28930 if let Ref::VoidType(_) = self {
28931 } else {
28933 *self = Ref::VoidType(fidl::new_empty!(VoidRef, D));
28935 }
28936 #[allow(irrefutable_let_patterns)]
28937 if let Ref::VoidType(ref mut val) = self {
28938 fidl::decode!(VoidRef, D, val, decoder, _inner_offset, depth)?;
28939 } else {
28940 unreachable!()
28941 }
28942 }
28943 9 => {
28944 #[allow(irrefutable_let_patterns)]
28945 if let Ref::Environment(_) = self {
28946 } else {
28948 *self = Ref::Environment(fidl::new_empty!(EnvironmentRef, D));
28950 }
28951 #[allow(irrefutable_let_patterns)]
28952 if let Ref::Environment(ref mut val) = self {
28953 fidl::decode!(EnvironmentRef, D, val, decoder, _inner_offset, depth)?;
28954 } else {
28955 unreachable!()
28956 }
28957 }
28958 #[allow(deprecated)]
28959 ordinal => {
28960 for _ in 0..num_handles {
28961 decoder.drop_next_handle()?;
28962 }
28963 *self = Ref::__SourceBreaking { unknown_ordinal: ordinal };
28964 }
28965 }
28966 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28967 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28968 }
28969 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28970 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28971 }
28972 Ok(())
28973 }
28974 }
28975
28976 impl fidl::encoding::ValueTypeMarker for Use {
28977 type Borrowed<'a> = &'a Self;
28978 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28979 value
28980 }
28981 }
28982
28983 unsafe impl fidl::encoding::TypeMarker for Use {
28984 type Owned = Self;
28985
28986 #[inline(always)]
28987 fn inline_align(_context: fidl::encoding::Context) -> usize {
28988 8
28989 }
28990
28991 #[inline(always)]
28992 fn inline_size(_context: fidl::encoding::Context) -> usize {
28993 16
28994 }
28995 }
28996
28997 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Use, D> for &Use {
28998 #[inline]
28999 unsafe fn encode(
29000 self,
29001 encoder: &mut fidl::encoding::Encoder<'_, D>,
29002 offset: usize,
29003 _depth: fidl::encoding::Depth,
29004 ) -> fidl::Result<()> {
29005 encoder.debug_check_bounds::<Use>(offset);
29006 encoder.write_num::<u64>(self.ordinal(), offset);
29007 match self {
29008 Use::Service(ref val) => fidl::encoding::encode_in_envelope::<UseService, D>(
29009 <UseService as fidl::encoding::ValueTypeMarker>::borrow(val),
29010 encoder,
29011 offset + 8,
29012 _depth,
29013 ),
29014 Use::Protocol(ref val) => fidl::encoding::encode_in_envelope::<UseProtocol, D>(
29015 <UseProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
29016 encoder,
29017 offset + 8,
29018 _depth,
29019 ),
29020 Use::Directory(ref val) => fidl::encoding::encode_in_envelope::<UseDirectory, D>(
29021 <UseDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
29022 encoder,
29023 offset + 8,
29024 _depth,
29025 ),
29026 Use::Storage(ref val) => fidl::encoding::encode_in_envelope::<UseStorage, D>(
29027 <UseStorage as fidl::encoding::ValueTypeMarker>::borrow(val),
29028 encoder,
29029 offset + 8,
29030 _depth,
29031 ),
29032 Use::EventStream(ref val) => {
29033 fidl::encoding::encode_in_envelope::<UseEventStream, D>(
29034 <UseEventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
29035 encoder,
29036 offset + 8,
29037 _depth,
29038 )
29039 }
29040 Use::Runner(ref val) => fidl::encoding::encode_in_envelope::<UseRunner, D>(
29041 <UseRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
29042 encoder,
29043 offset + 8,
29044 _depth,
29045 ),
29046 Use::Config(ref val) => fidl::encoding::encode_in_envelope::<UseConfiguration, D>(
29047 <UseConfiguration as fidl::encoding::ValueTypeMarker>::borrow(val),
29048 encoder,
29049 offset + 8,
29050 _depth,
29051 ),
29052 Use::Dictionary(ref val) => fidl::encoding::encode_in_envelope::<UseDictionary, D>(
29053 <UseDictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
29054 encoder,
29055 offset + 8,
29056 _depth,
29057 ),
29058 Use::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
29059 }
29060 }
29061 }
29062
29063 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Use {
29064 #[inline(always)]
29065 fn new_empty() -> Self {
29066 Self::__SourceBreaking { unknown_ordinal: 0 }
29067 }
29068
29069 #[inline]
29070 unsafe fn decode(
29071 &mut self,
29072 decoder: &mut fidl::encoding::Decoder<'_, D>,
29073 offset: usize,
29074 mut depth: fidl::encoding::Depth,
29075 ) -> fidl::Result<()> {
29076 decoder.debug_check_bounds::<Self>(offset);
29077 #[allow(unused_variables)]
29078 let next_out_of_line = decoder.next_out_of_line();
29079 let handles_before = decoder.remaining_handles();
29080 let (ordinal, inlined, num_bytes, num_handles) =
29081 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
29082
29083 let member_inline_size = match ordinal {
29084 1 => <UseService as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29085 2 => <UseProtocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29086 3 => <UseDirectory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29087 4 => <UseStorage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29088 7 => <UseEventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29089 8 => <UseRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29090 9 => <UseConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29091 10 => <UseDictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29092 0 => return Err(fidl::Error::UnknownUnionTag),
29093 _ => num_bytes as usize,
29094 };
29095
29096 if inlined != (member_inline_size <= 4) {
29097 return Err(fidl::Error::InvalidInlineBitInEnvelope);
29098 }
29099 let _inner_offset;
29100 if inlined {
29101 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
29102 _inner_offset = offset + 8;
29103 } else {
29104 depth.increment()?;
29105 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
29106 }
29107 match ordinal {
29108 1 => {
29109 #[allow(irrefutable_let_patterns)]
29110 if let Use::Service(_) = self {
29111 } else {
29113 *self = Use::Service(fidl::new_empty!(UseService, D));
29115 }
29116 #[allow(irrefutable_let_patterns)]
29117 if let Use::Service(ref mut val) = self {
29118 fidl::decode!(UseService, D, val, decoder, _inner_offset, depth)?;
29119 } else {
29120 unreachable!()
29121 }
29122 }
29123 2 => {
29124 #[allow(irrefutable_let_patterns)]
29125 if let Use::Protocol(_) = self {
29126 } else {
29128 *self = Use::Protocol(fidl::new_empty!(UseProtocol, D));
29130 }
29131 #[allow(irrefutable_let_patterns)]
29132 if let Use::Protocol(ref mut val) = self {
29133 fidl::decode!(UseProtocol, D, val, decoder, _inner_offset, depth)?;
29134 } else {
29135 unreachable!()
29136 }
29137 }
29138 3 => {
29139 #[allow(irrefutable_let_patterns)]
29140 if let Use::Directory(_) = self {
29141 } else {
29143 *self = Use::Directory(fidl::new_empty!(UseDirectory, D));
29145 }
29146 #[allow(irrefutable_let_patterns)]
29147 if let Use::Directory(ref mut val) = self {
29148 fidl::decode!(UseDirectory, D, val, decoder, _inner_offset, depth)?;
29149 } else {
29150 unreachable!()
29151 }
29152 }
29153 4 => {
29154 #[allow(irrefutable_let_patterns)]
29155 if let Use::Storage(_) = self {
29156 } else {
29158 *self = Use::Storage(fidl::new_empty!(UseStorage, D));
29160 }
29161 #[allow(irrefutable_let_patterns)]
29162 if let Use::Storage(ref mut val) = self {
29163 fidl::decode!(UseStorage, D, val, decoder, _inner_offset, depth)?;
29164 } else {
29165 unreachable!()
29166 }
29167 }
29168 7 => {
29169 #[allow(irrefutable_let_patterns)]
29170 if let Use::EventStream(_) = self {
29171 } else {
29173 *self = Use::EventStream(fidl::new_empty!(UseEventStream, D));
29175 }
29176 #[allow(irrefutable_let_patterns)]
29177 if let Use::EventStream(ref mut val) = self {
29178 fidl::decode!(UseEventStream, D, val, decoder, _inner_offset, depth)?;
29179 } else {
29180 unreachable!()
29181 }
29182 }
29183 8 => {
29184 #[allow(irrefutable_let_patterns)]
29185 if let Use::Runner(_) = self {
29186 } else {
29188 *self = Use::Runner(fidl::new_empty!(UseRunner, D));
29190 }
29191 #[allow(irrefutable_let_patterns)]
29192 if let Use::Runner(ref mut val) = self {
29193 fidl::decode!(UseRunner, D, val, decoder, _inner_offset, depth)?;
29194 } else {
29195 unreachable!()
29196 }
29197 }
29198 9 => {
29199 #[allow(irrefutable_let_patterns)]
29200 if let Use::Config(_) = self {
29201 } else {
29203 *self = Use::Config(fidl::new_empty!(UseConfiguration, D));
29205 }
29206 #[allow(irrefutable_let_patterns)]
29207 if let Use::Config(ref mut val) = self {
29208 fidl::decode!(UseConfiguration, D, val, decoder, _inner_offset, depth)?;
29209 } else {
29210 unreachable!()
29211 }
29212 }
29213 10 => {
29214 #[allow(irrefutable_let_patterns)]
29215 if let Use::Dictionary(_) = self {
29216 } else {
29218 *self = Use::Dictionary(fidl::new_empty!(UseDictionary, D));
29220 }
29221 #[allow(irrefutable_let_patterns)]
29222 if let Use::Dictionary(ref mut val) = self {
29223 fidl::decode!(UseDictionary, D, val, decoder, _inner_offset, depth)?;
29224 } else {
29225 unreachable!()
29226 }
29227 }
29228 #[allow(deprecated)]
29229 ordinal => {
29230 for _ in 0..num_handles {
29231 decoder.drop_next_handle()?;
29232 }
29233 *self = Use::__SourceBreaking { unknown_ordinal: ordinal };
29234 }
29235 }
29236 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
29237 return Err(fidl::Error::InvalidNumBytesInEnvelope);
29238 }
29239 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
29240 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
29241 }
29242 Ok(())
29243 }
29244 }
29245}