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(
9346 <fidl_fuchsia_io_common::Operations as fidl::encoding::ValueTypeMarker>::borrow,
9347 ),
9348 encoder,
9349 offset + cur_offset,
9350 depth,
9351 )?;
9352
9353 _prev_end_offset = cur_offset + envelope_size;
9354
9355 Ok(())
9356 }
9357 }
9358
9359 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Directory {
9360 #[inline(always)]
9361 fn new_empty() -> Self {
9362 Self::default()
9363 }
9364
9365 unsafe fn decode(
9366 &mut self,
9367 decoder: &mut fidl::encoding::Decoder<'_, D>,
9368 offset: usize,
9369 mut depth: fidl::encoding::Depth,
9370 ) -> fidl::Result<()> {
9371 decoder.debug_check_bounds::<Self>(offset);
9372 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9373 None => return Err(fidl::Error::NotNullable),
9374 Some(len) => len,
9375 };
9376 if len == 0 {
9378 return Ok(());
9379 };
9380 depth.increment()?;
9381 let envelope_size = 8;
9382 let bytes_len = len * envelope_size;
9383 let offset = decoder.out_of_line_offset(bytes_len)?;
9384 let mut _next_ordinal_to_read = 0;
9386 let mut next_offset = offset;
9387 let end_offset = offset + bytes_len;
9388 _next_ordinal_to_read += 1;
9389 if next_offset >= end_offset {
9390 return Ok(());
9391 }
9392
9393 while _next_ordinal_to_read < 1 {
9395 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9396 _next_ordinal_to_read += 1;
9397 next_offset += envelope_size;
9398 }
9399
9400 let next_out_of_line = decoder.next_out_of_line();
9401 let handles_before = decoder.remaining_handles();
9402 if let Some((inlined, num_bytes, num_handles)) =
9403 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9404 {
9405 let member_inline_size =
9406 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
9407 decoder.context,
9408 );
9409 if inlined != (member_inline_size <= 4) {
9410 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9411 }
9412 let inner_offset;
9413 let mut inner_depth = depth.clone();
9414 if inlined {
9415 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9416 inner_offset = next_offset;
9417 } else {
9418 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9419 inner_depth.increment()?;
9420 }
9421 let val_ref = self
9422 .name
9423 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
9424 fidl::decode!(
9425 fidl::encoding::BoundedString<100>,
9426 D,
9427 val_ref,
9428 decoder,
9429 inner_offset,
9430 inner_depth
9431 )?;
9432 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9433 {
9434 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9435 }
9436 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9437 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9438 }
9439 }
9440
9441 next_offset += envelope_size;
9442 _next_ordinal_to_read += 1;
9443 if next_offset >= end_offset {
9444 return Ok(());
9445 }
9446
9447 while _next_ordinal_to_read < 2 {
9449 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9450 _next_ordinal_to_read += 1;
9451 next_offset += envelope_size;
9452 }
9453
9454 let next_out_of_line = decoder.next_out_of_line();
9455 let handles_before = decoder.remaining_handles();
9456 if let Some((inlined, num_bytes, num_handles)) =
9457 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9458 {
9459 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9460 if inlined != (member_inline_size <= 4) {
9461 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9462 }
9463 let inner_offset;
9464 let mut inner_depth = depth.clone();
9465 if inlined {
9466 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9467 inner_offset = next_offset;
9468 } else {
9469 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9470 inner_depth.increment()?;
9471 }
9472 let val_ref = self.source_path.get_or_insert_with(|| {
9473 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
9474 });
9475 fidl::decode!(
9476 fidl::encoding::BoundedString<1024>,
9477 D,
9478 val_ref,
9479 decoder,
9480 inner_offset,
9481 inner_depth
9482 )?;
9483 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9484 {
9485 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9486 }
9487 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9488 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9489 }
9490 }
9491
9492 next_offset += envelope_size;
9493 _next_ordinal_to_read += 1;
9494 if next_offset >= end_offset {
9495 return Ok(());
9496 }
9497
9498 while _next_ordinal_to_read < 3 {
9500 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9501 _next_ordinal_to_read += 1;
9502 next_offset += envelope_size;
9503 }
9504
9505 let next_out_of_line = decoder.next_out_of_line();
9506 let handles_before = decoder.remaining_handles();
9507 if let Some((inlined, num_bytes, num_handles)) =
9508 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9509 {
9510 let member_inline_size =
9511 <fidl_fuchsia_io_common::Operations as fidl::encoding::TypeMarker>::inline_size(
9512 decoder.context,
9513 );
9514 if inlined != (member_inline_size <= 4) {
9515 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9516 }
9517 let inner_offset;
9518 let mut inner_depth = depth.clone();
9519 if inlined {
9520 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9521 inner_offset = next_offset;
9522 } else {
9523 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9524 inner_depth.increment()?;
9525 }
9526 let val_ref = self
9527 .rights
9528 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_io_common::Operations, D));
9529 fidl::decode!(
9530 fidl_fuchsia_io_common::Operations,
9531 D,
9532 val_ref,
9533 decoder,
9534 inner_offset,
9535 inner_depth
9536 )?;
9537 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9538 {
9539 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9540 }
9541 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9542 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9543 }
9544 }
9545
9546 next_offset += envelope_size;
9547
9548 while next_offset < end_offset {
9550 _next_ordinal_to_read += 1;
9551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9552 next_offset += envelope_size;
9553 }
9554
9555 Ok(())
9556 }
9557 }
9558
9559 impl Environment {
9560 #[inline(always)]
9561 fn max_ordinal_present(&self) -> u64 {
9562 if let Some(_) = self.stop_timeout_ms {
9563 return 6;
9564 }
9565 if let Some(_) = self.debug_capabilities {
9566 return 5;
9567 }
9568 if let Some(_) = self.resolvers {
9569 return 4;
9570 }
9571 if let Some(_) = self.runners {
9572 return 3;
9573 }
9574 if let Some(_) = self.extends {
9575 return 2;
9576 }
9577 if let Some(_) = self.name {
9578 return 1;
9579 }
9580 0
9581 }
9582 }
9583
9584 impl fidl::encoding::ValueTypeMarker for Environment {
9585 type Borrowed<'a> = &'a Self;
9586 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9587 value
9588 }
9589 }
9590
9591 unsafe impl fidl::encoding::TypeMarker for Environment {
9592 type Owned = Self;
9593
9594 #[inline(always)]
9595 fn inline_align(_context: fidl::encoding::Context) -> usize {
9596 8
9597 }
9598
9599 #[inline(always)]
9600 fn inline_size(_context: fidl::encoding::Context) -> usize {
9601 16
9602 }
9603 }
9604
9605 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Environment, D>
9606 for &Environment
9607 {
9608 unsafe fn encode(
9609 self,
9610 encoder: &mut fidl::encoding::Encoder<'_, D>,
9611 offset: usize,
9612 mut depth: fidl::encoding::Depth,
9613 ) -> fidl::Result<()> {
9614 encoder.debug_check_bounds::<Environment>(offset);
9615 let max_ordinal: u64 = self.max_ordinal_present();
9617 encoder.write_num(max_ordinal, offset);
9618 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9619 if max_ordinal == 0 {
9621 return Ok(());
9622 }
9623 depth.increment()?;
9624 let envelope_size = 8;
9625 let bytes_len = max_ordinal as usize * envelope_size;
9626 #[allow(unused_variables)]
9627 let offset = encoder.out_of_line_offset(bytes_len);
9628 let mut _prev_end_offset: usize = 0;
9629 if 1 > max_ordinal {
9630 return Ok(());
9631 }
9632
9633 let cur_offset: usize = (1 - 1) * envelope_size;
9636
9637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9639
9640 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
9645 self.name.as_ref().map(
9646 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
9647 ),
9648 encoder,
9649 offset + cur_offset,
9650 depth,
9651 )?;
9652
9653 _prev_end_offset = cur_offset + envelope_size;
9654 if 2 > max_ordinal {
9655 return Ok(());
9656 }
9657
9658 let cur_offset: usize = (2 - 1) * envelope_size;
9661
9662 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9664
9665 fidl::encoding::encode_in_envelope_optional::<EnvironmentExtends, D>(
9670 self.extends
9671 .as_ref()
9672 .map(<EnvironmentExtends as fidl::encoding::ValueTypeMarker>::borrow),
9673 encoder,
9674 offset + cur_offset,
9675 depth,
9676 )?;
9677
9678 _prev_end_offset = cur_offset + envelope_size;
9679 if 3 > max_ordinal {
9680 return Ok(());
9681 }
9682
9683 let cur_offset: usize = (3 - 1) * envelope_size;
9686
9687 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9689
9690 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<RunnerRegistration>, D>(
9695 self.runners.as_ref().map(<fidl::encoding::UnboundedVector<RunnerRegistration> as fidl::encoding::ValueTypeMarker>::borrow),
9696 encoder, offset + cur_offset, depth
9697 )?;
9698
9699 _prev_end_offset = cur_offset + envelope_size;
9700 if 4 > max_ordinal {
9701 return Ok(());
9702 }
9703
9704 let cur_offset: usize = (4 - 1) * envelope_size;
9707
9708 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9710
9711 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ResolverRegistration>, D>(
9716 self.resolvers.as_ref().map(<fidl::encoding::UnboundedVector<ResolverRegistration> as fidl::encoding::ValueTypeMarker>::borrow),
9717 encoder, offset + cur_offset, depth
9718 )?;
9719
9720 _prev_end_offset = cur_offset + envelope_size;
9721 if 5 > max_ordinal {
9722 return Ok(());
9723 }
9724
9725 let cur_offset: usize = (5 - 1) * envelope_size;
9728
9729 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9731
9732 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<DebugRegistration>, D>(
9737 self.debug_capabilities.as_ref().map(<fidl::encoding::UnboundedVector<DebugRegistration> as fidl::encoding::ValueTypeMarker>::borrow),
9738 encoder, offset + cur_offset, depth
9739 )?;
9740
9741 _prev_end_offset = cur_offset + envelope_size;
9742 if 6 > max_ordinal {
9743 return Ok(());
9744 }
9745
9746 let cur_offset: usize = (6 - 1) * envelope_size;
9749
9750 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9752
9753 fidl::encoding::encode_in_envelope_optional::<u32, D>(
9758 self.stop_timeout_ms.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
9759 encoder,
9760 offset + cur_offset,
9761 depth,
9762 )?;
9763
9764 _prev_end_offset = cur_offset + envelope_size;
9765
9766 Ok(())
9767 }
9768 }
9769
9770 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Environment {
9771 #[inline(always)]
9772 fn new_empty() -> Self {
9773 Self::default()
9774 }
9775
9776 unsafe fn decode(
9777 &mut self,
9778 decoder: &mut fidl::encoding::Decoder<'_, D>,
9779 offset: usize,
9780 mut depth: fidl::encoding::Depth,
9781 ) -> fidl::Result<()> {
9782 decoder.debug_check_bounds::<Self>(offset);
9783 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9784 None => return Err(fidl::Error::NotNullable),
9785 Some(len) => len,
9786 };
9787 if len == 0 {
9789 return Ok(());
9790 };
9791 depth.increment()?;
9792 let envelope_size = 8;
9793 let bytes_len = len * envelope_size;
9794 let offset = decoder.out_of_line_offset(bytes_len)?;
9795 let mut _next_ordinal_to_read = 0;
9797 let mut next_offset = offset;
9798 let end_offset = offset + bytes_len;
9799 _next_ordinal_to_read += 1;
9800 if next_offset >= end_offset {
9801 return Ok(());
9802 }
9803
9804 while _next_ordinal_to_read < 1 {
9806 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9807 _next_ordinal_to_read += 1;
9808 next_offset += envelope_size;
9809 }
9810
9811 let next_out_of_line = decoder.next_out_of_line();
9812 let handles_before = decoder.remaining_handles();
9813 if let Some((inlined, num_bytes, num_handles)) =
9814 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9815 {
9816 let member_inline_size =
9817 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
9818 decoder.context,
9819 );
9820 if inlined != (member_inline_size <= 4) {
9821 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9822 }
9823 let inner_offset;
9824 let mut inner_depth = depth.clone();
9825 if inlined {
9826 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9827 inner_offset = next_offset;
9828 } else {
9829 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9830 inner_depth.increment()?;
9831 }
9832 let val_ref = self
9833 .name
9834 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
9835 fidl::decode!(
9836 fidl::encoding::BoundedString<100>,
9837 D,
9838 val_ref,
9839 decoder,
9840 inner_offset,
9841 inner_depth
9842 )?;
9843 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9844 {
9845 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9846 }
9847 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9848 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9849 }
9850 }
9851
9852 next_offset += envelope_size;
9853 _next_ordinal_to_read += 1;
9854 if next_offset >= end_offset {
9855 return Ok(());
9856 }
9857
9858 while _next_ordinal_to_read < 2 {
9860 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9861 _next_ordinal_to_read += 1;
9862 next_offset += envelope_size;
9863 }
9864
9865 let next_out_of_line = decoder.next_out_of_line();
9866 let handles_before = decoder.remaining_handles();
9867 if let Some((inlined, num_bytes, num_handles)) =
9868 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9869 {
9870 let member_inline_size =
9871 <EnvironmentExtends as fidl::encoding::TypeMarker>::inline_size(
9872 decoder.context,
9873 );
9874 if inlined != (member_inline_size <= 4) {
9875 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9876 }
9877 let inner_offset;
9878 let mut inner_depth = depth.clone();
9879 if inlined {
9880 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9881 inner_offset = next_offset;
9882 } else {
9883 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9884 inner_depth.increment()?;
9885 }
9886 let val_ref =
9887 self.extends.get_or_insert_with(|| fidl::new_empty!(EnvironmentExtends, D));
9888 fidl::decode!(EnvironmentExtends, D, val_ref, decoder, inner_offset, inner_depth)?;
9889 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9890 {
9891 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9892 }
9893 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9894 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9895 }
9896 }
9897
9898 next_offset += envelope_size;
9899 _next_ordinal_to_read += 1;
9900 if next_offset >= end_offset {
9901 return Ok(());
9902 }
9903
9904 while _next_ordinal_to_read < 3 {
9906 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9907 _next_ordinal_to_read += 1;
9908 next_offset += envelope_size;
9909 }
9910
9911 let next_out_of_line = decoder.next_out_of_line();
9912 let handles_before = decoder.remaining_handles();
9913 if let Some((inlined, num_bytes, num_handles)) =
9914 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9915 {
9916 let member_inline_size = <fidl::encoding::UnboundedVector<RunnerRegistration> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9917 if inlined != (member_inline_size <= 4) {
9918 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9919 }
9920 let inner_offset;
9921 let mut inner_depth = depth.clone();
9922 if inlined {
9923 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9924 inner_offset = next_offset;
9925 } else {
9926 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9927 inner_depth.increment()?;
9928 }
9929 let val_ref = self.runners.get_or_insert_with(|| {
9930 fidl::new_empty!(fidl::encoding::UnboundedVector<RunnerRegistration>, D)
9931 });
9932 fidl::decode!(
9933 fidl::encoding::UnboundedVector<RunnerRegistration>,
9934 D,
9935 val_ref,
9936 decoder,
9937 inner_offset,
9938 inner_depth
9939 )?;
9940 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9941 {
9942 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9943 }
9944 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9945 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9946 }
9947 }
9948
9949 next_offset += envelope_size;
9950 _next_ordinal_to_read += 1;
9951 if next_offset >= end_offset {
9952 return Ok(());
9953 }
9954
9955 while _next_ordinal_to_read < 4 {
9957 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9958 _next_ordinal_to_read += 1;
9959 next_offset += envelope_size;
9960 }
9961
9962 let next_out_of_line = decoder.next_out_of_line();
9963 let handles_before = decoder.remaining_handles();
9964 if let Some((inlined, num_bytes, num_handles)) =
9965 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9966 {
9967 let member_inline_size = <fidl::encoding::UnboundedVector<ResolverRegistration> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9968 if inlined != (member_inline_size <= 4) {
9969 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9970 }
9971 let inner_offset;
9972 let mut inner_depth = depth.clone();
9973 if inlined {
9974 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9975 inner_offset = next_offset;
9976 } else {
9977 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9978 inner_depth.increment()?;
9979 }
9980 let val_ref = self.resolvers.get_or_insert_with(|| {
9981 fidl::new_empty!(fidl::encoding::UnboundedVector<ResolverRegistration>, D)
9982 });
9983 fidl::decode!(
9984 fidl::encoding::UnboundedVector<ResolverRegistration>,
9985 D,
9986 val_ref,
9987 decoder,
9988 inner_offset,
9989 inner_depth
9990 )?;
9991 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9992 {
9993 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9994 }
9995 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9996 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9997 }
9998 }
9999
10000 next_offset += envelope_size;
10001 _next_ordinal_to_read += 1;
10002 if next_offset >= end_offset {
10003 return Ok(());
10004 }
10005
10006 while _next_ordinal_to_read < 5 {
10008 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10009 _next_ordinal_to_read += 1;
10010 next_offset += envelope_size;
10011 }
10012
10013 let next_out_of_line = decoder.next_out_of_line();
10014 let handles_before = decoder.remaining_handles();
10015 if let Some((inlined, num_bytes, num_handles)) =
10016 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10017 {
10018 let member_inline_size = <fidl::encoding::UnboundedVector<DebugRegistration> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10019 if inlined != (member_inline_size <= 4) {
10020 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10021 }
10022 let inner_offset;
10023 let mut inner_depth = depth.clone();
10024 if inlined {
10025 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10026 inner_offset = next_offset;
10027 } else {
10028 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10029 inner_depth.increment()?;
10030 }
10031 let val_ref = self.debug_capabilities.get_or_insert_with(|| {
10032 fidl::new_empty!(fidl::encoding::UnboundedVector<DebugRegistration>, D)
10033 });
10034 fidl::decode!(
10035 fidl::encoding::UnboundedVector<DebugRegistration>,
10036 D,
10037 val_ref,
10038 decoder,
10039 inner_offset,
10040 inner_depth
10041 )?;
10042 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10043 {
10044 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10045 }
10046 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10047 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10048 }
10049 }
10050
10051 next_offset += envelope_size;
10052 _next_ordinal_to_read += 1;
10053 if next_offset >= end_offset {
10054 return Ok(());
10055 }
10056
10057 while _next_ordinal_to_read < 6 {
10059 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10060 _next_ordinal_to_read += 1;
10061 next_offset += envelope_size;
10062 }
10063
10064 let next_out_of_line = decoder.next_out_of_line();
10065 let handles_before = decoder.remaining_handles();
10066 if let Some((inlined, num_bytes, num_handles)) =
10067 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10068 {
10069 let member_inline_size =
10070 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10071 if inlined != (member_inline_size <= 4) {
10072 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10073 }
10074 let inner_offset;
10075 let mut inner_depth = depth.clone();
10076 if inlined {
10077 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10078 inner_offset = next_offset;
10079 } else {
10080 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10081 inner_depth.increment()?;
10082 }
10083 let val_ref = self.stop_timeout_ms.get_or_insert_with(|| fidl::new_empty!(u32, D));
10084 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
10085 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10086 {
10087 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10088 }
10089 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10090 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10091 }
10092 }
10093
10094 next_offset += envelope_size;
10095
10096 while next_offset < end_offset {
10098 _next_ordinal_to_read += 1;
10099 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10100 next_offset += envelope_size;
10101 }
10102
10103 Ok(())
10104 }
10105 }
10106
10107 impl EventStream {
10108 #[inline(always)]
10109 fn max_ordinal_present(&self) -> u64 {
10110 if let Some(_) = self.name {
10111 return 1;
10112 }
10113 0
10114 }
10115 }
10116
10117 impl fidl::encoding::ValueTypeMarker for EventStream {
10118 type Borrowed<'a> = &'a Self;
10119 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10120 value
10121 }
10122 }
10123
10124 unsafe impl fidl::encoding::TypeMarker for EventStream {
10125 type Owned = Self;
10126
10127 #[inline(always)]
10128 fn inline_align(_context: fidl::encoding::Context) -> usize {
10129 8
10130 }
10131
10132 #[inline(always)]
10133 fn inline_size(_context: fidl::encoding::Context) -> usize {
10134 16
10135 }
10136 }
10137
10138 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EventStream, D>
10139 for &EventStream
10140 {
10141 unsafe fn encode(
10142 self,
10143 encoder: &mut fidl::encoding::Encoder<'_, D>,
10144 offset: usize,
10145 mut depth: fidl::encoding::Depth,
10146 ) -> fidl::Result<()> {
10147 encoder.debug_check_bounds::<EventStream>(offset);
10148 let max_ordinal: u64 = self.max_ordinal_present();
10150 encoder.write_num(max_ordinal, offset);
10151 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10152 if max_ordinal == 0 {
10154 return Ok(());
10155 }
10156 depth.increment()?;
10157 let envelope_size = 8;
10158 let bytes_len = max_ordinal as usize * envelope_size;
10159 #[allow(unused_variables)]
10160 let offset = encoder.out_of_line_offset(bytes_len);
10161 let mut _prev_end_offset: usize = 0;
10162 if 1 > max_ordinal {
10163 return Ok(());
10164 }
10165
10166 let cur_offset: usize = (1 - 1) * envelope_size;
10169
10170 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10172
10173 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10178 self.name.as_ref().map(
10179 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10180 ),
10181 encoder,
10182 offset + cur_offset,
10183 depth,
10184 )?;
10185
10186 _prev_end_offset = cur_offset + envelope_size;
10187
10188 Ok(())
10189 }
10190 }
10191
10192 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EventStream {
10193 #[inline(always)]
10194 fn new_empty() -> Self {
10195 Self::default()
10196 }
10197
10198 unsafe fn decode(
10199 &mut self,
10200 decoder: &mut fidl::encoding::Decoder<'_, D>,
10201 offset: usize,
10202 mut depth: fidl::encoding::Depth,
10203 ) -> fidl::Result<()> {
10204 decoder.debug_check_bounds::<Self>(offset);
10205 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10206 None => return Err(fidl::Error::NotNullable),
10207 Some(len) => len,
10208 };
10209 if len == 0 {
10211 return Ok(());
10212 };
10213 depth.increment()?;
10214 let envelope_size = 8;
10215 let bytes_len = len * envelope_size;
10216 let offset = decoder.out_of_line_offset(bytes_len)?;
10217 let mut _next_ordinal_to_read = 0;
10219 let mut next_offset = offset;
10220 let end_offset = offset + bytes_len;
10221 _next_ordinal_to_read += 1;
10222 if next_offset >= end_offset {
10223 return Ok(());
10224 }
10225
10226 while _next_ordinal_to_read < 1 {
10228 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10229 _next_ordinal_to_read += 1;
10230 next_offset += envelope_size;
10231 }
10232
10233 let next_out_of_line = decoder.next_out_of_line();
10234 let handles_before = decoder.remaining_handles();
10235 if let Some((inlined, num_bytes, num_handles)) =
10236 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10237 {
10238 let member_inline_size =
10239 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10240 decoder.context,
10241 );
10242 if inlined != (member_inline_size <= 4) {
10243 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10244 }
10245 let inner_offset;
10246 let mut inner_depth = depth.clone();
10247 if inlined {
10248 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10249 inner_offset = next_offset;
10250 } else {
10251 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10252 inner_depth.increment()?;
10253 }
10254 let val_ref = self
10255 .name
10256 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10257 fidl::decode!(
10258 fidl::encoding::BoundedString<100>,
10259 D,
10260 val_ref,
10261 decoder,
10262 inner_offset,
10263 inner_depth
10264 )?;
10265 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10266 {
10267 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10268 }
10269 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10270 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10271 }
10272 }
10273
10274 next_offset += envelope_size;
10275
10276 while next_offset < end_offset {
10278 _next_ordinal_to_read += 1;
10279 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10280 next_offset += envelope_size;
10281 }
10282
10283 Ok(())
10284 }
10285 }
10286
10287 impl EventSubscription {
10288 #[inline(always)]
10289 fn max_ordinal_present(&self) -> u64 {
10290 if let Some(_) = self.event_name {
10291 return 1;
10292 }
10293 0
10294 }
10295 }
10296
10297 impl fidl::encoding::ValueTypeMarker for EventSubscription {
10298 type Borrowed<'a> = &'a Self;
10299 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10300 value
10301 }
10302 }
10303
10304 unsafe impl fidl::encoding::TypeMarker for EventSubscription {
10305 type Owned = Self;
10306
10307 #[inline(always)]
10308 fn inline_align(_context: fidl::encoding::Context) -> usize {
10309 8
10310 }
10311
10312 #[inline(always)]
10313 fn inline_size(_context: fidl::encoding::Context) -> usize {
10314 16
10315 }
10316 }
10317
10318 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EventSubscription, D>
10319 for &EventSubscription
10320 {
10321 unsafe fn encode(
10322 self,
10323 encoder: &mut fidl::encoding::Encoder<'_, D>,
10324 offset: usize,
10325 mut depth: fidl::encoding::Depth,
10326 ) -> fidl::Result<()> {
10327 encoder.debug_check_bounds::<EventSubscription>(offset);
10328 let max_ordinal: u64 = self.max_ordinal_present();
10330 encoder.write_num(max_ordinal, offset);
10331 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10332 if max_ordinal == 0 {
10334 return Ok(());
10335 }
10336 depth.increment()?;
10337 let envelope_size = 8;
10338 let bytes_len = max_ordinal as usize * envelope_size;
10339 #[allow(unused_variables)]
10340 let offset = encoder.out_of_line_offset(bytes_len);
10341 let mut _prev_end_offset: usize = 0;
10342 if 1 > max_ordinal {
10343 return Ok(());
10344 }
10345
10346 let cur_offset: usize = (1 - 1) * envelope_size;
10349
10350 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10352
10353 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10358 self.event_name.as_ref().map(
10359 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10360 ),
10361 encoder,
10362 offset + cur_offset,
10363 depth,
10364 )?;
10365
10366 _prev_end_offset = cur_offset + envelope_size;
10367
10368 Ok(())
10369 }
10370 }
10371
10372 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EventSubscription {
10373 #[inline(always)]
10374 fn new_empty() -> Self {
10375 Self::default()
10376 }
10377
10378 unsafe fn decode(
10379 &mut self,
10380 decoder: &mut fidl::encoding::Decoder<'_, D>,
10381 offset: usize,
10382 mut depth: fidl::encoding::Depth,
10383 ) -> fidl::Result<()> {
10384 decoder.debug_check_bounds::<Self>(offset);
10385 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10386 None => return Err(fidl::Error::NotNullable),
10387 Some(len) => len,
10388 };
10389 if len == 0 {
10391 return Ok(());
10392 };
10393 depth.increment()?;
10394 let envelope_size = 8;
10395 let bytes_len = len * envelope_size;
10396 let offset = decoder.out_of_line_offset(bytes_len)?;
10397 let mut _next_ordinal_to_read = 0;
10399 let mut next_offset = offset;
10400 let end_offset = offset + bytes_len;
10401 _next_ordinal_to_read += 1;
10402 if next_offset >= end_offset {
10403 return Ok(());
10404 }
10405
10406 while _next_ordinal_to_read < 1 {
10408 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10409 _next_ordinal_to_read += 1;
10410 next_offset += envelope_size;
10411 }
10412
10413 let next_out_of_line = decoder.next_out_of_line();
10414 let handles_before = decoder.remaining_handles();
10415 if let Some((inlined, num_bytes, num_handles)) =
10416 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10417 {
10418 let member_inline_size =
10419 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10420 decoder.context,
10421 );
10422 if inlined != (member_inline_size <= 4) {
10423 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10424 }
10425 let inner_offset;
10426 let mut inner_depth = depth.clone();
10427 if inlined {
10428 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10429 inner_offset = next_offset;
10430 } else {
10431 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10432 inner_depth.increment()?;
10433 }
10434 let val_ref = self
10435 .event_name
10436 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10437 fidl::decode!(
10438 fidl::encoding::BoundedString<100>,
10439 D,
10440 val_ref,
10441 decoder,
10442 inner_offset,
10443 inner_depth
10444 )?;
10445 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10446 {
10447 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10448 }
10449 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10450 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10451 }
10452 }
10453
10454 next_offset += envelope_size;
10455
10456 while next_offset < end_offset {
10458 _next_ordinal_to_read += 1;
10459 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10460 next_offset += envelope_size;
10461 }
10462
10463 Ok(())
10464 }
10465 }
10466
10467 impl ExposeConfiguration {
10468 #[inline(always)]
10469 fn max_ordinal_present(&self) -> u64 {
10470 if let Some(_) = self.source_dictionary {
10471 return 6;
10472 }
10473 if let Some(_) = self.availability {
10474 return 5;
10475 }
10476 if let Some(_) = self.target_name {
10477 return 4;
10478 }
10479 if let Some(_) = self.target {
10480 return 3;
10481 }
10482 if let Some(_) = self.source_name {
10483 return 2;
10484 }
10485 if let Some(_) = self.source {
10486 return 1;
10487 }
10488 0
10489 }
10490 }
10491
10492 impl fidl::encoding::ValueTypeMarker for ExposeConfiguration {
10493 type Borrowed<'a> = &'a Self;
10494 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10495 value
10496 }
10497 }
10498
10499 unsafe impl fidl::encoding::TypeMarker for ExposeConfiguration {
10500 type Owned = Self;
10501
10502 #[inline(always)]
10503 fn inline_align(_context: fidl::encoding::Context) -> usize {
10504 8
10505 }
10506
10507 #[inline(always)]
10508 fn inline_size(_context: fidl::encoding::Context) -> usize {
10509 16
10510 }
10511 }
10512
10513 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeConfiguration, D>
10514 for &ExposeConfiguration
10515 {
10516 unsafe fn encode(
10517 self,
10518 encoder: &mut fidl::encoding::Encoder<'_, D>,
10519 offset: usize,
10520 mut depth: fidl::encoding::Depth,
10521 ) -> fidl::Result<()> {
10522 encoder.debug_check_bounds::<ExposeConfiguration>(offset);
10523 let max_ordinal: u64 = self.max_ordinal_present();
10525 encoder.write_num(max_ordinal, offset);
10526 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10527 if max_ordinal == 0 {
10529 return Ok(());
10530 }
10531 depth.increment()?;
10532 let envelope_size = 8;
10533 let bytes_len = max_ordinal as usize * envelope_size;
10534 #[allow(unused_variables)]
10535 let offset = encoder.out_of_line_offset(bytes_len);
10536 let mut _prev_end_offset: usize = 0;
10537 if 1 > max_ordinal {
10538 return Ok(());
10539 }
10540
10541 let cur_offset: usize = (1 - 1) * envelope_size;
10544
10545 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10547
10548 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
10553 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
10554 encoder,
10555 offset + cur_offset,
10556 depth,
10557 )?;
10558
10559 _prev_end_offset = cur_offset + envelope_size;
10560 if 2 > max_ordinal {
10561 return Ok(());
10562 }
10563
10564 let cur_offset: usize = (2 - 1) * envelope_size;
10567
10568 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10570
10571 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10576 self.source_name.as_ref().map(
10577 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10578 ),
10579 encoder,
10580 offset + cur_offset,
10581 depth,
10582 )?;
10583
10584 _prev_end_offset = cur_offset + envelope_size;
10585 if 3 > max_ordinal {
10586 return Ok(());
10587 }
10588
10589 let cur_offset: usize = (3 - 1) * envelope_size;
10592
10593 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10595
10596 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
10601 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
10602 encoder,
10603 offset + cur_offset,
10604 depth,
10605 )?;
10606
10607 _prev_end_offset = cur_offset + envelope_size;
10608 if 4 > max_ordinal {
10609 return Ok(());
10610 }
10611
10612 let cur_offset: usize = (4 - 1) * envelope_size;
10615
10616 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10618
10619 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10624 self.target_name.as_ref().map(
10625 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10626 ),
10627 encoder,
10628 offset + cur_offset,
10629 depth,
10630 )?;
10631
10632 _prev_end_offset = cur_offset + envelope_size;
10633 if 5 > max_ordinal {
10634 return Ok(());
10635 }
10636
10637 let cur_offset: usize = (5 - 1) * envelope_size;
10640
10641 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10643
10644 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
10649 self.availability
10650 .as_ref()
10651 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
10652 encoder,
10653 offset + cur_offset,
10654 depth,
10655 )?;
10656
10657 _prev_end_offset = cur_offset + envelope_size;
10658 if 6 > max_ordinal {
10659 return Ok(());
10660 }
10661
10662 let cur_offset: usize = (6 - 1) * envelope_size;
10665
10666 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10668
10669 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
10674 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
10675 encoder, offset + cur_offset, depth
10676 )?;
10677
10678 _prev_end_offset = cur_offset + envelope_size;
10679
10680 Ok(())
10681 }
10682 }
10683
10684 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeConfiguration {
10685 #[inline(always)]
10686 fn new_empty() -> Self {
10687 Self::default()
10688 }
10689
10690 unsafe fn decode(
10691 &mut self,
10692 decoder: &mut fidl::encoding::Decoder<'_, D>,
10693 offset: usize,
10694 mut depth: fidl::encoding::Depth,
10695 ) -> fidl::Result<()> {
10696 decoder.debug_check_bounds::<Self>(offset);
10697 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10698 None => return Err(fidl::Error::NotNullable),
10699 Some(len) => len,
10700 };
10701 if len == 0 {
10703 return Ok(());
10704 };
10705 depth.increment()?;
10706 let envelope_size = 8;
10707 let bytes_len = len * envelope_size;
10708 let offset = decoder.out_of_line_offset(bytes_len)?;
10709 let mut _next_ordinal_to_read = 0;
10711 let mut next_offset = offset;
10712 let end_offset = offset + bytes_len;
10713 _next_ordinal_to_read += 1;
10714 if next_offset >= end_offset {
10715 return Ok(());
10716 }
10717
10718 while _next_ordinal_to_read < 1 {
10720 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10721 _next_ordinal_to_read += 1;
10722 next_offset += envelope_size;
10723 }
10724
10725 let next_out_of_line = decoder.next_out_of_line();
10726 let handles_before = decoder.remaining_handles();
10727 if let Some((inlined, num_bytes, num_handles)) =
10728 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10729 {
10730 let member_inline_size =
10731 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10732 if inlined != (member_inline_size <= 4) {
10733 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10734 }
10735 let inner_offset;
10736 let mut inner_depth = depth.clone();
10737 if inlined {
10738 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10739 inner_offset = next_offset;
10740 } else {
10741 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10742 inner_depth.increment()?;
10743 }
10744 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
10745 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
10746 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10747 {
10748 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10749 }
10750 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10751 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10752 }
10753 }
10754
10755 next_offset += envelope_size;
10756 _next_ordinal_to_read += 1;
10757 if next_offset >= end_offset {
10758 return Ok(());
10759 }
10760
10761 while _next_ordinal_to_read < 2 {
10763 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10764 _next_ordinal_to_read += 1;
10765 next_offset += envelope_size;
10766 }
10767
10768 let next_out_of_line = decoder.next_out_of_line();
10769 let handles_before = decoder.remaining_handles();
10770 if let Some((inlined, num_bytes, num_handles)) =
10771 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10772 {
10773 let member_inline_size =
10774 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10775 decoder.context,
10776 );
10777 if inlined != (member_inline_size <= 4) {
10778 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10779 }
10780 let inner_offset;
10781 let mut inner_depth = depth.clone();
10782 if inlined {
10783 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10784 inner_offset = next_offset;
10785 } else {
10786 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10787 inner_depth.increment()?;
10788 }
10789 let val_ref = self
10790 .source_name
10791 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10792 fidl::decode!(
10793 fidl::encoding::BoundedString<100>,
10794 D,
10795 val_ref,
10796 decoder,
10797 inner_offset,
10798 inner_depth
10799 )?;
10800 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10801 {
10802 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10803 }
10804 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10805 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10806 }
10807 }
10808
10809 next_offset += envelope_size;
10810 _next_ordinal_to_read += 1;
10811 if next_offset >= end_offset {
10812 return Ok(());
10813 }
10814
10815 while _next_ordinal_to_read < 3 {
10817 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10818 _next_ordinal_to_read += 1;
10819 next_offset += envelope_size;
10820 }
10821
10822 let next_out_of_line = decoder.next_out_of_line();
10823 let handles_before = decoder.remaining_handles();
10824 if let Some((inlined, num_bytes, num_handles)) =
10825 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10826 {
10827 let member_inline_size =
10828 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10829 if inlined != (member_inline_size <= 4) {
10830 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10831 }
10832 let inner_offset;
10833 let mut inner_depth = depth.clone();
10834 if inlined {
10835 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10836 inner_offset = next_offset;
10837 } else {
10838 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10839 inner_depth.increment()?;
10840 }
10841 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
10842 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
10843 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10844 {
10845 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10846 }
10847 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10848 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10849 }
10850 }
10851
10852 next_offset += envelope_size;
10853 _next_ordinal_to_read += 1;
10854 if next_offset >= end_offset {
10855 return Ok(());
10856 }
10857
10858 while _next_ordinal_to_read < 4 {
10860 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10861 _next_ordinal_to_read += 1;
10862 next_offset += envelope_size;
10863 }
10864
10865 let next_out_of_line = decoder.next_out_of_line();
10866 let handles_before = decoder.remaining_handles();
10867 if let Some((inlined, num_bytes, num_handles)) =
10868 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10869 {
10870 let member_inline_size =
10871 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10872 decoder.context,
10873 );
10874 if inlined != (member_inline_size <= 4) {
10875 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10876 }
10877 let inner_offset;
10878 let mut inner_depth = depth.clone();
10879 if inlined {
10880 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10881 inner_offset = next_offset;
10882 } else {
10883 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10884 inner_depth.increment()?;
10885 }
10886 let val_ref = self
10887 .target_name
10888 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10889 fidl::decode!(
10890 fidl::encoding::BoundedString<100>,
10891 D,
10892 val_ref,
10893 decoder,
10894 inner_offset,
10895 inner_depth
10896 )?;
10897 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10898 {
10899 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10900 }
10901 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10902 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10903 }
10904 }
10905
10906 next_offset += envelope_size;
10907 _next_ordinal_to_read += 1;
10908 if next_offset >= end_offset {
10909 return Ok(());
10910 }
10911
10912 while _next_ordinal_to_read < 5 {
10914 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10915 _next_ordinal_to_read += 1;
10916 next_offset += envelope_size;
10917 }
10918
10919 let next_out_of_line = decoder.next_out_of_line();
10920 let handles_before = decoder.remaining_handles();
10921 if let Some((inlined, num_bytes, num_handles)) =
10922 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10923 {
10924 let member_inline_size =
10925 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10926 if inlined != (member_inline_size <= 4) {
10927 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10928 }
10929 let inner_offset;
10930 let mut inner_depth = depth.clone();
10931 if inlined {
10932 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10933 inner_offset = next_offset;
10934 } else {
10935 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10936 inner_depth.increment()?;
10937 }
10938 let val_ref =
10939 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
10940 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
10941 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10942 {
10943 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10944 }
10945 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10946 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10947 }
10948 }
10949
10950 next_offset += envelope_size;
10951 _next_ordinal_to_read += 1;
10952 if next_offset >= end_offset {
10953 return Ok(());
10954 }
10955
10956 while _next_ordinal_to_read < 6 {
10958 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10959 _next_ordinal_to_read += 1;
10960 next_offset += envelope_size;
10961 }
10962
10963 let next_out_of_line = decoder.next_out_of_line();
10964 let handles_before = decoder.remaining_handles();
10965 if let Some((inlined, num_bytes, num_handles)) =
10966 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10967 {
10968 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10969 if inlined != (member_inline_size <= 4) {
10970 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10971 }
10972 let inner_offset;
10973 let mut inner_depth = depth.clone();
10974 if inlined {
10975 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10976 inner_offset = next_offset;
10977 } else {
10978 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10979 inner_depth.increment()?;
10980 }
10981 let val_ref = self.source_dictionary.get_or_insert_with(|| {
10982 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
10983 });
10984 fidl::decode!(
10985 fidl::encoding::BoundedString<1024>,
10986 D,
10987 val_ref,
10988 decoder,
10989 inner_offset,
10990 inner_depth
10991 )?;
10992 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10993 {
10994 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10995 }
10996 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10997 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10998 }
10999 }
11000
11001 next_offset += envelope_size;
11002
11003 while next_offset < end_offset {
11005 _next_ordinal_to_read += 1;
11006 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11007 next_offset += envelope_size;
11008 }
11009
11010 Ok(())
11011 }
11012 }
11013
11014 impl ExposeDictionary {
11015 #[inline(always)]
11016 fn max_ordinal_present(&self) -> u64 {
11017 if let Some(_) = self.source_dictionary {
11018 return 6;
11019 }
11020 if let Some(_) = self.availability {
11021 return 5;
11022 }
11023 if let Some(_) = self.target_name {
11024 return 4;
11025 }
11026 if let Some(_) = self.target {
11027 return 3;
11028 }
11029 if let Some(_) = self.source_name {
11030 return 2;
11031 }
11032 if let Some(_) = self.source {
11033 return 1;
11034 }
11035 0
11036 }
11037 }
11038
11039 impl fidl::encoding::ValueTypeMarker for ExposeDictionary {
11040 type Borrowed<'a> = &'a Self;
11041 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11042 value
11043 }
11044 }
11045
11046 unsafe impl fidl::encoding::TypeMarker for ExposeDictionary {
11047 type Owned = Self;
11048
11049 #[inline(always)]
11050 fn inline_align(_context: fidl::encoding::Context) -> usize {
11051 8
11052 }
11053
11054 #[inline(always)]
11055 fn inline_size(_context: fidl::encoding::Context) -> usize {
11056 16
11057 }
11058 }
11059
11060 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeDictionary, D>
11061 for &ExposeDictionary
11062 {
11063 unsafe fn encode(
11064 self,
11065 encoder: &mut fidl::encoding::Encoder<'_, D>,
11066 offset: usize,
11067 mut depth: fidl::encoding::Depth,
11068 ) -> fidl::Result<()> {
11069 encoder.debug_check_bounds::<ExposeDictionary>(offset);
11070 let max_ordinal: u64 = self.max_ordinal_present();
11072 encoder.write_num(max_ordinal, offset);
11073 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11074 if max_ordinal == 0 {
11076 return Ok(());
11077 }
11078 depth.increment()?;
11079 let envelope_size = 8;
11080 let bytes_len = max_ordinal as usize * envelope_size;
11081 #[allow(unused_variables)]
11082 let offset = encoder.out_of_line_offset(bytes_len);
11083 let mut _prev_end_offset: usize = 0;
11084 if 1 > max_ordinal {
11085 return Ok(());
11086 }
11087
11088 let cur_offset: usize = (1 - 1) * envelope_size;
11091
11092 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11094
11095 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11100 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11101 encoder,
11102 offset + cur_offset,
11103 depth,
11104 )?;
11105
11106 _prev_end_offset = cur_offset + envelope_size;
11107 if 2 > max_ordinal {
11108 return Ok(());
11109 }
11110
11111 let cur_offset: usize = (2 - 1) * envelope_size;
11114
11115 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11117
11118 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11123 self.source_name.as_ref().map(
11124 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11125 ),
11126 encoder,
11127 offset + cur_offset,
11128 depth,
11129 )?;
11130
11131 _prev_end_offset = cur_offset + envelope_size;
11132 if 3 > max_ordinal {
11133 return Ok(());
11134 }
11135
11136 let cur_offset: usize = (3 - 1) * envelope_size;
11139
11140 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11142
11143 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11148 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11149 encoder,
11150 offset + cur_offset,
11151 depth,
11152 )?;
11153
11154 _prev_end_offset = cur_offset + envelope_size;
11155 if 4 > max_ordinal {
11156 return Ok(());
11157 }
11158
11159 let cur_offset: usize = (4 - 1) * envelope_size;
11162
11163 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11165
11166 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11171 self.target_name.as_ref().map(
11172 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11173 ),
11174 encoder,
11175 offset + cur_offset,
11176 depth,
11177 )?;
11178
11179 _prev_end_offset = cur_offset + envelope_size;
11180 if 5 > max_ordinal {
11181 return Ok(());
11182 }
11183
11184 let cur_offset: usize = (5 - 1) * envelope_size;
11187
11188 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11190
11191 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
11196 self.availability
11197 .as_ref()
11198 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
11199 encoder,
11200 offset + cur_offset,
11201 depth,
11202 )?;
11203
11204 _prev_end_offset = cur_offset + envelope_size;
11205 if 6 > max_ordinal {
11206 return Ok(());
11207 }
11208
11209 let cur_offset: usize = (6 - 1) * envelope_size;
11212
11213 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11215
11216 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
11221 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
11222 encoder, offset + cur_offset, depth
11223 )?;
11224
11225 _prev_end_offset = cur_offset + envelope_size;
11226
11227 Ok(())
11228 }
11229 }
11230
11231 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeDictionary {
11232 #[inline(always)]
11233 fn new_empty() -> Self {
11234 Self::default()
11235 }
11236
11237 unsafe fn decode(
11238 &mut self,
11239 decoder: &mut fidl::encoding::Decoder<'_, D>,
11240 offset: usize,
11241 mut depth: fidl::encoding::Depth,
11242 ) -> fidl::Result<()> {
11243 decoder.debug_check_bounds::<Self>(offset);
11244 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11245 None => return Err(fidl::Error::NotNullable),
11246 Some(len) => len,
11247 };
11248 if len == 0 {
11250 return Ok(());
11251 };
11252 depth.increment()?;
11253 let envelope_size = 8;
11254 let bytes_len = len * envelope_size;
11255 let offset = decoder.out_of_line_offset(bytes_len)?;
11256 let mut _next_ordinal_to_read = 0;
11258 let mut next_offset = offset;
11259 let end_offset = offset + bytes_len;
11260 _next_ordinal_to_read += 1;
11261 if next_offset >= end_offset {
11262 return Ok(());
11263 }
11264
11265 while _next_ordinal_to_read < 1 {
11267 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11268 _next_ordinal_to_read += 1;
11269 next_offset += envelope_size;
11270 }
11271
11272 let next_out_of_line = decoder.next_out_of_line();
11273 let handles_before = decoder.remaining_handles();
11274 if let Some((inlined, num_bytes, num_handles)) =
11275 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11276 {
11277 let member_inline_size =
11278 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11279 if inlined != (member_inline_size <= 4) {
11280 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11281 }
11282 let inner_offset;
11283 let mut inner_depth = depth.clone();
11284 if inlined {
11285 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11286 inner_offset = next_offset;
11287 } else {
11288 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11289 inner_depth.increment()?;
11290 }
11291 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11292 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11293 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11294 {
11295 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11296 }
11297 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11298 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11299 }
11300 }
11301
11302 next_offset += envelope_size;
11303 _next_ordinal_to_read += 1;
11304 if next_offset >= end_offset {
11305 return Ok(());
11306 }
11307
11308 while _next_ordinal_to_read < 2 {
11310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11311 _next_ordinal_to_read += 1;
11312 next_offset += envelope_size;
11313 }
11314
11315 let next_out_of_line = decoder.next_out_of_line();
11316 let handles_before = decoder.remaining_handles();
11317 if let Some((inlined, num_bytes, num_handles)) =
11318 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11319 {
11320 let member_inline_size =
11321 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11322 decoder.context,
11323 );
11324 if inlined != (member_inline_size <= 4) {
11325 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11326 }
11327 let inner_offset;
11328 let mut inner_depth = depth.clone();
11329 if inlined {
11330 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11331 inner_offset = next_offset;
11332 } else {
11333 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11334 inner_depth.increment()?;
11335 }
11336 let val_ref = self
11337 .source_name
11338 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11339 fidl::decode!(
11340 fidl::encoding::BoundedString<100>,
11341 D,
11342 val_ref,
11343 decoder,
11344 inner_offset,
11345 inner_depth
11346 )?;
11347 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11348 {
11349 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11350 }
11351 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11352 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11353 }
11354 }
11355
11356 next_offset += envelope_size;
11357 _next_ordinal_to_read += 1;
11358 if next_offset >= end_offset {
11359 return Ok(());
11360 }
11361
11362 while _next_ordinal_to_read < 3 {
11364 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11365 _next_ordinal_to_read += 1;
11366 next_offset += envelope_size;
11367 }
11368
11369 let next_out_of_line = decoder.next_out_of_line();
11370 let handles_before = decoder.remaining_handles();
11371 if let Some((inlined, num_bytes, num_handles)) =
11372 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11373 {
11374 let member_inline_size =
11375 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11376 if inlined != (member_inline_size <= 4) {
11377 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11378 }
11379 let inner_offset;
11380 let mut inner_depth = depth.clone();
11381 if inlined {
11382 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11383 inner_offset = next_offset;
11384 } else {
11385 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11386 inner_depth.increment()?;
11387 }
11388 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11389 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11390 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11391 {
11392 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11393 }
11394 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11395 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11396 }
11397 }
11398
11399 next_offset += envelope_size;
11400 _next_ordinal_to_read += 1;
11401 if next_offset >= end_offset {
11402 return Ok(());
11403 }
11404
11405 while _next_ordinal_to_read < 4 {
11407 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11408 _next_ordinal_to_read += 1;
11409 next_offset += envelope_size;
11410 }
11411
11412 let next_out_of_line = decoder.next_out_of_line();
11413 let handles_before = decoder.remaining_handles();
11414 if let Some((inlined, num_bytes, num_handles)) =
11415 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11416 {
11417 let member_inline_size =
11418 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11419 decoder.context,
11420 );
11421 if inlined != (member_inline_size <= 4) {
11422 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11423 }
11424 let inner_offset;
11425 let mut inner_depth = depth.clone();
11426 if inlined {
11427 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11428 inner_offset = next_offset;
11429 } else {
11430 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11431 inner_depth.increment()?;
11432 }
11433 let val_ref = self
11434 .target_name
11435 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11436 fidl::decode!(
11437 fidl::encoding::BoundedString<100>,
11438 D,
11439 val_ref,
11440 decoder,
11441 inner_offset,
11442 inner_depth
11443 )?;
11444 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11445 {
11446 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11447 }
11448 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11449 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11450 }
11451 }
11452
11453 next_offset += envelope_size;
11454 _next_ordinal_to_read += 1;
11455 if next_offset >= end_offset {
11456 return Ok(());
11457 }
11458
11459 while _next_ordinal_to_read < 5 {
11461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11462 _next_ordinal_to_read += 1;
11463 next_offset += envelope_size;
11464 }
11465
11466 let next_out_of_line = decoder.next_out_of_line();
11467 let handles_before = decoder.remaining_handles();
11468 if let Some((inlined, num_bytes, num_handles)) =
11469 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11470 {
11471 let member_inline_size =
11472 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11473 if inlined != (member_inline_size <= 4) {
11474 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11475 }
11476 let inner_offset;
11477 let mut inner_depth = depth.clone();
11478 if inlined {
11479 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11480 inner_offset = next_offset;
11481 } else {
11482 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11483 inner_depth.increment()?;
11484 }
11485 let val_ref =
11486 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
11487 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
11488 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11489 {
11490 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11491 }
11492 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11493 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11494 }
11495 }
11496
11497 next_offset += envelope_size;
11498 _next_ordinal_to_read += 1;
11499 if next_offset >= end_offset {
11500 return Ok(());
11501 }
11502
11503 while _next_ordinal_to_read < 6 {
11505 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11506 _next_ordinal_to_read += 1;
11507 next_offset += envelope_size;
11508 }
11509
11510 let next_out_of_line = decoder.next_out_of_line();
11511 let handles_before = decoder.remaining_handles();
11512 if let Some((inlined, num_bytes, num_handles)) =
11513 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11514 {
11515 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11516 if inlined != (member_inline_size <= 4) {
11517 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11518 }
11519 let inner_offset;
11520 let mut inner_depth = depth.clone();
11521 if inlined {
11522 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11523 inner_offset = next_offset;
11524 } else {
11525 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11526 inner_depth.increment()?;
11527 }
11528 let val_ref = self.source_dictionary.get_or_insert_with(|| {
11529 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
11530 });
11531 fidl::decode!(
11532 fidl::encoding::BoundedString<1024>,
11533 D,
11534 val_ref,
11535 decoder,
11536 inner_offset,
11537 inner_depth
11538 )?;
11539 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11540 {
11541 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11542 }
11543 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11544 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11545 }
11546 }
11547
11548 next_offset += envelope_size;
11549
11550 while next_offset < end_offset {
11552 _next_ordinal_to_read += 1;
11553 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11554 next_offset += envelope_size;
11555 }
11556
11557 Ok(())
11558 }
11559 }
11560
11561 impl ExposeDirectory {
11562 #[inline(always)]
11563 fn max_ordinal_present(&self) -> u64 {
11564 if let Some(_) = self.source_dictionary {
11565 return 8;
11566 }
11567 if let Some(_) = self.availability {
11568 return 7;
11569 }
11570 if let Some(_) = self.subdir {
11571 return 6;
11572 }
11573 if let Some(_) = self.rights {
11574 return 5;
11575 }
11576 if let Some(_) = self.target_name {
11577 return 4;
11578 }
11579 if let Some(_) = self.target {
11580 return 3;
11581 }
11582 if let Some(_) = self.source_name {
11583 return 2;
11584 }
11585 if let Some(_) = self.source {
11586 return 1;
11587 }
11588 0
11589 }
11590 }
11591
11592 impl fidl::encoding::ValueTypeMarker for ExposeDirectory {
11593 type Borrowed<'a> = &'a Self;
11594 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11595 value
11596 }
11597 }
11598
11599 unsafe impl fidl::encoding::TypeMarker for ExposeDirectory {
11600 type Owned = Self;
11601
11602 #[inline(always)]
11603 fn inline_align(_context: fidl::encoding::Context) -> usize {
11604 8
11605 }
11606
11607 #[inline(always)]
11608 fn inline_size(_context: fidl::encoding::Context) -> usize {
11609 16
11610 }
11611 }
11612
11613 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeDirectory, D>
11614 for &ExposeDirectory
11615 {
11616 unsafe fn encode(
11617 self,
11618 encoder: &mut fidl::encoding::Encoder<'_, D>,
11619 offset: usize,
11620 mut depth: fidl::encoding::Depth,
11621 ) -> fidl::Result<()> {
11622 encoder.debug_check_bounds::<ExposeDirectory>(offset);
11623 let max_ordinal: u64 = self.max_ordinal_present();
11625 encoder.write_num(max_ordinal, offset);
11626 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11627 if max_ordinal == 0 {
11629 return Ok(());
11630 }
11631 depth.increment()?;
11632 let envelope_size = 8;
11633 let bytes_len = max_ordinal as usize * envelope_size;
11634 #[allow(unused_variables)]
11635 let offset = encoder.out_of_line_offset(bytes_len);
11636 let mut _prev_end_offset: usize = 0;
11637 if 1 > max_ordinal {
11638 return Ok(());
11639 }
11640
11641 let cur_offset: usize = (1 - 1) * envelope_size;
11644
11645 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11647
11648 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11653 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11654 encoder,
11655 offset + cur_offset,
11656 depth,
11657 )?;
11658
11659 _prev_end_offset = cur_offset + envelope_size;
11660 if 2 > max_ordinal {
11661 return Ok(());
11662 }
11663
11664 let cur_offset: usize = (2 - 1) * envelope_size;
11667
11668 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11670
11671 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11676 self.source_name.as_ref().map(
11677 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11678 ),
11679 encoder,
11680 offset + cur_offset,
11681 depth,
11682 )?;
11683
11684 _prev_end_offset = cur_offset + envelope_size;
11685 if 3 > max_ordinal {
11686 return Ok(());
11687 }
11688
11689 let cur_offset: usize = (3 - 1) * envelope_size;
11692
11693 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11695
11696 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11701 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11702 encoder,
11703 offset + cur_offset,
11704 depth,
11705 )?;
11706
11707 _prev_end_offset = cur_offset + envelope_size;
11708 if 4 > max_ordinal {
11709 return Ok(());
11710 }
11711
11712 let cur_offset: usize = (4 - 1) * envelope_size;
11715
11716 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11718
11719 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11724 self.target_name.as_ref().map(
11725 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11726 ),
11727 encoder,
11728 offset + cur_offset,
11729 depth,
11730 )?;
11731
11732 _prev_end_offset = cur_offset + envelope_size;
11733 if 5 > max_ordinal {
11734 return Ok(());
11735 }
11736
11737 let cur_offset: usize = (5 - 1) * envelope_size;
11740
11741 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11743
11744 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io_common::Operations, D>(
11749 self.rights.as_ref().map(
11750 <fidl_fuchsia_io_common::Operations as fidl::encoding::ValueTypeMarker>::borrow,
11751 ),
11752 encoder,
11753 offset + cur_offset,
11754 depth,
11755 )?;
11756
11757 _prev_end_offset = cur_offset + envelope_size;
11758 if 6 > max_ordinal {
11759 return Ok(());
11760 }
11761
11762 let cur_offset: usize = (6 - 1) * envelope_size;
11765
11766 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11768
11769 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
11774 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
11775 encoder, offset + cur_offset, depth
11776 )?;
11777
11778 _prev_end_offset = cur_offset + envelope_size;
11779 if 7 > max_ordinal {
11780 return Ok(());
11781 }
11782
11783 let cur_offset: usize = (7 - 1) * envelope_size;
11786
11787 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11789
11790 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
11795 self.availability
11796 .as_ref()
11797 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
11798 encoder,
11799 offset + cur_offset,
11800 depth,
11801 )?;
11802
11803 _prev_end_offset = cur_offset + envelope_size;
11804 if 8 > max_ordinal {
11805 return Ok(());
11806 }
11807
11808 let cur_offset: usize = (8 - 1) * envelope_size;
11811
11812 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11814
11815 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
11820 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
11821 encoder, offset + cur_offset, depth
11822 )?;
11823
11824 _prev_end_offset = cur_offset + envelope_size;
11825
11826 Ok(())
11827 }
11828 }
11829
11830 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeDirectory {
11831 #[inline(always)]
11832 fn new_empty() -> Self {
11833 Self::default()
11834 }
11835
11836 unsafe fn decode(
11837 &mut self,
11838 decoder: &mut fidl::encoding::Decoder<'_, D>,
11839 offset: usize,
11840 mut depth: fidl::encoding::Depth,
11841 ) -> fidl::Result<()> {
11842 decoder.debug_check_bounds::<Self>(offset);
11843 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11844 None => return Err(fidl::Error::NotNullable),
11845 Some(len) => len,
11846 };
11847 if len == 0 {
11849 return Ok(());
11850 };
11851 depth.increment()?;
11852 let envelope_size = 8;
11853 let bytes_len = len * envelope_size;
11854 let offset = decoder.out_of_line_offset(bytes_len)?;
11855 let mut _next_ordinal_to_read = 0;
11857 let mut next_offset = offset;
11858 let end_offset = offset + bytes_len;
11859 _next_ordinal_to_read += 1;
11860 if next_offset >= end_offset {
11861 return Ok(());
11862 }
11863
11864 while _next_ordinal_to_read < 1 {
11866 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11867 _next_ordinal_to_read += 1;
11868 next_offset += envelope_size;
11869 }
11870
11871 let next_out_of_line = decoder.next_out_of_line();
11872 let handles_before = decoder.remaining_handles();
11873 if let Some((inlined, num_bytes, num_handles)) =
11874 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11875 {
11876 let member_inline_size =
11877 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11878 if inlined != (member_inline_size <= 4) {
11879 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11880 }
11881 let inner_offset;
11882 let mut inner_depth = depth.clone();
11883 if inlined {
11884 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11885 inner_offset = next_offset;
11886 } else {
11887 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11888 inner_depth.increment()?;
11889 }
11890 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11891 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11892 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11893 {
11894 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11895 }
11896 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11897 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11898 }
11899 }
11900
11901 next_offset += envelope_size;
11902 _next_ordinal_to_read += 1;
11903 if next_offset >= end_offset {
11904 return Ok(());
11905 }
11906
11907 while _next_ordinal_to_read < 2 {
11909 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11910 _next_ordinal_to_read += 1;
11911 next_offset += envelope_size;
11912 }
11913
11914 let next_out_of_line = decoder.next_out_of_line();
11915 let handles_before = decoder.remaining_handles();
11916 if let Some((inlined, num_bytes, num_handles)) =
11917 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11918 {
11919 let member_inline_size =
11920 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11921 decoder.context,
11922 );
11923 if inlined != (member_inline_size <= 4) {
11924 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11925 }
11926 let inner_offset;
11927 let mut inner_depth = depth.clone();
11928 if inlined {
11929 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11930 inner_offset = next_offset;
11931 } else {
11932 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11933 inner_depth.increment()?;
11934 }
11935 let val_ref = self
11936 .source_name
11937 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11938 fidl::decode!(
11939 fidl::encoding::BoundedString<100>,
11940 D,
11941 val_ref,
11942 decoder,
11943 inner_offset,
11944 inner_depth
11945 )?;
11946 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11947 {
11948 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11949 }
11950 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11951 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11952 }
11953 }
11954
11955 next_offset += envelope_size;
11956 _next_ordinal_to_read += 1;
11957 if next_offset >= end_offset {
11958 return Ok(());
11959 }
11960
11961 while _next_ordinal_to_read < 3 {
11963 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11964 _next_ordinal_to_read += 1;
11965 next_offset += envelope_size;
11966 }
11967
11968 let next_out_of_line = decoder.next_out_of_line();
11969 let handles_before = decoder.remaining_handles();
11970 if let Some((inlined, num_bytes, num_handles)) =
11971 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11972 {
11973 let member_inline_size =
11974 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11975 if inlined != (member_inline_size <= 4) {
11976 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11977 }
11978 let inner_offset;
11979 let mut inner_depth = depth.clone();
11980 if inlined {
11981 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11982 inner_offset = next_offset;
11983 } else {
11984 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11985 inner_depth.increment()?;
11986 }
11987 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11988 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11989 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11990 {
11991 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11992 }
11993 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11994 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11995 }
11996 }
11997
11998 next_offset += envelope_size;
11999 _next_ordinal_to_read += 1;
12000 if next_offset >= end_offset {
12001 return Ok(());
12002 }
12003
12004 while _next_ordinal_to_read < 4 {
12006 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12007 _next_ordinal_to_read += 1;
12008 next_offset += envelope_size;
12009 }
12010
12011 let next_out_of_line = decoder.next_out_of_line();
12012 let handles_before = decoder.remaining_handles();
12013 if let Some((inlined, num_bytes, num_handles)) =
12014 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12015 {
12016 let member_inline_size =
12017 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12018 decoder.context,
12019 );
12020 if inlined != (member_inline_size <= 4) {
12021 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12022 }
12023 let inner_offset;
12024 let mut inner_depth = depth.clone();
12025 if inlined {
12026 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12027 inner_offset = next_offset;
12028 } else {
12029 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12030 inner_depth.increment()?;
12031 }
12032 let val_ref = self
12033 .target_name
12034 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12035 fidl::decode!(
12036 fidl::encoding::BoundedString<100>,
12037 D,
12038 val_ref,
12039 decoder,
12040 inner_offset,
12041 inner_depth
12042 )?;
12043 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12044 {
12045 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12046 }
12047 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12048 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12049 }
12050 }
12051
12052 next_offset += envelope_size;
12053 _next_ordinal_to_read += 1;
12054 if next_offset >= end_offset {
12055 return Ok(());
12056 }
12057
12058 while _next_ordinal_to_read < 5 {
12060 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12061 _next_ordinal_to_read += 1;
12062 next_offset += envelope_size;
12063 }
12064
12065 let next_out_of_line = decoder.next_out_of_line();
12066 let handles_before = decoder.remaining_handles();
12067 if let Some((inlined, num_bytes, num_handles)) =
12068 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12069 {
12070 let member_inline_size =
12071 <fidl_fuchsia_io_common::Operations as fidl::encoding::TypeMarker>::inline_size(
12072 decoder.context,
12073 );
12074 if inlined != (member_inline_size <= 4) {
12075 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12076 }
12077 let inner_offset;
12078 let mut inner_depth = depth.clone();
12079 if inlined {
12080 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12081 inner_offset = next_offset;
12082 } else {
12083 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12084 inner_depth.increment()?;
12085 }
12086 let val_ref = self
12087 .rights
12088 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_io_common::Operations, D));
12089 fidl::decode!(
12090 fidl_fuchsia_io_common::Operations,
12091 D,
12092 val_ref,
12093 decoder,
12094 inner_offset,
12095 inner_depth
12096 )?;
12097 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12098 {
12099 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12100 }
12101 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12102 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12103 }
12104 }
12105
12106 next_offset += envelope_size;
12107 _next_ordinal_to_read += 1;
12108 if next_offset >= end_offset {
12109 return Ok(());
12110 }
12111
12112 while _next_ordinal_to_read < 6 {
12114 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12115 _next_ordinal_to_read += 1;
12116 next_offset += envelope_size;
12117 }
12118
12119 let next_out_of_line = decoder.next_out_of_line();
12120 let handles_before = decoder.remaining_handles();
12121 if let Some((inlined, num_bytes, num_handles)) =
12122 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12123 {
12124 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12125 if inlined != (member_inline_size <= 4) {
12126 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12127 }
12128 let inner_offset;
12129 let mut inner_depth = depth.clone();
12130 if inlined {
12131 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12132 inner_offset = next_offset;
12133 } else {
12134 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12135 inner_depth.increment()?;
12136 }
12137 let val_ref = self.subdir.get_or_insert_with(|| {
12138 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
12139 });
12140 fidl::decode!(
12141 fidl::encoding::BoundedString<1024>,
12142 D,
12143 val_ref,
12144 decoder,
12145 inner_offset,
12146 inner_depth
12147 )?;
12148 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12149 {
12150 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12151 }
12152 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12153 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12154 }
12155 }
12156
12157 next_offset += envelope_size;
12158 _next_ordinal_to_read += 1;
12159 if next_offset >= end_offset {
12160 return Ok(());
12161 }
12162
12163 while _next_ordinal_to_read < 7 {
12165 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12166 _next_ordinal_to_read += 1;
12167 next_offset += envelope_size;
12168 }
12169
12170 let next_out_of_line = decoder.next_out_of_line();
12171 let handles_before = decoder.remaining_handles();
12172 if let Some((inlined, num_bytes, num_handles)) =
12173 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12174 {
12175 let member_inline_size =
12176 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12177 if inlined != (member_inline_size <= 4) {
12178 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12179 }
12180 let inner_offset;
12181 let mut inner_depth = depth.clone();
12182 if inlined {
12183 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12184 inner_offset = next_offset;
12185 } else {
12186 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12187 inner_depth.increment()?;
12188 }
12189 let val_ref =
12190 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
12191 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
12192 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12193 {
12194 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12195 }
12196 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12197 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12198 }
12199 }
12200
12201 next_offset += envelope_size;
12202 _next_ordinal_to_read += 1;
12203 if next_offset >= end_offset {
12204 return Ok(());
12205 }
12206
12207 while _next_ordinal_to_read < 8 {
12209 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12210 _next_ordinal_to_read += 1;
12211 next_offset += envelope_size;
12212 }
12213
12214 let next_out_of_line = decoder.next_out_of_line();
12215 let handles_before = decoder.remaining_handles();
12216 if let Some((inlined, num_bytes, num_handles)) =
12217 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12218 {
12219 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12220 if inlined != (member_inline_size <= 4) {
12221 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12222 }
12223 let inner_offset;
12224 let mut inner_depth = depth.clone();
12225 if inlined {
12226 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12227 inner_offset = next_offset;
12228 } else {
12229 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12230 inner_depth.increment()?;
12231 }
12232 let val_ref = self.source_dictionary.get_or_insert_with(|| {
12233 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
12234 });
12235 fidl::decode!(
12236 fidl::encoding::BoundedString<1024>,
12237 D,
12238 val_ref,
12239 decoder,
12240 inner_offset,
12241 inner_depth
12242 )?;
12243 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12244 {
12245 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12246 }
12247 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12248 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12249 }
12250 }
12251
12252 next_offset += envelope_size;
12253
12254 while next_offset < end_offset {
12256 _next_ordinal_to_read += 1;
12257 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12258 next_offset += envelope_size;
12259 }
12260
12261 Ok(())
12262 }
12263 }
12264
12265 impl ExposeProtocol {
12266 #[inline(always)]
12267 fn max_ordinal_present(&self) -> u64 {
12268 if let Some(_) = self.source_dictionary {
12269 return 6;
12270 }
12271 if let Some(_) = self.availability {
12272 return 5;
12273 }
12274 if let Some(_) = self.target_name {
12275 return 4;
12276 }
12277 if let Some(_) = self.target {
12278 return 3;
12279 }
12280 if let Some(_) = self.source_name {
12281 return 2;
12282 }
12283 if let Some(_) = self.source {
12284 return 1;
12285 }
12286 0
12287 }
12288 }
12289
12290 impl fidl::encoding::ValueTypeMarker for ExposeProtocol {
12291 type Borrowed<'a> = &'a Self;
12292 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12293 value
12294 }
12295 }
12296
12297 unsafe impl fidl::encoding::TypeMarker for ExposeProtocol {
12298 type Owned = Self;
12299
12300 #[inline(always)]
12301 fn inline_align(_context: fidl::encoding::Context) -> usize {
12302 8
12303 }
12304
12305 #[inline(always)]
12306 fn inline_size(_context: fidl::encoding::Context) -> usize {
12307 16
12308 }
12309 }
12310
12311 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeProtocol, D>
12312 for &ExposeProtocol
12313 {
12314 unsafe fn encode(
12315 self,
12316 encoder: &mut fidl::encoding::Encoder<'_, D>,
12317 offset: usize,
12318 mut depth: fidl::encoding::Depth,
12319 ) -> fidl::Result<()> {
12320 encoder.debug_check_bounds::<ExposeProtocol>(offset);
12321 let max_ordinal: u64 = self.max_ordinal_present();
12323 encoder.write_num(max_ordinal, offset);
12324 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12325 if max_ordinal == 0 {
12327 return Ok(());
12328 }
12329 depth.increment()?;
12330 let envelope_size = 8;
12331 let bytes_len = max_ordinal as usize * envelope_size;
12332 #[allow(unused_variables)]
12333 let offset = encoder.out_of_line_offset(bytes_len);
12334 let mut _prev_end_offset: usize = 0;
12335 if 1 > max_ordinal {
12336 return Ok(());
12337 }
12338
12339 let cur_offset: usize = (1 - 1) * envelope_size;
12342
12343 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12345
12346 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12351 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12352 encoder,
12353 offset + cur_offset,
12354 depth,
12355 )?;
12356
12357 _prev_end_offset = cur_offset + envelope_size;
12358 if 2 > max_ordinal {
12359 return Ok(());
12360 }
12361
12362 let cur_offset: usize = (2 - 1) * envelope_size;
12365
12366 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12368
12369 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12374 self.source_name.as_ref().map(
12375 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12376 ),
12377 encoder,
12378 offset + cur_offset,
12379 depth,
12380 )?;
12381
12382 _prev_end_offset = cur_offset + envelope_size;
12383 if 3 > max_ordinal {
12384 return Ok(());
12385 }
12386
12387 let cur_offset: usize = (3 - 1) * envelope_size;
12390
12391 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12393
12394 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12399 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12400 encoder,
12401 offset + cur_offset,
12402 depth,
12403 )?;
12404
12405 _prev_end_offset = cur_offset + envelope_size;
12406 if 4 > max_ordinal {
12407 return Ok(());
12408 }
12409
12410 let cur_offset: usize = (4 - 1) * envelope_size;
12413
12414 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12416
12417 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12422 self.target_name.as_ref().map(
12423 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12424 ),
12425 encoder,
12426 offset + cur_offset,
12427 depth,
12428 )?;
12429
12430 _prev_end_offset = cur_offset + envelope_size;
12431 if 5 > max_ordinal {
12432 return Ok(());
12433 }
12434
12435 let cur_offset: usize = (5 - 1) * envelope_size;
12438
12439 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12441
12442 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
12447 self.availability
12448 .as_ref()
12449 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
12450 encoder,
12451 offset + cur_offset,
12452 depth,
12453 )?;
12454
12455 _prev_end_offset = cur_offset + envelope_size;
12456 if 6 > max_ordinal {
12457 return Ok(());
12458 }
12459
12460 let cur_offset: usize = (6 - 1) * envelope_size;
12463
12464 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12466
12467 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
12472 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
12473 encoder, offset + cur_offset, depth
12474 )?;
12475
12476 _prev_end_offset = cur_offset + envelope_size;
12477
12478 Ok(())
12479 }
12480 }
12481
12482 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeProtocol {
12483 #[inline(always)]
12484 fn new_empty() -> Self {
12485 Self::default()
12486 }
12487
12488 unsafe fn decode(
12489 &mut self,
12490 decoder: &mut fidl::encoding::Decoder<'_, D>,
12491 offset: usize,
12492 mut depth: fidl::encoding::Depth,
12493 ) -> fidl::Result<()> {
12494 decoder.debug_check_bounds::<Self>(offset);
12495 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12496 None => return Err(fidl::Error::NotNullable),
12497 Some(len) => len,
12498 };
12499 if len == 0 {
12501 return Ok(());
12502 };
12503 depth.increment()?;
12504 let envelope_size = 8;
12505 let bytes_len = len * envelope_size;
12506 let offset = decoder.out_of_line_offset(bytes_len)?;
12507 let mut _next_ordinal_to_read = 0;
12509 let mut next_offset = offset;
12510 let end_offset = offset + bytes_len;
12511 _next_ordinal_to_read += 1;
12512 if next_offset >= end_offset {
12513 return Ok(());
12514 }
12515
12516 while _next_ordinal_to_read < 1 {
12518 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12519 _next_ordinal_to_read += 1;
12520 next_offset += envelope_size;
12521 }
12522
12523 let next_out_of_line = decoder.next_out_of_line();
12524 let handles_before = decoder.remaining_handles();
12525 if let Some((inlined, num_bytes, num_handles)) =
12526 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12527 {
12528 let member_inline_size =
12529 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12530 if inlined != (member_inline_size <= 4) {
12531 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12532 }
12533 let inner_offset;
12534 let mut inner_depth = depth.clone();
12535 if inlined {
12536 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12537 inner_offset = next_offset;
12538 } else {
12539 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12540 inner_depth.increment()?;
12541 }
12542 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
12543 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
12544 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12545 {
12546 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12547 }
12548 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12549 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12550 }
12551 }
12552
12553 next_offset += envelope_size;
12554 _next_ordinal_to_read += 1;
12555 if next_offset >= end_offset {
12556 return Ok(());
12557 }
12558
12559 while _next_ordinal_to_read < 2 {
12561 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12562 _next_ordinal_to_read += 1;
12563 next_offset += envelope_size;
12564 }
12565
12566 let next_out_of_line = decoder.next_out_of_line();
12567 let handles_before = decoder.remaining_handles();
12568 if let Some((inlined, num_bytes, num_handles)) =
12569 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12570 {
12571 let member_inline_size =
12572 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12573 decoder.context,
12574 );
12575 if inlined != (member_inline_size <= 4) {
12576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12577 }
12578 let inner_offset;
12579 let mut inner_depth = depth.clone();
12580 if inlined {
12581 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12582 inner_offset = next_offset;
12583 } else {
12584 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12585 inner_depth.increment()?;
12586 }
12587 let val_ref = self
12588 .source_name
12589 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12590 fidl::decode!(
12591 fidl::encoding::BoundedString<100>,
12592 D,
12593 val_ref,
12594 decoder,
12595 inner_offset,
12596 inner_depth
12597 )?;
12598 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12599 {
12600 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12601 }
12602 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12603 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12604 }
12605 }
12606
12607 next_offset += envelope_size;
12608 _next_ordinal_to_read += 1;
12609 if next_offset >= end_offset {
12610 return Ok(());
12611 }
12612
12613 while _next_ordinal_to_read < 3 {
12615 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12616 _next_ordinal_to_read += 1;
12617 next_offset += envelope_size;
12618 }
12619
12620 let next_out_of_line = decoder.next_out_of_line();
12621 let handles_before = decoder.remaining_handles();
12622 if let Some((inlined, num_bytes, num_handles)) =
12623 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12624 {
12625 let member_inline_size =
12626 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12627 if inlined != (member_inline_size <= 4) {
12628 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12629 }
12630 let inner_offset;
12631 let mut inner_depth = depth.clone();
12632 if inlined {
12633 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12634 inner_offset = next_offset;
12635 } else {
12636 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12637 inner_depth.increment()?;
12638 }
12639 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
12640 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
12641 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12642 {
12643 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12644 }
12645 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12646 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12647 }
12648 }
12649
12650 next_offset += envelope_size;
12651 _next_ordinal_to_read += 1;
12652 if next_offset >= end_offset {
12653 return Ok(());
12654 }
12655
12656 while _next_ordinal_to_read < 4 {
12658 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12659 _next_ordinal_to_read += 1;
12660 next_offset += envelope_size;
12661 }
12662
12663 let next_out_of_line = decoder.next_out_of_line();
12664 let handles_before = decoder.remaining_handles();
12665 if let Some((inlined, num_bytes, num_handles)) =
12666 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12667 {
12668 let member_inline_size =
12669 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12670 decoder.context,
12671 );
12672 if inlined != (member_inline_size <= 4) {
12673 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12674 }
12675 let inner_offset;
12676 let mut inner_depth = depth.clone();
12677 if inlined {
12678 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12679 inner_offset = next_offset;
12680 } else {
12681 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12682 inner_depth.increment()?;
12683 }
12684 let val_ref = self
12685 .target_name
12686 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12687 fidl::decode!(
12688 fidl::encoding::BoundedString<100>,
12689 D,
12690 val_ref,
12691 decoder,
12692 inner_offset,
12693 inner_depth
12694 )?;
12695 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12696 {
12697 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12698 }
12699 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12700 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12701 }
12702 }
12703
12704 next_offset += envelope_size;
12705 _next_ordinal_to_read += 1;
12706 if next_offset >= end_offset {
12707 return Ok(());
12708 }
12709
12710 while _next_ordinal_to_read < 5 {
12712 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12713 _next_ordinal_to_read += 1;
12714 next_offset += envelope_size;
12715 }
12716
12717 let next_out_of_line = decoder.next_out_of_line();
12718 let handles_before = decoder.remaining_handles();
12719 if let Some((inlined, num_bytes, num_handles)) =
12720 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12721 {
12722 let member_inline_size =
12723 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12724 if inlined != (member_inline_size <= 4) {
12725 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12726 }
12727 let inner_offset;
12728 let mut inner_depth = depth.clone();
12729 if inlined {
12730 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12731 inner_offset = next_offset;
12732 } else {
12733 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12734 inner_depth.increment()?;
12735 }
12736 let val_ref =
12737 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
12738 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
12739 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12740 {
12741 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12742 }
12743 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12744 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12745 }
12746 }
12747
12748 next_offset += envelope_size;
12749 _next_ordinal_to_read += 1;
12750 if next_offset >= end_offset {
12751 return Ok(());
12752 }
12753
12754 while _next_ordinal_to_read < 6 {
12756 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12757 _next_ordinal_to_read += 1;
12758 next_offset += envelope_size;
12759 }
12760
12761 let next_out_of_line = decoder.next_out_of_line();
12762 let handles_before = decoder.remaining_handles();
12763 if let Some((inlined, num_bytes, num_handles)) =
12764 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12765 {
12766 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12767 if inlined != (member_inline_size <= 4) {
12768 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12769 }
12770 let inner_offset;
12771 let mut inner_depth = depth.clone();
12772 if inlined {
12773 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12774 inner_offset = next_offset;
12775 } else {
12776 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12777 inner_depth.increment()?;
12778 }
12779 let val_ref = self.source_dictionary.get_or_insert_with(|| {
12780 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
12781 });
12782 fidl::decode!(
12783 fidl::encoding::BoundedString<1024>,
12784 D,
12785 val_ref,
12786 decoder,
12787 inner_offset,
12788 inner_depth
12789 )?;
12790 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12791 {
12792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12793 }
12794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12796 }
12797 }
12798
12799 next_offset += envelope_size;
12800
12801 while next_offset < end_offset {
12803 _next_ordinal_to_read += 1;
12804 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12805 next_offset += envelope_size;
12806 }
12807
12808 Ok(())
12809 }
12810 }
12811
12812 impl ExposeResolver {
12813 #[inline(always)]
12814 fn max_ordinal_present(&self) -> u64 {
12815 if let Some(_) = self.source_dictionary {
12816 return 6;
12817 }
12818 if let Some(_) = self.target_name {
12819 return 4;
12820 }
12821 if let Some(_) = self.target {
12822 return 3;
12823 }
12824 if let Some(_) = self.source_name {
12825 return 2;
12826 }
12827 if let Some(_) = self.source {
12828 return 1;
12829 }
12830 0
12831 }
12832 }
12833
12834 impl fidl::encoding::ValueTypeMarker for ExposeResolver {
12835 type Borrowed<'a> = &'a Self;
12836 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12837 value
12838 }
12839 }
12840
12841 unsafe impl fidl::encoding::TypeMarker for ExposeResolver {
12842 type Owned = Self;
12843
12844 #[inline(always)]
12845 fn inline_align(_context: fidl::encoding::Context) -> usize {
12846 8
12847 }
12848
12849 #[inline(always)]
12850 fn inline_size(_context: fidl::encoding::Context) -> usize {
12851 16
12852 }
12853 }
12854
12855 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeResolver, D>
12856 for &ExposeResolver
12857 {
12858 unsafe fn encode(
12859 self,
12860 encoder: &mut fidl::encoding::Encoder<'_, D>,
12861 offset: usize,
12862 mut depth: fidl::encoding::Depth,
12863 ) -> fidl::Result<()> {
12864 encoder.debug_check_bounds::<ExposeResolver>(offset);
12865 let max_ordinal: u64 = self.max_ordinal_present();
12867 encoder.write_num(max_ordinal, offset);
12868 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12869 if max_ordinal == 0 {
12871 return Ok(());
12872 }
12873 depth.increment()?;
12874 let envelope_size = 8;
12875 let bytes_len = max_ordinal as usize * envelope_size;
12876 #[allow(unused_variables)]
12877 let offset = encoder.out_of_line_offset(bytes_len);
12878 let mut _prev_end_offset: usize = 0;
12879 if 1 > max_ordinal {
12880 return Ok(());
12881 }
12882
12883 let cur_offset: usize = (1 - 1) * envelope_size;
12886
12887 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12889
12890 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12895 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12896 encoder,
12897 offset + cur_offset,
12898 depth,
12899 )?;
12900
12901 _prev_end_offset = cur_offset + envelope_size;
12902 if 2 > max_ordinal {
12903 return Ok(());
12904 }
12905
12906 let cur_offset: usize = (2 - 1) * envelope_size;
12909
12910 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12912
12913 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12918 self.source_name.as_ref().map(
12919 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12920 ),
12921 encoder,
12922 offset + cur_offset,
12923 depth,
12924 )?;
12925
12926 _prev_end_offset = cur_offset + envelope_size;
12927 if 3 > max_ordinal {
12928 return Ok(());
12929 }
12930
12931 let cur_offset: usize = (3 - 1) * envelope_size;
12934
12935 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12937
12938 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12943 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12944 encoder,
12945 offset + cur_offset,
12946 depth,
12947 )?;
12948
12949 _prev_end_offset = cur_offset + envelope_size;
12950 if 4 > max_ordinal {
12951 return Ok(());
12952 }
12953
12954 let cur_offset: usize = (4 - 1) * envelope_size;
12957
12958 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12960
12961 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12966 self.target_name.as_ref().map(
12967 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12968 ),
12969 encoder,
12970 offset + cur_offset,
12971 depth,
12972 )?;
12973
12974 _prev_end_offset = cur_offset + envelope_size;
12975 if 6 > max_ordinal {
12976 return Ok(());
12977 }
12978
12979 let cur_offset: usize = (6 - 1) * envelope_size;
12982
12983 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12985
12986 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
12991 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
12992 encoder, offset + cur_offset, depth
12993 )?;
12994
12995 _prev_end_offset = cur_offset + envelope_size;
12996
12997 Ok(())
12998 }
12999 }
13000
13001 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeResolver {
13002 #[inline(always)]
13003 fn new_empty() -> Self {
13004 Self::default()
13005 }
13006
13007 unsafe fn decode(
13008 &mut self,
13009 decoder: &mut fidl::encoding::Decoder<'_, D>,
13010 offset: usize,
13011 mut depth: fidl::encoding::Depth,
13012 ) -> fidl::Result<()> {
13013 decoder.debug_check_bounds::<Self>(offset);
13014 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13015 None => return Err(fidl::Error::NotNullable),
13016 Some(len) => len,
13017 };
13018 if len == 0 {
13020 return Ok(());
13021 };
13022 depth.increment()?;
13023 let envelope_size = 8;
13024 let bytes_len = len * envelope_size;
13025 let offset = decoder.out_of_line_offset(bytes_len)?;
13026 let mut _next_ordinal_to_read = 0;
13028 let mut next_offset = offset;
13029 let end_offset = offset + bytes_len;
13030 _next_ordinal_to_read += 1;
13031 if next_offset >= end_offset {
13032 return Ok(());
13033 }
13034
13035 while _next_ordinal_to_read < 1 {
13037 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13038 _next_ordinal_to_read += 1;
13039 next_offset += envelope_size;
13040 }
13041
13042 let next_out_of_line = decoder.next_out_of_line();
13043 let handles_before = decoder.remaining_handles();
13044 if let Some((inlined, num_bytes, num_handles)) =
13045 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13046 {
13047 let member_inline_size =
13048 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13049 if inlined != (member_inline_size <= 4) {
13050 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13051 }
13052 let inner_offset;
13053 let mut inner_depth = depth.clone();
13054 if inlined {
13055 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13056 inner_offset = next_offset;
13057 } else {
13058 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13059 inner_depth.increment()?;
13060 }
13061 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13062 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13063 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13064 {
13065 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13066 }
13067 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13068 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13069 }
13070 }
13071
13072 next_offset += envelope_size;
13073 _next_ordinal_to_read += 1;
13074 if next_offset >= end_offset {
13075 return Ok(());
13076 }
13077
13078 while _next_ordinal_to_read < 2 {
13080 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13081 _next_ordinal_to_read += 1;
13082 next_offset += envelope_size;
13083 }
13084
13085 let next_out_of_line = decoder.next_out_of_line();
13086 let handles_before = decoder.remaining_handles();
13087 if let Some((inlined, num_bytes, num_handles)) =
13088 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13089 {
13090 let member_inline_size =
13091 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13092 decoder.context,
13093 );
13094 if inlined != (member_inline_size <= 4) {
13095 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13096 }
13097 let inner_offset;
13098 let mut inner_depth = depth.clone();
13099 if inlined {
13100 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13101 inner_offset = next_offset;
13102 } else {
13103 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13104 inner_depth.increment()?;
13105 }
13106 let val_ref = self
13107 .source_name
13108 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13109 fidl::decode!(
13110 fidl::encoding::BoundedString<100>,
13111 D,
13112 val_ref,
13113 decoder,
13114 inner_offset,
13115 inner_depth
13116 )?;
13117 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13118 {
13119 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13120 }
13121 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13122 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13123 }
13124 }
13125
13126 next_offset += envelope_size;
13127 _next_ordinal_to_read += 1;
13128 if next_offset >= end_offset {
13129 return Ok(());
13130 }
13131
13132 while _next_ordinal_to_read < 3 {
13134 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13135 _next_ordinal_to_read += 1;
13136 next_offset += envelope_size;
13137 }
13138
13139 let next_out_of_line = decoder.next_out_of_line();
13140 let handles_before = decoder.remaining_handles();
13141 if let Some((inlined, num_bytes, num_handles)) =
13142 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13143 {
13144 let member_inline_size =
13145 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13146 if inlined != (member_inline_size <= 4) {
13147 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13148 }
13149 let inner_offset;
13150 let mut inner_depth = depth.clone();
13151 if inlined {
13152 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13153 inner_offset = next_offset;
13154 } else {
13155 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13156 inner_depth.increment()?;
13157 }
13158 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13159 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13160 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13161 {
13162 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13163 }
13164 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13165 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13166 }
13167 }
13168
13169 next_offset += envelope_size;
13170 _next_ordinal_to_read += 1;
13171 if next_offset >= end_offset {
13172 return Ok(());
13173 }
13174
13175 while _next_ordinal_to_read < 4 {
13177 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13178 _next_ordinal_to_read += 1;
13179 next_offset += envelope_size;
13180 }
13181
13182 let next_out_of_line = decoder.next_out_of_line();
13183 let handles_before = decoder.remaining_handles();
13184 if let Some((inlined, num_bytes, num_handles)) =
13185 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13186 {
13187 let member_inline_size =
13188 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13189 decoder.context,
13190 );
13191 if inlined != (member_inline_size <= 4) {
13192 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13193 }
13194 let inner_offset;
13195 let mut inner_depth = depth.clone();
13196 if inlined {
13197 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13198 inner_offset = next_offset;
13199 } else {
13200 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13201 inner_depth.increment()?;
13202 }
13203 let val_ref = self
13204 .target_name
13205 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13206 fidl::decode!(
13207 fidl::encoding::BoundedString<100>,
13208 D,
13209 val_ref,
13210 decoder,
13211 inner_offset,
13212 inner_depth
13213 )?;
13214 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13215 {
13216 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13217 }
13218 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13219 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13220 }
13221 }
13222
13223 next_offset += envelope_size;
13224 _next_ordinal_to_read += 1;
13225 if next_offset >= end_offset {
13226 return Ok(());
13227 }
13228
13229 while _next_ordinal_to_read < 6 {
13231 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13232 _next_ordinal_to_read += 1;
13233 next_offset += envelope_size;
13234 }
13235
13236 let next_out_of_line = decoder.next_out_of_line();
13237 let handles_before = decoder.remaining_handles();
13238 if let Some((inlined, num_bytes, num_handles)) =
13239 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13240 {
13241 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13242 if inlined != (member_inline_size <= 4) {
13243 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13244 }
13245 let inner_offset;
13246 let mut inner_depth = depth.clone();
13247 if inlined {
13248 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13249 inner_offset = next_offset;
13250 } else {
13251 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13252 inner_depth.increment()?;
13253 }
13254 let val_ref = self.source_dictionary.get_or_insert_with(|| {
13255 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
13256 });
13257 fidl::decode!(
13258 fidl::encoding::BoundedString<1024>,
13259 D,
13260 val_ref,
13261 decoder,
13262 inner_offset,
13263 inner_depth
13264 )?;
13265 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13266 {
13267 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13268 }
13269 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13270 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13271 }
13272 }
13273
13274 next_offset += envelope_size;
13275
13276 while next_offset < end_offset {
13278 _next_ordinal_to_read += 1;
13279 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13280 next_offset += envelope_size;
13281 }
13282
13283 Ok(())
13284 }
13285 }
13286
13287 impl ExposeRunner {
13288 #[inline(always)]
13289 fn max_ordinal_present(&self) -> u64 {
13290 if let Some(_) = self.source_dictionary {
13291 return 6;
13292 }
13293 if let Some(_) = self.target_name {
13294 return 4;
13295 }
13296 if let Some(_) = self.target {
13297 return 3;
13298 }
13299 if let Some(_) = self.source_name {
13300 return 2;
13301 }
13302 if let Some(_) = self.source {
13303 return 1;
13304 }
13305 0
13306 }
13307 }
13308
13309 impl fidl::encoding::ValueTypeMarker for ExposeRunner {
13310 type Borrowed<'a> = &'a Self;
13311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13312 value
13313 }
13314 }
13315
13316 unsafe impl fidl::encoding::TypeMarker for ExposeRunner {
13317 type Owned = Self;
13318
13319 #[inline(always)]
13320 fn inline_align(_context: fidl::encoding::Context) -> usize {
13321 8
13322 }
13323
13324 #[inline(always)]
13325 fn inline_size(_context: fidl::encoding::Context) -> usize {
13326 16
13327 }
13328 }
13329
13330 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeRunner, D>
13331 for &ExposeRunner
13332 {
13333 unsafe fn encode(
13334 self,
13335 encoder: &mut fidl::encoding::Encoder<'_, D>,
13336 offset: usize,
13337 mut depth: fidl::encoding::Depth,
13338 ) -> fidl::Result<()> {
13339 encoder.debug_check_bounds::<ExposeRunner>(offset);
13340 let max_ordinal: u64 = self.max_ordinal_present();
13342 encoder.write_num(max_ordinal, offset);
13343 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13344 if max_ordinal == 0 {
13346 return Ok(());
13347 }
13348 depth.increment()?;
13349 let envelope_size = 8;
13350 let bytes_len = max_ordinal as usize * envelope_size;
13351 #[allow(unused_variables)]
13352 let offset = encoder.out_of_line_offset(bytes_len);
13353 let mut _prev_end_offset: usize = 0;
13354 if 1 > max_ordinal {
13355 return Ok(());
13356 }
13357
13358 let cur_offset: usize = (1 - 1) * envelope_size;
13361
13362 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13364
13365 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13370 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13371 encoder,
13372 offset + cur_offset,
13373 depth,
13374 )?;
13375
13376 _prev_end_offset = cur_offset + envelope_size;
13377 if 2 > max_ordinal {
13378 return Ok(());
13379 }
13380
13381 let cur_offset: usize = (2 - 1) * envelope_size;
13384
13385 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13387
13388 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13393 self.source_name.as_ref().map(
13394 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13395 ),
13396 encoder,
13397 offset + cur_offset,
13398 depth,
13399 )?;
13400
13401 _prev_end_offset = cur_offset + envelope_size;
13402 if 3 > max_ordinal {
13403 return Ok(());
13404 }
13405
13406 let cur_offset: usize = (3 - 1) * envelope_size;
13409
13410 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13412
13413 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13418 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13419 encoder,
13420 offset + cur_offset,
13421 depth,
13422 )?;
13423
13424 _prev_end_offset = cur_offset + envelope_size;
13425 if 4 > max_ordinal {
13426 return Ok(());
13427 }
13428
13429 let cur_offset: usize = (4 - 1) * envelope_size;
13432
13433 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13435
13436 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13441 self.target_name.as_ref().map(
13442 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13443 ),
13444 encoder,
13445 offset + cur_offset,
13446 depth,
13447 )?;
13448
13449 _prev_end_offset = cur_offset + envelope_size;
13450 if 6 > max_ordinal {
13451 return Ok(());
13452 }
13453
13454 let cur_offset: usize = (6 - 1) * envelope_size;
13457
13458 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13460
13461 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
13466 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
13467 encoder, offset + cur_offset, depth
13468 )?;
13469
13470 _prev_end_offset = cur_offset + envelope_size;
13471
13472 Ok(())
13473 }
13474 }
13475
13476 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeRunner {
13477 #[inline(always)]
13478 fn new_empty() -> Self {
13479 Self::default()
13480 }
13481
13482 unsafe fn decode(
13483 &mut self,
13484 decoder: &mut fidl::encoding::Decoder<'_, D>,
13485 offset: usize,
13486 mut depth: fidl::encoding::Depth,
13487 ) -> fidl::Result<()> {
13488 decoder.debug_check_bounds::<Self>(offset);
13489 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13490 None => return Err(fidl::Error::NotNullable),
13491 Some(len) => len,
13492 };
13493 if len == 0 {
13495 return Ok(());
13496 };
13497 depth.increment()?;
13498 let envelope_size = 8;
13499 let bytes_len = len * envelope_size;
13500 let offset = decoder.out_of_line_offset(bytes_len)?;
13501 let mut _next_ordinal_to_read = 0;
13503 let mut next_offset = offset;
13504 let end_offset = offset + bytes_len;
13505 _next_ordinal_to_read += 1;
13506 if next_offset >= end_offset {
13507 return Ok(());
13508 }
13509
13510 while _next_ordinal_to_read < 1 {
13512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13513 _next_ordinal_to_read += 1;
13514 next_offset += envelope_size;
13515 }
13516
13517 let next_out_of_line = decoder.next_out_of_line();
13518 let handles_before = decoder.remaining_handles();
13519 if let Some((inlined, num_bytes, num_handles)) =
13520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13521 {
13522 let member_inline_size =
13523 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13524 if inlined != (member_inline_size <= 4) {
13525 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13526 }
13527 let inner_offset;
13528 let mut inner_depth = depth.clone();
13529 if inlined {
13530 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13531 inner_offset = next_offset;
13532 } else {
13533 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13534 inner_depth.increment()?;
13535 }
13536 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13537 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13538 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13539 {
13540 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13541 }
13542 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13543 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13544 }
13545 }
13546
13547 next_offset += envelope_size;
13548 _next_ordinal_to_read += 1;
13549 if next_offset >= end_offset {
13550 return Ok(());
13551 }
13552
13553 while _next_ordinal_to_read < 2 {
13555 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13556 _next_ordinal_to_read += 1;
13557 next_offset += envelope_size;
13558 }
13559
13560 let next_out_of_line = decoder.next_out_of_line();
13561 let handles_before = decoder.remaining_handles();
13562 if let Some((inlined, num_bytes, num_handles)) =
13563 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13564 {
13565 let member_inline_size =
13566 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13567 decoder.context,
13568 );
13569 if inlined != (member_inline_size <= 4) {
13570 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13571 }
13572 let inner_offset;
13573 let mut inner_depth = depth.clone();
13574 if inlined {
13575 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13576 inner_offset = next_offset;
13577 } else {
13578 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13579 inner_depth.increment()?;
13580 }
13581 let val_ref = self
13582 .source_name
13583 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13584 fidl::decode!(
13585 fidl::encoding::BoundedString<100>,
13586 D,
13587 val_ref,
13588 decoder,
13589 inner_offset,
13590 inner_depth
13591 )?;
13592 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13593 {
13594 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13595 }
13596 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13597 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13598 }
13599 }
13600
13601 next_offset += envelope_size;
13602 _next_ordinal_to_read += 1;
13603 if next_offset >= end_offset {
13604 return Ok(());
13605 }
13606
13607 while _next_ordinal_to_read < 3 {
13609 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13610 _next_ordinal_to_read += 1;
13611 next_offset += envelope_size;
13612 }
13613
13614 let next_out_of_line = decoder.next_out_of_line();
13615 let handles_before = decoder.remaining_handles();
13616 if let Some((inlined, num_bytes, num_handles)) =
13617 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13618 {
13619 let member_inline_size =
13620 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13621 if inlined != (member_inline_size <= 4) {
13622 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13623 }
13624 let inner_offset;
13625 let mut inner_depth = depth.clone();
13626 if inlined {
13627 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13628 inner_offset = next_offset;
13629 } else {
13630 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13631 inner_depth.increment()?;
13632 }
13633 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13634 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13635 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13636 {
13637 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13638 }
13639 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13640 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13641 }
13642 }
13643
13644 next_offset += envelope_size;
13645 _next_ordinal_to_read += 1;
13646 if next_offset >= end_offset {
13647 return Ok(());
13648 }
13649
13650 while _next_ordinal_to_read < 4 {
13652 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13653 _next_ordinal_to_read += 1;
13654 next_offset += envelope_size;
13655 }
13656
13657 let next_out_of_line = decoder.next_out_of_line();
13658 let handles_before = decoder.remaining_handles();
13659 if let Some((inlined, num_bytes, num_handles)) =
13660 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13661 {
13662 let member_inline_size =
13663 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13664 decoder.context,
13665 );
13666 if inlined != (member_inline_size <= 4) {
13667 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13668 }
13669 let inner_offset;
13670 let mut inner_depth = depth.clone();
13671 if inlined {
13672 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13673 inner_offset = next_offset;
13674 } else {
13675 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13676 inner_depth.increment()?;
13677 }
13678 let val_ref = self
13679 .target_name
13680 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13681 fidl::decode!(
13682 fidl::encoding::BoundedString<100>,
13683 D,
13684 val_ref,
13685 decoder,
13686 inner_offset,
13687 inner_depth
13688 )?;
13689 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13690 {
13691 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13692 }
13693 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13694 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13695 }
13696 }
13697
13698 next_offset += envelope_size;
13699 _next_ordinal_to_read += 1;
13700 if next_offset >= end_offset {
13701 return Ok(());
13702 }
13703
13704 while _next_ordinal_to_read < 6 {
13706 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13707 _next_ordinal_to_read += 1;
13708 next_offset += envelope_size;
13709 }
13710
13711 let next_out_of_line = decoder.next_out_of_line();
13712 let handles_before = decoder.remaining_handles();
13713 if let Some((inlined, num_bytes, num_handles)) =
13714 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13715 {
13716 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13717 if inlined != (member_inline_size <= 4) {
13718 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13719 }
13720 let inner_offset;
13721 let mut inner_depth = depth.clone();
13722 if inlined {
13723 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13724 inner_offset = next_offset;
13725 } else {
13726 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13727 inner_depth.increment()?;
13728 }
13729 let val_ref = self.source_dictionary.get_or_insert_with(|| {
13730 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
13731 });
13732 fidl::decode!(
13733 fidl::encoding::BoundedString<1024>,
13734 D,
13735 val_ref,
13736 decoder,
13737 inner_offset,
13738 inner_depth
13739 )?;
13740 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13741 {
13742 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13743 }
13744 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13745 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13746 }
13747 }
13748
13749 next_offset += envelope_size;
13750
13751 while next_offset < end_offset {
13753 _next_ordinal_to_read += 1;
13754 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13755 next_offset += envelope_size;
13756 }
13757
13758 Ok(())
13759 }
13760 }
13761
13762 impl ExposeService {
13763 #[inline(always)]
13764 fn max_ordinal_present(&self) -> u64 {
13765 if let Some(_) = self.source_dictionary {
13766 return 6;
13767 }
13768 if let Some(_) = self.availability {
13769 return 5;
13770 }
13771 if let Some(_) = self.target_name {
13772 return 4;
13773 }
13774 if let Some(_) = self.target {
13775 return 3;
13776 }
13777 if let Some(_) = self.source_name {
13778 return 2;
13779 }
13780 if let Some(_) = self.source {
13781 return 1;
13782 }
13783 0
13784 }
13785 }
13786
13787 impl fidl::encoding::ValueTypeMarker for ExposeService {
13788 type Borrowed<'a> = &'a Self;
13789 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13790 value
13791 }
13792 }
13793
13794 unsafe impl fidl::encoding::TypeMarker for ExposeService {
13795 type Owned = Self;
13796
13797 #[inline(always)]
13798 fn inline_align(_context: fidl::encoding::Context) -> usize {
13799 8
13800 }
13801
13802 #[inline(always)]
13803 fn inline_size(_context: fidl::encoding::Context) -> usize {
13804 16
13805 }
13806 }
13807
13808 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeService, D>
13809 for &ExposeService
13810 {
13811 unsafe fn encode(
13812 self,
13813 encoder: &mut fidl::encoding::Encoder<'_, D>,
13814 offset: usize,
13815 mut depth: fidl::encoding::Depth,
13816 ) -> fidl::Result<()> {
13817 encoder.debug_check_bounds::<ExposeService>(offset);
13818 let max_ordinal: u64 = self.max_ordinal_present();
13820 encoder.write_num(max_ordinal, offset);
13821 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13822 if max_ordinal == 0 {
13824 return Ok(());
13825 }
13826 depth.increment()?;
13827 let envelope_size = 8;
13828 let bytes_len = max_ordinal as usize * envelope_size;
13829 #[allow(unused_variables)]
13830 let offset = encoder.out_of_line_offset(bytes_len);
13831 let mut _prev_end_offset: usize = 0;
13832 if 1 > max_ordinal {
13833 return Ok(());
13834 }
13835
13836 let cur_offset: usize = (1 - 1) * envelope_size;
13839
13840 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13842
13843 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13848 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13849 encoder,
13850 offset + cur_offset,
13851 depth,
13852 )?;
13853
13854 _prev_end_offset = cur_offset + envelope_size;
13855 if 2 > max_ordinal {
13856 return Ok(());
13857 }
13858
13859 let cur_offset: usize = (2 - 1) * envelope_size;
13862
13863 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13865
13866 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13871 self.source_name.as_ref().map(
13872 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13873 ),
13874 encoder,
13875 offset + cur_offset,
13876 depth,
13877 )?;
13878
13879 _prev_end_offset = cur_offset + envelope_size;
13880 if 3 > max_ordinal {
13881 return Ok(());
13882 }
13883
13884 let cur_offset: usize = (3 - 1) * envelope_size;
13887
13888 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13890
13891 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13896 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13897 encoder,
13898 offset + cur_offset,
13899 depth,
13900 )?;
13901
13902 _prev_end_offset = cur_offset + envelope_size;
13903 if 4 > max_ordinal {
13904 return Ok(());
13905 }
13906
13907 let cur_offset: usize = (4 - 1) * envelope_size;
13910
13911 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13913
13914 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13919 self.target_name.as_ref().map(
13920 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13921 ),
13922 encoder,
13923 offset + cur_offset,
13924 depth,
13925 )?;
13926
13927 _prev_end_offset = cur_offset + envelope_size;
13928 if 5 > max_ordinal {
13929 return Ok(());
13930 }
13931
13932 let cur_offset: usize = (5 - 1) * envelope_size;
13935
13936 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13938
13939 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
13944 self.availability
13945 .as_ref()
13946 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
13947 encoder,
13948 offset + cur_offset,
13949 depth,
13950 )?;
13951
13952 _prev_end_offset = cur_offset + envelope_size;
13953 if 6 > max_ordinal {
13954 return Ok(());
13955 }
13956
13957 let cur_offset: usize = (6 - 1) * envelope_size;
13960
13961 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13963
13964 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
13969 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
13970 encoder, offset + cur_offset, depth
13971 )?;
13972
13973 _prev_end_offset = cur_offset + envelope_size;
13974
13975 Ok(())
13976 }
13977 }
13978
13979 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeService {
13980 #[inline(always)]
13981 fn new_empty() -> Self {
13982 Self::default()
13983 }
13984
13985 unsafe fn decode(
13986 &mut self,
13987 decoder: &mut fidl::encoding::Decoder<'_, D>,
13988 offset: usize,
13989 mut depth: fidl::encoding::Depth,
13990 ) -> fidl::Result<()> {
13991 decoder.debug_check_bounds::<Self>(offset);
13992 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13993 None => return Err(fidl::Error::NotNullable),
13994 Some(len) => len,
13995 };
13996 if len == 0 {
13998 return Ok(());
13999 };
14000 depth.increment()?;
14001 let envelope_size = 8;
14002 let bytes_len = len * envelope_size;
14003 let offset = decoder.out_of_line_offset(bytes_len)?;
14004 let mut _next_ordinal_to_read = 0;
14006 let mut next_offset = offset;
14007 let end_offset = offset + bytes_len;
14008 _next_ordinal_to_read += 1;
14009 if next_offset >= end_offset {
14010 return Ok(());
14011 }
14012
14013 while _next_ordinal_to_read < 1 {
14015 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14016 _next_ordinal_to_read += 1;
14017 next_offset += envelope_size;
14018 }
14019
14020 let next_out_of_line = decoder.next_out_of_line();
14021 let handles_before = decoder.remaining_handles();
14022 if let Some((inlined, num_bytes, num_handles)) =
14023 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14024 {
14025 let member_inline_size =
14026 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14027 if inlined != (member_inline_size <= 4) {
14028 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14029 }
14030 let inner_offset;
14031 let mut inner_depth = depth.clone();
14032 if inlined {
14033 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14034 inner_offset = next_offset;
14035 } else {
14036 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14037 inner_depth.increment()?;
14038 }
14039 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14040 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14041 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14042 {
14043 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14044 }
14045 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14046 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14047 }
14048 }
14049
14050 next_offset += envelope_size;
14051 _next_ordinal_to_read += 1;
14052 if next_offset >= end_offset {
14053 return Ok(());
14054 }
14055
14056 while _next_ordinal_to_read < 2 {
14058 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14059 _next_ordinal_to_read += 1;
14060 next_offset += envelope_size;
14061 }
14062
14063 let next_out_of_line = decoder.next_out_of_line();
14064 let handles_before = decoder.remaining_handles();
14065 if let Some((inlined, num_bytes, num_handles)) =
14066 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14067 {
14068 let member_inline_size =
14069 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14070 decoder.context,
14071 );
14072 if inlined != (member_inline_size <= 4) {
14073 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14074 }
14075 let inner_offset;
14076 let mut inner_depth = depth.clone();
14077 if inlined {
14078 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14079 inner_offset = next_offset;
14080 } else {
14081 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14082 inner_depth.increment()?;
14083 }
14084 let val_ref = self
14085 .source_name
14086 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14087 fidl::decode!(
14088 fidl::encoding::BoundedString<100>,
14089 D,
14090 val_ref,
14091 decoder,
14092 inner_offset,
14093 inner_depth
14094 )?;
14095 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14096 {
14097 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14098 }
14099 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14100 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14101 }
14102 }
14103
14104 next_offset += envelope_size;
14105 _next_ordinal_to_read += 1;
14106 if next_offset >= end_offset {
14107 return Ok(());
14108 }
14109
14110 while _next_ordinal_to_read < 3 {
14112 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14113 _next_ordinal_to_read += 1;
14114 next_offset += envelope_size;
14115 }
14116
14117 let next_out_of_line = decoder.next_out_of_line();
14118 let handles_before = decoder.remaining_handles();
14119 if let Some((inlined, num_bytes, num_handles)) =
14120 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14121 {
14122 let member_inline_size =
14123 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14124 if inlined != (member_inline_size <= 4) {
14125 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14126 }
14127 let inner_offset;
14128 let mut inner_depth = depth.clone();
14129 if inlined {
14130 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14131 inner_offset = next_offset;
14132 } else {
14133 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14134 inner_depth.increment()?;
14135 }
14136 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14137 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14138 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14139 {
14140 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14141 }
14142 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14143 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14144 }
14145 }
14146
14147 next_offset += envelope_size;
14148 _next_ordinal_to_read += 1;
14149 if next_offset >= end_offset {
14150 return Ok(());
14151 }
14152
14153 while _next_ordinal_to_read < 4 {
14155 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14156 _next_ordinal_to_read += 1;
14157 next_offset += envelope_size;
14158 }
14159
14160 let next_out_of_line = decoder.next_out_of_line();
14161 let handles_before = decoder.remaining_handles();
14162 if let Some((inlined, num_bytes, num_handles)) =
14163 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14164 {
14165 let member_inline_size =
14166 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14167 decoder.context,
14168 );
14169 if inlined != (member_inline_size <= 4) {
14170 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14171 }
14172 let inner_offset;
14173 let mut inner_depth = depth.clone();
14174 if inlined {
14175 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14176 inner_offset = next_offset;
14177 } else {
14178 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14179 inner_depth.increment()?;
14180 }
14181 let val_ref = self
14182 .target_name
14183 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14184 fidl::decode!(
14185 fidl::encoding::BoundedString<100>,
14186 D,
14187 val_ref,
14188 decoder,
14189 inner_offset,
14190 inner_depth
14191 )?;
14192 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14193 {
14194 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14195 }
14196 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14197 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14198 }
14199 }
14200
14201 next_offset += envelope_size;
14202 _next_ordinal_to_read += 1;
14203 if next_offset >= end_offset {
14204 return Ok(());
14205 }
14206
14207 while _next_ordinal_to_read < 5 {
14209 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14210 _next_ordinal_to_read += 1;
14211 next_offset += envelope_size;
14212 }
14213
14214 let next_out_of_line = decoder.next_out_of_line();
14215 let handles_before = decoder.remaining_handles();
14216 if let Some((inlined, num_bytes, num_handles)) =
14217 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14218 {
14219 let member_inline_size =
14220 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14221 if inlined != (member_inline_size <= 4) {
14222 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14223 }
14224 let inner_offset;
14225 let mut inner_depth = depth.clone();
14226 if inlined {
14227 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14228 inner_offset = next_offset;
14229 } else {
14230 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14231 inner_depth.increment()?;
14232 }
14233 let val_ref =
14234 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
14235 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
14236 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14237 {
14238 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14239 }
14240 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14241 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14242 }
14243 }
14244
14245 next_offset += envelope_size;
14246 _next_ordinal_to_read += 1;
14247 if next_offset >= end_offset {
14248 return Ok(());
14249 }
14250
14251 while _next_ordinal_to_read < 6 {
14253 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14254 _next_ordinal_to_read += 1;
14255 next_offset += envelope_size;
14256 }
14257
14258 let next_out_of_line = decoder.next_out_of_line();
14259 let handles_before = decoder.remaining_handles();
14260 if let Some((inlined, num_bytes, num_handles)) =
14261 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14262 {
14263 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14264 if inlined != (member_inline_size <= 4) {
14265 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14266 }
14267 let inner_offset;
14268 let mut inner_depth = depth.clone();
14269 if inlined {
14270 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14271 inner_offset = next_offset;
14272 } else {
14273 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14274 inner_depth.increment()?;
14275 }
14276 let val_ref = self.source_dictionary.get_or_insert_with(|| {
14277 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
14278 });
14279 fidl::decode!(
14280 fidl::encoding::BoundedString<1024>,
14281 D,
14282 val_ref,
14283 decoder,
14284 inner_offset,
14285 inner_depth
14286 )?;
14287 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14288 {
14289 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14290 }
14291 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14292 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14293 }
14294 }
14295
14296 next_offset += envelope_size;
14297
14298 while next_offset < end_offset {
14300 _next_ordinal_to_read += 1;
14301 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14302 next_offset += envelope_size;
14303 }
14304
14305 Ok(())
14306 }
14307 }
14308
14309 impl OfferConfiguration {
14310 #[inline(always)]
14311 fn max_ordinal_present(&self) -> u64 {
14312 if let Some(_) = self.source_dictionary {
14313 return 6;
14314 }
14315 if let Some(_) = self.availability {
14316 return 5;
14317 }
14318 if let Some(_) = self.target_name {
14319 return 4;
14320 }
14321 if let Some(_) = self.target {
14322 return 3;
14323 }
14324 if let Some(_) = self.source_name {
14325 return 2;
14326 }
14327 if let Some(_) = self.source {
14328 return 1;
14329 }
14330 0
14331 }
14332 }
14333
14334 impl fidl::encoding::ValueTypeMarker for OfferConfiguration {
14335 type Borrowed<'a> = &'a Self;
14336 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14337 value
14338 }
14339 }
14340
14341 unsafe impl fidl::encoding::TypeMarker for OfferConfiguration {
14342 type Owned = Self;
14343
14344 #[inline(always)]
14345 fn inline_align(_context: fidl::encoding::Context) -> usize {
14346 8
14347 }
14348
14349 #[inline(always)]
14350 fn inline_size(_context: fidl::encoding::Context) -> usize {
14351 16
14352 }
14353 }
14354
14355 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferConfiguration, D>
14356 for &OfferConfiguration
14357 {
14358 unsafe fn encode(
14359 self,
14360 encoder: &mut fidl::encoding::Encoder<'_, D>,
14361 offset: usize,
14362 mut depth: fidl::encoding::Depth,
14363 ) -> fidl::Result<()> {
14364 encoder.debug_check_bounds::<OfferConfiguration>(offset);
14365 let max_ordinal: u64 = self.max_ordinal_present();
14367 encoder.write_num(max_ordinal, offset);
14368 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14369 if max_ordinal == 0 {
14371 return Ok(());
14372 }
14373 depth.increment()?;
14374 let envelope_size = 8;
14375 let bytes_len = max_ordinal as usize * envelope_size;
14376 #[allow(unused_variables)]
14377 let offset = encoder.out_of_line_offset(bytes_len);
14378 let mut _prev_end_offset: usize = 0;
14379 if 1 > max_ordinal {
14380 return Ok(());
14381 }
14382
14383 let cur_offset: usize = (1 - 1) * envelope_size;
14386
14387 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14389
14390 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14395 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14396 encoder,
14397 offset + cur_offset,
14398 depth,
14399 )?;
14400
14401 _prev_end_offset = cur_offset + envelope_size;
14402 if 2 > max_ordinal {
14403 return Ok(());
14404 }
14405
14406 let cur_offset: usize = (2 - 1) * envelope_size;
14409
14410 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14412
14413 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14418 self.source_name.as_ref().map(
14419 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14420 ),
14421 encoder,
14422 offset + cur_offset,
14423 depth,
14424 )?;
14425
14426 _prev_end_offset = cur_offset + envelope_size;
14427 if 3 > max_ordinal {
14428 return Ok(());
14429 }
14430
14431 let cur_offset: usize = (3 - 1) * envelope_size;
14434
14435 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14437
14438 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14443 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14444 encoder,
14445 offset + cur_offset,
14446 depth,
14447 )?;
14448
14449 _prev_end_offset = cur_offset + envelope_size;
14450 if 4 > max_ordinal {
14451 return Ok(());
14452 }
14453
14454 let cur_offset: usize = (4 - 1) * envelope_size;
14457
14458 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14460
14461 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14466 self.target_name.as_ref().map(
14467 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14468 ),
14469 encoder,
14470 offset + cur_offset,
14471 depth,
14472 )?;
14473
14474 _prev_end_offset = cur_offset + envelope_size;
14475 if 5 > max_ordinal {
14476 return Ok(());
14477 }
14478
14479 let cur_offset: usize = (5 - 1) * envelope_size;
14482
14483 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14485
14486 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
14491 self.availability
14492 .as_ref()
14493 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
14494 encoder,
14495 offset + cur_offset,
14496 depth,
14497 )?;
14498
14499 _prev_end_offset = cur_offset + envelope_size;
14500 if 6 > max_ordinal {
14501 return Ok(());
14502 }
14503
14504 let cur_offset: usize = (6 - 1) * envelope_size;
14507
14508 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14510
14511 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
14516 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
14517 encoder, offset + cur_offset, depth
14518 )?;
14519
14520 _prev_end_offset = cur_offset + envelope_size;
14521
14522 Ok(())
14523 }
14524 }
14525
14526 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferConfiguration {
14527 #[inline(always)]
14528 fn new_empty() -> Self {
14529 Self::default()
14530 }
14531
14532 unsafe fn decode(
14533 &mut self,
14534 decoder: &mut fidl::encoding::Decoder<'_, D>,
14535 offset: usize,
14536 mut depth: fidl::encoding::Depth,
14537 ) -> fidl::Result<()> {
14538 decoder.debug_check_bounds::<Self>(offset);
14539 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14540 None => return Err(fidl::Error::NotNullable),
14541 Some(len) => len,
14542 };
14543 if len == 0 {
14545 return Ok(());
14546 };
14547 depth.increment()?;
14548 let envelope_size = 8;
14549 let bytes_len = len * envelope_size;
14550 let offset = decoder.out_of_line_offset(bytes_len)?;
14551 let mut _next_ordinal_to_read = 0;
14553 let mut next_offset = offset;
14554 let end_offset = offset + bytes_len;
14555 _next_ordinal_to_read += 1;
14556 if next_offset >= end_offset {
14557 return Ok(());
14558 }
14559
14560 while _next_ordinal_to_read < 1 {
14562 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14563 _next_ordinal_to_read += 1;
14564 next_offset += envelope_size;
14565 }
14566
14567 let next_out_of_line = decoder.next_out_of_line();
14568 let handles_before = decoder.remaining_handles();
14569 if let Some((inlined, num_bytes, num_handles)) =
14570 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14571 {
14572 let member_inline_size =
14573 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14574 if inlined != (member_inline_size <= 4) {
14575 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14576 }
14577 let inner_offset;
14578 let mut inner_depth = depth.clone();
14579 if inlined {
14580 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14581 inner_offset = next_offset;
14582 } else {
14583 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14584 inner_depth.increment()?;
14585 }
14586 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14587 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14588 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14589 {
14590 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14591 }
14592 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14593 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14594 }
14595 }
14596
14597 next_offset += envelope_size;
14598 _next_ordinal_to_read += 1;
14599 if next_offset >= end_offset {
14600 return Ok(());
14601 }
14602
14603 while _next_ordinal_to_read < 2 {
14605 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14606 _next_ordinal_to_read += 1;
14607 next_offset += envelope_size;
14608 }
14609
14610 let next_out_of_line = decoder.next_out_of_line();
14611 let handles_before = decoder.remaining_handles();
14612 if let Some((inlined, num_bytes, num_handles)) =
14613 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14614 {
14615 let member_inline_size =
14616 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14617 decoder.context,
14618 );
14619 if inlined != (member_inline_size <= 4) {
14620 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14621 }
14622 let inner_offset;
14623 let mut inner_depth = depth.clone();
14624 if inlined {
14625 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14626 inner_offset = next_offset;
14627 } else {
14628 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14629 inner_depth.increment()?;
14630 }
14631 let val_ref = self
14632 .source_name
14633 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14634 fidl::decode!(
14635 fidl::encoding::BoundedString<100>,
14636 D,
14637 val_ref,
14638 decoder,
14639 inner_offset,
14640 inner_depth
14641 )?;
14642 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14643 {
14644 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14645 }
14646 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14647 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14648 }
14649 }
14650
14651 next_offset += envelope_size;
14652 _next_ordinal_to_read += 1;
14653 if next_offset >= end_offset {
14654 return Ok(());
14655 }
14656
14657 while _next_ordinal_to_read < 3 {
14659 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14660 _next_ordinal_to_read += 1;
14661 next_offset += envelope_size;
14662 }
14663
14664 let next_out_of_line = decoder.next_out_of_line();
14665 let handles_before = decoder.remaining_handles();
14666 if let Some((inlined, num_bytes, num_handles)) =
14667 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14668 {
14669 let member_inline_size =
14670 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14671 if inlined != (member_inline_size <= 4) {
14672 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14673 }
14674 let inner_offset;
14675 let mut inner_depth = depth.clone();
14676 if inlined {
14677 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14678 inner_offset = next_offset;
14679 } else {
14680 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14681 inner_depth.increment()?;
14682 }
14683 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14684 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14685 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14686 {
14687 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14688 }
14689 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14690 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14691 }
14692 }
14693
14694 next_offset += envelope_size;
14695 _next_ordinal_to_read += 1;
14696 if next_offset >= end_offset {
14697 return Ok(());
14698 }
14699
14700 while _next_ordinal_to_read < 4 {
14702 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14703 _next_ordinal_to_read += 1;
14704 next_offset += envelope_size;
14705 }
14706
14707 let next_out_of_line = decoder.next_out_of_line();
14708 let handles_before = decoder.remaining_handles();
14709 if let Some((inlined, num_bytes, num_handles)) =
14710 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14711 {
14712 let member_inline_size =
14713 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14714 decoder.context,
14715 );
14716 if inlined != (member_inline_size <= 4) {
14717 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14718 }
14719 let inner_offset;
14720 let mut inner_depth = depth.clone();
14721 if inlined {
14722 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14723 inner_offset = next_offset;
14724 } else {
14725 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14726 inner_depth.increment()?;
14727 }
14728 let val_ref = self
14729 .target_name
14730 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14731 fidl::decode!(
14732 fidl::encoding::BoundedString<100>,
14733 D,
14734 val_ref,
14735 decoder,
14736 inner_offset,
14737 inner_depth
14738 )?;
14739 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14740 {
14741 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14742 }
14743 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14744 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14745 }
14746 }
14747
14748 next_offset += envelope_size;
14749 _next_ordinal_to_read += 1;
14750 if next_offset >= end_offset {
14751 return Ok(());
14752 }
14753
14754 while _next_ordinal_to_read < 5 {
14756 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14757 _next_ordinal_to_read += 1;
14758 next_offset += envelope_size;
14759 }
14760
14761 let next_out_of_line = decoder.next_out_of_line();
14762 let handles_before = decoder.remaining_handles();
14763 if let Some((inlined, num_bytes, num_handles)) =
14764 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14765 {
14766 let member_inline_size =
14767 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14768 if inlined != (member_inline_size <= 4) {
14769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14770 }
14771 let inner_offset;
14772 let mut inner_depth = depth.clone();
14773 if inlined {
14774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14775 inner_offset = next_offset;
14776 } else {
14777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14778 inner_depth.increment()?;
14779 }
14780 let val_ref =
14781 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
14782 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
14783 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14784 {
14785 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14786 }
14787 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14788 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14789 }
14790 }
14791
14792 next_offset += envelope_size;
14793 _next_ordinal_to_read += 1;
14794 if next_offset >= end_offset {
14795 return Ok(());
14796 }
14797
14798 while _next_ordinal_to_read < 6 {
14800 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14801 _next_ordinal_to_read += 1;
14802 next_offset += envelope_size;
14803 }
14804
14805 let next_out_of_line = decoder.next_out_of_line();
14806 let handles_before = decoder.remaining_handles();
14807 if let Some((inlined, num_bytes, num_handles)) =
14808 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14809 {
14810 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14811 if inlined != (member_inline_size <= 4) {
14812 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14813 }
14814 let inner_offset;
14815 let mut inner_depth = depth.clone();
14816 if inlined {
14817 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14818 inner_offset = next_offset;
14819 } else {
14820 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14821 inner_depth.increment()?;
14822 }
14823 let val_ref = self.source_dictionary.get_or_insert_with(|| {
14824 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
14825 });
14826 fidl::decode!(
14827 fidl::encoding::BoundedString<1024>,
14828 D,
14829 val_ref,
14830 decoder,
14831 inner_offset,
14832 inner_depth
14833 )?;
14834 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14835 {
14836 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14837 }
14838 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14839 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14840 }
14841 }
14842
14843 next_offset += envelope_size;
14844
14845 while next_offset < end_offset {
14847 _next_ordinal_to_read += 1;
14848 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14849 next_offset += envelope_size;
14850 }
14851
14852 Ok(())
14853 }
14854 }
14855
14856 impl OfferDictionary {
14857 #[inline(always)]
14858 fn max_ordinal_present(&self) -> u64 {
14859 if let Some(_) = self.source_dictionary {
14860 return 7;
14861 }
14862 if let Some(_) = self.availability {
14863 return 6;
14864 }
14865 if let Some(_) = self.dependency_type {
14866 return 5;
14867 }
14868 if let Some(_) = self.target_name {
14869 return 4;
14870 }
14871 if let Some(_) = self.target {
14872 return 3;
14873 }
14874 if let Some(_) = self.source_name {
14875 return 2;
14876 }
14877 if let Some(_) = self.source {
14878 return 1;
14879 }
14880 0
14881 }
14882 }
14883
14884 impl fidl::encoding::ValueTypeMarker for OfferDictionary {
14885 type Borrowed<'a> = &'a Self;
14886 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14887 value
14888 }
14889 }
14890
14891 unsafe impl fidl::encoding::TypeMarker for OfferDictionary {
14892 type Owned = Self;
14893
14894 #[inline(always)]
14895 fn inline_align(_context: fidl::encoding::Context) -> usize {
14896 8
14897 }
14898
14899 #[inline(always)]
14900 fn inline_size(_context: fidl::encoding::Context) -> usize {
14901 16
14902 }
14903 }
14904
14905 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferDictionary, D>
14906 for &OfferDictionary
14907 {
14908 unsafe fn encode(
14909 self,
14910 encoder: &mut fidl::encoding::Encoder<'_, D>,
14911 offset: usize,
14912 mut depth: fidl::encoding::Depth,
14913 ) -> fidl::Result<()> {
14914 encoder.debug_check_bounds::<OfferDictionary>(offset);
14915 let max_ordinal: u64 = self.max_ordinal_present();
14917 encoder.write_num(max_ordinal, offset);
14918 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14919 if max_ordinal == 0 {
14921 return Ok(());
14922 }
14923 depth.increment()?;
14924 let envelope_size = 8;
14925 let bytes_len = max_ordinal as usize * envelope_size;
14926 #[allow(unused_variables)]
14927 let offset = encoder.out_of_line_offset(bytes_len);
14928 let mut _prev_end_offset: usize = 0;
14929 if 1 > max_ordinal {
14930 return Ok(());
14931 }
14932
14933 let cur_offset: usize = (1 - 1) * envelope_size;
14936
14937 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14939
14940 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14945 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14946 encoder,
14947 offset + cur_offset,
14948 depth,
14949 )?;
14950
14951 _prev_end_offset = cur_offset + envelope_size;
14952 if 2 > max_ordinal {
14953 return Ok(());
14954 }
14955
14956 let cur_offset: usize = (2 - 1) * envelope_size;
14959
14960 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14962
14963 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14968 self.source_name.as_ref().map(
14969 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14970 ),
14971 encoder,
14972 offset + cur_offset,
14973 depth,
14974 )?;
14975
14976 _prev_end_offset = cur_offset + envelope_size;
14977 if 3 > max_ordinal {
14978 return Ok(());
14979 }
14980
14981 let cur_offset: usize = (3 - 1) * envelope_size;
14984
14985 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14987
14988 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14993 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14994 encoder,
14995 offset + cur_offset,
14996 depth,
14997 )?;
14998
14999 _prev_end_offset = cur_offset + envelope_size;
15000 if 4 > max_ordinal {
15001 return Ok(());
15002 }
15003
15004 let cur_offset: usize = (4 - 1) * envelope_size;
15007
15008 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15010
15011 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
15016 self.target_name.as_ref().map(
15017 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
15018 ),
15019 encoder,
15020 offset + cur_offset,
15021 depth,
15022 )?;
15023
15024 _prev_end_offset = cur_offset + envelope_size;
15025 if 5 > max_ordinal {
15026 return Ok(());
15027 }
15028
15029 let cur_offset: usize = (5 - 1) * envelope_size;
15032
15033 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15035
15036 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
15041 self.dependency_type
15042 .as_ref()
15043 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
15044 encoder,
15045 offset + cur_offset,
15046 depth,
15047 )?;
15048
15049 _prev_end_offset = cur_offset + envelope_size;
15050 if 6 > max_ordinal {
15051 return Ok(());
15052 }
15053
15054 let cur_offset: usize = (6 - 1) * envelope_size;
15057
15058 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15060
15061 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
15066 self.availability
15067 .as_ref()
15068 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
15069 encoder,
15070 offset + cur_offset,
15071 depth,
15072 )?;
15073
15074 _prev_end_offset = cur_offset + envelope_size;
15075 if 7 > max_ordinal {
15076 return Ok(());
15077 }
15078
15079 let cur_offset: usize = (7 - 1) * envelope_size;
15082
15083 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15085
15086 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
15091 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
15092 encoder, offset + cur_offset, depth
15093 )?;
15094
15095 _prev_end_offset = cur_offset + envelope_size;
15096
15097 Ok(())
15098 }
15099 }
15100
15101 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferDictionary {
15102 #[inline(always)]
15103 fn new_empty() -> Self {
15104 Self::default()
15105 }
15106
15107 unsafe fn decode(
15108 &mut self,
15109 decoder: &mut fidl::encoding::Decoder<'_, D>,
15110 offset: usize,
15111 mut depth: fidl::encoding::Depth,
15112 ) -> fidl::Result<()> {
15113 decoder.debug_check_bounds::<Self>(offset);
15114 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15115 None => return Err(fidl::Error::NotNullable),
15116 Some(len) => len,
15117 };
15118 if len == 0 {
15120 return Ok(());
15121 };
15122 depth.increment()?;
15123 let envelope_size = 8;
15124 let bytes_len = len * envelope_size;
15125 let offset = decoder.out_of_line_offset(bytes_len)?;
15126 let mut _next_ordinal_to_read = 0;
15128 let mut next_offset = offset;
15129 let end_offset = offset + bytes_len;
15130 _next_ordinal_to_read += 1;
15131 if next_offset >= end_offset {
15132 return Ok(());
15133 }
15134
15135 while _next_ordinal_to_read < 1 {
15137 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15138 _next_ordinal_to_read += 1;
15139 next_offset += envelope_size;
15140 }
15141
15142 let next_out_of_line = decoder.next_out_of_line();
15143 let handles_before = decoder.remaining_handles();
15144 if let Some((inlined, num_bytes, num_handles)) =
15145 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15146 {
15147 let member_inline_size =
15148 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15149 if inlined != (member_inline_size <= 4) {
15150 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15151 }
15152 let inner_offset;
15153 let mut inner_depth = depth.clone();
15154 if inlined {
15155 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15156 inner_offset = next_offset;
15157 } else {
15158 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15159 inner_depth.increment()?;
15160 }
15161 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15162 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15163 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15164 {
15165 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15166 }
15167 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15168 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15169 }
15170 }
15171
15172 next_offset += envelope_size;
15173 _next_ordinal_to_read += 1;
15174 if next_offset >= end_offset {
15175 return Ok(());
15176 }
15177
15178 while _next_ordinal_to_read < 2 {
15180 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15181 _next_ordinal_to_read += 1;
15182 next_offset += envelope_size;
15183 }
15184
15185 let next_out_of_line = decoder.next_out_of_line();
15186 let handles_before = decoder.remaining_handles();
15187 if let Some((inlined, num_bytes, num_handles)) =
15188 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15189 {
15190 let member_inline_size =
15191 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15192 decoder.context,
15193 );
15194 if inlined != (member_inline_size <= 4) {
15195 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15196 }
15197 let inner_offset;
15198 let mut inner_depth = depth.clone();
15199 if inlined {
15200 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15201 inner_offset = next_offset;
15202 } else {
15203 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15204 inner_depth.increment()?;
15205 }
15206 let val_ref = self
15207 .source_name
15208 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15209 fidl::decode!(
15210 fidl::encoding::BoundedString<100>,
15211 D,
15212 val_ref,
15213 decoder,
15214 inner_offset,
15215 inner_depth
15216 )?;
15217 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15218 {
15219 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15220 }
15221 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15222 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15223 }
15224 }
15225
15226 next_offset += envelope_size;
15227 _next_ordinal_to_read += 1;
15228 if next_offset >= end_offset {
15229 return Ok(());
15230 }
15231
15232 while _next_ordinal_to_read < 3 {
15234 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15235 _next_ordinal_to_read += 1;
15236 next_offset += envelope_size;
15237 }
15238
15239 let next_out_of_line = decoder.next_out_of_line();
15240 let handles_before = decoder.remaining_handles();
15241 if let Some((inlined, num_bytes, num_handles)) =
15242 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15243 {
15244 let member_inline_size =
15245 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15246 if inlined != (member_inline_size <= 4) {
15247 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15248 }
15249 let inner_offset;
15250 let mut inner_depth = depth.clone();
15251 if inlined {
15252 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15253 inner_offset = next_offset;
15254 } else {
15255 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15256 inner_depth.increment()?;
15257 }
15258 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15259 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15260 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15261 {
15262 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15263 }
15264 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15265 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15266 }
15267 }
15268
15269 next_offset += envelope_size;
15270 _next_ordinal_to_read += 1;
15271 if next_offset >= end_offset {
15272 return Ok(());
15273 }
15274
15275 while _next_ordinal_to_read < 4 {
15277 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15278 _next_ordinal_to_read += 1;
15279 next_offset += envelope_size;
15280 }
15281
15282 let next_out_of_line = decoder.next_out_of_line();
15283 let handles_before = decoder.remaining_handles();
15284 if let Some((inlined, num_bytes, num_handles)) =
15285 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15286 {
15287 let member_inline_size =
15288 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15289 decoder.context,
15290 );
15291 if inlined != (member_inline_size <= 4) {
15292 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15293 }
15294 let inner_offset;
15295 let mut inner_depth = depth.clone();
15296 if inlined {
15297 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15298 inner_offset = next_offset;
15299 } else {
15300 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15301 inner_depth.increment()?;
15302 }
15303 let val_ref = self
15304 .target_name
15305 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15306 fidl::decode!(
15307 fidl::encoding::BoundedString<100>,
15308 D,
15309 val_ref,
15310 decoder,
15311 inner_offset,
15312 inner_depth
15313 )?;
15314 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15315 {
15316 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15317 }
15318 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15319 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15320 }
15321 }
15322
15323 next_offset += envelope_size;
15324 _next_ordinal_to_read += 1;
15325 if next_offset >= end_offset {
15326 return Ok(());
15327 }
15328
15329 while _next_ordinal_to_read < 5 {
15331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15332 _next_ordinal_to_read += 1;
15333 next_offset += envelope_size;
15334 }
15335
15336 let next_out_of_line = decoder.next_out_of_line();
15337 let handles_before = decoder.remaining_handles();
15338 if let Some((inlined, num_bytes, num_handles)) =
15339 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15340 {
15341 let member_inline_size =
15342 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15343 if inlined != (member_inline_size <= 4) {
15344 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15345 }
15346 let inner_offset;
15347 let mut inner_depth = depth.clone();
15348 if inlined {
15349 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15350 inner_offset = next_offset;
15351 } else {
15352 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15353 inner_depth.increment()?;
15354 }
15355 let val_ref =
15356 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
15357 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
15358 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15359 {
15360 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15361 }
15362 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15363 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15364 }
15365 }
15366
15367 next_offset += envelope_size;
15368 _next_ordinal_to_read += 1;
15369 if next_offset >= end_offset {
15370 return Ok(());
15371 }
15372
15373 while _next_ordinal_to_read < 6 {
15375 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15376 _next_ordinal_to_read += 1;
15377 next_offset += envelope_size;
15378 }
15379
15380 let next_out_of_line = decoder.next_out_of_line();
15381 let handles_before = decoder.remaining_handles();
15382 if let Some((inlined, num_bytes, num_handles)) =
15383 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15384 {
15385 let member_inline_size =
15386 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15387 if inlined != (member_inline_size <= 4) {
15388 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15389 }
15390 let inner_offset;
15391 let mut inner_depth = depth.clone();
15392 if inlined {
15393 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15394 inner_offset = next_offset;
15395 } else {
15396 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15397 inner_depth.increment()?;
15398 }
15399 let val_ref =
15400 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
15401 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
15402 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15403 {
15404 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15405 }
15406 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15407 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15408 }
15409 }
15410
15411 next_offset += envelope_size;
15412 _next_ordinal_to_read += 1;
15413 if next_offset >= end_offset {
15414 return Ok(());
15415 }
15416
15417 while _next_ordinal_to_read < 7 {
15419 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15420 _next_ordinal_to_read += 1;
15421 next_offset += envelope_size;
15422 }
15423
15424 let next_out_of_line = decoder.next_out_of_line();
15425 let handles_before = decoder.remaining_handles();
15426 if let Some((inlined, num_bytes, num_handles)) =
15427 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15428 {
15429 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15430 if inlined != (member_inline_size <= 4) {
15431 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15432 }
15433 let inner_offset;
15434 let mut inner_depth = depth.clone();
15435 if inlined {
15436 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15437 inner_offset = next_offset;
15438 } else {
15439 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15440 inner_depth.increment()?;
15441 }
15442 let val_ref = self.source_dictionary.get_or_insert_with(|| {
15443 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
15444 });
15445 fidl::decode!(
15446 fidl::encoding::BoundedString<1024>,
15447 D,
15448 val_ref,
15449 decoder,
15450 inner_offset,
15451 inner_depth
15452 )?;
15453 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15454 {
15455 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15456 }
15457 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15458 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15459 }
15460 }
15461
15462 next_offset += envelope_size;
15463
15464 while next_offset < end_offset {
15466 _next_ordinal_to_read += 1;
15467 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15468 next_offset += envelope_size;
15469 }
15470
15471 Ok(())
15472 }
15473 }
15474
15475 impl OfferDirectory {
15476 #[inline(always)]
15477 fn max_ordinal_present(&self) -> u64 {
15478 if let Some(_) = self.source_dictionary {
15479 return 9;
15480 }
15481 if let Some(_) = self.availability {
15482 return 8;
15483 }
15484 if let Some(_) = self.dependency_type {
15485 return 7;
15486 }
15487 if let Some(_) = self.subdir {
15488 return 6;
15489 }
15490 if let Some(_) = self.rights {
15491 return 5;
15492 }
15493 if let Some(_) = self.target_name {
15494 return 4;
15495 }
15496 if let Some(_) = self.target {
15497 return 3;
15498 }
15499 if let Some(_) = self.source_name {
15500 return 2;
15501 }
15502 if let Some(_) = self.source {
15503 return 1;
15504 }
15505 0
15506 }
15507 }
15508
15509 impl fidl::encoding::ValueTypeMarker for OfferDirectory {
15510 type Borrowed<'a> = &'a Self;
15511 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15512 value
15513 }
15514 }
15515
15516 unsafe impl fidl::encoding::TypeMarker for OfferDirectory {
15517 type Owned = Self;
15518
15519 #[inline(always)]
15520 fn inline_align(_context: fidl::encoding::Context) -> usize {
15521 8
15522 }
15523
15524 #[inline(always)]
15525 fn inline_size(_context: fidl::encoding::Context) -> usize {
15526 16
15527 }
15528 }
15529
15530 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferDirectory, D>
15531 for &OfferDirectory
15532 {
15533 unsafe fn encode(
15534 self,
15535 encoder: &mut fidl::encoding::Encoder<'_, D>,
15536 offset: usize,
15537 mut depth: fidl::encoding::Depth,
15538 ) -> fidl::Result<()> {
15539 encoder.debug_check_bounds::<OfferDirectory>(offset);
15540 let max_ordinal: u64 = self.max_ordinal_present();
15542 encoder.write_num(max_ordinal, offset);
15543 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15544 if max_ordinal == 0 {
15546 return Ok(());
15547 }
15548 depth.increment()?;
15549 let envelope_size = 8;
15550 let bytes_len = max_ordinal as usize * envelope_size;
15551 #[allow(unused_variables)]
15552 let offset = encoder.out_of_line_offset(bytes_len);
15553 let mut _prev_end_offset: usize = 0;
15554 if 1 > max_ordinal {
15555 return Ok(());
15556 }
15557
15558 let cur_offset: usize = (1 - 1) * envelope_size;
15561
15562 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15564
15565 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
15570 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
15571 encoder,
15572 offset + cur_offset,
15573 depth,
15574 )?;
15575
15576 _prev_end_offset = cur_offset + envelope_size;
15577 if 2 > max_ordinal {
15578 return Ok(());
15579 }
15580
15581 let cur_offset: usize = (2 - 1) * envelope_size;
15584
15585 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15587
15588 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
15593 self.source_name.as_ref().map(
15594 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
15595 ),
15596 encoder,
15597 offset + cur_offset,
15598 depth,
15599 )?;
15600
15601 _prev_end_offset = cur_offset + envelope_size;
15602 if 3 > max_ordinal {
15603 return Ok(());
15604 }
15605
15606 let cur_offset: usize = (3 - 1) * envelope_size;
15609
15610 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15612
15613 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
15618 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
15619 encoder,
15620 offset + cur_offset,
15621 depth,
15622 )?;
15623
15624 _prev_end_offset = cur_offset + envelope_size;
15625 if 4 > max_ordinal {
15626 return Ok(());
15627 }
15628
15629 let cur_offset: usize = (4 - 1) * envelope_size;
15632
15633 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15635
15636 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
15641 self.target_name.as_ref().map(
15642 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
15643 ),
15644 encoder,
15645 offset + cur_offset,
15646 depth,
15647 )?;
15648
15649 _prev_end_offset = cur_offset + envelope_size;
15650 if 5 > max_ordinal {
15651 return Ok(());
15652 }
15653
15654 let cur_offset: usize = (5 - 1) * envelope_size;
15657
15658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15660
15661 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io_common::Operations, D>(
15666 self.rights.as_ref().map(
15667 <fidl_fuchsia_io_common::Operations as fidl::encoding::ValueTypeMarker>::borrow,
15668 ),
15669 encoder,
15670 offset + cur_offset,
15671 depth,
15672 )?;
15673
15674 _prev_end_offset = cur_offset + envelope_size;
15675 if 6 > max_ordinal {
15676 return Ok(());
15677 }
15678
15679 let cur_offset: usize = (6 - 1) * envelope_size;
15682
15683 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15685
15686 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
15691 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
15692 encoder, offset + cur_offset, depth
15693 )?;
15694
15695 _prev_end_offset = cur_offset + envelope_size;
15696 if 7 > max_ordinal {
15697 return Ok(());
15698 }
15699
15700 let cur_offset: usize = (7 - 1) * envelope_size;
15703
15704 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15706
15707 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
15712 self.dependency_type
15713 .as_ref()
15714 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
15715 encoder,
15716 offset + cur_offset,
15717 depth,
15718 )?;
15719
15720 _prev_end_offset = cur_offset + envelope_size;
15721 if 8 > max_ordinal {
15722 return Ok(());
15723 }
15724
15725 let cur_offset: usize = (8 - 1) * envelope_size;
15728
15729 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15731
15732 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
15737 self.availability
15738 .as_ref()
15739 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
15740 encoder,
15741 offset + cur_offset,
15742 depth,
15743 )?;
15744
15745 _prev_end_offset = cur_offset + envelope_size;
15746 if 9 > max_ordinal {
15747 return Ok(());
15748 }
15749
15750 let cur_offset: usize = (9 - 1) * envelope_size;
15753
15754 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15756
15757 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
15762 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
15763 encoder, offset + cur_offset, depth
15764 )?;
15765
15766 _prev_end_offset = cur_offset + envelope_size;
15767
15768 Ok(())
15769 }
15770 }
15771
15772 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferDirectory {
15773 #[inline(always)]
15774 fn new_empty() -> Self {
15775 Self::default()
15776 }
15777
15778 unsafe fn decode(
15779 &mut self,
15780 decoder: &mut fidl::encoding::Decoder<'_, D>,
15781 offset: usize,
15782 mut depth: fidl::encoding::Depth,
15783 ) -> fidl::Result<()> {
15784 decoder.debug_check_bounds::<Self>(offset);
15785 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15786 None => return Err(fidl::Error::NotNullable),
15787 Some(len) => len,
15788 };
15789 if len == 0 {
15791 return Ok(());
15792 };
15793 depth.increment()?;
15794 let envelope_size = 8;
15795 let bytes_len = len * envelope_size;
15796 let offset = decoder.out_of_line_offset(bytes_len)?;
15797 let mut _next_ordinal_to_read = 0;
15799 let mut next_offset = offset;
15800 let end_offset = offset + bytes_len;
15801 _next_ordinal_to_read += 1;
15802 if next_offset >= end_offset {
15803 return Ok(());
15804 }
15805
15806 while _next_ordinal_to_read < 1 {
15808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15809 _next_ordinal_to_read += 1;
15810 next_offset += envelope_size;
15811 }
15812
15813 let next_out_of_line = decoder.next_out_of_line();
15814 let handles_before = decoder.remaining_handles();
15815 if let Some((inlined, num_bytes, num_handles)) =
15816 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15817 {
15818 let member_inline_size =
15819 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15820 if inlined != (member_inline_size <= 4) {
15821 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15822 }
15823 let inner_offset;
15824 let mut inner_depth = depth.clone();
15825 if inlined {
15826 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15827 inner_offset = next_offset;
15828 } else {
15829 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15830 inner_depth.increment()?;
15831 }
15832 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15833 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15834 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15835 {
15836 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15837 }
15838 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15839 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15840 }
15841 }
15842
15843 next_offset += envelope_size;
15844 _next_ordinal_to_read += 1;
15845 if next_offset >= end_offset {
15846 return Ok(());
15847 }
15848
15849 while _next_ordinal_to_read < 2 {
15851 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15852 _next_ordinal_to_read += 1;
15853 next_offset += envelope_size;
15854 }
15855
15856 let next_out_of_line = decoder.next_out_of_line();
15857 let handles_before = decoder.remaining_handles();
15858 if let Some((inlined, num_bytes, num_handles)) =
15859 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15860 {
15861 let member_inline_size =
15862 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15863 decoder.context,
15864 );
15865 if inlined != (member_inline_size <= 4) {
15866 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15867 }
15868 let inner_offset;
15869 let mut inner_depth = depth.clone();
15870 if inlined {
15871 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15872 inner_offset = next_offset;
15873 } else {
15874 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15875 inner_depth.increment()?;
15876 }
15877 let val_ref = self
15878 .source_name
15879 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15880 fidl::decode!(
15881 fidl::encoding::BoundedString<100>,
15882 D,
15883 val_ref,
15884 decoder,
15885 inner_offset,
15886 inner_depth
15887 )?;
15888 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15889 {
15890 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15891 }
15892 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15893 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15894 }
15895 }
15896
15897 next_offset += envelope_size;
15898 _next_ordinal_to_read += 1;
15899 if next_offset >= end_offset {
15900 return Ok(());
15901 }
15902
15903 while _next_ordinal_to_read < 3 {
15905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15906 _next_ordinal_to_read += 1;
15907 next_offset += envelope_size;
15908 }
15909
15910 let next_out_of_line = decoder.next_out_of_line();
15911 let handles_before = decoder.remaining_handles();
15912 if let Some((inlined, num_bytes, num_handles)) =
15913 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15914 {
15915 let member_inline_size =
15916 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15917 if inlined != (member_inline_size <= 4) {
15918 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15919 }
15920 let inner_offset;
15921 let mut inner_depth = depth.clone();
15922 if inlined {
15923 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15924 inner_offset = next_offset;
15925 } else {
15926 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15927 inner_depth.increment()?;
15928 }
15929 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15930 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15931 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15932 {
15933 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15934 }
15935 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15936 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15937 }
15938 }
15939
15940 next_offset += envelope_size;
15941 _next_ordinal_to_read += 1;
15942 if next_offset >= end_offset {
15943 return Ok(());
15944 }
15945
15946 while _next_ordinal_to_read < 4 {
15948 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15949 _next_ordinal_to_read += 1;
15950 next_offset += envelope_size;
15951 }
15952
15953 let next_out_of_line = decoder.next_out_of_line();
15954 let handles_before = decoder.remaining_handles();
15955 if let Some((inlined, num_bytes, num_handles)) =
15956 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15957 {
15958 let member_inline_size =
15959 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15960 decoder.context,
15961 );
15962 if inlined != (member_inline_size <= 4) {
15963 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15964 }
15965 let inner_offset;
15966 let mut inner_depth = depth.clone();
15967 if inlined {
15968 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15969 inner_offset = next_offset;
15970 } else {
15971 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15972 inner_depth.increment()?;
15973 }
15974 let val_ref = self
15975 .target_name
15976 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15977 fidl::decode!(
15978 fidl::encoding::BoundedString<100>,
15979 D,
15980 val_ref,
15981 decoder,
15982 inner_offset,
15983 inner_depth
15984 )?;
15985 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15986 {
15987 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15988 }
15989 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15990 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15991 }
15992 }
15993
15994 next_offset += envelope_size;
15995 _next_ordinal_to_read += 1;
15996 if next_offset >= end_offset {
15997 return Ok(());
15998 }
15999
16000 while _next_ordinal_to_read < 5 {
16002 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16003 _next_ordinal_to_read += 1;
16004 next_offset += envelope_size;
16005 }
16006
16007 let next_out_of_line = decoder.next_out_of_line();
16008 let handles_before = decoder.remaining_handles();
16009 if let Some((inlined, num_bytes, num_handles)) =
16010 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16011 {
16012 let member_inline_size =
16013 <fidl_fuchsia_io_common::Operations as fidl::encoding::TypeMarker>::inline_size(
16014 decoder.context,
16015 );
16016 if inlined != (member_inline_size <= 4) {
16017 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16018 }
16019 let inner_offset;
16020 let mut inner_depth = depth.clone();
16021 if inlined {
16022 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16023 inner_offset = next_offset;
16024 } else {
16025 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16026 inner_depth.increment()?;
16027 }
16028 let val_ref = self
16029 .rights
16030 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_io_common::Operations, D));
16031 fidl::decode!(
16032 fidl_fuchsia_io_common::Operations,
16033 D,
16034 val_ref,
16035 decoder,
16036 inner_offset,
16037 inner_depth
16038 )?;
16039 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16040 {
16041 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16042 }
16043 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16044 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16045 }
16046 }
16047
16048 next_offset += envelope_size;
16049 _next_ordinal_to_read += 1;
16050 if next_offset >= end_offset {
16051 return Ok(());
16052 }
16053
16054 while _next_ordinal_to_read < 6 {
16056 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16057 _next_ordinal_to_read += 1;
16058 next_offset += envelope_size;
16059 }
16060
16061 let next_out_of_line = decoder.next_out_of_line();
16062 let handles_before = decoder.remaining_handles();
16063 if let Some((inlined, num_bytes, num_handles)) =
16064 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16065 {
16066 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16067 if inlined != (member_inline_size <= 4) {
16068 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16069 }
16070 let inner_offset;
16071 let mut inner_depth = depth.clone();
16072 if inlined {
16073 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16074 inner_offset = next_offset;
16075 } else {
16076 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16077 inner_depth.increment()?;
16078 }
16079 let val_ref = self.subdir.get_or_insert_with(|| {
16080 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
16081 });
16082 fidl::decode!(
16083 fidl::encoding::BoundedString<1024>,
16084 D,
16085 val_ref,
16086 decoder,
16087 inner_offset,
16088 inner_depth
16089 )?;
16090 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16091 {
16092 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16093 }
16094 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16095 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16096 }
16097 }
16098
16099 next_offset += envelope_size;
16100 _next_ordinal_to_read += 1;
16101 if next_offset >= end_offset {
16102 return Ok(());
16103 }
16104
16105 while _next_ordinal_to_read < 7 {
16107 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16108 _next_ordinal_to_read += 1;
16109 next_offset += envelope_size;
16110 }
16111
16112 let next_out_of_line = decoder.next_out_of_line();
16113 let handles_before = decoder.remaining_handles();
16114 if let Some((inlined, num_bytes, num_handles)) =
16115 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16116 {
16117 let member_inline_size =
16118 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16119 if inlined != (member_inline_size <= 4) {
16120 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16121 }
16122 let inner_offset;
16123 let mut inner_depth = depth.clone();
16124 if inlined {
16125 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16126 inner_offset = next_offset;
16127 } else {
16128 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16129 inner_depth.increment()?;
16130 }
16131 let val_ref =
16132 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
16133 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
16134 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16135 {
16136 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16137 }
16138 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16139 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16140 }
16141 }
16142
16143 next_offset += envelope_size;
16144 _next_ordinal_to_read += 1;
16145 if next_offset >= end_offset {
16146 return Ok(());
16147 }
16148
16149 while _next_ordinal_to_read < 8 {
16151 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16152 _next_ordinal_to_read += 1;
16153 next_offset += envelope_size;
16154 }
16155
16156 let next_out_of_line = decoder.next_out_of_line();
16157 let handles_before = decoder.remaining_handles();
16158 if let Some((inlined, num_bytes, num_handles)) =
16159 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16160 {
16161 let member_inline_size =
16162 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16163 if inlined != (member_inline_size <= 4) {
16164 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16165 }
16166 let inner_offset;
16167 let mut inner_depth = depth.clone();
16168 if inlined {
16169 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16170 inner_offset = next_offset;
16171 } else {
16172 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16173 inner_depth.increment()?;
16174 }
16175 let val_ref =
16176 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
16177 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
16178 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16179 {
16180 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16181 }
16182 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16183 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16184 }
16185 }
16186
16187 next_offset += envelope_size;
16188 _next_ordinal_to_read += 1;
16189 if next_offset >= end_offset {
16190 return Ok(());
16191 }
16192
16193 while _next_ordinal_to_read < 9 {
16195 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16196 _next_ordinal_to_read += 1;
16197 next_offset += envelope_size;
16198 }
16199
16200 let next_out_of_line = decoder.next_out_of_line();
16201 let handles_before = decoder.remaining_handles();
16202 if let Some((inlined, num_bytes, num_handles)) =
16203 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16204 {
16205 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16206 if inlined != (member_inline_size <= 4) {
16207 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16208 }
16209 let inner_offset;
16210 let mut inner_depth = depth.clone();
16211 if inlined {
16212 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16213 inner_offset = next_offset;
16214 } else {
16215 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16216 inner_depth.increment()?;
16217 }
16218 let val_ref = self.source_dictionary.get_or_insert_with(|| {
16219 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
16220 });
16221 fidl::decode!(
16222 fidl::encoding::BoundedString<1024>,
16223 D,
16224 val_ref,
16225 decoder,
16226 inner_offset,
16227 inner_depth
16228 )?;
16229 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16230 {
16231 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16232 }
16233 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16234 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16235 }
16236 }
16237
16238 next_offset += envelope_size;
16239
16240 while next_offset < end_offset {
16242 _next_ordinal_to_read += 1;
16243 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16244 next_offset += envelope_size;
16245 }
16246
16247 Ok(())
16248 }
16249 }
16250
16251 impl OfferEventStream {
16252 #[inline(always)]
16253 fn max_ordinal_present(&self) -> u64 {
16254 if let Some(_) = self.availability {
16255 return 7;
16256 }
16257 if let Some(_) = self.target_name {
16258 return 5;
16259 }
16260 if let Some(_) = self.target {
16261 return 4;
16262 }
16263 if let Some(_) = self.scope {
16264 return 3;
16265 }
16266 if let Some(_) = self.source_name {
16267 return 2;
16268 }
16269 if let Some(_) = self.source {
16270 return 1;
16271 }
16272 0
16273 }
16274 }
16275
16276 impl fidl::encoding::ValueTypeMarker for OfferEventStream {
16277 type Borrowed<'a> = &'a Self;
16278 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16279 value
16280 }
16281 }
16282
16283 unsafe impl fidl::encoding::TypeMarker for OfferEventStream {
16284 type Owned = Self;
16285
16286 #[inline(always)]
16287 fn inline_align(_context: fidl::encoding::Context) -> usize {
16288 8
16289 }
16290
16291 #[inline(always)]
16292 fn inline_size(_context: fidl::encoding::Context) -> usize {
16293 16
16294 }
16295 }
16296
16297 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferEventStream, D>
16298 for &OfferEventStream
16299 {
16300 unsafe fn encode(
16301 self,
16302 encoder: &mut fidl::encoding::Encoder<'_, D>,
16303 offset: usize,
16304 mut depth: fidl::encoding::Depth,
16305 ) -> fidl::Result<()> {
16306 encoder.debug_check_bounds::<OfferEventStream>(offset);
16307 let max_ordinal: u64 = self.max_ordinal_present();
16309 encoder.write_num(max_ordinal, offset);
16310 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16311 if max_ordinal == 0 {
16313 return Ok(());
16314 }
16315 depth.increment()?;
16316 let envelope_size = 8;
16317 let bytes_len = max_ordinal as usize * envelope_size;
16318 #[allow(unused_variables)]
16319 let offset = encoder.out_of_line_offset(bytes_len);
16320 let mut _prev_end_offset: usize = 0;
16321 if 1 > max_ordinal {
16322 return Ok(());
16323 }
16324
16325 let cur_offset: usize = (1 - 1) * envelope_size;
16328
16329 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16331
16332 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16337 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16338 encoder,
16339 offset + cur_offset,
16340 depth,
16341 )?;
16342
16343 _prev_end_offset = cur_offset + envelope_size;
16344 if 2 > max_ordinal {
16345 return Ok(());
16346 }
16347
16348 let cur_offset: usize = (2 - 1) * envelope_size;
16351
16352 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16354
16355 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16360 self.source_name.as_ref().map(
16361 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16362 ),
16363 encoder,
16364 offset + cur_offset,
16365 depth,
16366 )?;
16367
16368 _prev_end_offset = cur_offset + envelope_size;
16369 if 3 > max_ordinal {
16370 return Ok(());
16371 }
16372
16373 let cur_offset: usize = (3 - 1) * envelope_size;
16376
16377 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16379
16380 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Ref>, D>(
16385 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<Ref> as fidl::encoding::ValueTypeMarker>::borrow),
16386 encoder, offset + cur_offset, depth
16387 )?;
16388
16389 _prev_end_offset = cur_offset + envelope_size;
16390 if 4 > max_ordinal {
16391 return Ok(());
16392 }
16393
16394 let cur_offset: usize = (4 - 1) * envelope_size;
16397
16398 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16400
16401 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16406 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16407 encoder,
16408 offset + cur_offset,
16409 depth,
16410 )?;
16411
16412 _prev_end_offset = cur_offset + envelope_size;
16413 if 5 > max_ordinal {
16414 return Ok(());
16415 }
16416
16417 let cur_offset: usize = (5 - 1) * envelope_size;
16420
16421 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16423
16424 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16429 self.target_name.as_ref().map(
16430 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16431 ),
16432 encoder,
16433 offset + cur_offset,
16434 depth,
16435 )?;
16436
16437 _prev_end_offset = cur_offset + envelope_size;
16438 if 7 > max_ordinal {
16439 return Ok(());
16440 }
16441
16442 let cur_offset: usize = (7 - 1) * envelope_size;
16445
16446 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16448
16449 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
16454 self.availability
16455 .as_ref()
16456 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
16457 encoder,
16458 offset + cur_offset,
16459 depth,
16460 )?;
16461
16462 _prev_end_offset = cur_offset + envelope_size;
16463
16464 Ok(())
16465 }
16466 }
16467
16468 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferEventStream {
16469 #[inline(always)]
16470 fn new_empty() -> Self {
16471 Self::default()
16472 }
16473
16474 unsafe fn decode(
16475 &mut self,
16476 decoder: &mut fidl::encoding::Decoder<'_, D>,
16477 offset: usize,
16478 mut depth: fidl::encoding::Depth,
16479 ) -> fidl::Result<()> {
16480 decoder.debug_check_bounds::<Self>(offset);
16481 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16482 None => return Err(fidl::Error::NotNullable),
16483 Some(len) => len,
16484 };
16485 if len == 0 {
16487 return Ok(());
16488 };
16489 depth.increment()?;
16490 let envelope_size = 8;
16491 let bytes_len = len * envelope_size;
16492 let offset = decoder.out_of_line_offset(bytes_len)?;
16493 let mut _next_ordinal_to_read = 0;
16495 let mut next_offset = offset;
16496 let end_offset = offset + bytes_len;
16497 _next_ordinal_to_read += 1;
16498 if next_offset >= end_offset {
16499 return Ok(());
16500 }
16501
16502 while _next_ordinal_to_read < 1 {
16504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16505 _next_ordinal_to_read += 1;
16506 next_offset += envelope_size;
16507 }
16508
16509 let next_out_of_line = decoder.next_out_of_line();
16510 let handles_before = decoder.remaining_handles();
16511 if let Some((inlined, num_bytes, num_handles)) =
16512 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16513 {
16514 let member_inline_size =
16515 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16516 if inlined != (member_inline_size <= 4) {
16517 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16518 }
16519 let inner_offset;
16520 let mut inner_depth = depth.clone();
16521 if inlined {
16522 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16523 inner_offset = next_offset;
16524 } else {
16525 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16526 inner_depth.increment()?;
16527 }
16528 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
16529 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
16530 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16531 {
16532 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16533 }
16534 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16535 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16536 }
16537 }
16538
16539 next_offset += envelope_size;
16540 _next_ordinal_to_read += 1;
16541 if next_offset >= end_offset {
16542 return Ok(());
16543 }
16544
16545 while _next_ordinal_to_read < 2 {
16547 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16548 _next_ordinal_to_read += 1;
16549 next_offset += envelope_size;
16550 }
16551
16552 let next_out_of_line = decoder.next_out_of_line();
16553 let handles_before = decoder.remaining_handles();
16554 if let Some((inlined, num_bytes, num_handles)) =
16555 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16556 {
16557 let member_inline_size =
16558 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
16559 decoder.context,
16560 );
16561 if inlined != (member_inline_size <= 4) {
16562 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16563 }
16564 let inner_offset;
16565 let mut inner_depth = depth.clone();
16566 if inlined {
16567 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16568 inner_offset = next_offset;
16569 } else {
16570 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16571 inner_depth.increment()?;
16572 }
16573 let val_ref = self
16574 .source_name
16575 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
16576 fidl::decode!(
16577 fidl::encoding::BoundedString<100>,
16578 D,
16579 val_ref,
16580 decoder,
16581 inner_offset,
16582 inner_depth
16583 )?;
16584 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16585 {
16586 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16587 }
16588 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16589 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16590 }
16591 }
16592
16593 next_offset += envelope_size;
16594 _next_ordinal_to_read += 1;
16595 if next_offset >= end_offset {
16596 return Ok(());
16597 }
16598
16599 while _next_ordinal_to_read < 3 {
16601 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16602 _next_ordinal_to_read += 1;
16603 next_offset += envelope_size;
16604 }
16605
16606 let next_out_of_line = decoder.next_out_of_line();
16607 let handles_before = decoder.remaining_handles();
16608 if let Some((inlined, num_bytes, num_handles)) =
16609 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16610 {
16611 let member_inline_size = <fidl::encoding::UnboundedVector<Ref> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16612 if inlined != (member_inline_size <= 4) {
16613 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16614 }
16615 let inner_offset;
16616 let mut inner_depth = depth.clone();
16617 if inlined {
16618 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16619 inner_offset = next_offset;
16620 } else {
16621 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16622 inner_depth.increment()?;
16623 }
16624 let val_ref = self.scope.get_or_insert_with(|| {
16625 fidl::new_empty!(fidl::encoding::UnboundedVector<Ref>, D)
16626 });
16627 fidl::decode!(
16628 fidl::encoding::UnboundedVector<Ref>,
16629 D,
16630 val_ref,
16631 decoder,
16632 inner_offset,
16633 inner_depth
16634 )?;
16635 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16636 {
16637 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16638 }
16639 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16640 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16641 }
16642 }
16643
16644 next_offset += envelope_size;
16645 _next_ordinal_to_read += 1;
16646 if next_offset >= end_offset {
16647 return Ok(());
16648 }
16649
16650 while _next_ordinal_to_read < 4 {
16652 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16653 _next_ordinal_to_read += 1;
16654 next_offset += envelope_size;
16655 }
16656
16657 let next_out_of_line = decoder.next_out_of_line();
16658 let handles_before = decoder.remaining_handles();
16659 if let Some((inlined, num_bytes, num_handles)) =
16660 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16661 {
16662 let member_inline_size =
16663 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16664 if inlined != (member_inline_size <= 4) {
16665 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16666 }
16667 let inner_offset;
16668 let mut inner_depth = depth.clone();
16669 if inlined {
16670 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16671 inner_offset = next_offset;
16672 } else {
16673 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16674 inner_depth.increment()?;
16675 }
16676 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
16677 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
16678 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16679 {
16680 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16681 }
16682 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16683 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16684 }
16685 }
16686
16687 next_offset += envelope_size;
16688 _next_ordinal_to_read += 1;
16689 if next_offset >= end_offset {
16690 return Ok(());
16691 }
16692
16693 while _next_ordinal_to_read < 5 {
16695 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16696 _next_ordinal_to_read += 1;
16697 next_offset += envelope_size;
16698 }
16699
16700 let next_out_of_line = decoder.next_out_of_line();
16701 let handles_before = decoder.remaining_handles();
16702 if let Some((inlined, num_bytes, num_handles)) =
16703 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16704 {
16705 let member_inline_size =
16706 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
16707 decoder.context,
16708 );
16709 if inlined != (member_inline_size <= 4) {
16710 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16711 }
16712 let inner_offset;
16713 let mut inner_depth = depth.clone();
16714 if inlined {
16715 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16716 inner_offset = next_offset;
16717 } else {
16718 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16719 inner_depth.increment()?;
16720 }
16721 let val_ref = self
16722 .target_name
16723 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
16724 fidl::decode!(
16725 fidl::encoding::BoundedString<100>,
16726 D,
16727 val_ref,
16728 decoder,
16729 inner_offset,
16730 inner_depth
16731 )?;
16732 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16733 {
16734 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16735 }
16736 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16737 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16738 }
16739 }
16740
16741 next_offset += envelope_size;
16742 _next_ordinal_to_read += 1;
16743 if next_offset >= end_offset {
16744 return Ok(());
16745 }
16746
16747 while _next_ordinal_to_read < 7 {
16749 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16750 _next_ordinal_to_read += 1;
16751 next_offset += envelope_size;
16752 }
16753
16754 let next_out_of_line = decoder.next_out_of_line();
16755 let handles_before = decoder.remaining_handles();
16756 if let Some((inlined, num_bytes, num_handles)) =
16757 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16758 {
16759 let member_inline_size =
16760 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16761 if inlined != (member_inline_size <= 4) {
16762 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16763 }
16764 let inner_offset;
16765 let mut inner_depth = depth.clone();
16766 if inlined {
16767 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16768 inner_offset = next_offset;
16769 } else {
16770 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16771 inner_depth.increment()?;
16772 }
16773 let val_ref =
16774 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
16775 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
16776 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16777 {
16778 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16779 }
16780 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16781 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16782 }
16783 }
16784
16785 next_offset += envelope_size;
16786
16787 while next_offset < end_offset {
16789 _next_ordinal_to_read += 1;
16790 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16791 next_offset += envelope_size;
16792 }
16793
16794 Ok(())
16795 }
16796 }
16797
16798 impl OfferProtocol {
16799 #[inline(always)]
16800 fn max_ordinal_present(&self) -> u64 {
16801 if let Some(_) = self.source_dictionary {
16802 return 7;
16803 }
16804 if let Some(_) = self.availability {
16805 return 6;
16806 }
16807 if let Some(_) = self.dependency_type {
16808 return 5;
16809 }
16810 if let Some(_) = self.target_name {
16811 return 4;
16812 }
16813 if let Some(_) = self.target {
16814 return 3;
16815 }
16816 if let Some(_) = self.source_name {
16817 return 2;
16818 }
16819 if let Some(_) = self.source {
16820 return 1;
16821 }
16822 0
16823 }
16824 }
16825
16826 impl fidl::encoding::ValueTypeMarker for OfferProtocol {
16827 type Borrowed<'a> = &'a Self;
16828 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16829 value
16830 }
16831 }
16832
16833 unsafe impl fidl::encoding::TypeMarker for OfferProtocol {
16834 type Owned = Self;
16835
16836 #[inline(always)]
16837 fn inline_align(_context: fidl::encoding::Context) -> usize {
16838 8
16839 }
16840
16841 #[inline(always)]
16842 fn inline_size(_context: fidl::encoding::Context) -> usize {
16843 16
16844 }
16845 }
16846
16847 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferProtocol, D>
16848 for &OfferProtocol
16849 {
16850 unsafe fn encode(
16851 self,
16852 encoder: &mut fidl::encoding::Encoder<'_, D>,
16853 offset: usize,
16854 mut depth: fidl::encoding::Depth,
16855 ) -> fidl::Result<()> {
16856 encoder.debug_check_bounds::<OfferProtocol>(offset);
16857 let max_ordinal: u64 = self.max_ordinal_present();
16859 encoder.write_num(max_ordinal, offset);
16860 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16861 if max_ordinal == 0 {
16863 return Ok(());
16864 }
16865 depth.increment()?;
16866 let envelope_size = 8;
16867 let bytes_len = max_ordinal as usize * envelope_size;
16868 #[allow(unused_variables)]
16869 let offset = encoder.out_of_line_offset(bytes_len);
16870 let mut _prev_end_offset: usize = 0;
16871 if 1 > max_ordinal {
16872 return Ok(());
16873 }
16874
16875 let cur_offset: usize = (1 - 1) * envelope_size;
16878
16879 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16881
16882 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16887 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16888 encoder,
16889 offset + cur_offset,
16890 depth,
16891 )?;
16892
16893 _prev_end_offset = cur_offset + envelope_size;
16894 if 2 > max_ordinal {
16895 return Ok(());
16896 }
16897
16898 let cur_offset: usize = (2 - 1) * envelope_size;
16901
16902 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16904
16905 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16910 self.source_name.as_ref().map(
16911 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16912 ),
16913 encoder,
16914 offset + cur_offset,
16915 depth,
16916 )?;
16917
16918 _prev_end_offset = cur_offset + envelope_size;
16919 if 3 > max_ordinal {
16920 return Ok(());
16921 }
16922
16923 let cur_offset: usize = (3 - 1) * envelope_size;
16926
16927 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16929
16930 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16935 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16936 encoder,
16937 offset + cur_offset,
16938 depth,
16939 )?;
16940
16941 _prev_end_offset = cur_offset + envelope_size;
16942 if 4 > max_ordinal {
16943 return Ok(());
16944 }
16945
16946 let cur_offset: usize = (4 - 1) * envelope_size;
16949
16950 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16952
16953 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16958 self.target_name.as_ref().map(
16959 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16960 ),
16961 encoder,
16962 offset + cur_offset,
16963 depth,
16964 )?;
16965
16966 _prev_end_offset = cur_offset + envelope_size;
16967 if 5 > max_ordinal {
16968 return Ok(());
16969 }
16970
16971 let cur_offset: usize = (5 - 1) * envelope_size;
16974
16975 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16977
16978 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
16983 self.dependency_type
16984 .as_ref()
16985 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
16986 encoder,
16987 offset + cur_offset,
16988 depth,
16989 )?;
16990
16991 _prev_end_offset = cur_offset + envelope_size;
16992 if 6 > max_ordinal {
16993 return Ok(());
16994 }
16995
16996 let cur_offset: usize = (6 - 1) * envelope_size;
16999
17000 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17002
17003 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
17008 self.availability
17009 .as_ref()
17010 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
17011 encoder,
17012 offset + cur_offset,
17013 depth,
17014 )?;
17015
17016 _prev_end_offset = cur_offset + envelope_size;
17017 if 7 > max_ordinal {
17018 return Ok(());
17019 }
17020
17021 let cur_offset: usize = (7 - 1) * envelope_size;
17024
17025 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17027
17028 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
17033 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
17034 encoder, offset + cur_offset, depth
17035 )?;
17036
17037 _prev_end_offset = cur_offset + envelope_size;
17038
17039 Ok(())
17040 }
17041 }
17042
17043 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferProtocol {
17044 #[inline(always)]
17045 fn new_empty() -> Self {
17046 Self::default()
17047 }
17048
17049 unsafe fn decode(
17050 &mut self,
17051 decoder: &mut fidl::encoding::Decoder<'_, D>,
17052 offset: usize,
17053 mut depth: fidl::encoding::Depth,
17054 ) -> fidl::Result<()> {
17055 decoder.debug_check_bounds::<Self>(offset);
17056 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17057 None => return Err(fidl::Error::NotNullable),
17058 Some(len) => len,
17059 };
17060 if len == 0 {
17062 return Ok(());
17063 };
17064 depth.increment()?;
17065 let envelope_size = 8;
17066 let bytes_len = len * envelope_size;
17067 let offset = decoder.out_of_line_offset(bytes_len)?;
17068 let mut _next_ordinal_to_read = 0;
17070 let mut next_offset = offset;
17071 let end_offset = offset + bytes_len;
17072 _next_ordinal_to_read += 1;
17073 if next_offset >= end_offset {
17074 return Ok(());
17075 }
17076
17077 while _next_ordinal_to_read < 1 {
17079 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17080 _next_ordinal_to_read += 1;
17081 next_offset += envelope_size;
17082 }
17083
17084 let next_out_of_line = decoder.next_out_of_line();
17085 let handles_before = decoder.remaining_handles();
17086 if let Some((inlined, num_bytes, num_handles)) =
17087 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17088 {
17089 let member_inline_size =
17090 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17091 if inlined != (member_inline_size <= 4) {
17092 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17093 }
17094 let inner_offset;
17095 let mut inner_depth = depth.clone();
17096 if inlined {
17097 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17098 inner_offset = next_offset;
17099 } else {
17100 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17101 inner_depth.increment()?;
17102 }
17103 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17104 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17105 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17106 {
17107 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17108 }
17109 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17110 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17111 }
17112 }
17113
17114 next_offset += envelope_size;
17115 _next_ordinal_to_read += 1;
17116 if next_offset >= end_offset {
17117 return Ok(());
17118 }
17119
17120 while _next_ordinal_to_read < 2 {
17122 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17123 _next_ordinal_to_read += 1;
17124 next_offset += envelope_size;
17125 }
17126
17127 let next_out_of_line = decoder.next_out_of_line();
17128 let handles_before = decoder.remaining_handles();
17129 if let Some((inlined, num_bytes, num_handles)) =
17130 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17131 {
17132 let member_inline_size =
17133 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17134 decoder.context,
17135 );
17136 if inlined != (member_inline_size <= 4) {
17137 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17138 }
17139 let inner_offset;
17140 let mut inner_depth = depth.clone();
17141 if inlined {
17142 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17143 inner_offset = next_offset;
17144 } else {
17145 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17146 inner_depth.increment()?;
17147 }
17148 let val_ref = self
17149 .source_name
17150 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17151 fidl::decode!(
17152 fidl::encoding::BoundedString<100>,
17153 D,
17154 val_ref,
17155 decoder,
17156 inner_offset,
17157 inner_depth
17158 )?;
17159 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17160 {
17161 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17162 }
17163 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17164 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17165 }
17166 }
17167
17168 next_offset += envelope_size;
17169 _next_ordinal_to_read += 1;
17170 if next_offset >= end_offset {
17171 return Ok(());
17172 }
17173
17174 while _next_ordinal_to_read < 3 {
17176 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17177 _next_ordinal_to_read += 1;
17178 next_offset += envelope_size;
17179 }
17180
17181 let next_out_of_line = decoder.next_out_of_line();
17182 let handles_before = decoder.remaining_handles();
17183 if let Some((inlined, num_bytes, num_handles)) =
17184 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17185 {
17186 let member_inline_size =
17187 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17188 if inlined != (member_inline_size <= 4) {
17189 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17190 }
17191 let inner_offset;
17192 let mut inner_depth = depth.clone();
17193 if inlined {
17194 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17195 inner_offset = next_offset;
17196 } else {
17197 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17198 inner_depth.increment()?;
17199 }
17200 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17201 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17202 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17203 {
17204 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17205 }
17206 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17207 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17208 }
17209 }
17210
17211 next_offset += envelope_size;
17212 _next_ordinal_to_read += 1;
17213 if next_offset >= end_offset {
17214 return Ok(());
17215 }
17216
17217 while _next_ordinal_to_read < 4 {
17219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17220 _next_ordinal_to_read += 1;
17221 next_offset += envelope_size;
17222 }
17223
17224 let next_out_of_line = decoder.next_out_of_line();
17225 let handles_before = decoder.remaining_handles();
17226 if let Some((inlined, num_bytes, num_handles)) =
17227 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17228 {
17229 let member_inline_size =
17230 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17231 decoder.context,
17232 );
17233 if inlined != (member_inline_size <= 4) {
17234 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17235 }
17236 let inner_offset;
17237 let mut inner_depth = depth.clone();
17238 if inlined {
17239 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17240 inner_offset = next_offset;
17241 } else {
17242 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17243 inner_depth.increment()?;
17244 }
17245 let val_ref = self
17246 .target_name
17247 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17248 fidl::decode!(
17249 fidl::encoding::BoundedString<100>,
17250 D,
17251 val_ref,
17252 decoder,
17253 inner_offset,
17254 inner_depth
17255 )?;
17256 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17257 {
17258 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17259 }
17260 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17261 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17262 }
17263 }
17264
17265 next_offset += envelope_size;
17266 _next_ordinal_to_read += 1;
17267 if next_offset >= end_offset {
17268 return Ok(());
17269 }
17270
17271 while _next_ordinal_to_read < 5 {
17273 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17274 _next_ordinal_to_read += 1;
17275 next_offset += envelope_size;
17276 }
17277
17278 let next_out_of_line = decoder.next_out_of_line();
17279 let handles_before = decoder.remaining_handles();
17280 if let Some((inlined, num_bytes, num_handles)) =
17281 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17282 {
17283 let member_inline_size =
17284 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17285 if inlined != (member_inline_size <= 4) {
17286 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17287 }
17288 let inner_offset;
17289 let mut inner_depth = depth.clone();
17290 if inlined {
17291 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17292 inner_offset = next_offset;
17293 } else {
17294 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17295 inner_depth.increment()?;
17296 }
17297 let val_ref =
17298 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
17299 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
17300 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17301 {
17302 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17303 }
17304 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17305 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17306 }
17307 }
17308
17309 next_offset += envelope_size;
17310 _next_ordinal_to_read += 1;
17311 if next_offset >= end_offset {
17312 return Ok(());
17313 }
17314
17315 while _next_ordinal_to_read < 6 {
17317 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17318 _next_ordinal_to_read += 1;
17319 next_offset += envelope_size;
17320 }
17321
17322 let next_out_of_line = decoder.next_out_of_line();
17323 let handles_before = decoder.remaining_handles();
17324 if let Some((inlined, num_bytes, num_handles)) =
17325 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17326 {
17327 let member_inline_size =
17328 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17329 if inlined != (member_inline_size <= 4) {
17330 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17331 }
17332 let inner_offset;
17333 let mut inner_depth = depth.clone();
17334 if inlined {
17335 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17336 inner_offset = next_offset;
17337 } else {
17338 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17339 inner_depth.increment()?;
17340 }
17341 let val_ref =
17342 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
17343 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
17344 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17345 {
17346 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17347 }
17348 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17349 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17350 }
17351 }
17352
17353 next_offset += envelope_size;
17354 _next_ordinal_to_read += 1;
17355 if next_offset >= end_offset {
17356 return Ok(());
17357 }
17358
17359 while _next_ordinal_to_read < 7 {
17361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17362 _next_ordinal_to_read += 1;
17363 next_offset += envelope_size;
17364 }
17365
17366 let next_out_of_line = decoder.next_out_of_line();
17367 let handles_before = decoder.remaining_handles();
17368 if let Some((inlined, num_bytes, num_handles)) =
17369 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17370 {
17371 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17372 if inlined != (member_inline_size <= 4) {
17373 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17374 }
17375 let inner_offset;
17376 let mut inner_depth = depth.clone();
17377 if inlined {
17378 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17379 inner_offset = next_offset;
17380 } else {
17381 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17382 inner_depth.increment()?;
17383 }
17384 let val_ref = self.source_dictionary.get_or_insert_with(|| {
17385 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
17386 });
17387 fidl::decode!(
17388 fidl::encoding::BoundedString<1024>,
17389 D,
17390 val_ref,
17391 decoder,
17392 inner_offset,
17393 inner_depth
17394 )?;
17395 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17396 {
17397 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17398 }
17399 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17400 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17401 }
17402 }
17403
17404 next_offset += envelope_size;
17405
17406 while next_offset < end_offset {
17408 _next_ordinal_to_read += 1;
17409 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17410 next_offset += envelope_size;
17411 }
17412
17413 Ok(())
17414 }
17415 }
17416
17417 impl OfferResolver {
17418 #[inline(always)]
17419 fn max_ordinal_present(&self) -> u64 {
17420 if let Some(_) = self.source_dictionary {
17421 return 5;
17422 }
17423 if let Some(_) = self.target_name {
17424 return 4;
17425 }
17426 if let Some(_) = self.target {
17427 return 3;
17428 }
17429 if let Some(_) = self.source_name {
17430 return 2;
17431 }
17432 if let Some(_) = self.source {
17433 return 1;
17434 }
17435 0
17436 }
17437 }
17438
17439 impl fidl::encoding::ValueTypeMarker for OfferResolver {
17440 type Borrowed<'a> = &'a Self;
17441 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17442 value
17443 }
17444 }
17445
17446 unsafe impl fidl::encoding::TypeMarker for OfferResolver {
17447 type Owned = Self;
17448
17449 #[inline(always)]
17450 fn inline_align(_context: fidl::encoding::Context) -> usize {
17451 8
17452 }
17453
17454 #[inline(always)]
17455 fn inline_size(_context: fidl::encoding::Context) -> usize {
17456 16
17457 }
17458 }
17459
17460 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferResolver, D>
17461 for &OfferResolver
17462 {
17463 unsafe fn encode(
17464 self,
17465 encoder: &mut fidl::encoding::Encoder<'_, D>,
17466 offset: usize,
17467 mut depth: fidl::encoding::Depth,
17468 ) -> fidl::Result<()> {
17469 encoder.debug_check_bounds::<OfferResolver>(offset);
17470 let max_ordinal: u64 = self.max_ordinal_present();
17472 encoder.write_num(max_ordinal, offset);
17473 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17474 if max_ordinal == 0 {
17476 return Ok(());
17477 }
17478 depth.increment()?;
17479 let envelope_size = 8;
17480 let bytes_len = max_ordinal as usize * envelope_size;
17481 #[allow(unused_variables)]
17482 let offset = encoder.out_of_line_offset(bytes_len);
17483 let mut _prev_end_offset: usize = 0;
17484 if 1 > max_ordinal {
17485 return Ok(());
17486 }
17487
17488 let cur_offset: usize = (1 - 1) * envelope_size;
17491
17492 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17494
17495 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17500 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17501 encoder,
17502 offset + cur_offset,
17503 depth,
17504 )?;
17505
17506 _prev_end_offset = cur_offset + envelope_size;
17507 if 2 > max_ordinal {
17508 return Ok(());
17509 }
17510
17511 let cur_offset: usize = (2 - 1) * envelope_size;
17514
17515 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17517
17518 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17523 self.source_name.as_ref().map(
17524 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
17525 ),
17526 encoder,
17527 offset + cur_offset,
17528 depth,
17529 )?;
17530
17531 _prev_end_offset = cur_offset + envelope_size;
17532 if 3 > max_ordinal {
17533 return Ok(());
17534 }
17535
17536 let cur_offset: usize = (3 - 1) * envelope_size;
17539
17540 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17542
17543 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17548 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17549 encoder,
17550 offset + cur_offset,
17551 depth,
17552 )?;
17553
17554 _prev_end_offset = cur_offset + envelope_size;
17555 if 4 > max_ordinal {
17556 return Ok(());
17557 }
17558
17559 let cur_offset: usize = (4 - 1) * envelope_size;
17562
17563 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17565
17566 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17571 self.target_name.as_ref().map(
17572 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
17573 ),
17574 encoder,
17575 offset + cur_offset,
17576 depth,
17577 )?;
17578
17579 _prev_end_offset = cur_offset + envelope_size;
17580 if 5 > max_ordinal {
17581 return Ok(());
17582 }
17583
17584 let cur_offset: usize = (5 - 1) * envelope_size;
17587
17588 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17590
17591 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
17596 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
17597 encoder, offset + cur_offset, depth
17598 )?;
17599
17600 _prev_end_offset = cur_offset + envelope_size;
17601
17602 Ok(())
17603 }
17604 }
17605
17606 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferResolver {
17607 #[inline(always)]
17608 fn new_empty() -> Self {
17609 Self::default()
17610 }
17611
17612 unsafe fn decode(
17613 &mut self,
17614 decoder: &mut fidl::encoding::Decoder<'_, D>,
17615 offset: usize,
17616 mut depth: fidl::encoding::Depth,
17617 ) -> fidl::Result<()> {
17618 decoder.debug_check_bounds::<Self>(offset);
17619 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17620 None => return Err(fidl::Error::NotNullable),
17621 Some(len) => len,
17622 };
17623 if len == 0 {
17625 return Ok(());
17626 };
17627 depth.increment()?;
17628 let envelope_size = 8;
17629 let bytes_len = len * envelope_size;
17630 let offset = decoder.out_of_line_offset(bytes_len)?;
17631 let mut _next_ordinal_to_read = 0;
17633 let mut next_offset = offset;
17634 let end_offset = offset + bytes_len;
17635 _next_ordinal_to_read += 1;
17636 if next_offset >= end_offset {
17637 return Ok(());
17638 }
17639
17640 while _next_ordinal_to_read < 1 {
17642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17643 _next_ordinal_to_read += 1;
17644 next_offset += envelope_size;
17645 }
17646
17647 let next_out_of_line = decoder.next_out_of_line();
17648 let handles_before = decoder.remaining_handles();
17649 if let Some((inlined, num_bytes, num_handles)) =
17650 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17651 {
17652 let member_inline_size =
17653 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17654 if inlined != (member_inline_size <= 4) {
17655 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17656 }
17657 let inner_offset;
17658 let mut inner_depth = depth.clone();
17659 if inlined {
17660 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17661 inner_offset = next_offset;
17662 } else {
17663 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17664 inner_depth.increment()?;
17665 }
17666 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17667 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17668 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17669 {
17670 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17671 }
17672 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17673 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17674 }
17675 }
17676
17677 next_offset += envelope_size;
17678 _next_ordinal_to_read += 1;
17679 if next_offset >= end_offset {
17680 return Ok(());
17681 }
17682
17683 while _next_ordinal_to_read < 2 {
17685 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17686 _next_ordinal_to_read += 1;
17687 next_offset += envelope_size;
17688 }
17689
17690 let next_out_of_line = decoder.next_out_of_line();
17691 let handles_before = decoder.remaining_handles();
17692 if let Some((inlined, num_bytes, num_handles)) =
17693 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17694 {
17695 let member_inline_size =
17696 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17697 decoder.context,
17698 );
17699 if inlined != (member_inline_size <= 4) {
17700 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17701 }
17702 let inner_offset;
17703 let mut inner_depth = depth.clone();
17704 if inlined {
17705 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17706 inner_offset = next_offset;
17707 } else {
17708 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17709 inner_depth.increment()?;
17710 }
17711 let val_ref = self
17712 .source_name
17713 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17714 fidl::decode!(
17715 fidl::encoding::BoundedString<100>,
17716 D,
17717 val_ref,
17718 decoder,
17719 inner_offset,
17720 inner_depth
17721 )?;
17722 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17723 {
17724 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17725 }
17726 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17727 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17728 }
17729 }
17730
17731 next_offset += envelope_size;
17732 _next_ordinal_to_read += 1;
17733 if next_offset >= end_offset {
17734 return Ok(());
17735 }
17736
17737 while _next_ordinal_to_read < 3 {
17739 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17740 _next_ordinal_to_read += 1;
17741 next_offset += envelope_size;
17742 }
17743
17744 let next_out_of_line = decoder.next_out_of_line();
17745 let handles_before = decoder.remaining_handles();
17746 if let Some((inlined, num_bytes, num_handles)) =
17747 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17748 {
17749 let member_inline_size =
17750 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17751 if inlined != (member_inline_size <= 4) {
17752 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17753 }
17754 let inner_offset;
17755 let mut inner_depth = depth.clone();
17756 if inlined {
17757 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17758 inner_offset = next_offset;
17759 } else {
17760 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17761 inner_depth.increment()?;
17762 }
17763 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17764 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17765 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17766 {
17767 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17768 }
17769 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17770 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17771 }
17772 }
17773
17774 next_offset += envelope_size;
17775 _next_ordinal_to_read += 1;
17776 if next_offset >= end_offset {
17777 return Ok(());
17778 }
17779
17780 while _next_ordinal_to_read < 4 {
17782 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17783 _next_ordinal_to_read += 1;
17784 next_offset += envelope_size;
17785 }
17786
17787 let next_out_of_line = decoder.next_out_of_line();
17788 let handles_before = decoder.remaining_handles();
17789 if let Some((inlined, num_bytes, num_handles)) =
17790 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17791 {
17792 let member_inline_size =
17793 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17794 decoder.context,
17795 );
17796 if inlined != (member_inline_size <= 4) {
17797 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17798 }
17799 let inner_offset;
17800 let mut inner_depth = depth.clone();
17801 if inlined {
17802 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17803 inner_offset = next_offset;
17804 } else {
17805 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17806 inner_depth.increment()?;
17807 }
17808 let val_ref = self
17809 .target_name
17810 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17811 fidl::decode!(
17812 fidl::encoding::BoundedString<100>,
17813 D,
17814 val_ref,
17815 decoder,
17816 inner_offset,
17817 inner_depth
17818 )?;
17819 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17820 {
17821 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17822 }
17823 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17824 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17825 }
17826 }
17827
17828 next_offset += envelope_size;
17829 _next_ordinal_to_read += 1;
17830 if next_offset >= end_offset {
17831 return Ok(());
17832 }
17833
17834 while _next_ordinal_to_read < 5 {
17836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17837 _next_ordinal_to_read += 1;
17838 next_offset += envelope_size;
17839 }
17840
17841 let next_out_of_line = decoder.next_out_of_line();
17842 let handles_before = decoder.remaining_handles();
17843 if let Some((inlined, num_bytes, num_handles)) =
17844 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17845 {
17846 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17847 if inlined != (member_inline_size <= 4) {
17848 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17849 }
17850 let inner_offset;
17851 let mut inner_depth = depth.clone();
17852 if inlined {
17853 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17854 inner_offset = next_offset;
17855 } else {
17856 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17857 inner_depth.increment()?;
17858 }
17859 let val_ref = self.source_dictionary.get_or_insert_with(|| {
17860 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
17861 });
17862 fidl::decode!(
17863 fidl::encoding::BoundedString<1024>,
17864 D,
17865 val_ref,
17866 decoder,
17867 inner_offset,
17868 inner_depth
17869 )?;
17870 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17871 {
17872 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17873 }
17874 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17875 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17876 }
17877 }
17878
17879 next_offset += envelope_size;
17880
17881 while next_offset < end_offset {
17883 _next_ordinal_to_read += 1;
17884 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17885 next_offset += envelope_size;
17886 }
17887
17888 Ok(())
17889 }
17890 }
17891
17892 impl OfferRunner {
17893 #[inline(always)]
17894 fn max_ordinal_present(&self) -> u64 {
17895 if let Some(_) = self.source_dictionary {
17896 return 5;
17897 }
17898 if let Some(_) = self.target_name {
17899 return 4;
17900 }
17901 if let Some(_) = self.target {
17902 return 3;
17903 }
17904 if let Some(_) = self.source_name {
17905 return 2;
17906 }
17907 if let Some(_) = self.source {
17908 return 1;
17909 }
17910 0
17911 }
17912 }
17913
17914 impl fidl::encoding::ValueTypeMarker for OfferRunner {
17915 type Borrowed<'a> = &'a Self;
17916 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17917 value
17918 }
17919 }
17920
17921 unsafe impl fidl::encoding::TypeMarker for OfferRunner {
17922 type Owned = Self;
17923
17924 #[inline(always)]
17925 fn inline_align(_context: fidl::encoding::Context) -> usize {
17926 8
17927 }
17928
17929 #[inline(always)]
17930 fn inline_size(_context: fidl::encoding::Context) -> usize {
17931 16
17932 }
17933 }
17934
17935 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferRunner, D>
17936 for &OfferRunner
17937 {
17938 unsafe fn encode(
17939 self,
17940 encoder: &mut fidl::encoding::Encoder<'_, D>,
17941 offset: usize,
17942 mut depth: fidl::encoding::Depth,
17943 ) -> fidl::Result<()> {
17944 encoder.debug_check_bounds::<OfferRunner>(offset);
17945 let max_ordinal: u64 = self.max_ordinal_present();
17947 encoder.write_num(max_ordinal, offset);
17948 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17949 if max_ordinal == 0 {
17951 return Ok(());
17952 }
17953 depth.increment()?;
17954 let envelope_size = 8;
17955 let bytes_len = max_ordinal as usize * envelope_size;
17956 #[allow(unused_variables)]
17957 let offset = encoder.out_of_line_offset(bytes_len);
17958 let mut _prev_end_offset: usize = 0;
17959 if 1 > max_ordinal {
17960 return Ok(());
17961 }
17962
17963 let cur_offset: usize = (1 - 1) * envelope_size;
17966
17967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17969
17970 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17975 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17976 encoder,
17977 offset + cur_offset,
17978 depth,
17979 )?;
17980
17981 _prev_end_offset = cur_offset + envelope_size;
17982 if 2 > max_ordinal {
17983 return Ok(());
17984 }
17985
17986 let cur_offset: usize = (2 - 1) * envelope_size;
17989
17990 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17992
17993 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17998 self.source_name.as_ref().map(
17999 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18000 ),
18001 encoder,
18002 offset + cur_offset,
18003 depth,
18004 )?;
18005
18006 _prev_end_offset = cur_offset + envelope_size;
18007 if 3 > max_ordinal {
18008 return Ok(());
18009 }
18010
18011 let cur_offset: usize = (3 - 1) * envelope_size;
18014
18015 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18017
18018 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18023 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18024 encoder,
18025 offset + cur_offset,
18026 depth,
18027 )?;
18028
18029 _prev_end_offset = cur_offset + envelope_size;
18030 if 4 > max_ordinal {
18031 return Ok(());
18032 }
18033
18034 let cur_offset: usize = (4 - 1) * envelope_size;
18037
18038 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18040
18041 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
18046 self.target_name.as_ref().map(
18047 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18048 ),
18049 encoder,
18050 offset + cur_offset,
18051 depth,
18052 )?;
18053
18054 _prev_end_offset = cur_offset + envelope_size;
18055 if 5 > max_ordinal {
18056 return Ok(());
18057 }
18058
18059 let cur_offset: usize = (5 - 1) * envelope_size;
18062
18063 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18065
18066 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
18071 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
18072 encoder, offset + cur_offset, depth
18073 )?;
18074
18075 _prev_end_offset = cur_offset + envelope_size;
18076
18077 Ok(())
18078 }
18079 }
18080
18081 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferRunner {
18082 #[inline(always)]
18083 fn new_empty() -> Self {
18084 Self::default()
18085 }
18086
18087 unsafe fn decode(
18088 &mut self,
18089 decoder: &mut fidl::encoding::Decoder<'_, D>,
18090 offset: usize,
18091 mut depth: fidl::encoding::Depth,
18092 ) -> fidl::Result<()> {
18093 decoder.debug_check_bounds::<Self>(offset);
18094 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18095 None => return Err(fidl::Error::NotNullable),
18096 Some(len) => len,
18097 };
18098 if len == 0 {
18100 return Ok(());
18101 };
18102 depth.increment()?;
18103 let envelope_size = 8;
18104 let bytes_len = len * envelope_size;
18105 let offset = decoder.out_of_line_offset(bytes_len)?;
18106 let mut _next_ordinal_to_read = 0;
18108 let mut next_offset = offset;
18109 let end_offset = offset + bytes_len;
18110 _next_ordinal_to_read += 1;
18111 if next_offset >= end_offset {
18112 return Ok(());
18113 }
18114
18115 while _next_ordinal_to_read < 1 {
18117 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18118 _next_ordinal_to_read += 1;
18119 next_offset += envelope_size;
18120 }
18121
18122 let next_out_of_line = decoder.next_out_of_line();
18123 let handles_before = decoder.remaining_handles();
18124 if let Some((inlined, num_bytes, num_handles)) =
18125 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18126 {
18127 let member_inline_size =
18128 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18129 if inlined != (member_inline_size <= 4) {
18130 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18131 }
18132 let inner_offset;
18133 let mut inner_depth = depth.clone();
18134 if inlined {
18135 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18136 inner_offset = next_offset;
18137 } else {
18138 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18139 inner_depth.increment()?;
18140 }
18141 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18142 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18143 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18144 {
18145 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18146 }
18147 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18148 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18149 }
18150 }
18151
18152 next_offset += envelope_size;
18153 _next_ordinal_to_read += 1;
18154 if next_offset >= end_offset {
18155 return Ok(());
18156 }
18157
18158 while _next_ordinal_to_read < 2 {
18160 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18161 _next_ordinal_to_read += 1;
18162 next_offset += envelope_size;
18163 }
18164
18165 let next_out_of_line = decoder.next_out_of_line();
18166 let handles_before = decoder.remaining_handles();
18167 if let Some((inlined, num_bytes, num_handles)) =
18168 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18169 {
18170 let member_inline_size =
18171 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18172 decoder.context,
18173 );
18174 if inlined != (member_inline_size <= 4) {
18175 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18176 }
18177 let inner_offset;
18178 let mut inner_depth = depth.clone();
18179 if inlined {
18180 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18181 inner_offset = next_offset;
18182 } else {
18183 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18184 inner_depth.increment()?;
18185 }
18186 let val_ref = self
18187 .source_name
18188 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18189 fidl::decode!(
18190 fidl::encoding::BoundedString<100>,
18191 D,
18192 val_ref,
18193 decoder,
18194 inner_offset,
18195 inner_depth
18196 )?;
18197 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18198 {
18199 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18200 }
18201 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18202 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18203 }
18204 }
18205
18206 next_offset += envelope_size;
18207 _next_ordinal_to_read += 1;
18208 if next_offset >= end_offset {
18209 return Ok(());
18210 }
18211
18212 while _next_ordinal_to_read < 3 {
18214 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18215 _next_ordinal_to_read += 1;
18216 next_offset += envelope_size;
18217 }
18218
18219 let next_out_of_line = decoder.next_out_of_line();
18220 let handles_before = decoder.remaining_handles();
18221 if let Some((inlined, num_bytes, num_handles)) =
18222 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18223 {
18224 let member_inline_size =
18225 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18226 if inlined != (member_inline_size <= 4) {
18227 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18228 }
18229 let inner_offset;
18230 let mut inner_depth = depth.clone();
18231 if inlined {
18232 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18233 inner_offset = next_offset;
18234 } else {
18235 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18236 inner_depth.increment()?;
18237 }
18238 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18239 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18240 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18241 {
18242 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18243 }
18244 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18245 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18246 }
18247 }
18248
18249 next_offset += envelope_size;
18250 _next_ordinal_to_read += 1;
18251 if next_offset >= end_offset {
18252 return Ok(());
18253 }
18254
18255 while _next_ordinal_to_read < 4 {
18257 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18258 _next_ordinal_to_read += 1;
18259 next_offset += envelope_size;
18260 }
18261
18262 let next_out_of_line = decoder.next_out_of_line();
18263 let handles_before = decoder.remaining_handles();
18264 if let Some((inlined, num_bytes, num_handles)) =
18265 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18266 {
18267 let member_inline_size =
18268 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18269 decoder.context,
18270 );
18271 if inlined != (member_inline_size <= 4) {
18272 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18273 }
18274 let inner_offset;
18275 let mut inner_depth = depth.clone();
18276 if inlined {
18277 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18278 inner_offset = next_offset;
18279 } else {
18280 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18281 inner_depth.increment()?;
18282 }
18283 let val_ref = self
18284 .target_name
18285 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18286 fidl::decode!(
18287 fidl::encoding::BoundedString<100>,
18288 D,
18289 val_ref,
18290 decoder,
18291 inner_offset,
18292 inner_depth
18293 )?;
18294 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18295 {
18296 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18297 }
18298 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18299 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18300 }
18301 }
18302
18303 next_offset += envelope_size;
18304 _next_ordinal_to_read += 1;
18305 if next_offset >= end_offset {
18306 return Ok(());
18307 }
18308
18309 while _next_ordinal_to_read < 5 {
18311 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18312 _next_ordinal_to_read += 1;
18313 next_offset += envelope_size;
18314 }
18315
18316 let next_out_of_line = decoder.next_out_of_line();
18317 let handles_before = decoder.remaining_handles();
18318 if let Some((inlined, num_bytes, num_handles)) =
18319 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18320 {
18321 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18322 if inlined != (member_inline_size <= 4) {
18323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18324 }
18325 let inner_offset;
18326 let mut inner_depth = depth.clone();
18327 if inlined {
18328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18329 inner_offset = next_offset;
18330 } else {
18331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18332 inner_depth.increment()?;
18333 }
18334 let val_ref = self.source_dictionary.get_or_insert_with(|| {
18335 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
18336 });
18337 fidl::decode!(
18338 fidl::encoding::BoundedString<1024>,
18339 D,
18340 val_ref,
18341 decoder,
18342 inner_offset,
18343 inner_depth
18344 )?;
18345 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18346 {
18347 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18348 }
18349 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18350 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18351 }
18352 }
18353
18354 next_offset += envelope_size;
18355
18356 while next_offset < end_offset {
18358 _next_ordinal_to_read += 1;
18359 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18360 next_offset += envelope_size;
18361 }
18362
18363 Ok(())
18364 }
18365 }
18366
18367 impl OfferService {
18368 #[inline(always)]
18369 fn max_ordinal_present(&self) -> u64 {
18370 if let Some(_) = self.dependency_type {
18371 return 9;
18372 }
18373 if let Some(_) = self.source_dictionary {
18374 return 8;
18375 }
18376 if let Some(_) = self.availability {
18377 return 7;
18378 }
18379 if let Some(_) = self.renamed_instances {
18380 return 6;
18381 }
18382 if let Some(_) = self.source_instance_filter {
18383 return 5;
18384 }
18385 if let Some(_) = self.target_name {
18386 return 4;
18387 }
18388 if let Some(_) = self.target {
18389 return 3;
18390 }
18391 if let Some(_) = self.source_name {
18392 return 2;
18393 }
18394 if let Some(_) = self.source {
18395 return 1;
18396 }
18397 0
18398 }
18399 }
18400
18401 impl fidl::encoding::ValueTypeMarker for OfferService {
18402 type Borrowed<'a> = &'a Self;
18403 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18404 value
18405 }
18406 }
18407
18408 unsafe impl fidl::encoding::TypeMarker for OfferService {
18409 type Owned = Self;
18410
18411 #[inline(always)]
18412 fn inline_align(_context: fidl::encoding::Context) -> usize {
18413 8
18414 }
18415
18416 #[inline(always)]
18417 fn inline_size(_context: fidl::encoding::Context) -> usize {
18418 16
18419 }
18420 }
18421
18422 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferService, D>
18423 for &OfferService
18424 {
18425 unsafe fn encode(
18426 self,
18427 encoder: &mut fidl::encoding::Encoder<'_, D>,
18428 offset: usize,
18429 mut depth: fidl::encoding::Depth,
18430 ) -> fidl::Result<()> {
18431 encoder.debug_check_bounds::<OfferService>(offset);
18432 let max_ordinal: u64 = self.max_ordinal_present();
18434 encoder.write_num(max_ordinal, offset);
18435 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18436 if max_ordinal == 0 {
18438 return Ok(());
18439 }
18440 depth.increment()?;
18441 let envelope_size = 8;
18442 let bytes_len = max_ordinal as usize * envelope_size;
18443 #[allow(unused_variables)]
18444 let offset = encoder.out_of_line_offset(bytes_len);
18445 let mut _prev_end_offset: usize = 0;
18446 if 1 > max_ordinal {
18447 return Ok(());
18448 }
18449
18450 let cur_offset: usize = (1 - 1) * envelope_size;
18453
18454 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18456
18457 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18462 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18463 encoder,
18464 offset + cur_offset,
18465 depth,
18466 )?;
18467
18468 _prev_end_offset = cur_offset + envelope_size;
18469 if 2 > max_ordinal {
18470 return Ok(());
18471 }
18472
18473 let cur_offset: usize = (2 - 1) * envelope_size;
18476
18477 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18479
18480 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
18485 self.source_name.as_ref().map(
18486 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18487 ),
18488 encoder,
18489 offset + cur_offset,
18490 depth,
18491 )?;
18492
18493 _prev_end_offset = cur_offset + envelope_size;
18494 if 3 > max_ordinal {
18495 return Ok(());
18496 }
18497
18498 let cur_offset: usize = (3 - 1) * envelope_size;
18501
18502 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18504
18505 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18510 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18511 encoder,
18512 offset + cur_offset,
18513 depth,
18514 )?;
18515
18516 _prev_end_offset = cur_offset + envelope_size;
18517 if 4 > max_ordinal {
18518 return Ok(());
18519 }
18520
18521 let cur_offset: usize = (4 - 1) * envelope_size;
18524
18525 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18527
18528 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
18533 self.target_name.as_ref().map(
18534 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18535 ),
18536 encoder,
18537 offset + cur_offset,
18538 depth,
18539 )?;
18540
18541 _prev_end_offset = cur_offset + envelope_size;
18542 if 5 > max_ordinal {
18543 return Ok(());
18544 }
18545
18546 let cur_offset: usize = (5 - 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<fidl::encoding::BoundedString<100>>, D>(
18558 self.source_instance_filter.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>> as fidl::encoding::ValueTypeMarker>::borrow),
18559 encoder, offset + cur_offset, depth
18560 )?;
18561
18562 _prev_end_offset = cur_offset + envelope_size;
18563 if 6 > max_ordinal {
18564 return Ok(());
18565 }
18566
18567 let cur_offset: usize = (6 - 1) * envelope_size;
18570
18571 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18573
18574 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<NameMapping>, D>(
18579 self.renamed_instances.as_ref().map(<fidl::encoding::UnboundedVector<NameMapping> as fidl::encoding::ValueTypeMarker>::borrow),
18580 encoder, offset + cur_offset, depth
18581 )?;
18582
18583 _prev_end_offset = cur_offset + envelope_size;
18584 if 7 > max_ordinal {
18585 return Ok(());
18586 }
18587
18588 let cur_offset: usize = (7 - 1) * envelope_size;
18591
18592 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18594
18595 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
18600 self.availability
18601 .as_ref()
18602 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
18603 encoder,
18604 offset + cur_offset,
18605 depth,
18606 )?;
18607
18608 _prev_end_offset = cur_offset + envelope_size;
18609 if 8 > max_ordinal {
18610 return Ok(());
18611 }
18612
18613 let cur_offset: usize = (8 - 1) * envelope_size;
18616
18617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18619
18620 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
18625 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
18626 encoder, offset + cur_offset, depth
18627 )?;
18628
18629 _prev_end_offset = cur_offset + envelope_size;
18630 if 9 > max_ordinal {
18631 return Ok(());
18632 }
18633
18634 let cur_offset: usize = (9 - 1) * envelope_size;
18637
18638 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18640
18641 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
18646 self.dependency_type
18647 .as_ref()
18648 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
18649 encoder,
18650 offset + cur_offset,
18651 depth,
18652 )?;
18653
18654 _prev_end_offset = cur_offset + envelope_size;
18655
18656 Ok(())
18657 }
18658 }
18659
18660 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferService {
18661 #[inline(always)]
18662 fn new_empty() -> Self {
18663 Self::default()
18664 }
18665
18666 unsafe fn decode(
18667 &mut self,
18668 decoder: &mut fidl::encoding::Decoder<'_, D>,
18669 offset: usize,
18670 mut depth: fidl::encoding::Depth,
18671 ) -> fidl::Result<()> {
18672 decoder.debug_check_bounds::<Self>(offset);
18673 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18674 None => return Err(fidl::Error::NotNullable),
18675 Some(len) => len,
18676 };
18677 if len == 0 {
18679 return Ok(());
18680 };
18681 depth.increment()?;
18682 let envelope_size = 8;
18683 let bytes_len = len * envelope_size;
18684 let offset = decoder.out_of_line_offset(bytes_len)?;
18685 let mut _next_ordinal_to_read = 0;
18687 let mut next_offset = offset;
18688 let end_offset = offset + bytes_len;
18689 _next_ordinal_to_read += 1;
18690 if next_offset >= end_offset {
18691 return Ok(());
18692 }
18693
18694 while _next_ordinal_to_read < 1 {
18696 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18697 _next_ordinal_to_read += 1;
18698 next_offset += envelope_size;
18699 }
18700
18701 let next_out_of_line = decoder.next_out_of_line();
18702 let handles_before = decoder.remaining_handles();
18703 if let Some((inlined, num_bytes, num_handles)) =
18704 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18705 {
18706 let member_inline_size =
18707 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18708 if inlined != (member_inline_size <= 4) {
18709 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18710 }
18711 let inner_offset;
18712 let mut inner_depth = depth.clone();
18713 if inlined {
18714 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18715 inner_offset = next_offset;
18716 } else {
18717 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18718 inner_depth.increment()?;
18719 }
18720 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18721 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18722 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18723 {
18724 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18725 }
18726 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18727 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18728 }
18729 }
18730
18731 next_offset += envelope_size;
18732 _next_ordinal_to_read += 1;
18733 if next_offset >= end_offset {
18734 return Ok(());
18735 }
18736
18737 while _next_ordinal_to_read < 2 {
18739 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18740 _next_ordinal_to_read += 1;
18741 next_offset += envelope_size;
18742 }
18743
18744 let next_out_of_line = decoder.next_out_of_line();
18745 let handles_before = decoder.remaining_handles();
18746 if let Some((inlined, num_bytes, num_handles)) =
18747 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18748 {
18749 let member_inline_size =
18750 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18751 decoder.context,
18752 );
18753 if inlined != (member_inline_size <= 4) {
18754 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18755 }
18756 let inner_offset;
18757 let mut inner_depth = depth.clone();
18758 if inlined {
18759 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18760 inner_offset = next_offset;
18761 } else {
18762 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18763 inner_depth.increment()?;
18764 }
18765 let val_ref = self
18766 .source_name
18767 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18768 fidl::decode!(
18769 fidl::encoding::BoundedString<100>,
18770 D,
18771 val_ref,
18772 decoder,
18773 inner_offset,
18774 inner_depth
18775 )?;
18776 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18777 {
18778 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18779 }
18780 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18781 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18782 }
18783 }
18784
18785 next_offset += envelope_size;
18786 _next_ordinal_to_read += 1;
18787 if next_offset >= end_offset {
18788 return Ok(());
18789 }
18790
18791 while _next_ordinal_to_read < 3 {
18793 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18794 _next_ordinal_to_read += 1;
18795 next_offset += envelope_size;
18796 }
18797
18798 let next_out_of_line = decoder.next_out_of_line();
18799 let handles_before = decoder.remaining_handles();
18800 if let Some((inlined, num_bytes, num_handles)) =
18801 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18802 {
18803 let member_inline_size =
18804 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18805 if inlined != (member_inline_size <= 4) {
18806 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18807 }
18808 let inner_offset;
18809 let mut inner_depth = depth.clone();
18810 if inlined {
18811 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18812 inner_offset = next_offset;
18813 } else {
18814 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18815 inner_depth.increment()?;
18816 }
18817 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18818 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18819 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18820 {
18821 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18822 }
18823 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18824 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18825 }
18826 }
18827
18828 next_offset += envelope_size;
18829 _next_ordinal_to_read += 1;
18830 if next_offset >= end_offset {
18831 return Ok(());
18832 }
18833
18834 while _next_ordinal_to_read < 4 {
18836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18837 _next_ordinal_to_read += 1;
18838 next_offset += envelope_size;
18839 }
18840
18841 let next_out_of_line = decoder.next_out_of_line();
18842 let handles_before = decoder.remaining_handles();
18843 if let Some((inlined, num_bytes, num_handles)) =
18844 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18845 {
18846 let member_inline_size =
18847 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18848 decoder.context,
18849 );
18850 if inlined != (member_inline_size <= 4) {
18851 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18852 }
18853 let inner_offset;
18854 let mut inner_depth = depth.clone();
18855 if inlined {
18856 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18857 inner_offset = next_offset;
18858 } else {
18859 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18860 inner_depth.increment()?;
18861 }
18862 let val_ref = self
18863 .target_name
18864 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18865 fidl::decode!(
18866 fidl::encoding::BoundedString<100>,
18867 D,
18868 val_ref,
18869 decoder,
18870 inner_offset,
18871 inner_depth
18872 )?;
18873 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18874 {
18875 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18876 }
18877 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18878 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18879 }
18880 }
18881
18882 next_offset += envelope_size;
18883 _next_ordinal_to_read += 1;
18884 if next_offset >= end_offset {
18885 return Ok(());
18886 }
18887
18888 while _next_ordinal_to_read < 5 {
18890 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18891 _next_ordinal_to_read += 1;
18892 next_offset += envelope_size;
18893 }
18894
18895 let next_out_of_line = decoder.next_out_of_line();
18896 let handles_before = decoder.remaining_handles();
18897 if let Some((inlined, num_bytes, num_handles)) =
18898 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18899 {
18900 let member_inline_size = <fidl::encoding::UnboundedVector<
18901 fidl::encoding::BoundedString<100>,
18902 > as fidl::encoding::TypeMarker>::inline_size(
18903 decoder.context
18904 );
18905 if inlined != (member_inline_size <= 4) {
18906 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18907 }
18908 let inner_offset;
18909 let mut inner_depth = depth.clone();
18910 if inlined {
18911 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18912 inner_offset = next_offset;
18913 } else {
18914 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18915 inner_depth.increment()?;
18916 }
18917 let val_ref = self.source_instance_filter.get_or_insert_with(|| {
18918 fidl::new_empty!(
18919 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>>,
18920 D
18921 )
18922 });
18923 fidl::decode!(
18924 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>>,
18925 D,
18926 val_ref,
18927 decoder,
18928 inner_offset,
18929 inner_depth
18930 )?;
18931 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18932 {
18933 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18934 }
18935 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18936 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18937 }
18938 }
18939
18940 next_offset += envelope_size;
18941 _next_ordinal_to_read += 1;
18942 if next_offset >= end_offset {
18943 return Ok(());
18944 }
18945
18946 while _next_ordinal_to_read < 6 {
18948 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18949 _next_ordinal_to_read += 1;
18950 next_offset += envelope_size;
18951 }
18952
18953 let next_out_of_line = decoder.next_out_of_line();
18954 let handles_before = decoder.remaining_handles();
18955 if let Some((inlined, num_bytes, num_handles)) =
18956 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18957 {
18958 let member_inline_size = <fidl::encoding::UnboundedVector<NameMapping> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18959 if inlined != (member_inline_size <= 4) {
18960 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18961 }
18962 let inner_offset;
18963 let mut inner_depth = depth.clone();
18964 if inlined {
18965 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18966 inner_offset = next_offset;
18967 } else {
18968 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18969 inner_depth.increment()?;
18970 }
18971 let val_ref = self.renamed_instances.get_or_insert_with(|| {
18972 fidl::new_empty!(fidl::encoding::UnboundedVector<NameMapping>, D)
18973 });
18974 fidl::decode!(
18975 fidl::encoding::UnboundedVector<NameMapping>,
18976 D,
18977 val_ref,
18978 decoder,
18979 inner_offset,
18980 inner_depth
18981 )?;
18982 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18983 {
18984 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18985 }
18986 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18987 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18988 }
18989 }
18990
18991 next_offset += envelope_size;
18992 _next_ordinal_to_read += 1;
18993 if next_offset >= end_offset {
18994 return Ok(());
18995 }
18996
18997 while _next_ordinal_to_read < 7 {
18999 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19000 _next_ordinal_to_read += 1;
19001 next_offset += envelope_size;
19002 }
19003
19004 let next_out_of_line = decoder.next_out_of_line();
19005 let handles_before = decoder.remaining_handles();
19006 if let Some((inlined, num_bytes, num_handles)) =
19007 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19008 {
19009 let member_inline_size =
19010 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19011 if inlined != (member_inline_size <= 4) {
19012 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19013 }
19014 let inner_offset;
19015 let mut inner_depth = depth.clone();
19016 if inlined {
19017 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19018 inner_offset = next_offset;
19019 } else {
19020 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19021 inner_depth.increment()?;
19022 }
19023 let val_ref =
19024 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
19025 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
19026 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19027 {
19028 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19029 }
19030 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19031 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19032 }
19033 }
19034
19035 next_offset += envelope_size;
19036 _next_ordinal_to_read += 1;
19037 if next_offset >= end_offset {
19038 return Ok(());
19039 }
19040
19041 while _next_ordinal_to_read < 8 {
19043 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19044 _next_ordinal_to_read += 1;
19045 next_offset += envelope_size;
19046 }
19047
19048 let next_out_of_line = decoder.next_out_of_line();
19049 let handles_before = decoder.remaining_handles();
19050 if let Some((inlined, num_bytes, num_handles)) =
19051 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19052 {
19053 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19054 if inlined != (member_inline_size <= 4) {
19055 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19056 }
19057 let inner_offset;
19058 let mut inner_depth = depth.clone();
19059 if inlined {
19060 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19061 inner_offset = next_offset;
19062 } else {
19063 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19064 inner_depth.increment()?;
19065 }
19066 let val_ref = self.source_dictionary.get_or_insert_with(|| {
19067 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
19068 });
19069 fidl::decode!(
19070 fidl::encoding::BoundedString<1024>,
19071 D,
19072 val_ref,
19073 decoder,
19074 inner_offset,
19075 inner_depth
19076 )?;
19077 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19078 {
19079 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19080 }
19081 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19082 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19083 }
19084 }
19085
19086 next_offset += envelope_size;
19087 _next_ordinal_to_read += 1;
19088 if next_offset >= end_offset {
19089 return Ok(());
19090 }
19091
19092 while _next_ordinal_to_read < 9 {
19094 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19095 _next_ordinal_to_read += 1;
19096 next_offset += envelope_size;
19097 }
19098
19099 let next_out_of_line = decoder.next_out_of_line();
19100 let handles_before = decoder.remaining_handles();
19101 if let Some((inlined, num_bytes, num_handles)) =
19102 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19103 {
19104 let member_inline_size =
19105 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19106 if inlined != (member_inline_size <= 4) {
19107 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19108 }
19109 let inner_offset;
19110 let mut inner_depth = depth.clone();
19111 if inlined {
19112 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19113 inner_offset = next_offset;
19114 } else {
19115 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19116 inner_depth.increment()?;
19117 }
19118 let val_ref =
19119 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
19120 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
19121 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19122 {
19123 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19124 }
19125 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19126 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19127 }
19128 }
19129
19130 next_offset += envelope_size;
19131
19132 while next_offset < end_offset {
19134 _next_ordinal_to_read += 1;
19135 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19136 next_offset += envelope_size;
19137 }
19138
19139 Ok(())
19140 }
19141 }
19142
19143 impl OfferStorage {
19144 #[inline(always)]
19145 fn max_ordinal_present(&self) -> u64 {
19146 if let Some(_) = self.availability {
19147 return 5;
19148 }
19149 if let Some(_) = self.target_name {
19150 return 4;
19151 }
19152 if let Some(_) = self.target {
19153 return 3;
19154 }
19155 if let Some(_) = self.source {
19156 return 2;
19157 }
19158 if let Some(_) = self.source_name {
19159 return 1;
19160 }
19161 0
19162 }
19163 }
19164
19165 impl fidl::encoding::ValueTypeMarker for OfferStorage {
19166 type Borrowed<'a> = &'a Self;
19167 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19168 value
19169 }
19170 }
19171
19172 unsafe impl fidl::encoding::TypeMarker for OfferStorage {
19173 type Owned = Self;
19174
19175 #[inline(always)]
19176 fn inline_align(_context: fidl::encoding::Context) -> usize {
19177 8
19178 }
19179
19180 #[inline(always)]
19181 fn inline_size(_context: fidl::encoding::Context) -> usize {
19182 16
19183 }
19184 }
19185
19186 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferStorage, D>
19187 for &OfferStorage
19188 {
19189 unsafe fn encode(
19190 self,
19191 encoder: &mut fidl::encoding::Encoder<'_, D>,
19192 offset: usize,
19193 mut depth: fidl::encoding::Depth,
19194 ) -> fidl::Result<()> {
19195 encoder.debug_check_bounds::<OfferStorage>(offset);
19196 let max_ordinal: u64 = self.max_ordinal_present();
19198 encoder.write_num(max_ordinal, offset);
19199 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19200 if max_ordinal == 0 {
19202 return Ok(());
19203 }
19204 depth.increment()?;
19205 let envelope_size = 8;
19206 let bytes_len = max_ordinal as usize * envelope_size;
19207 #[allow(unused_variables)]
19208 let offset = encoder.out_of_line_offset(bytes_len);
19209 let mut _prev_end_offset: usize = 0;
19210 if 1 > max_ordinal {
19211 return Ok(());
19212 }
19213
19214 let cur_offset: usize = (1 - 1) * envelope_size;
19217
19218 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19220
19221 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19226 self.source_name.as_ref().map(
19227 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19228 ),
19229 encoder,
19230 offset + cur_offset,
19231 depth,
19232 )?;
19233
19234 _prev_end_offset = cur_offset + envelope_size;
19235 if 2 > max_ordinal {
19236 return Ok(());
19237 }
19238
19239 let cur_offset: usize = (2 - 1) * envelope_size;
19242
19243 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19245
19246 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
19251 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
19252 encoder,
19253 offset + cur_offset,
19254 depth,
19255 )?;
19256
19257 _prev_end_offset = cur_offset + envelope_size;
19258 if 3 > max_ordinal {
19259 return Ok(());
19260 }
19261
19262 let cur_offset: usize = (3 - 1) * envelope_size;
19265
19266 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19268
19269 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
19274 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
19275 encoder,
19276 offset + cur_offset,
19277 depth,
19278 )?;
19279
19280 _prev_end_offset = cur_offset + envelope_size;
19281 if 4 > max_ordinal {
19282 return Ok(());
19283 }
19284
19285 let cur_offset: usize = (4 - 1) * envelope_size;
19288
19289 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19291
19292 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19297 self.target_name.as_ref().map(
19298 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19299 ),
19300 encoder,
19301 offset + cur_offset,
19302 depth,
19303 )?;
19304
19305 _prev_end_offset = cur_offset + envelope_size;
19306 if 5 > max_ordinal {
19307 return Ok(());
19308 }
19309
19310 let cur_offset: usize = (5 - 1) * envelope_size;
19313
19314 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19316
19317 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
19322 self.availability
19323 .as_ref()
19324 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
19325 encoder,
19326 offset + cur_offset,
19327 depth,
19328 )?;
19329
19330 _prev_end_offset = cur_offset + envelope_size;
19331
19332 Ok(())
19333 }
19334 }
19335
19336 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferStorage {
19337 #[inline(always)]
19338 fn new_empty() -> Self {
19339 Self::default()
19340 }
19341
19342 unsafe fn decode(
19343 &mut self,
19344 decoder: &mut fidl::encoding::Decoder<'_, D>,
19345 offset: usize,
19346 mut depth: fidl::encoding::Depth,
19347 ) -> fidl::Result<()> {
19348 decoder.debug_check_bounds::<Self>(offset);
19349 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19350 None => return Err(fidl::Error::NotNullable),
19351 Some(len) => len,
19352 };
19353 if len == 0 {
19355 return Ok(());
19356 };
19357 depth.increment()?;
19358 let envelope_size = 8;
19359 let bytes_len = len * envelope_size;
19360 let offset = decoder.out_of_line_offset(bytes_len)?;
19361 let mut _next_ordinal_to_read = 0;
19363 let mut next_offset = offset;
19364 let end_offset = offset + bytes_len;
19365 _next_ordinal_to_read += 1;
19366 if next_offset >= end_offset {
19367 return Ok(());
19368 }
19369
19370 while _next_ordinal_to_read < 1 {
19372 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19373 _next_ordinal_to_read += 1;
19374 next_offset += envelope_size;
19375 }
19376
19377 let next_out_of_line = decoder.next_out_of_line();
19378 let handles_before = decoder.remaining_handles();
19379 if let Some((inlined, num_bytes, num_handles)) =
19380 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19381 {
19382 let member_inline_size =
19383 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19384 decoder.context,
19385 );
19386 if inlined != (member_inline_size <= 4) {
19387 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19388 }
19389 let inner_offset;
19390 let mut inner_depth = depth.clone();
19391 if inlined {
19392 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19393 inner_offset = next_offset;
19394 } else {
19395 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19396 inner_depth.increment()?;
19397 }
19398 let val_ref = self
19399 .source_name
19400 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19401 fidl::decode!(
19402 fidl::encoding::BoundedString<100>,
19403 D,
19404 val_ref,
19405 decoder,
19406 inner_offset,
19407 inner_depth
19408 )?;
19409 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19410 {
19411 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19412 }
19413 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19414 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19415 }
19416 }
19417
19418 next_offset += envelope_size;
19419 _next_ordinal_to_read += 1;
19420 if next_offset >= end_offset {
19421 return Ok(());
19422 }
19423
19424 while _next_ordinal_to_read < 2 {
19426 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19427 _next_ordinal_to_read += 1;
19428 next_offset += envelope_size;
19429 }
19430
19431 let next_out_of_line = decoder.next_out_of_line();
19432 let handles_before = decoder.remaining_handles();
19433 if let Some((inlined, num_bytes, num_handles)) =
19434 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19435 {
19436 let member_inline_size =
19437 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19438 if inlined != (member_inline_size <= 4) {
19439 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19440 }
19441 let inner_offset;
19442 let mut inner_depth = depth.clone();
19443 if inlined {
19444 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19445 inner_offset = next_offset;
19446 } else {
19447 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19448 inner_depth.increment()?;
19449 }
19450 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
19451 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
19452 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19453 {
19454 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19455 }
19456 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19457 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19458 }
19459 }
19460
19461 next_offset += envelope_size;
19462 _next_ordinal_to_read += 1;
19463 if next_offset >= end_offset {
19464 return Ok(());
19465 }
19466
19467 while _next_ordinal_to_read < 3 {
19469 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19470 _next_ordinal_to_read += 1;
19471 next_offset += envelope_size;
19472 }
19473
19474 let next_out_of_line = decoder.next_out_of_line();
19475 let handles_before = decoder.remaining_handles();
19476 if let Some((inlined, num_bytes, num_handles)) =
19477 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19478 {
19479 let member_inline_size =
19480 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19481 if inlined != (member_inline_size <= 4) {
19482 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19483 }
19484 let inner_offset;
19485 let mut inner_depth = depth.clone();
19486 if inlined {
19487 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19488 inner_offset = next_offset;
19489 } else {
19490 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19491 inner_depth.increment()?;
19492 }
19493 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
19494 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
19495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19496 {
19497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19498 }
19499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19501 }
19502 }
19503
19504 next_offset += envelope_size;
19505 _next_ordinal_to_read += 1;
19506 if next_offset >= end_offset {
19507 return Ok(());
19508 }
19509
19510 while _next_ordinal_to_read < 4 {
19512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19513 _next_ordinal_to_read += 1;
19514 next_offset += envelope_size;
19515 }
19516
19517 let next_out_of_line = decoder.next_out_of_line();
19518 let handles_before = decoder.remaining_handles();
19519 if let Some((inlined, num_bytes, num_handles)) =
19520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19521 {
19522 let member_inline_size =
19523 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19524 decoder.context,
19525 );
19526 if inlined != (member_inline_size <= 4) {
19527 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19528 }
19529 let inner_offset;
19530 let mut inner_depth = depth.clone();
19531 if inlined {
19532 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19533 inner_offset = next_offset;
19534 } else {
19535 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19536 inner_depth.increment()?;
19537 }
19538 let val_ref = self
19539 .target_name
19540 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19541 fidl::decode!(
19542 fidl::encoding::BoundedString<100>,
19543 D,
19544 val_ref,
19545 decoder,
19546 inner_offset,
19547 inner_depth
19548 )?;
19549 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19550 {
19551 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19552 }
19553 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19554 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19555 }
19556 }
19557
19558 next_offset += envelope_size;
19559 _next_ordinal_to_read += 1;
19560 if next_offset >= end_offset {
19561 return Ok(());
19562 }
19563
19564 while _next_ordinal_to_read < 5 {
19566 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19567 _next_ordinal_to_read += 1;
19568 next_offset += envelope_size;
19569 }
19570
19571 let next_out_of_line = decoder.next_out_of_line();
19572 let handles_before = decoder.remaining_handles();
19573 if let Some((inlined, num_bytes, num_handles)) =
19574 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19575 {
19576 let member_inline_size =
19577 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19578 if inlined != (member_inline_size <= 4) {
19579 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19580 }
19581 let inner_offset;
19582 let mut inner_depth = depth.clone();
19583 if inlined {
19584 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19585 inner_offset = next_offset;
19586 } else {
19587 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19588 inner_depth.increment()?;
19589 }
19590 let val_ref =
19591 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
19592 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
19593 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19594 {
19595 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19596 }
19597 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19598 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19599 }
19600 }
19601
19602 next_offset += envelope_size;
19603
19604 while next_offset < end_offset {
19606 _next_ordinal_to_read += 1;
19607 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19608 next_offset += envelope_size;
19609 }
19610
19611 Ok(())
19612 }
19613 }
19614
19615 impl Program {
19616 #[inline(always)]
19617 fn max_ordinal_present(&self) -> u64 {
19618 if let Some(_) = self.info {
19619 return 2;
19620 }
19621 if let Some(_) = self.runner {
19622 return 1;
19623 }
19624 0
19625 }
19626 }
19627
19628 impl fidl::encoding::ValueTypeMarker for Program {
19629 type Borrowed<'a> = &'a Self;
19630 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19631 value
19632 }
19633 }
19634
19635 unsafe impl fidl::encoding::TypeMarker for Program {
19636 type Owned = Self;
19637
19638 #[inline(always)]
19639 fn inline_align(_context: fidl::encoding::Context) -> usize {
19640 8
19641 }
19642
19643 #[inline(always)]
19644 fn inline_size(_context: fidl::encoding::Context) -> usize {
19645 16
19646 }
19647 }
19648
19649 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Program, D> for &Program {
19650 unsafe fn encode(
19651 self,
19652 encoder: &mut fidl::encoding::Encoder<'_, D>,
19653 offset: usize,
19654 mut depth: fidl::encoding::Depth,
19655 ) -> fidl::Result<()> {
19656 encoder.debug_check_bounds::<Program>(offset);
19657 let max_ordinal: u64 = self.max_ordinal_present();
19659 encoder.write_num(max_ordinal, offset);
19660 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19661 if max_ordinal == 0 {
19663 return Ok(());
19664 }
19665 depth.increment()?;
19666 let envelope_size = 8;
19667 let bytes_len = max_ordinal as usize * envelope_size;
19668 #[allow(unused_variables)]
19669 let offset = encoder.out_of_line_offset(bytes_len);
19670 let mut _prev_end_offset: usize = 0;
19671 if 1 > max_ordinal {
19672 return Ok(());
19673 }
19674
19675 let cur_offset: usize = (1 - 1) * envelope_size;
19678
19679 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19681
19682 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19687 self.runner.as_ref().map(
19688 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19689 ),
19690 encoder,
19691 offset + cur_offset,
19692 depth,
19693 )?;
19694
19695 _prev_end_offset = cur_offset + envelope_size;
19696 if 2 > max_ordinal {
19697 return Ok(());
19698 }
19699
19700 let cur_offset: usize = (2 - 1) * envelope_size;
19703
19704 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19706
19707 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data_common::Dictionary, D>(
19712 self.info.as_ref().map(<fidl_fuchsia_data_common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
19713 encoder, offset + cur_offset, depth
19714 )?;
19715
19716 _prev_end_offset = cur_offset + envelope_size;
19717
19718 Ok(())
19719 }
19720 }
19721
19722 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Program {
19723 #[inline(always)]
19724 fn new_empty() -> Self {
19725 Self::default()
19726 }
19727
19728 unsafe fn decode(
19729 &mut self,
19730 decoder: &mut fidl::encoding::Decoder<'_, D>,
19731 offset: usize,
19732 mut depth: fidl::encoding::Depth,
19733 ) -> fidl::Result<()> {
19734 decoder.debug_check_bounds::<Self>(offset);
19735 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19736 None => return Err(fidl::Error::NotNullable),
19737 Some(len) => len,
19738 };
19739 if len == 0 {
19741 return Ok(());
19742 };
19743 depth.increment()?;
19744 let envelope_size = 8;
19745 let bytes_len = len * envelope_size;
19746 let offset = decoder.out_of_line_offset(bytes_len)?;
19747 let mut _next_ordinal_to_read = 0;
19749 let mut next_offset = offset;
19750 let end_offset = offset + bytes_len;
19751 _next_ordinal_to_read += 1;
19752 if next_offset >= end_offset {
19753 return Ok(());
19754 }
19755
19756 while _next_ordinal_to_read < 1 {
19758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19759 _next_ordinal_to_read += 1;
19760 next_offset += envelope_size;
19761 }
19762
19763 let next_out_of_line = decoder.next_out_of_line();
19764 let handles_before = decoder.remaining_handles();
19765 if let Some((inlined, num_bytes, num_handles)) =
19766 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19767 {
19768 let member_inline_size =
19769 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19770 decoder.context,
19771 );
19772 if inlined != (member_inline_size <= 4) {
19773 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19774 }
19775 let inner_offset;
19776 let mut inner_depth = depth.clone();
19777 if inlined {
19778 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19779 inner_offset = next_offset;
19780 } else {
19781 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19782 inner_depth.increment()?;
19783 }
19784 let val_ref = self
19785 .runner
19786 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19787 fidl::decode!(
19788 fidl::encoding::BoundedString<100>,
19789 D,
19790 val_ref,
19791 decoder,
19792 inner_offset,
19793 inner_depth
19794 )?;
19795 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19796 {
19797 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19798 }
19799 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19800 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19801 }
19802 }
19803
19804 next_offset += envelope_size;
19805 _next_ordinal_to_read += 1;
19806 if next_offset >= end_offset {
19807 return Ok(());
19808 }
19809
19810 while _next_ordinal_to_read < 2 {
19812 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19813 _next_ordinal_to_read += 1;
19814 next_offset += envelope_size;
19815 }
19816
19817 let next_out_of_line = decoder.next_out_of_line();
19818 let handles_before = decoder.remaining_handles();
19819 if let Some((inlined, num_bytes, num_handles)) =
19820 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19821 {
19822 let member_inline_size = <fidl_fuchsia_data_common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19823 if inlined != (member_inline_size <= 4) {
19824 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19825 }
19826 let inner_offset;
19827 let mut inner_depth = depth.clone();
19828 if inlined {
19829 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19830 inner_offset = next_offset;
19831 } else {
19832 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19833 inner_depth.increment()?;
19834 }
19835 let val_ref = self.info.get_or_insert_with(|| {
19836 fidl::new_empty!(fidl_fuchsia_data_common::Dictionary, D)
19837 });
19838 fidl::decode!(
19839 fidl_fuchsia_data_common::Dictionary,
19840 D,
19841 val_ref,
19842 decoder,
19843 inner_offset,
19844 inner_depth
19845 )?;
19846 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19847 {
19848 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19849 }
19850 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19851 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19852 }
19853 }
19854
19855 next_offset += envelope_size;
19856
19857 while next_offset < end_offset {
19859 _next_ordinal_to_read += 1;
19860 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19861 next_offset += envelope_size;
19862 }
19863
19864 Ok(())
19865 }
19866 }
19867
19868 impl Protocol {
19869 #[inline(always)]
19870 fn max_ordinal_present(&self) -> u64 {
19871 if let Some(_) = self.delivery {
19872 return 3;
19873 }
19874 if let Some(_) = self.source_path {
19875 return 2;
19876 }
19877 if let Some(_) = self.name {
19878 return 1;
19879 }
19880 0
19881 }
19882 }
19883
19884 impl fidl::encoding::ValueTypeMarker for Protocol {
19885 type Borrowed<'a> = &'a Self;
19886 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19887 value
19888 }
19889 }
19890
19891 unsafe impl fidl::encoding::TypeMarker for Protocol {
19892 type Owned = Self;
19893
19894 #[inline(always)]
19895 fn inline_align(_context: fidl::encoding::Context) -> usize {
19896 8
19897 }
19898
19899 #[inline(always)]
19900 fn inline_size(_context: fidl::encoding::Context) -> usize {
19901 16
19902 }
19903 }
19904
19905 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Protocol, D> for &Protocol {
19906 unsafe fn encode(
19907 self,
19908 encoder: &mut fidl::encoding::Encoder<'_, D>,
19909 offset: usize,
19910 mut depth: fidl::encoding::Depth,
19911 ) -> fidl::Result<()> {
19912 encoder.debug_check_bounds::<Protocol>(offset);
19913 let max_ordinal: u64 = self.max_ordinal_present();
19915 encoder.write_num(max_ordinal, offset);
19916 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19917 if max_ordinal == 0 {
19919 return Ok(());
19920 }
19921 depth.increment()?;
19922 let envelope_size = 8;
19923 let bytes_len = max_ordinal as usize * envelope_size;
19924 #[allow(unused_variables)]
19925 let offset = encoder.out_of_line_offset(bytes_len);
19926 let mut _prev_end_offset: usize = 0;
19927 if 1 > max_ordinal {
19928 return Ok(());
19929 }
19930
19931 let cur_offset: usize = (1 - 1) * envelope_size;
19934
19935 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19937
19938 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19943 self.name.as_ref().map(
19944 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19945 ),
19946 encoder,
19947 offset + cur_offset,
19948 depth,
19949 )?;
19950
19951 _prev_end_offset = cur_offset + envelope_size;
19952 if 2 > max_ordinal {
19953 return Ok(());
19954 }
19955
19956 let cur_offset: usize = (2 - 1) * envelope_size;
19959
19960 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19962
19963 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
19968 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
19969 encoder, offset + cur_offset, depth
19970 )?;
19971
19972 _prev_end_offset = cur_offset + envelope_size;
19973 if 3 > max_ordinal {
19974 return Ok(());
19975 }
19976
19977 let cur_offset: usize = (3 - 1) * envelope_size;
19980
19981 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19983
19984 fidl::encoding::encode_in_envelope_optional::<DeliveryType, D>(
19989 self.delivery
19990 .as_ref()
19991 .map(<DeliveryType as fidl::encoding::ValueTypeMarker>::borrow),
19992 encoder,
19993 offset + cur_offset,
19994 depth,
19995 )?;
19996
19997 _prev_end_offset = cur_offset + envelope_size;
19998
19999 Ok(())
20000 }
20001 }
20002
20003 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Protocol {
20004 #[inline(always)]
20005 fn new_empty() -> Self {
20006 Self::default()
20007 }
20008
20009 unsafe fn decode(
20010 &mut self,
20011 decoder: &mut fidl::encoding::Decoder<'_, D>,
20012 offset: usize,
20013 mut depth: fidl::encoding::Depth,
20014 ) -> fidl::Result<()> {
20015 decoder.debug_check_bounds::<Self>(offset);
20016 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20017 None => return Err(fidl::Error::NotNullable),
20018 Some(len) => len,
20019 };
20020 if len == 0 {
20022 return Ok(());
20023 };
20024 depth.increment()?;
20025 let envelope_size = 8;
20026 let bytes_len = len * envelope_size;
20027 let offset = decoder.out_of_line_offset(bytes_len)?;
20028 let mut _next_ordinal_to_read = 0;
20030 let mut next_offset = offset;
20031 let end_offset = offset + bytes_len;
20032 _next_ordinal_to_read += 1;
20033 if next_offset >= end_offset {
20034 return Ok(());
20035 }
20036
20037 while _next_ordinal_to_read < 1 {
20039 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20040 _next_ordinal_to_read += 1;
20041 next_offset += envelope_size;
20042 }
20043
20044 let next_out_of_line = decoder.next_out_of_line();
20045 let handles_before = decoder.remaining_handles();
20046 if let Some((inlined, num_bytes, num_handles)) =
20047 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20048 {
20049 let member_inline_size =
20050 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20051 decoder.context,
20052 );
20053 if inlined != (member_inline_size <= 4) {
20054 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20055 }
20056 let inner_offset;
20057 let mut inner_depth = depth.clone();
20058 if inlined {
20059 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20060 inner_offset = next_offset;
20061 } else {
20062 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20063 inner_depth.increment()?;
20064 }
20065 let val_ref = self
20066 .name
20067 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20068 fidl::decode!(
20069 fidl::encoding::BoundedString<100>,
20070 D,
20071 val_ref,
20072 decoder,
20073 inner_offset,
20074 inner_depth
20075 )?;
20076 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20077 {
20078 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20079 }
20080 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20081 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20082 }
20083 }
20084
20085 next_offset += envelope_size;
20086 _next_ordinal_to_read += 1;
20087 if next_offset >= end_offset {
20088 return Ok(());
20089 }
20090
20091 while _next_ordinal_to_read < 2 {
20093 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20094 _next_ordinal_to_read += 1;
20095 next_offset += envelope_size;
20096 }
20097
20098 let next_out_of_line = decoder.next_out_of_line();
20099 let handles_before = decoder.remaining_handles();
20100 if let Some((inlined, num_bytes, num_handles)) =
20101 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20102 {
20103 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20104 if inlined != (member_inline_size <= 4) {
20105 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20106 }
20107 let inner_offset;
20108 let mut inner_depth = depth.clone();
20109 if inlined {
20110 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20111 inner_offset = next_offset;
20112 } else {
20113 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20114 inner_depth.increment()?;
20115 }
20116 let val_ref = self.source_path.get_or_insert_with(|| {
20117 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
20118 });
20119 fidl::decode!(
20120 fidl::encoding::BoundedString<1024>,
20121 D,
20122 val_ref,
20123 decoder,
20124 inner_offset,
20125 inner_depth
20126 )?;
20127 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20128 {
20129 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20130 }
20131 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20132 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20133 }
20134 }
20135
20136 next_offset += envelope_size;
20137 _next_ordinal_to_read += 1;
20138 if next_offset >= end_offset {
20139 return Ok(());
20140 }
20141
20142 while _next_ordinal_to_read < 3 {
20144 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20145 _next_ordinal_to_read += 1;
20146 next_offset += envelope_size;
20147 }
20148
20149 let next_out_of_line = decoder.next_out_of_line();
20150 let handles_before = decoder.remaining_handles();
20151 if let Some((inlined, num_bytes, num_handles)) =
20152 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20153 {
20154 let member_inline_size =
20155 <DeliveryType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20156 if inlined != (member_inline_size <= 4) {
20157 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20158 }
20159 let inner_offset;
20160 let mut inner_depth = depth.clone();
20161 if inlined {
20162 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20163 inner_offset = next_offset;
20164 } else {
20165 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20166 inner_depth.increment()?;
20167 }
20168 let val_ref =
20169 self.delivery.get_or_insert_with(|| fidl::new_empty!(DeliveryType, D));
20170 fidl::decode!(DeliveryType, D, val_ref, decoder, inner_offset, inner_depth)?;
20171 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20172 {
20173 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20174 }
20175 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20176 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20177 }
20178 }
20179
20180 next_offset += envelope_size;
20181
20182 while next_offset < end_offset {
20184 _next_ordinal_to_read += 1;
20185 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20186 next_offset += envelope_size;
20187 }
20188
20189 Ok(())
20190 }
20191 }
20192
20193 impl Resolver {
20194 #[inline(always)]
20195 fn max_ordinal_present(&self) -> u64 {
20196 if let Some(_) = self.source_path {
20197 return 2;
20198 }
20199 if let Some(_) = self.name {
20200 return 1;
20201 }
20202 0
20203 }
20204 }
20205
20206 impl fidl::encoding::ValueTypeMarker for Resolver {
20207 type Borrowed<'a> = &'a Self;
20208 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20209 value
20210 }
20211 }
20212
20213 unsafe impl fidl::encoding::TypeMarker for Resolver {
20214 type Owned = Self;
20215
20216 #[inline(always)]
20217 fn inline_align(_context: fidl::encoding::Context) -> usize {
20218 8
20219 }
20220
20221 #[inline(always)]
20222 fn inline_size(_context: fidl::encoding::Context) -> usize {
20223 16
20224 }
20225 }
20226
20227 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Resolver, D> for &Resolver {
20228 unsafe fn encode(
20229 self,
20230 encoder: &mut fidl::encoding::Encoder<'_, D>,
20231 offset: usize,
20232 mut depth: fidl::encoding::Depth,
20233 ) -> fidl::Result<()> {
20234 encoder.debug_check_bounds::<Resolver>(offset);
20235 let max_ordinal: u64 = self.max_ordinal_present();
20237 encoder.write_num(max_ordinal, offset);
20238 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20239 if max_ordinal == 0 {
20241 return Ok(());
20242 }
20243 depth.increment()?;
20244 let envelope_size = 8;
20245 let bytes_len = max_ordinal as usize * envelope_size;
20246 #[allow(unused_variables)]
20247 let offset = encoder.out_of_line_offset(bytes_len);
20248 let mut _prev_end_offset: usize = 0;
20249 if 1 > max_ordinal {
20250 return Ok(());
20251 }
20252
20253 let cur_offset: usize = (1 - 1) * envelope_size;
20256
20257 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20259
20260 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20265 self.name.as_ref().map(
20266 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20267 ),
20268 encoder,
20269 offset + cur_offset,
20270 depth,
20271 )?;
20272
20273 _prev_end_offset = cur_offset + envelope_size;
20274 if 2 > max_ordinal {
20275 return Ok(());
20276 }
20277
20278 let cur_offset: usize = (2 - 1) * envelope_size;
20281
20282 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20284
20285 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
20290 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
20291 encoder, offset + cur_offset, depth
20292 )?;
20293
20294 _prev_end_offset = cur_offset + envelope_size;
20295
20296 Ok(())
20297 }
20298 }
20299
20300 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Resolver {
20301 #[inline(always)]
20302 fn new_empty() -> Self {
20303 Self::default()
20304 }
20305
20306 unsafe fn decode(
20307 &mut self,
20308 decoder: &mut fidl::encoding::Decoder<'_, D>,
20309 offset: usize,
20310 mut depth: fidl::encoding::Depth,
20311 ) -> fidl::Result<()> {
20312 decoder.debug_check_bounds::<Self>(offset);
20313 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20314 None => return Err(fidl::Error::NotNullable),
20315 Some(len) => len,
20316 };
20317 if len == 0 {
20319 return Ok(());
20320 };
20321 depth.increment()?;
20322 let envelope_size = 8;
20323 let bytes_len = len * envelope_size;
20324 let offset = decoder.out_of_line_offset(bytes_len)?;
20325 let mut _next_ordinal_to_read = 0;
20327 let mut next_offset = offset;
20328 let end_offset = offset + bytes_len;
20329 _next_ordinal_to_read += 1;
20330 if next_offset >= end_offset {
20331 return Ok(());
20332 }
20333
20334 while _next_ordinal_to_read < 1 {
20336 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20337 _next_ordinal_to_read += 1;
20338 next_offset += envelope_size;
20339 }
20340
20341 let next_out_of_line = decoder.next_out_of_line();
20342 let handles_before = decoder.remaining_handles();
20343 if let Some((inlined, num_bytes, num_handles)) =
20344 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20345 {
20346 let member_inline_size =
20347 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20348 decoder.context,
20349 );
20350 if inlined != (member_inline_size <= 4) {
20351 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20352 }
20353 let inner_offset;
20354 let mut inner_depth = depth.clone();
20355 if inlined {
20356 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20357 inner_offset = next_offset;
20358 } else {
20359 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20360 inner_depth.increment()?;
20361 }
20362 let val_ref = self
20363 .name
20364 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20365 fidl::decode!(
20366 fidl::encoding::BoundedString<100>,
20367 D,
20368 val_ref,
20369 decoder,
20370 inner_offset,
20371 inner_depth
20372 )?;
20373 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20374 {
20375 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20376 }
20377 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20378 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20379 }
20380 }
20381
20382 next_offset += envelope_size;
20383 _next_ordinal_to_read += 1;
20384 if next_offset >= end_offset {
20385 return Ok(());
20386 }
20387
20388 while _next_ordinal_to_read < 2 {
20390 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20391 _next_ordinal_to_read += 1;
20392 next_offset += envelope_size;
20393 }
20394
20395 let next_out_of_line = decoder.next_out_of_line();
20396 let handles_before = decoder.remaining_handles();
20397 if let Some((inlined, num_bytes, num_handles)) =
20398 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20399 {
20400 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20401 if inlined != (member_inline_size <= 4) {
20402 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20403 }
20404 let inner_offset;
20405 let mut inner_depth = depth.clone();
20406 if inlined {
20407 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20408 inner_offset = next_offset;
20409 } else {
20410 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20411 inner_depth.increment()?;
20412 }
20413 let val_ref = self.source_path.get_or_insert_with(|| {
20414 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
20415 });
20416 fidl::decode!(
20417 fidl::encoding::BoundedString<1024>,
20418 D,
20419 val_ref,
20420 decoder,
20421 inner_offset,
20422 inner_depth
20423 )?;
20424 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20425 {
20426 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20427 }
20428 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20429 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20430 }
20431 }
20432
20433 next_offset += envelope_size;
20434
20435 while next_offset < end_offset {
20437 _next_ordinal_to_read += 1;
20438 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20439 next_offset += envelope_size;
20440 }
20441
20442 Ok(())
20443 }
20444 }
20445
20446 impl ResolverRegistration {
20447 #[inline(always)]
20448 fn max_ordinal_present(&self) -> u64 {
20449 if let Some(_) = self.scheme {
20450 return 3;
20451 }
20452 if let Some(_) = self.source {
20453 return 2;
20454 }
20455 if let Some(_) = self.resolver {
20456 return 1;
20457 }
20458 0
20459 }
20460 }
20461
20462 impl fidl::encoding::ValueTypeMarker for ResolverRegistration {
20463 type Borrowed<'a> = &'a Self;
20464 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20465 value
20466 }
20467 }
20468
20469 unsafe impl fidl::encoding::TypeMarker for ResolverRegistration {
20470 type Owned = Self;
20471
20472 #[inline(always)]
20473 fn inline_align(_context: fidl::encoding::Context) -> usize {
20474 8
20475 }
20476
20477 #[inline(always)]
20478 fn inline_size(_context: fidl::encoding::Context) -> usize {
20479 16
20480 }
20481 }
20482
20483 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ResolverRegistration, D>
20484 for &ResolverRegistration
20485 {
20486 unsafe fn encode(
20487 self,
20488 encoder: &mut fidl::encoding::Encoder<'_, D>,
20489 offset: usize,
20490 mut depth: fidl::encoding::Depth,
20491 ) -> fidl::Result<()> {
20492 encoder.debug_check_bounds::<ResolverRegistration>(offset);
20493 let max_ordinal: u64 = self.max_ordinal_present();
20495 encoder.write_num(max_ordinal, offset);
20496 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20497 if max_ordinal == 0 {
20499 return Ok(());
20500 }
20501 depth.increment()?;
20502 let envelope_size = 8;
20503 let bytes_len = max_ordinal as usize * envelope_size;
20504 #[allow(unused_variables)]
20505 let offset = encoder.out_of_line_offset(bytes_len);
20506 let mut _prev_end_offset: usize = 0;
20507 if 1 > max_ordinal {
20508 return Ok(());
20509 }
20510
20511 let cur_offset: usize = (1 - 1) * envelope_size;
20514
20515 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20517
20518 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20523 self.resolver.as_ref().map(
20524 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20525 ),
20526 encoder,
20527 offset + cur_offset,
20528 depth,
20529 )?;
20530
20531 _prev_end_offset = cur_offset + envelope_size;
20532 if 2 > max_ordinal {
20533 return Ok(());
20534 }
20535
20536 let cur_offset: usize = (2 - 1) * envelope_size;
20539
20540 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20542
20543 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
20548 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
20549 encoder,
20550 offset + cur_offset,
20551 depth,
20552 )?;
20553
20554 _prev_end_offset = cur_offset + envelope_size;
20555 if 3 > max_ordinal {
20556 return Ok(());
20557 }
20558
20559 let cur_offset: usize = (3 - 1) * envelope_size;
20562
20563 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20565
20566 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20571 self.scheme.as_ref().map(
20572 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20573 ),
20574 encoder,
20575 offset + cur_offset,
20576 depth,
20577 )?;
20578
20579 _prev_end_offset = cur_offset + envelope_size;
20580
20581 Ok(())
20582 }
20583 }
20584
20585 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ResolverRegistration {
20586 #[inline(always)]
20587 fn new_empty() -> Self {
20588 Self::default()
20589 }
20590
20591 unsafe fn decode(
20592 &mut self,
20593 decoder: &mut fidl::encoding::Decoder<'_, D>,
20594 offset: usize,
20595 mut depth: fidl::encoding::Depth,
20596 ) -> fidl::Result<()> {
20597 decoder.debug_check_bounds::<Self>(offset);
20598 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20599 None => return Err(fidl::Error::NotNullable),
20600 Some(len) => len,
20601 };
20602 if len == 0 {
20604 return Ok(());
20605 };
20606 depth.increment()?;
20607 let envelope_size = 8;
20608 let bytes_len = len * envelope_size;
20609 let offset = decoder.out_of_line_offset(bytes_len)?;
20610 let mut _next_ordinal_to_read = 0;
20612 let mut next_offset = offset;
20613 let end_offset = offset + bytes_len;
20614 _next_ordinal_to_read += 1;
20615 if next_offset >= end_offset {
20616 return Ok(());
20617 }
20618
20619 while _next_ordinal_to_read < 1 {
20621 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20622 _next_ordinal_to_read += 1;
20623 next_offset += envelope_size;
20624 }
20625
20626 let next_out_of_line = decoder.next_out_of_line();
20627 let handles_before = decoder.remaining_handles();
20628 if let Some((inlined, num_bytes, num_handles)) =
20629 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20630 {
20631 let member_inline_size =
20632 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20633 decoder.context,
20634 );
20635 if inlined != (member_inline_size <= 4) {
20636 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20637 }
20638 let inner_offset;
20639 let mut inner_depth = depth.clone();
20640 if inlined {
20641 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20642 inner_offset = next_offset;
20643 } else {
20644 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20645 inner_depth.increment()?;
20646 }
20647 let val_ref = self
20648 .resolver
20649 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20650 fidl::decode!(
20651 fidl::encoding::BoundedString<100>,
20652 D,
20653 val_ref,
20654 decoder,
20655 inner_offset,
20656 inner_depth
20657 )?;
20658 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20659 {
20660 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20661 }
20662 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20663 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20664 }
20665 }
20666
20667 next_offset += envelope_size;
20668 _next_ordinal_to_read += 1;
20669 if next_offset >= end_offset {
20670 return Ok(());
20671 }
20672
20673 while _next_ordinal_to_read < 2 {
20675 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20676 _next_ordinal_to_read += 1;
20677 next_offset += envelope_size;
20678 }
20679
20680 let next_out_of_line = decoder.next_out_of_line();
20681 let handles_before = decoder.remaining_handles();
20682 if let Some((inlined, num_bytes, num_handles)) =
20683 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20684 {
20685 let member_inline_size =
20686 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20687 if inlined != (member_inline_size <= 4) {
20688 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20689 }
20690 let inner_offset;
20691 let mut inner_depth = depth.clone();
20692 if inlined {
20693 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20694 inner_offset = next_offset;
20695 } else {
20696 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20697 inner_depth.increment()?;
20698 }
20699 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
20700 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
20701 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20702 {
20703 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20704 }
20705 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20706 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20707 }
20708 }
20709
20710 next_offset += envelope_size;
20711 _next_ordinal_to_read += 1;
20712 if next_offset >= end_offset {
20713 return Ok(());
20714 }
20715
20716 while _next_ordinal_to_read < 3 {
20718 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20719 _next_ordinal_to_read += 1;
20720 next_offset += envelope_size;
20721 }
20722
20723 let next_out_of_line = decoder.next_out_of_line();
20724 let handles_before = decoder.remaining_handles();
20725 if let Some((inlined, num_bytes, num_handles)) =
20726 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20727 {
20728 let member_inline_size =
20729 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20730 decoder.context,
20731 );
20732 if inlined != (member_inline_size <= 4) {
20733 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20734 }
20735 let inner_offset;
20736 let mut inner_depth = depth.clone();
20737 if inlined {
20738 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20739 inner_offset = next_offset;
20740 } else {
20741 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20742 inner_depth.increment()?;
20743 }
20744 let val_ref = self
20745 .scheme
20746 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20747 fidl::decode!(
20748 fidl::encoding::BoundedString<100>,
20749 D,
20750 val_ref,
20751 decoder,
20752 inner_offset,
20753 inner_depth
20754 )?;
20755 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20756 {
20757 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20758 }
20759 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20760 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20761 }
20762 }
20763
20764 next_offset += envelope_size;
20765
20766 while next_offset < end_offset {
20768 _next_ordinal_to_read += 1;
20769 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20770 next_offset += envelope_size;
20771 }
20772
20773 Ok(())
20774 }
20775 }
20776
20777 impl Runner {
20778 #[inline(always)]
20779 fn max_ordinal_present(&self) -> u64 {
20780 if let Some(_) = self.source_path {
20781 return 2;
20782 }
20783 if let Some(_) = self.name {
20784 return 1;
20785 }
20786 0
20787 }
20788 }
20789
20790 impl fidl::encoding::ValueTypeMarker for Runner {
20791 type Borrowed<'a> = &'a Self;
20792 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20793 value
20794 }
20795 }
20796
20797 unsafe impl fidl::encoding::TypeMarker for Runner {
20798 type Owned = Self;
20799
20800 #[inline(always)]
20801 fn inline_align(_context: fidl::encoding::Context) -> usize {
20802 8
20803 }
20804
20805 #[inline(always)]
20806 fn inline_size(_context: fidl::encoding::Context) -> usize {
20807 16
20808 }
20809 }
20810
20811 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Runner, D> for &Runner {
20812 unsafe fn encode(
20813 self,
20814 encoder: &mut fidl::encoding::Encoder<'_, D>,
20815 offset: usize,
20816 mut depth: fidl::encoding::Depth,
20817 ) -> fidl::Result<()> {
20818 encoder.debug_check_bounds::<Runner>(offset);
20819 let max_ordinal: u64 = self.max_ordinal_present();
20821 encoder.write_num(max_ordinal, offset);
20822 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20823 if max_ordinal == 0 {
20825 return Ok(());
20826 }
20827 depth.increment()?;
20828 let envelope_size = 8;
20829 let bytes_len = max_ordinal as usize * envelope_size;
20830 #[allow(unused_variables)]
20831 let offset = encoder.out_of_line_offset(bytes_len);
20832 let mut _prev_end_offset: usize = 0;
20833 if 1 > max_ordinal {
20834 return Ok(());
20835 }
20836
20837 let cur_offset: usize = (1 - 1) * envelope_size;
20840
20841 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20843
20844 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20849 self.name.as_ref().map(
20850 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20851 ),
20852 encoder,
20853 offset + cur_offset,
20854 depth,
20855 )?;
20856
20857 _prev_end_offset = cur_offset + envelope_size;
20858 if 2 > max_ordinal {
20859 return Ok(());
20860 }
20861
20862 let cur_offset: usize = (2 - 1) * envelope_size;
20865
20866 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20868
20869 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
20874 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
20875 encoder, offset + cur_offset, depth
20876 )?;
20877
20878 _prev_end_offset = cur_offset + envelope_size;
20879
20880 Ok(())
20881 }
20882 }
20883
20884 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Runner {
20885 #[inline(always)]
20886 fn new_empty() -> Self {
20887 Self::default()
20888 }
20889
20890 unsafe fn decode(
20891 &mut self,
20892 decoder: &mut fidl::encoding::Decoder<'_, D>,
20893 offset: usize,
20894 mut depth: fidl::encoding::Depth,
20895 ) -> fidl::Result<()> {
20896 decoder.debug_check_bounds::<Self>(offset);
20897 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20898 None => return Err(fidl::Error::NotNullable),
20899 Some(len) => len,
20900 };
20901 if len == 0 {
20903 return Ok(());
20904 };
20905 depth.increment()?;
20906 let envelope_size = 8;
20907 let bytes_len = len * envelope_size;
20908 let offset = decoder.out_of_line_offset(bytes_len)?;
20909 let mut _next_ordinal_to_read = 0;
20911 let mut next_offset = offset;
20912 let end_offset = offset + bytes_len;
20913 _next_ordinal_to_read += 1;
20914 if next_offset >= end_offset {
20915 return Ok(());
20916 }
20917
20918 while _next_ordinal_to_read < 1 {
20920 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20921 _next_ordinal_to_read += 1;
20922 next_offset += envelope_size;
20923 }
20924
20925 let next_out_of_line = decoder.next_out_of_line();
20926 let handles_before = decoder.remaining_handles();
20927 if let Some((inlined, num_bytes, num_handles)) =
20928 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20929 {
20930 let member_inline_size =
20931 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20932 decoder.context,
20933 );
20934 if inlined != (member_inline_size <= 4) {
20935 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20936 }
20937 let inner_offset;
20938 let mut inner_depth = depth.clone();
20939 if inlined {
20940 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20941 inner_offset = next_offset;
20942 } else {
20943 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20944 inner_depth.increment()?;
20945 }
20946 let val_ref = self
20947 .name
20948 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20949 fidl::decode!(
20950 fidl::encoding::BoundedString<100>,
20951 D,
20952 val_ref,
20953 decoder,
20954 inner_offset,
20955 inner_depth
20956 )?;
20957 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20958 {
20959 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20960 }
20961 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20962 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20963 }
20964 }
20965
20966 next_offset += envelope_size;
20967 _next_ordinal_to_read += 1;
20968 if next_offset >= end_offset {
20969 return Ok(());
20970 }
20971
20972 while _next_ordinal_to_read < 2 {
20974 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20975 _next_ordinal_to_read += 1;
20976 next_offset += envelope_size;
20977 }
20978
20979 let next_out_of_line = decoder.next_out_of_line();
20980 let handles_before = decoder.remaining_handles();
20981 if let Some((inlined, num_bytes, num_handles)) =
20982 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20983 {
20984 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20985 if inlined != (member_inline_size <= 4) {
20986 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20987 }
20988 let inner_offset;
20989 let mut inner_depth = depth.clone();
20990 if inlined {
20991 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20992 inner_offset = next_offset;
20993 } else {
20994 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20995 inner_depth.increment()?;
20996 }
20997 let val_ref = self.source_path.get_or_insert_with(|| {
20998 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
20999 });
21000 fidl::decode!(
21001 fidl::encoding::BoundedString<1024>,
21002 D,
21003 val_ref,
21004 decoder,
21005 inner_offset,
21006 inner_depth
21007 )?;
21008 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21009 {
21010 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21011 }
21012 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21013 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21014 }
21015 }
21016
21017 next_offset += envelope_size;
21018
21019 while next_offset < end_offset {
21021 _next_ordinal_to_read += 1;
21022 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21023 next_offset += envelope_size;
21024 }
21025
21026 Ok(())
21027 }
21028 }
21029
21030 impl RunnerRegistration {
21031 #[inline(always)]
21032 fn max_ordinal_present(&self) -> u64 {
21033 if let Some(_) = self.target_name {
21034 return 3;
21035 }
21036 if let Some(_) = self.source {
21037 return 2;
21038 }
21039 if let Some(_) = self.source_name {
21040 return 1;
21041 }
21042 0
21043 }
21044 }
21045
21046 impl fidl::encoding::ValueTypeMarker for RunnerRegistration {
21047 type Borrowed<'a> = &'a Self;
21048 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21049 value
21050 }
21051 }
21052
21053 unsafe impl fidl::encoding::TypeMarker for RunnerRegistration {
21054 type Owned = Self;
21055
21056 #[inline(always)]
21057 fn inline_align(_context: fidl::encoding::Context) -> usize {
21058 8
21059 }
21060
21061 #[inline(always)]
21062 fn inline_size(_context: fidl::encoding::Context) -> usize {
21063 16
21064 }
21065 }
21066
21067 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RunnerRegistration, D>
21068 for &RunnerRegistration
21069 {
21070 unsafe fn encode(
21071 self,
21072 encoder: &mut fidl::encoding::Encoder<'_, D>,
21073 offset: usize,
21074 mut depth: fidl::encoding::Depth,
21075 ) -> fidl::Result<()> {
21076 encoder.debug_check_bounds::<RunnerRegistration>(offset);
21077 let max_ordinal: u64 = self.max_ordinal_present();
21079 encoder.write_num(max_ordinal, offset);
21080 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21081 if max_ordinal == 0 {
21083 return Ok(());
21084 }
21085 depth.increment()?;
21086 let envelope_size = 8;
21087 let bytes_len = max_ordinal as usize * envelope_size;
21088 #[allow(unused_variables)]
21089 let offset = encoder.out_of_line_offset(bytes_len);
21090 let mut _prev_end_offset: usize = 0;
21091 if 1 > max_ordinal {
21092 return Ok(());
21093 }
21094
21095 let cur_offset: usize = (1 - 1) * envelope_size;
21098
21099 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21101
21102 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21107 self.source_name.as_ref().map(
21108 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21109 ),
21110 encoder,
21111 offset + cur_offset,
21112 depth,
21113 )?;
21114
21115 _prev_end_offset = cur_offset + envelope_size;
21116 if 2 > max_ordinal {
21117 return Ok(());
21118 }
21119
21120 let cur_offset: usize = (2 - 1) * envelope_size;
21123
21124 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21126
21127 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
21132 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
21133 encoder,
21134 offset + cur_offset,
21135 depth,
21136 )?;
21137
21138 _prev_end_offset = cur_offset + envelope_size;
21139 if 3 > max_ordinal {
21140 return Ok(());
21141 }
21142
21143 let cur_offset: usize = (3 - 1) * envelope_size;
21146
21147 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21149
21150 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21155 self.target_name.as_ref().map(
21156 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21157 ),
21158 encoder,
21159 offset + cur_offset,
21160 depth,
21161 )?;
21162
21163 _prev_end_offset = cur_offset + envelope_size;
21164
21165 Ok(())
21166 }
21167 }
21168
21169 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for RunnerRegistration {
21170 #[inline(always)]
21171 fn new_empty() -> Self {
21172 Self::default()
21173 }
21174
21175 unsafe fn decode(
21176 &mut self,
21177 decoder: &mut fidl::encoding::Decoder<'_, D>,
21178 offset: usize,
21179 mut depth: fidl::encoding::Depth,
21180 ) -> fidl::Result<()> {
21181 decoder.debug_check_bounds::<Self>(offset);
21182 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21183 None => return Err(fidl::Error::NotNullable),
21184 Some(len) => len,
21185 };
21186 if len == 0 {
21188 return Ok(());
21189 };
21190 depth.increment()?;
21191 let envelope_size = 8;
21192 let bytes_len = len * envelope_size;
21193 let offset = decoder.out_of_line_offset(bytes_len)?;
21194 let mut _next_ordinal_to_read = 0;
21196 let mut next_offset = offset;
21197 let end_offset = offset + bytes_len;
21198 _next_ordinal_to_read += 1;
21199 if next_offset >= end_offset {
21200 return Ok(());
21201 }
21202
21203 while _next_ordinal_to_read < 1 {
21205 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21206 _next_ordinal_to_read += 1;
21207 next_offset += envelope_size;
21208 }
21209
21210 let next_out_of_line = decoder.next_out_of_line();
21211 let handles_before = decoder.remaining_handles();
21212 if let Some((inlined, num_bytes, num_handles)) =
21213 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21214 {
21215 let member_inline_size =
21216 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21217 decoder.context,
21218 );
21219 if inlined != (member_inline_size <= 4) {
21220 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21221 }
21222 let inner_offset;
21223 let mut inner_depth = depth.clone();
21224 if inlined {
21225 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21226 inner_offset = next_offset;
21227 } else {
21228 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21229 inner_depth.increment()?;
21230 }
21231 let val_ref = self
21232 .source_name
21233 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21234 fidl::decode!(
21235 fidl::encoding::BoundedString<100>,
21236 D,
21237 val_ref,
21238 decoder,
21239 inner_offset,
21240 inner_depth
21241 )?;
21242 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21243 {
21244 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21245 }
21246 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21247 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21248 }
21249 }
21250
21251 next_offset += envelope_size;
21252 _next_ordinal_to_read += 1;
21253 if next_offset >= end_offset {
21254 return Ok(());
21255 }
21256
21257 while _next_ordinal_to_read < 2 {
21259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21260 _next_ordinal_to_read += 1;
21261 next_offset += envelope_size;
21262 }
21263
21264 let next_out_of_line = decoder.next_out_of_line();
21265 let handles_before = decoder.remaining_handles();
21266 if let Some((inlined, num_bytes, num_handles)) =
21267 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21268 {
21269 let member_inline_size =
21270 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21271 if inlined != (member_inline_size <= 4) {
21272 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21273 }
21274 let inner_offset;
21275 let mut inner_depth = depth.clone();
21276 if inlined {
21277 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21278 inner_offset = next_offset;
21279 } else {
21280 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21281 inner_depth.increment()?;
21282 }
21283 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
21284 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
21285 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21286 {
21287 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21288 }
21289 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21290 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21291 }
21292 }
21293
21294 next_offset += envelope_size;
21295 _next_ordinal_to_read += 1;
21296 if next_offset >= end_offset {
21297 return Ok(());
21298 }
21299
21300 while _next_ordinal_to_read < 3 {
21302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21303 _next_ordinal_to_read += 1;
21304 next_offset += envelope_size;
21305 }
21306
21307 let next_out_of_line = decoder.next_out_of_line();
21308 let handles_before = decoder.remaining_handles();
21309 if let Some((inlined, num_bytes, num_handles)) =
21310 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21311 {
21312 let member_inline_size =
21313 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21314 decoder.context,
21315 );
21316 if inlined != (member_inline_size <= 4) {
21317 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21318 }
21319 let inner_offset;
21320 let mut inner_depth = depth.clone();
21321 if inlined {
21322 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21323 inner_offset = next_offset;
21324 } else {
21325 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21326 inner_depth.increment()?;
21327 }
21328 let val_ref = self
21329 .target_name
21330 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21331 fidl::decode!(
21332 fidl::encoding::BoundedString<100>,
21333 D,
21334 val_ref,
21335 decoder,
21336 inner_offset,
21337 inner_depth
21338 )?;
21339 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21340 {
21341 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21342 }
21343 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21344 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21345 }
21346 }
21347
21348 next_offset += envelope_size;
21349
21350 while next_offset < end_offset {
21352 _next_ordinal_to_read += 1;
21353 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21354 next_offset += envelope_size;
21355 }
21356
21357 Ok(())
21358 }
21359 }
21360
21361 impl Service {
21362 #[inline(always)]
21363 fn max_ordinal_present(&self) -> u64 {
21364 if let Some(_) = self.source_path {
21365 return 2;
21366 }
21367 if let Some(_) = self.name {
21368 return 1;
21369 }
21370 0
21371 }
21372 }
21373
21374 impl fidl::encoding::ValueTypeMarker for Service {
21375 type Borrowed<'a> = &'a Self;
21376 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21377 value
21378 }
21379 }
21380
21381 unsafe impl fidl::encoding::TypeMarker for Service {
21382 type Owned = Self;
21383
21384 #[inline(always)]
21385 fn inline_align(_context: fidl::encoding::Context) -> usize {
21386 8
21387 }
21388
21389 #[inline(always)]
21390 fn inline_size(_context: fidl::encoding::Context) -> usize {
21391 16
21392 }
21393 }
21394
21395 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Service, D> for &Service {
21396 unsafe fn encode(
21397 self,
21398 encoder: &mut fidl::encoding::Encoder<'_, D>,
21399 offset: usize,
21400 mut depth: fidl::encoding::Depth,
21401 ) -> fidl::Result<()> {
21402 encoder.debug_check_bounds::<Service>(offset);
21403 let max_ordinal: u64 = self.max_ordinal_present();
21405 encoder.write_num(max_ordinal, offset);
21406 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21407 if max_ordinal == 0 {
21409 return Ok(());
21410 }
21411 depth.increment()?;
21412 let envelope_size = 8;
21413 let bytes_len = max_ordinal as usize * envelope_size;
21414 #[allow(unused_variables)]
21415 let offset = encoder.out_of_line_offset(bytes_len);
21416 let mut _prev_end_offset: usize = 0;
21417 if 1 > max_ordinal {
21418 return Ok(());
21419 }
21420
21421 let cur_offset: usize = (1 - 1) * envelope_size;
21424
21425 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21427
21428 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21433 self.name.as_ref().map(
21434 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21435 ),
21436 encoder,
21437 offset + cur_offset,
21438 depth,
21439 )?;
21440
21441 _prev_end_offset = cur_offset + envelope_size;
21442 if 2 > max_ordinal {
21443 return Ok(());
21444 }
21445
21446 let cur_offset: usize = (2 - 1) * envelope_size;
21449
21450 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21452
21453 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
21458 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
21459 encoder, offset + cur_offset, depth
21460 )?;
21461
21462 _prev_end_offset = cur_offset + envelope_size;
21463
21464 Ok(())
21465 }
21466 }
21467
21468 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Service {
21469 #[inline(always)]
21470 fn new_empty() -> Self {
21471 Self::default()
21472 }
21473
21474 unsafe fn decode(
21475 &mut self,
21476 decoder: &mut fidl::encoding::Decoder<'_, D>,
21477 offset: usize,
21478 mut depth: fidl::encoding::Depth,
21479 ) -> fidl::Result<()> {
21480 decoder.debug_check_bounds::<Self>(offset);
21481 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21482 None => return Err(fidl::Error::NotNullable),
21483 Some(len) => len,
21484 };
21485 if len == 0 {
21487 return Ok(());
21488 };
21489 depth.increment()?;
21490 let envelope_size = 8;
21491 let bytes_len = len * envelope_size;
21492 let offset = decoder.out_of_line_offset(bytes_len)?;
21493 let mut _next_ordinal_to_read = 0;
21495 let mut next_offset = offset;
21496 let end_offset = offset + bytes_len;
21497 _next_ordinal_to_read += 1;
21498 if next_offset >= end_offset {
21499 return Ok(());
21500 }
21501
21502 while _next_ordinal_to_read < 1 {
21504 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21505 _next_ordinal_to_read += 1;
21506 next_offset += envelope_size;
21507 }
21508
21509 let next_out_of_line = decoder.next_out_of_line();
21510 let handles_before = decoder.remaining_handles();
21511 if let Some((inlined, num_bytes, num_handles)) =
21512 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21513 {
21514 let member_inline_size =
21515 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21516 decoder.context,
21517 );
21518 if inlined != (member_inline_size <= 4) {
21519 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21520 }
21521 let inner_offset;
21522 let mut inner_depth = depth.clone();
21523 if inlined {
21524 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21525 inner_offset = next_offset;
21526 } else {
21527 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21528 inner_depth.increment()?;
21529 }
21530 let val_ref = self
21531 .name
21532 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21533 fidl::decode!(
21534 fidl::encoding::BoundedString<100>,
21535 D,
21536 val_ref,
21537 decoder,
21538 inner_offset,
21539 inner_depth
21540 )?;
21541 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21542 {
21543 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21544 }
21545 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21546 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21547 }
21548 }
21549
21550 next_offset += envelope_size;
21551 _next_ordinal_to_read += 1;
21552 if next_offset >= end_offset {
21553 return Ok(());
21554 }
21555
21556 while _next_ordinal_to_read < 2 {
21558 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21559 _next_ordinal_to_read += 1;
21560 next_offset += envelope_size;
21561 }
21562
21563 let next_out_of_line = decoder.next_out_of_line();
21564 let handles_before = decoder.remaining_handles();
21565 if let Some((inlined, num_bytes, num_handles)) =
21566 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21567 {
21568 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21569 if inlined != (member_inline_size <= 4) {
21570 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21571 }
21572 let inner_offset;
21573 let mut inner_depth = depth.clone();
21574 if inlined {
21575 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21576 inner_offset = next_offset;
21577 } else {
21578 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21579 inner_depth.increment()?;
21580 }
21581 let val_ref = self.source_path.get_or_insert_with(|| {
21582 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
21583 });
21584 fidl::decode!(
21585 fidl::encoding::BoundedString<1024>,
21586 D,
21587 val_ref,
21588 decoder,
21589 inner_offset,
21590 inner_depth
21591 )?;
21592 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21593 {
21594 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21595 }
21596 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21597 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21598 }
21599 }
21600
21601 next_offset += envelope_size;
21602
21603 while next_offset < end_offset {
21605 _next_ordinal_to_read += 1;
21606 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21607 next_offset += envelope_size;
21608 }
21609
21610 Ok(())
21611 }
21612 }
21613
21614 impl Storage {
21615 #[inline(always)]
21616 fn max_ordinal_present(&self) -> u64 {
21617 if let Some(_) = self.storage_id {
21618 return 5;
21619 }
21620 if let Some(_) = self.subdir {
21621 return 4;
21622 }
21623 if let Some(_) = self.backing_dir {
21624 return 3;
21625 }
21626 if let Some(_) = self.source {
21627 return 2;
21628 }
21629 if let Some(_) = self.name {
21630 return 1;
21631 }
21632 0
21633 }
21634 }
21635
21636 impl fidl::encoding::ValueTypeMarker for Storage {
21637 type Borrowed<'a> = &'a Self;
21638 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21639 value
21640 }
21641 }
21642
21643 unsafe impl fidl::encoding::TypeMarker for Storage {
21644 type Owned = Self;
21645
21646 #[inline(always)]
21647 fn inline_align(_context: fidl::encoding::Context) -> usize {
21648 8
21649 }
21650
21651 #[inline(always)]
21652 fn inline_size(_context: fidl::encoding::Context) -> usize {
21653 16
21654 }
21655 }
21656
21657 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Storage, D> for &Storage {
21658 unsafe fn encode(
21659 self,
21660 encoder: &mut fidl::encoding::Encoder<'_, D>,
21661 offset: usize,
21662 mut depth: fidl::encoding::Depth,
21663 ) -> fidl::Result<()> {
21664 encoder.debug_check_bounds::<Storage>(offset);
21665 let max_ordinal: u64 = self.max_ordinal_present();
21667 encoder.write_num(max_ordinal, offset);
21668 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21669 if max_ordinal == 0 {
21671 return Ok(());
21672 }
21673 depth.increment()?;
21674 let envelope_size = 8;
21675 let bytes_len = max_ordinal as usize * envelope_size;
21676 #[allow(unused_variables)]
21677 let offset = encoder.out_of_line_offset(bytes_len);
21678 let mut _prev_end_offset: usize = 0;
21679 if 1 > max_ordinal {
21680 return Ok(());
21681 }
21682
21683 let cur_offset: usize = (1 - 1) * envelope_size;
21686
21687 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21689
21690 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21695 self.name.as_ref().map(
21696 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21697 ),
21698 encoder,
21699 offset + cur_offset,
21700 depth,
21701 )?;
21702
21703 _prev_end_offset = cur_offset + envelope_size;
21704 if 2 > max_ordinal {
21705 return Ok(());
21706 }
21707
21708 let cur_offset: usize = (2 - 1) * envelope_size;
21711
21712 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21714
21715 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
21720 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
21721 encoder,
21722 offset + cur_offset,
21723 depth,
21724 )?;
21725
21726 _prev_end_offset = cur_offset + envelope_size;
21727 if 3 > max_ordinal {
21728 return Ok(());
21729 }
21730
21731 let cur_offset: usize = (3 - 1) * envelope_size;
21734
21735 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21737
21738 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21743 self.backing_dir.as_ref().map(
21744 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21745 ),
21746 encoder,
21747 offset + cur_offset,
21748 depth,
21749 )?;
21750
21751 _prev_end_offset = cur_offset + envelope_size;
21752 if 4 > max_ordinal {
21753 return Ok(());
21754 }
21755
21756 let cur_offset: usize = (4 - 1) * envelope_size;
21759
21760 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21762
21763 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
21768 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
21769 encoder, offset + cur_offset, depth
21770 )?;
21771
21772 _prev_end_offset = cur_offset + envelope_size;
21773 if 5 > max_ordinal {
21774 return Ok(());
21775 }
21776
21777 let cur_offset: usize = (5 - 1) * envelope_size;
21780
21781 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21783
21784 fidl::encoding::encode_in_envelope_optional::<StorageId, D>(
21789 self.storage_id
21790 .as_ref()
21791 .map(<StorageId as fidl::encoding::ValueTypeMarker>::borrow),
21792 encoder,
21793 offset + cur_offset,
21794 depth,
21795 )?;
21796
21797 _prev_end_offset = cur_offset + envelope_size;
21798
21799 Ok(())
21800 }
21801 }
21802
21803 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Storage {
21804 #[inline(always)]
21805 fn new_empty() -> Self {
21806 Self::default()
21807 }
21808
21809 unsafe fn decode(
21810 &mut self,
21811 decoder: &mut fidl::encoding::Decoder<'_, D>,
21812 offset: usize,
21813 mut depth: fidl::encoding::Depth,
21814 ) -> fidl::Result<()> {
21815 decoder.debug_check_bounds::<Self>(offset);
21816 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21817 None => return Err(fidl::Error::NotNullable),
21818 Some(len) => len,
21819 };
21820 if len == 0 {
21822 return Ok(());
21823 };
21824 depth.increment()?;
21825 let envelope_size = 8;
21826 let bytes_len = len * envelope_size;
21827 let offset = decoder.out_of_line_offset(bytes_len)?;
21828 let mut _next_ordinal_to_read = 0;
21830 let mut next_offset = offset;
21831 let end_offset = offset + bytes_len;
21832 _next_ordinal_to_read += 1;
21833 if next_offset >= end_offset {
21834 return Ok(());
21835 }
21836
21837 while _next_ordinal_to_read < 1 {
21839 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21840 _next_ordinal_to_read += 1;
21841 next_offset += envelope_size;
21842 }
21843
21844 let next_out_of_line = decoder.next_out_of_line();
21845 let handles_before = decoder.remaining_handles();
21846 if let Some((inlined, num_bytes, num_handles)) =
21847 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21848 {
21849 let member_inline_size =
21850 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21851 decoder.context,
21852 );
21853 if inlined != (member_inline_size <= 4) {
21854 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21855 }
21856 let inner_offset;
21857 let mut inner_depth = depth.clone();
21858 if inlined {
21859 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21860 inner_offset = next_offset;
21861 } else {
21862 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21863 inner_depth.increment()?;
21864 }
21865 let val_ref = self
21866 .name
21867 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21868 fidl::decode!(
21869 fidl::encoding::BoundedString<100>,
21870 D,
21871 val_ref,
21872 decoder,
21873 inner_offset,
21874 inner_depth
21875 )?;
21876 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21877 {
21878 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21879 }
21880 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21881 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21882 }
21883 }
21884
21885 next_offset += envelope_size;
21886 _next_ordinal_to_read += 1;
21887 if next_offset >= end_offset {
21888 return Ok(());
21889 }
21890
21891 while _next_ordinal_to_read < 2 {
21893 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21894 _next_ordinal_to_read += 1;
21895 next_offset += envelope_size;
21896 }
21897
21898 let next_out_of_line = decoder.next_out_of_line();
21899 let handles_before = decoder.remaining_handles();
21900 if let Some((inlined, num_bytes, num_handles)) =
21901 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21902 {
21903 let member_inline_size =
21904 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21905 if inlined != (member_inline_size <= 4) {
21906 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21907 }
21908 let inner_offset;
21909 let mut inner_depth = depth.clone();
21910 if inlined {
21911 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21912 inner_offset = next_offset;
21913 } else {
21914 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21915 inner_depth.increment()?;
21916 }
21917 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
21918 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
21919 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21920 {
21921 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21922 }
21923 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21924 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21925 }
21926 }
21927
21928 next_offset += envelope_size;
21929 _next_ordinal_to_read += 1;
21930 if next_offset >= end_offset {
21931 return Ok(());
21932 }
21933
21934 while _next_ordinal_to_read < 3 {
21936 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21937 _next_ordinal_to_read += 1;
21938 next_offset += envelope_size;
21939 }
21940
21941 let next_out_of_line = decoder.next_out_of_line();
21942 let handles_before = decoder.remaining_handles();
21943 if let Some((inlined, num_bytes, num_handles)) =
21944 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21945 {
21946 let member_inline_size =
21947 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21948 decoder.context,
21949 );
21950 if inlined != (member_inline_size <= 4) {
21951 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21952 }
21953 let inner_offset;
21954 let mut inner_depth = depth.clone();
21955 if inlined {
21956 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21957 inner_offset = next_offset;
21958 } else {
21959 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21960 inner_depth.increment()?;
21961 }
21962 let val_ref = self
21963 .backing_dir
21964 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21965 fidl::decode!(
21966 fidl::encoding::BoundedString<100>,
21967 D,
21968 val_ref,
21969 decoder,
21970 inner_offset,
21971 inner_depth
21972 )?;
21973 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21974 {
21975 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21976 }
21977 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21978 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21979 }
21980 }
21981
21982 next_offset += envelope_size;
21983 _next_ordinal_to_read += 1;
21984 if next_offset >= end_offset {
21985 return Ok(());
21986 }
21987
21988 while _next_ordinal_to_read < 4 {
21990 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21991 _next_ordinal_to_read += 1;
21992 next_offset += envelope_size;
21993 }
21994
21995 let next_out_of_line = decoder.next_out_of_line();
21996 let handles_before = decoder.remaining_handles();
21997 if let Some((inlined, num_bytes, num_handles)) =
21998 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21999 {
22000 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22001 if inlined != (member_inline_size <= 4) {
22002 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22003 }
22004 let inner_offset;
22005 let mut inner_depth = depth.clone();
22006 if inlined {
22007 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22008 inner_offset = next_offset;
22009 } else {
22010 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22011 inner_depth.increment()?;
22012 }
22013 let val_ref = self.subdir.get_or_insert_with(|| {
22014 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
22015 });
22016 fidl::decode!(
22017 fidl::encoding::BoundedString<1024>,
22018 D,
22019 val_ref,
22020 decoder,
22021 inner_offset,
22022 inner_depth
22023 )?;
22024 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22025 {
22026 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22027 }
22028 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22029 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22030 }
22031 }
22032
22033 next_offset += envelope_size;
22034 _next_ordinal_to_read += 1;
22035 if next_offset >= end_offset {
22036 return Ok(());
22037 }
22038
22039 while _next_ordinal_to_read < 5 {
22041 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22042 _next_ordinal_to_read += 1;
22043 next_offset += envelope_size;
22044 }
22045
22046 let next_out_of_line = decoder.next_out_of_line();
22047 let handles_before = decoder.remaining_handles();
22048 if let Some((inlined, num_bytes, num_handles)) =
22049 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22050 {
22051 let member_inline_size =
22052 <StorageId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22053 if inlined != (member_inline_size <= 4) {
22054 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22055 }
22056 let inner_offset;
22057 let mut inner_depth = depth.clone();
22058 if inlined {
22059 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22060 inner_offset = next_offset;
22061 } else {
22062 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22063 inner_depth.increment()?;
22064 }
22065 let val_ref = self.storage_id.get_or_insert_with(|| fidl::new_empty!(StorageId, D));
22066 fidl::decode!(StorageId, D, val_ref, decoder, inner_offset, inner_depth)?;
22067 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22068 {
22069 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22070 }
22071 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22072 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22073 }
22074 }
22075
22076 next_offset += envelope_size;
22077
22078 while next_offset < end_offset {
22080 _next_ordinal_to_read += 1;
22081 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22082 next_offset += envelope_size;
22083 }
22084
22085 Ok(())
22086 }
22087 }
22088
22089 impl UseConfiguration {
22090 #[inline(always)]
22091 fn max_ordinal_present(&self) -> u64 {
22092 if let Some(_) = self.source_dictionary {
22093 return 7;
22094 }
22095 if let Some(_) = self.default {
22096 return 6;
22097 }
22098 if let Some(_) = self.type_ {
22099 return 5;
22100 }
22101 if let Some(_) = self.availability {
22102 return 4;
22103 }
22104 if let Some(_) = self.target_name {
22105 return 3;
22106 }
22107 if let Some(_) = self.source_name {
22108 return 2;
22109 }
22110 if let Some(_) = self.source {
22111 return 1;
22112 }
22113 0
22114 }
22115 }
22116
22117 impl fidl::encoding::ValueTypeMarker for UseConfiguration {
22118 type Borrowed<'a> = &'a Self;
22119 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22120 value
22121 }
22122 }
22123
22124 unsafe impl fidl::encoding::TypeMarker for UseConfiguration {
22125 type Owned = Self;
22126
22127 #[inline(always)]
22128 fn inline_align(_context: fidl::encoding::Context) -> usize {
22129 8
22130 }
22131
22132 #[inline(always)]
22133 fn inline_size(_context: fidl::encoding::Context) -> usize {
22134 16
22135 }
22136 }
22137
22138 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseConfiguration, D>
22139 for &UseConfiguration
22140 {
22141 unsafe fn encode(
22142 self,
22143 encoder: &mut fidl::encoding::Encoder<'_, D>,
22144 offset: usize,
22145 mut depth: fidl::encoding::Depth,
22146 ) -> fidl::Result<()> {
22147 encoder.debug_check_bounds::<UseConfiguration>(offset);
22148 let max_ordinal: u64 = self.max_ordinal_present();
22150 encoder.write_num(max_ordinal, offset);
22151 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22152 if max_ordinal == 0 {
22154 return Ok(());
22155 }
22156 depth.increment()?;
22157 let envelope_size = 8;
22158 let bytes_len = max_ordinal as usize * envelope_size;
22159 #[allow(unused_variables)]
22160 let offset = encoder.out_of_line_offset(bytes_len);
22161 let mut _prev_end_offset: usize = 0;
22162 if 1 > max_ordinal {
22163 return Ok(());
22164 }
22165
22166 let cur_offset: usize = (1 - 1) * envelope_size;
22169
22170 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22172
22173 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
22178 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
22179 encoder,
22180 offset + cur_offset,
22181 depth,
22182 )?;
22183
22184 _prev_end_offset = cur_offset + envelope_size;
22185 if 2 > max_ordinal {
22186 return Ok(());
22187 }
22188
22189 let cur_offset: usize = (2 - 1) * envelope_size;
22192
22193 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22195
22196 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
22201 self.source_name.as_ref().map(
22202 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
22203 ),
22204 encoder,
22205 offset + cur_offset,
22206 depth,
22207 )?;
22208
22209 _prev_end_offset = cur_offset + envelope_size;
22210 if 3 > max_ordinal {
22211 return Ok(());
22212 }
22213
22214 let cur_offset: usize = (3 - 1) * envelope_size;
22217
22218 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22220
22221 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
22226 self.target_name.as_ref().map(
22227 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
22228 ),
22229 encoder,
22230 offset + cur_offset,
22231 depth,
22232 )?;
22233
22234 _prev_end_offset = cur_offset + envelope_size;
22235 if 4 > max_ordinal {
22236 return Ok(());
22237 }
22238
22239 let cur_offset: usize = (4 - 1) * envelope_size;
22242
22243 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22245
22246 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
22251 self.availability
22252 .as_ref()
22253 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
22254 encoder,
22255 offset + cur_offset,
22256 depth,
22257 )?;
22258
22259 _prev_end_offset = cur_offset + envelope_size;
22260 if 5 > max_ordinal {
22261 return Ok(());
22262 }
22263
22264 let cur_offset: usize = (5 - 1) * envelope_size;
22267
22268 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22270
22271 fidl::encoding::encode_in_envelope_optional::<ConfigType, D>(
22276 self.type_.as_ref().map(<ConfigType as fidl::encoding::ValueTypeMarker>::borrow),
22277 encoder,
22278 offset + cur_offset,
22279 depth,
22280 )?;
22281
22282 _prev_end_offset = cur_offset + envelope_size;
22283 if 6 > max_ordinal {
22284 return Ok(());
22285 }
22286
22287 let cur_offset: usize = (6 - 1) * envelope_size;
22290
22291 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22293
22294 fidl::encoding::encode_in_envelope_optional::<ConfigValue, D>(
22299 self.default.as_ref().map(<ConfigValue as fidl::encoding::ValueTypeMarker>::borrow),
22300 encoder,
22301 offset + cur_offset,
22302 depth,
22303 )?;
22304
22305 _prev_end_offset = cur_offset + envelope_size;
22306 if 7 > max_ordinal {
22307 return Ok(());
22308 }
22309
22310 let cur_offset: usize = (7 - 1) * envelope_size;
22313
22314 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22316
22317 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
22322 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
22323 encoder, offset + cur_offset, depth
22324 )?;
22325
22326 _prev_end_offset = cur_offset + envelope_size;
22327
22328 Ok(())
22329 }
22330 }
22331
22332 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseConfiguration {
22333 #[inline(always)]
22334 fn new_empty() -> Self {
22335 Self::default()
22336 }
22337
22338 unsafe fn decode(
22339 &mut self,
22340 decoder: &mut fidl::encoding::Decoder<'_, D>,
22341 offset: usize,
22342 mut depth: fidl::encoding::Depth,
22343 ) -> fidl::Result<()> {
22344 decoder.debug_check_bounds::<Self>(offset);
22345 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22346 None => return Err(fidl::Error::NotNullable),
22347 Some(len) => len,
22348 };
22349 if len == 0 {
22351 return Ok(());
22352 };
22353 depth.increment()?;
22354 let envelope_size = 8;
22355 let bytes_len = len * envelope_size;
22356 let offset = decoder.out_of_line_offset(bytes_len)?;
22357 let mut _next_ordinal_to_read = 0;
22359 let mut next_offset = offset;
22360 let end_offset = offset + bytes_len;
22361 _next_ordinal_to_read += 1;
22362 if next_offset >= end_offset {
22363 return Ok(());
22364 }
22365
22366 while _next_ordinal_to_read < 1 {
22368 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22369 _next_ordinal_to_read += 1;
22370 next_offset += envelope_size;
22371 }
22372
22373 let next_out_of_line = decoder.next_out_of_line();
22374 let handles_before = decoder.remaining_handles();
22375 if let Some((inlined, num_bytes, num_handles)) =
22376 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22377 {
22378 let member_inline_size =
22379 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22380 if inlined != (member_inline_size <= 4) {
22381 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22382 }
22383 let inner_offset;
22384 let mut inner_depth = depth.clone();
22385 if inlined {
22386 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22387 inner_offset = next_offset;
22388 } else {
22389 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22390 inner_depth.increment()?;
22391 }
22392 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
22393 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
22394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22395 {
22396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22397 }
22398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22400 }
22401 }
22402
22403 next_offset += envelope_size;
22404 _next_ordinal_to_read += 1;
22405 if next_offset >= end_offset {
22406 return Ok(());
22407 }
22408
22409 while _next_ordinal_to_read < 2 {
22411 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22412 _next_ordinal_to_read += 1;
22413 next_offset += envelope_size;
22414 }
22415
22416 let next_out_of_line = decoder.next_out_of_line();
22417 let handles_before = decoder.remaining_handles();
22418 if let Some((inlined, num_bytes, num_handles)) =
22419 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22420 {
22421 let member_inline_size =
22422 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
22423 decoder.context,
22424 );
22425 if inlined != (member_inline_size <= 4) {
22426 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22427 }
22428 let inner_offset;
22429 let mut inner_depth = depth.clone();
22430 if inlined {
22431 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22432 inner_offset = next_offset;
22433 } else {
22434 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22435 inner_depth.increment()?;
22436 }
22437 let val_ref = self
22438 .source_name
22439 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
22440 fidl::decode!(
22441 fidl::encoding::BoundedString<100>,
22442 D,
22443 val_ref,
22444 decoder,
22445 inner_offset,
22446 inner_depth
22447 )?;
22448 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22449 {
22450 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22451 }
22452 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22453 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22454 }
22455 }
22456
22457 next_offset += envelope_size;
22458 _next_ordinal_to_read += 1;
22459 if next_offset >= end_offset {
22460 return Ok(());
22461 }
22462
22463 while _next_ordinal_to_read < 3 {
22465 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22466 _next_ordinal_to_read += 1;
22467 next_offset += envelope_size;
22468 }
22469
22470 let next_out_of_line = decoder.next_out_of_line();
22471 let handles_before = decoder.remaining_handles();
22472 if let Some((inlined, num_bytes, num_handles)) =
22473 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22474 {
22475 let member_inline_size =
22476 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
22477 decoder.context,
22478 );
22479 if inlined != (member_inline_size <= 4) {
22480 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22481 }
22482 let inner_offset;
22483 let mut inner_depth = depth.clone();
22484 if inlined {
22485 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22486 inner_offset = next_offset;
22487 } else {
22488 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22489 inner_depth.increment()?;
22490 }
22491 let val_ref = self
22492 .target_name
22493 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
22494 fidl::decode!(
22495 fidl::encoding::BoundedString<100>,
22496 D,
22497 val_ref,
22498 decoder,
22499 inner_offset,
22500 inner_depth
22501 )?;
22502 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22503 {
22504 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22505 }
22506 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22507 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22508 }
22509 }
22510
22511 next_offset += envelope_size;
22512 _next_ordinal_to_read += 1;
22513 if next_offset >= end_offset {
22514 return Ok(());
22515 }
22516
22517 while _next_ordinal_to_read < 4 {
22519 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22520 _next_ordinal_to_read += 1;
22521 next_offset += envelope_size;
22522 }
22523
22524 let next_out_of_line = decoder.next_out_of_line();
22525 let handles_before = decoder.remaining_handles();
22526 if let Some((inlined, num_bytes, num_handles)) =
22527 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22528 {
22529 let member_inline_size =
22530 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22531 if inlined != (member_inline_size <= 4) {
22532 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22533 }
22534 let inner_offset;
22535 let mut inner_depth = depth.clone();
22536 if inlined {
22537 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22538 inner_offset = next_offset;
22539 } else {
22540 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22541 inner_depth.increment()?;
22542 }
22543 let val_ref =
22544 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
22545 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
22546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22547 {
22548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22549 }
22550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22552 }
22553 }
22554
22555 next_offset += envelope_size;
22556 _next_ordinal_to_read += 1;
22557 if next_offset >= end_offset {
22558 return Ok(());
22559 }
22560
22561 while _next_ordinal_to_read < 5 {
22563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22564 _next_ordinal_to_read += 1;
22565 next_offset += envelope_size;
22566 }
22567
22568 let next_out_of_line = decoder.next_out_of_line();
22569 let handles_before = decoder.remaining_handles();
22570 if let Some((inlined, num_bytes, num_handles)) =
22571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22572 {
22573 let member_inline_size =
22574 <ConfigType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22575 if inlined != (member_inline_size <= 4) {
22576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22577 }
22578 let inner_offset;
22579 let mut inner_depth = depth.clone();
22580 if inlined {
22581 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22582 inner_offset = next_offset;
22583 } else {
22584 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22585 inner_depth.increment()?;
22586 }
22587 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(ConfigType, D));
22588 fidl::decode!(ConfigType, D, val_ref, decoder, inner_offset, inner_depth)?;
22589 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22590 {
22591 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22592 }
22593 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22594 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22595 }
22596 }
22597
22598 next_offset += envelope_size;
22599 _next_ordinal_to_read += 1;
22600 if next_offset >= end_offset {
22601 return Ok(());
22602 }
22603
22604 while _next_ordinal_to_read < 6 {
22606 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22607 _next_ordinal_to_read += 1;
22608 next_offset += envelope_size;
22609 }
22610
22611 let next_out_of_line = decoder.next_out_of_line();
22612 let handles_before = decoder.remaining_handles();
22613 if let Some((inlined, num_bytes, num_handles)) =
22614 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22615 {
22616 let member_inline_size =
22617 <ConfigValue as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22618 if inlined != (member_inline_size <= 4) {
22619 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22620 }
22621 let inner_offset;
22622 let mut inner_depth = depth.clone();
22623 if inlined {
22624 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22625 inner_offset = next_offset;
22626 } else {
22627 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22628 inner_depth.increment()?;
22629 }
22630 let val_ref = self.default.get_or_insert_with(|| fidl::new_empty!(ConfigValue, D));
22631 fidl::decode!(ConfigValue, D, val_ref, decoder, inner_offset, inner_depth)?;
22632 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22633 {
22634 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22635 }
22636 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22637 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22638 }
22639 }
22640
22641 next_offset += envelope_size;
22642 _next_ordinal_to_read += 1;
22643 if next_offset >= end_offset {
22644 return Ok(());
22645 }
22646
22647 while _next_ordinal_to_read < 7 {
22649 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22650 _next_ordinal_to_read += 1;
22651 next_offset += envelope_size;
22652 }
22653
22654 let next_out_of_line = decoder.next_out_of_line();
22655 let handles_before = decoder.remaining_handles();
22656 if let Some((inlined, num_bytes, num_handles)) =
22657 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22658 {
22659 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22660 if inlined != (member_inline_size <= 4) {
22661 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22662 }
22663 let inner_offset;
22664 let mut inner_depth = depth.clone();
22665 if inlined {
22666 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22667 inner_offset = next_offset;
22668 } else {
22669 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22670 inner_depth.increment()?;
22671 }
22672 let val_ref = self.source_dictionary.get_or_insert_with(|| {
22673 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
22674 });
22675 fidl::decode!(
22676 fidl::encoding::BoundedString<1024>,
22677 D,
22678 val_ref,
22679 decoder,
22680 inner_offset,
22681 inner_depth
22682 )?;
22683 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22684 {
22685 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22686 }
22687 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22688 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22689 }
22690 }
22691
22692 next_offset += envelope_size;
22693
22694 while next_offset < end_offset {
22696 _next_ordinal_to_read += 1;
22697 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22698 next_offset += envelope_size;
22699 }
22700
22701 Ok(())
22702 }
22703 }
22704
22705 impl UseDictionary {
22706 #[inline(always)]
22707 fn max_ordinal_present(&self) -> u64 {
22708 if let Some(_) = self.source_dictionary {
22709 return 8;
22710 }
22711 if let Some(_) = self.availability {
22712 return 7;
22713 }
22714 if let Some(_) = self.dependency_type {
22715 return 6;
22716 }
22717 if let Some(_) = self.target_path {
22718 return 3;
22719 }
22720 if let Some(_) = self.source_name {
22721 return 2;
22722 }
22723 if let Some(_) = self.source {
22724 return 1;
22725 }
22726 0
22727 }
22728 }
22729
22730 impl fidl::encoding::ValueTypeMarker for UseDictionary {
22731 type Borrowed<'a> = &'a Self;
22732 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22733 value
22734 }
22735 }
22736
22737 unsafe impl fidl::encoding::TypeMarker for UseDictionary {
22738 type Owned = Self;
22739
22740 #[inline(always)]
22741 fn inline_align(_context: fidl::encoding::Context) -> usize {
22742 8
22743 }
22744
22745 #[inline(always)]
22746 fn inline_size(_context: fidl::encoding::Context) -> usize {
22747 16
22748 }
22749 }
22750
22751 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseDictionary, D>
22752 for &UseDictionary
22753 {
22754 unsafe fn encode(
22755 self,
22756 encoder: &mut fidl::encoding::Encoder<'_, D>,
22757 offset: usize,
22758 mut depth: fidl::encoding::Depth,
22759 ) -> fidl::Result<()> {
22760 encoder.debug_check_bounds::<UseDictionary>(offset);
22761 let max_ordinal: u64 = self.max_ordinal_present();
22763 encoder.write_num(max_ordinal, offset);
22764 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22765 if max_ordinal == 0 {
22767 return Ok(());
22768 }
22769 depth.increment()?;
22770 let envelope_size = 8;
22771 let bytes_len = max_ordinal as usize * envelope_size;
22772 #[allow(unused_variables)]
22773 let offset = encoder.out_of_line_offset(bytes_len);
22774 let mut _prev_end_offset: usize = 0;
22775 if 1 > max_ordinal {
22776 return Ok(());
22777 }
22778
22779 let cur_offset: usize = (1 - 1) * envelope_size;
22782
22783 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22785
22786 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
22791 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
22792 encoder,
22793 offset + cur_offset,
22794 depth,
22795 )?;
22796
22797 _prev_end_offset = cur_offset + envelope_size;
22798 if 2 > max_ordinal {
22799 return Ok(());
22800 }
22801
22802 let cur_offset: usize = (2 - 1) * envelope_size;
22805
22806 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22808
22809 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
22814 self.source_name.as_ref().map(
22815 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
22816 ),
22817 encoder,
22818 offset + cur_offset,
22819 depth,
22820 )?;
22821
22822 _prev_end_offset = cur_offset + envelope_size;
22823 if 3 > max_ordinal {
22824 return Ok(());
22825 }
22826
22827 let cur_offset: usize = (3 - 1) * envelope_size;
22830
22831 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22833
22834 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
22839 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
22840 encoder, offset + cur_offset, depth
22841 )?;
22842
22843 _prev_end_offset = cur_offset + envelope_size;
22844 if 6 > max_ordinal {
22845 return Ok(());
22846 }
22847
22848 let cur_offset: usize = (6 - 1) * envelope_size;
22851
22852 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22854
22855 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
22860 self.dependency_type
22861 .as_ref()
22862 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
22863 encoder,
22864 offset + cur_offset,
22865 depth,
22866 )?;
22867
22868 _prev_end_offset = cur_offset + envelope_size;
22869 if 7 > max_ordinal {
22870 return Ok(());
22871 }
22872
22873 let cur_offset: usize = (7 - 1) * envelope_size;
22876
22877 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22879
22880 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
22885 self.availability
22886 .as_ref()
22887 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
22888 encoder,
22889 offset + cur_offset,
22890 depth,
22891 )?;
22892
22893 _prev_end_offset = cur_offset + envelope_size;
22894 if 8 > max_ordinal {
22895 return Ok(());
22896 }
22897
22898 let cur_offset: usize = (8 - 1) * envelope_size;
22901
22902 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22904
22905 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
22910 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
22911 encoder, offset + cur_offset, depth
22912 )?;
22913
22914 _prev_end_offset = cur_offset + envelope_size;
22915
22916 Ok(())
22917 }
22918 }
22919
22920 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseDictionary {
22921 #[inline(always)]
22922 fn new_empty() -> Self {
22923 Self::default()
22924 }
22925
22926 unsafe fn decode(
22927 &mut self,
22928 decoder: &mut fidl::encoding::Decoder<'_, D>,
22929 offset: usize,
22930 mut depth: fidl::encoding::Depth,
22931 ) -> fidl::Result<()> {
22932 decoder.debug_check_bounds::<Self>(offset);
22933 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22934 None => return Err(fidl::Error::NotNullable),
22935 Some(len) => len,
22936 };
22937 if len == 0 {
22939 return Ok(());
22940 };
22941 depth.increment()?;
22942 let envelope_size = 8;
22943 let bytes_len = len * envelope_size;
22944 let offset = decoder.out_of_line_offset(bytes_len)?;
22945 let mut _next_ordinal_to_read = 0;
22947 let mut next_offset = offset;
22948 let end_offset = offset + bytes_len;
22949 _next_ordinal_to_read += 1;
22950 if next_offset >= end_offset {
22951 return Ok(());
22952 }
22953
22954 while _next_ordinal_to_read < 1 {
22956 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22957 _next_ordinal_to_read += 1;
22958 next_offset += envelope_size;
22959 }
22960
22961 let next_out_of_line = decoder.next_out_of_line();
22962 let handles_before = decoder.remaining_handles();
22963 if let Some((inlined, num_bytes, num_handles)) =
22964 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22965 {
22966 let member_inline_size =
22967 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22968 if inlined != (member_inline_size <= 4) {
22969 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22970 }
22971 let inner_offset;
22972 let mut inner_depth = depth.clone();
22973 if inlined {
22974 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22975 inner_offset = next_offset;
22976 } else {
22977 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22978 inner_depth.increment()?;
22979 }
22980 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
22981 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
22982 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22983 {
22984 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22985 }
22986 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22987 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22988 }
22989 }
22990
22991 next_offset += envelope_size;
22992 _next_ordinal_to_read += 1;
22993 if next_offset >= end_offset {
22994 return Ok(());
22995 }
22996
22997 while _next_ordinal_to_read < 2 {
22999 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23000 _next_ordinal_to_read += 1;
23001 next_offset += envelope_size;
23002 }
23003
23004 let next_out_of_line = decoder.next_out_of_line();
23005 let handles_before = decoder.remaining_handles();
23006 if let Some((inlined, num_bytes, num_handles)) =
23007 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23008 {
23009 let member_inline_size =
23010 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
23011 decoder.context,
23012 );
23013 if inlined != (member_inline_size <= 4) {
23014 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23015 }
23016 let inner_offset;
23017 let mut inner_depth = depth.clone();
23018 if inlined {
23019 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23020 inner_offset = next_offset;
23021 } else {
23022 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23023 inner_depth.increment()?;
23024 }
23025 let val_ref = self
23026 .source_name
23027 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
23028 fidl::decode!(
23029 fidl::encoding::BoundedString<100>,
23030 D,
23031 val_ref,
23032 decoder,
23033 inner_offset,
23034 inner_depth
23035 )?;
23036 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23037 {
23038 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23039 }
23040 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23041 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23042 }
23043 }
23044
23045 next_offset += envelope_size;
23046 _next_ordinal_to_read += 1;
23047 if next_offset >= end_offset {
23048 return Ok(());
23049 }
23050
23051 while _next_ordinal_to_read < 3 {
23053 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23054 _next_ordinal_to_read += 1;
23055 next_offset += envelope_size;
23056 }
23057
23058 let next_out_of_line = decoder.next_out_of_line();
23059 let handles_before = decoder.remaining_handles();
23060 if let Some((inlined, num_bytes, num_handles)) =
23061 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23062 {
23063 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23064 if inlined != (member_inline_size <= 4) {
23065 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23066 }
23067 let inner_offset;
23068 let mut inner_depth = depth.clone();
23069 if inlined {
23070 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23071 inner_offset = next_offset;
23072 } else {
23073 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23074 inner_depth.increment()?;
23075 }
23076 let val_ref = self.target_path.get_or_insert_with(|| {
23077 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23078 });
23079 fidl::decode!(
23080 fidl::encoding::BoundedString<1024>,
23081 D,
23082 val_ref,
23083 decoder,
23084 inner_offset,
23085 inner_depth
23086 )?;
23087 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23088 {
23089 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23090 }
23091 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23092 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23093 }
23094 }
23095
23096 next_offset += envelope_size;
23097 _next_ordinal_to_read += 1;
23098 if next_offset >= end_offset {
23099 return Ok(());
23100 }
23101
23102 while _next_ordinal_to_read < 6 {
23104 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23105 _next_ordinal_to_read += 1;
23106 next_offset += envelope_size;
23107 }
23108
23109 let next_out_of_line = decoder.next_out_of_line();
23110 let handles_before = decoder.remaining_handles();
23111 if let Some((inlined, num_bytes, num_handles)) =
23112 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23113 {
23114 let member_inline_size =
23115 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23116 if inlined != (member_inline_size <= 4) {
23117 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23118 }
23119 let inner_offset;
23120 let mut inner_depth = depth.clone();
23121 if inlined {
23122 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23123 inner_offset = next_offset;
23124 } else {
23125 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23126 inner_depth.increment()?;
23127 }
23128 let val_ref =
23129 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
23130 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
23131 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23132 {
23133 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23134 }
23135 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23136 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23137 }
23138 }
23139
23140 next_offset += envelope_size;
23141 _next_ordinal_to_read += 1;
23142 if next_offset >= end_offset {
23143 return Ok(());
23144 }
23145
23146 while _next_ordinal_to_read < 7 {
23148 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23149 _next_ordinal_to_read += 1;
23150 next_offset += envelope_size;
23151 }
23152
23153 let next_out_of_line = decoder.next_out_of_line();
23154 let handles_before = decoder.remaining_handles();
23155 if let Some((inlined, num_bytes, num_handles)) =
23156 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23157 {
23158 let member_inline_size =
23159 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23160 if inlined != (member_inline_size <= 4) {
23161 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23162 }
23163 let inner_offset;
23164 let mut inner_depth = depth.clone();
23165 if inlined {
23166 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23167 inner_offset = next_offset;
23168 } else {
23169 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23170 inner_depth.increment()?;
23171 }
23172 let val_ref =
23173 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
23174 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
23175 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23176 {
23177 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23178 }
23179 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23180 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23181 }
23182 }
23183
23184 next_offset += envelope_size;
23185 _next_ordinal_to_read += 1;
23186 if next_offset >= end_offset {
23187 return Ok(());
23188 }
23189
23190 while _next_ordinal_to_read < 8 {
23192 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23193 _next_ordinal_to_read += 1;
23194 next_offset += envelope_size;
23195 }
23196
23197 let next_out_of_line = decoder.next_out_of_line();
23198 let handles_before = decoder.remaining_handles();
23199 if let Some((inlined, num_bytes, num_handles)) =
23200 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23201 {
23202 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23203 if inlined != (member_inline_size <= 4) {
23204 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23205 }
23206 let inner_offset;
23207 let mut inner_depth = depth.clone();
23208 if inlined {
23209 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23210 inner_offset = next_offset;
23211 } else {
23212 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23213 inner_depth.increment()?;
23214 }
23215 let val_ref = self.source_dictionary.get_or_insert_with(|| {
23216 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23217 });
23218 fidl::decode!(
23219 fidl::encoding::BoundedString<1024>,
23220 D,
23221 val_ref,
23222 decoder,
23223 inner_offset,
23224 inner_depth
23225 )?;
23226 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23227 {
23228 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23229 }
23230 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23231 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23232 }
23233 }
23234
23235 next_offset += envelope_size;
23236
23237 while next_offset < end_offset {
23239 _next_ordinal_to_read += 1;
23240 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23241 next_offset += envelope_size;
23242 }
23243
23244 Ok(())
23245 }
23246 }
23247
23248 impl UseDirectory {
23249 #[inline(always)]
23250 fn max_ordinal_present(&self) -> u64 {
23251 if let Some(_) = self.source_dictionary {
23252 return 8;
23253 }
23254 if let Some(_) = self.availability {
23255 return 7;
23256 }
23257 if let Some(_) = self.dependency_type {
23258 return 6;
23259 }
23260 if let Some(_) = self.subdir {
23261 return 5;
23262 }
23263 if let Some(_) = self.rights {
23264 return 4;
23265 }
23266 if let Some(_) = self.target_path {
23267 return 3;
23268 }
23269 if let Some(_) = self.source_name {
23270 return 2;
23271 }
23272 if let Some(_) = self.source {
23273 return 1;
23274 }
23275 0
23276 }
23277 }
23278
23279 impl fidl::encoding::ValueTypeMarker for UseDirectory {
23280 type Borrowed<'a> = &'a Self;
23281 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23282 value
23283 }
23284 }
23285
23286 unsafe impl fidl::encoding::TypeMarker for UseDirectory {
23287 type Owned = Self;
23288
23289 #[inline(always)]
23290 fn inline_align(_context: fidl::encoding::Context) -> usize {
23291 8
23292 }
23293
23294 #[inline(always)]
23295 fn inline_size(_context: fidl::encoding::Context) -> usize {
23296 16
23297 }
23298 }
23299
23300 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseDirectory, D>
23301 for &UseDirectory
23302 {
23303 unsafe fn encode(
23304 self,
23305 encoder: &mut fidl::encoding::Encoder<'_, D>,
23306 offset: usize,
23307 mut depth: fidl::encoding::Depth,
23308 ) -> fidl::Result<()> {
23309 encoder.debug_check_bounds::<UseDirectory>(offset);
23310 let max_ordinal: u64 = self.max_ordinal_present();
23312 encoder.write_num(max_ordinal, offset);
23313 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
23314 if max_ordinal == 0 {
23316 return Ok(());
23317 }
23318 depth.increment()?;
23319 let envelope_size = 8;
23320 let bytes_len = max_ordinal as usize * envelope_size;
23321 #[allow(unused_variables)]
23322 let offset = encoder.out_of_line_offset(bytes_len);
23323 let mut _prev_end_offset: usize = 0;
23324 if 1 > max_ordinal {
23325 return Ok(());
23326 }
23327
23328 let cur_offset: usize = (1 - 1) * envelope_size;
23331
23332 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23334
23335 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
23340 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
23341 encoder,
23342 offset + cur_offset,
23343 depth,
23344 )?;
23345
23346 _prev_end_offset = cur_offset + envelope_size;
23347 if 2 > max_ordinal {
23348 return Ok(());
23349 }
23350
23351 let cur_offset: usize = (2 - 1) * envelope_size;
23354
23355 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23357
23358 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
23363 self.source_name.as_ref().map(
23364 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
23365 ),
23366 encoder,
23367 offset + cur_offset,
23368 depth,
23369 )?;
23370
23371 _prev_end_offset = cur_offset + envelope_size;
23372 if 3 > max_ordinal {
23373 return Ok(());
23374 }
23375
23376 let cur_offset: usize = (3 - 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::encoding::BoundedString<1024>, D>(
23388 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
23389 encoder, offset + cur_offset, depth
23390 )?;
23391
23392 _prev_end_offset = cur_offset + envelope_size;
23393 if 4 > max_ordinal {
23394 return Ok(());
23395 }
23396
23397 let cur_offset: usize = (4 - 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_fuchsia_io_common::Operations, D>(
23409 self.rights.as_ref().map(
23410 <fidl_fuchsia_io_common::Operations as fidl::encoding::ValueTypeMarker>::borrow,
23411 ),
23412 encoder,
23413 offset + cur_offset,
23414 depth,
23415 )?;
23416
23417 _prev_end_offset = cur_offset + envelope_size;
23418 if 5 > max_ordinal {
23419 return Ok(());
23420 }
23421
23422 let cur_offset: usize = (5 - 1) * envelope_size;
23425
23426 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23428
23429 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
23434 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
23435 encoder, offset + cur_offset, depth
23436 )?;
23437
23438 _prev_end_offset = cur_offset + envelope_size;
23439 if 6 > max_ordinal {
23440 return Ok(());
23441 }
23442
23443 let cur_offset: usize = (6 - 1) * envelope_size;
23446
23447 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23449
23450 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
23455 self.dependency_type
23456 .as_ref()
23457 .map(<DependencyType 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 7 > max_ordinal {
23465 return Ok(());
23466 }
23467
23468 let cur_offset: usize = (7 - 1) * envelope_size;
23471
23472 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23474
23475 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
23480 self.availability
23481 .as_ref()
23482 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
23483 encoder,
23484 offset + cur_offset,
23485 depth,
23486 )?;
23487
23488 _prev_end_offset = cur_offset + envelope_size;
23489 if 8 > max_ordinal {
23490 return Ok(());
23491 }
23492
23493 let cur_offset: usize = (8 - 1) * envelope_size;
23496
23497 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23499
23500 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
23505 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
23506 encoder, offset + cur_offset, depth
23507 )?;
23508
23509 _prev_end_offset = cur_offset + envelope_size;
23510
23511 Ok(())
23512 }
23513 }
23514
23515 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseDirectory {
23516 #[inline(always)]
23517 fn new_empty() -> Self {
23518 Self::default()
23519 }
23520
23521 unsafe fn decode(
23522 &mut self,
23523 decoder: &mut fidl::encoding::Decoder<'_, D>,
23524 offset: usize,
23525 mut depth: fidl::encoding::Depth,
23526 ) -> fidl::Result<()> {
23527 decoder.debug_check_bounds::<Self>(offset);
23528 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
23529 None => return Err(fidl::Error::NotNullable),
23530 Some(len) => len,
23531 };
23532 if len == 0 {
23534 return Ok(());
23535 };
23536 depth.increment()?;
23537 let envelope_size = 8;
23538 let bytes_len = len * envelope_size;
23539 let offset = decoder.out_of_line_offset(bytes_len)?;
23540 let mut _next_ordinal_to_read = 0;
23542 let mut next_offset = offset;
23543 let end_offset = offset + bytes_len;
23544 _next_ordinal_to_read += 1;
23545 if next_offset >= end_offset {
23546 return Ok(());
23547 }
23548
23549 while _next_ordinal_to_read < 1 {
23551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23552 _next_ordinal_to_read += 1;
23553 next_offset += envelope_size;
23554 }
23555
23556 let next_out_of_line = decoder.next_out_of_line();
23557 let handles_before = decoder.remaining_handles();
23558 if let Some((inlined, num_bytes, num_handles)) =
23559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23560 {
23561 let member_inline_size =
23562 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23563 if inlined != (member_inline_size <= 4) {
23564 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23565 }
23566 let inner_offset;
23567 let mut inner_depth = depth.clone();
23568 if inlined {
23569 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23570 inner_offset = next_offset;
23571 } else {
23572 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23573 inner_depth.increment()?;
23574 }
23575 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
23576 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
23577 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23578 {
23579 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23580 }
23581 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23582 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23583 }
23584 }
23585
23586 next_offset += envelope_size;
23587 _next_ordinal_to_read += 1;
23588 if next_offset >= end_offset {
23589 return Ok(());
23590 }
23591
23592 while _next_ordinal_to_read < 2 {
23594 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23595 _next_ordinal_to_read += 1;
23596 next_offset += envelope_size;
23597 }
23598
23599 let next_out_of_line = decoder.next_out_of_line();
23600 let handles_before = decoder.remaining_handles();
23601 if let Some((inlined, num_bytes, num_handles)) =
23602 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23603 {
23604 let member_inline_size =
23605 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
23606 decoder.context,
23607 );
23608 if inlined != (member_inline_size <= 4) {
23609 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23610 }
23611 let inner_offset;
23612 let mut inner_depth = depth.clone();
23613 if inlined {
23614 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23615 inner_offset = next_offset;
23616 } else {
23617 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23618 inner_depth.increment()?;
23619 }
23620 let val_ref = self
23621 .source_name
23622 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
23623 fidl::decode!(
23624 fidl::encoding::BoundedString<100>,
23625 D,
23626 val_ref,
23627 decoder,
23628 inner_offset,
23629 inner_depth
23630 )?;
23631 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23632 {
23633 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23634 }
23635 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23636 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23637 }
23638 }
23639
23640 next_offset += envelope_size;
23641 _next_ordinal_to_read += 1;
23642 if next_offset >= end_offset {
23643 return Ok(());
23644 }
23645
23646 while _next_ordinal_to_read < 3 {
23648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23649 _next_ordinal_to_read += 1;
23650 next_offset += envelope_size;
23651 }
23652
23653 let next_out_of_line = decoder.next_out_of_line();
23654 let handles_before = decoder.remaining_handles();
23655 if let Some((inlined, num_bytes, num_handles)) =
23656 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23657 {
23658 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23659 if inlined != (member_inline_size <= 4) {
23660 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23661 }
23662 let inner_offset;
23663 let mut inner_depth = depth.clone();
23664 if inlined {
23665 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23666 inner_offset = next_offset;
23667 } else {
23668 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23669 inner_depth.increment()?;
23670 }
23671 let val_ref = self.target_path.get_or_insert_with(|| {
23672 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23673 });
23674 fidl::decode!(
23675 fidl::encoding::BoundedString<1024>,
23676 D,
23677 val_ref,
23678 decoder,
23679 inner_offset,
23680 inner_depth
23681 )?;
23682 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23683 {
23684 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23685 }
23686 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23687 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23688 }
23689 }
23690
23691 next_offset += envelope_size;
23692 _next_ordinal_to_read += 1;
23693 if next_offset >= end_offset {
23694 return Ok(());
23695 }
23696
23697 while _next_ordinal_to_read < 4 {
23699 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23700 _next_ordinal_to_read += 1;
23701 next_offset += envelope_size;
23702 }
23703
23704 let next_out_of_line = decoder.next_out_of_line();
23705 let handles_before = decoder.remaining_handles();
23706 if let Some((inlined, num_bytes, num_handles)) =
23707 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23708 {
23709 let member_inline_size =
23710 <fidl_fuchsia_io_common::Operations as fidl::encoding::TypeMarker>::inline_size(
23711 decoder.context,
23712 );
23713 if inlined != (member_inline_size <= 4) {
23714 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23715 }
23716 let inner_offset;
23717 let mut inner_depth = depth.clone();
23718 if inlined {
23719 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23720 inner_offset = next_offset;
23721 } else {
23722 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23723 inner_depth.increment()?;
23724 }
23725 let val_ref = self
23726 .rights
23727 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_io_common::Operations, D));
23728 fidl::decode!(
23729 fidl_fuchsia_io_common::Operations,
23730 D,
23731 val_ref,
23732 decoder,
23733 inner_offset,
23734 inner_depth
23735 )?;
23736 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23737 {
23738 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23739 }
23740 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23741 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23742 }
23743 }
23744
23745 next_offset += envelope_size;
23746 _next_ordinal_to_read += 1;
23747 if next_offset >= end_offset {
23748 return Ok(());
23749 }
23750
23751 while _next_ordinal_to_read < 5 {
23753 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23754 _next_ordinal_to_read += 1;
23755 next_offset += envelope_size;
23756 }
23757
23758 let next_out_of_line = decoder.next_out_of_line();
23759 let handles_before = decoder.remaining_handles();
23760 if let Some((inlined, num_bytes, num_handles)) =
23761 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23762 {
23763 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23764 if inlined != (member_inline_size <= 4) {
23765 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23766 }
23767 let inner_offset;
23768 let mut inner_depth = depth.clone();
23769 if inlined {
23770 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23771 inner_offset = next_offset;
23772 } else {
23773 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23774 inner_depth.increment()?;
23775 }
23776 let val_ref = self.subdir.get_or_insert_with(|| {
23777 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23778 });
23779 fidl::decode!(
23780 fidl::encoding::BoundedString<1024>,
23781 D,
23782 val_ref,
23783 decoder,
23784 inner_offset,
23785 inner_depth
23786 )?;
23787 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23788 {
23789 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23790 }
23791 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23792 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23793 }
23794 }
23795
23796 next_offset += envelope_size;
23797 _next_ordinal_to_read += 1;
23798 if next_offset >= end_offset {
23799 return Ok(());
23800 }
23801
23802 while _next_ordinal_to_read < 6 {
23804 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23805 _next_ordinal_to_read += 1;
23806 next_offset += envelope_size;
23807 }
23808
23809 let next_out_of_line = decoder.next_out_of_line();
23810 let handles_before = decoder.remaining_handles();
23811 if let Some((inlined, num_bytes, num_handles)) =
23812 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23813 {
23814 let member_inline_size =
23815 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23816 if inlined != (member_inline_size <= 4) {
23817 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23818 }
23819 let inner_offset;
23820 let mut inner_depth = depth.clone();
23821 if inlined {
23822 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23823 inner_offset = next_offset;
23824 } else {
23825 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23826 inner_depth.increment()?;
23827 }
23828 let val_ref =
23829 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
23830 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
23831 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23832 {
23833 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23834 }
23835 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23836 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23837 }
23838 }
23839
23840 next_offset += envelope_size;
23841 _next_ordinal_to_read += 1;
23842 if next_offset >= end_offset {
23843 return Ok(());
23844 }
23845
23846 while _next_ordinal_to_read < 7 {
23848 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23849 _next_ordinal_to_read += 1;
23850 next_offset += envelope_size;
23851 }
23852
23853 let next_out_of_line = decoder.next_out_of_line();
23854 let handles_before = decoder.remaining_handles();
23855 if let Some((inlined, num_bytes, num_handles)) =
23856 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23857 {
23858 let member_inline_size =
23859 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23860 if inlined != (member_inline_size <= 4) {
23861 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23862 }
23863 let inner_offset;
23864 let mut inner_depth = depth.clone();
23865 if inlined {
23866 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23867 inner_offset = next_offset;
23868 } else {
23869 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23870 inner_depth.increment()?;
23871 }
23872 let val_ref =
23873 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
23874 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
23875 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23876 {
23877 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23878 }
23879 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23880 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23881 }
23882 }
23883
23884 next_offset += envelope_size;
23885 _next_ordinal_to_read += 1;
23886 if next_offset >= end_offset {
23887 return Ok(());
23888 }
23889
23890 while _next_ordinal_to_read < 8 {
23892 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23893 _next_ordinal_to_read += 1;
23894 next_offset += envelope_size;
23895 }
23896
23897 let next_out_of_line = decoder.next_out_of_line();
23898 let handles_before = decoder.remaining_handles();
23899 if let Some((inlined, num_bytes, num_handles)) =
23900 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23901 {
23902 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23903 if inlined != (member_inline_size <= 4) {
23904 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23905 }
23906 let inner_offset;
23907 let mut inner_depth = depth.clone();
23908 if inlined {
23909 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23910 inner_offset = next_offset;
23911 } else {
23912 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23913 inner_depth.increment()?;
23914 }
23915 let val_ref = self.source_dictionary.get_or_insert_with(|| {
23916 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23917 });
23918 fidl::decode!(
23919 fidl::encoding::BoundedString<1024>,
23920 D,
23921 val_ref,
23922 decoder,
23923 inner_offset,
23924 inner_depth
23925 )?;
23926 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23927 {
23928 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23929 }
23930 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23931 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23932 }
23933 }
23934
23935 next_offset += envelope_size;
23936
23937 while next_offset < end_offset {
23939 _next_ordinal_to_read += 1;
23940 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23941 next_offset += envelope_size;
23942 }
23943
23944 Ok(())
23945 }
23946 }
23947
23948 impl UseEventStream {
23949 #[inline(always)]
23950 fn max_ordinal_present(&self) -> u64 {
23951 if let Some(_) = self.filter {
23952 return 6;
23953 }
23954 if let Some(_) = self.availability {
23955 return 5;
23956 }
23957 if let Some(_) = self.target_path {
23958 return 4;
23959 }
23960 if let Some(_) = self.scope {
23961 return 3;
23962 }
23963 if let Some(_) = self.source {
23964 return 2;
23965 }
23966 if let Some(_) = self.source_name {
23967 return 1;
23968 }
23969 0
23970 }
23971 }
23972
23973 impl fidl::encoding::ValueTypeMarker for UseEventStream {
23974 type Borrowed<'a> = &'a Self;
23975 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23976 value
23977 }
23978 }
23979
23980 unsafe impl fidl::encoding::TypeMarker for UseEventStream {
23981 type Owned = Self;
23982
23983 #[inline(always)]
23984 fn inline_align(_context: fidl::encoding::Context) -> usize {
23985 8
23986 }
23987
23988 #[inline(always)]
23989 fn inline_size(_context: fidl::encoding::Context) -> usize {
23990 16
23991 }
23992 }
23993
23994 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseEventStream, D>
23995 for &UseEventStream
23996 {
23997 unsafe fn encode(
23998 self,
23999 encoder: &mut fidl::encoding::Encoder<'_, D>,
24000 offset: usize,
24001 mut depth: fidl::encoding::Depth,
24002 ) -> fidl::Result<()> {
24003 encoder.debug_check_bounds::<UseEventStream>(offset);
24004 let max_ordinal: u64 = self.max_ordinal_present();
24006 encoder.write_num(max_ordinal, offset);
24007 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
24008 if max_ordinal == 0 {
24010 return Ok(());
24011 }
24012 depth.increment()?;
24013 let envelope_size = 8;
24014 let bytes_len = max_ordinal as usize * envelope_size;
24015 #[allow(unused_variables)]
24016 let offset = encoder.out_of_line_offset(bytes_len);
24017 let mut _prev_end_offset: usize = 0;
24018 if 1 > max_ordinal {
24019 return Ok(());
24020 }
24021
24022 let cur_offset: usize = (1 - 1) * envelope_size;
24025
24026 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24028
24029 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
24034 self.source_name.as_ref().map(
24035 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
24036 ),
24037 encoder,
24038 offset + cur_offset,
24039 depth,
24040 )?;
24041
24042 _prev_end_offset = cur_offset + envelope_size;
24043 if 2 > max_ordinal {
24044 return Ok(());
24045 }
24046
24047 let cur_offset: usize = (2 - 1) * envelope_size;
24050
24051 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24053
24054 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
24059 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
24060 encoder,
24061 offset + cur_offset,
24062 depth,
24063 )?;
24064
24065 _prev_end_offset = cur_offset + envelope_size;
24066 if 3 > max_ordinal {
24067 return Ok(());
24068 }
24069
24070 let cur_offset: usize = (3 - 1) * envelope_size;
24073
24074 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24076
24077 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Ref>, D>(
24082 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<Ref> as fidl::encoding::ValueTypeMarker>::borrow),
24083 encoder, offset + cur_offset, depth
24084 )?;
24085
24086 _prev_end_offset = cur_offset + envelope_size;
24087 if 4 > max_ordinal {
24088 return Ok(());
24089 }
24090
24091 let cur_offset: usize = (4 - 1) * envelope_size;
24094
24095 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24097
24098 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
24103 self.target_path.as_ref().map(
24104 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
24105 ),
24106 encoder,
24107 offset + cur_offset,
24108 depth,
24109 )?;
24110
24111 _prev_end_offset = cur_offset + envelope_size;
24112 if 5 > max_ordinal {
24113 return Ok(());
24114 }
24115
24116 let cur_offset: usize = (5 - 1) * envelope_size;
24119
24120 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24122
24123 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
24128 self.availability
24129 .as_ref()
24130 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
24131 encoder,
24132 offset + cur_offset,
24133 depth,
24134 )?;
24135
24136 _prev_end_offset = cur_offset + envelope_size;
24137 if 6 > max_ordinal {
24138 return Ok(());
24139 }
24140
24141 let cur_offset: usize = (6 - 1) * envelope_size;
24144
24145 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24147
24148 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data_common::Dictionary, D>(
24153 self.filter.as_ref().map(<fidl_fuchsia_data_common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
24154 encoder, offset + cur_offset, depth
24155 )?;
24156
24157 _prev_end_offset = cur_offset + envelope_size;
24158
24159 Ok(())
24160 }
24161 }
24162
24163 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseEventStream {
24164 #[inline(always)]
24165 fn new_empty() -> Self {
24166 Self::default()
24167 }
24168
24169 unsafe fn decode(
24170 &mut self,
24171 decoder: &mut fidl::encoding::Decoder<'_, D>,
24172 offset: usize,
24173 mut depth: fidl::encoding::Depth,
24174 ) -> fidl::Result<()> {
24175 decoder.debug_check_bounds::<Self>(offset);
24176 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
24177 None => return Err(fidl::Error::NotNullable),
24178 Some(len) => len,
24179 };
24180 if len == 0 {
24182 return Ok(());
24183 };
24184 depth.increment()?;
24185 let envelope_size = 8;
24186 let bytes_len = len * envelope_size;
24187 let offset = decoder.out_of_line_offset(bytes_len)?;
24188 let mut _next_ordinal_to_read = 0;
24190 let mut next_offset = offset;
24191 let end_offset = offset + bytes_len;
24192 _next_ordinal_to_read += 1;
24193 if next_offset >= end_offset {
24194 return Ok(());
24195 }
24196
24197 while _next_ordinal_to_read < 1 {
24199 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24200 _next_ordinal_to_read += 1;
24201 next_offset += envelope_size;
24202 }
24203
24204 let next_out_of_line = decoder.next_out_of_line();
24205 let handles_before = decoder.remaining_handles();
24206 if let Some((inlined, num_bytes, num_handles)) =
24207 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24208 {
24209 let member_inline_size =
24210 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
24211 decoder.context,
24212 );
24213 if inlined != (member_inline_size <= 4) {
24214 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24215 }
24216 let inner_offset;
24217 let mut inner_depth = depth.clone();
24218 if inlined {
24219 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24220 inner_offset = next_offset;
24221 } else {
24222 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24223 inner_depth.increment()?;
24224 }
24225 let val_ref = self
24226 .source_name
24227 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
24228 fidl::decode!(
24229 fidl::encoding::BoundedString<100>,
24230 D,
24231 val_ref,
24232 decoder,
24233 inner_offset,
24234 inner_depth
24235 )?;
24236 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24237 {
24238 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24239 }
24240 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24241 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24242 }
24243 }
24244
24245 next_offset += envelope_size;
24246 _next_ordinal_to_read += 1;
24247 if next_offset >= end_offset {
24248 return Ok(());
24249 }
24250
24251 while _next_ordinal_to_read < 2 {
24253 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24254 _next_ordinal_to_read += 1;
24255 next_offset += envelope_size;
24256 }
24257
24258 let next_out_of_line = decoder.next_out_of_line();
24259 let handles_before = decoder.remaining_handles();
24260 if let Some((inlined, num_bytes, num_handles)) =
24261 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24262 {
24263 let member_inline_size =
24264 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24265 if inlined != (member_inline_size <= 4) {
24266 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24267 }
24268 let inner_offset;
24269 let mut inner_depth = depth.clone();
24270 if inlined {
24271 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24272 inner_offset = next_offset;
24273 } else {
24274 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24275 inner_depth.increment()?;
24276 }
24277 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
24278 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
24279 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24280 {
24281 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24282 }
24283 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24284 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24285 }
24286 }
24287
24288 next_offset += envelope_size;
24289 _next_ordinal_to_read += 1;
24290 if next_offset >= end_offset {
24291 return Ok(());
24292 }
24293
24294 while _next_ordinal_to_read < 3 {
24296 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24297 _next_ordinal_to_read += 1;
24298 next_offset += envelope_size;
24299 }
24300
24301 let next_out_of_line = decoder.next_out_of_line();
24302 let handles_before = decoder.remaining_handles();
24303 if let Some((inlined, num_bytes, num_handles)) =
24304 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24305 {
24306 let member_inline_size = <fidl::encoding::UnboundedVector<Ref> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24307 if inlined != (member_inline_size <= 4) {
24308 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24309 }
24310 let inner_offset;
24311 let mut inner_depth = depth.clone();
24312 if inlined {
24313 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24314 inner_offset = next_offset;
24315 } else {
24316 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24317 inner_depth.increment()?;
24318 }
24319 let val_ref = self.scope.get_or_insert_with(|| {
24320 fidl::new_empty!(fidl::encoding::UnboundedVector<Ref>, D)
24321 });
24322 fidl::decode!(
24323 fidl::encoding::UnboundedVector<Ref>,
24324 D,
24325 val_ref,
24326 decoder,
24327 inner_offset,
24328 inner_depth
24329 )?;
24330 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24331 {
24332 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24333 }
24334 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24335 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24336 }
24337 }
24338
24339 next_offset += envelope_size;
24340 _next_ordinal_to_read += 1;
24341 if next_offset >= end_offset {
24342 return Ok(());
24343 }
24344
24345 while _next_ordinal_to_read < 4 {
24347 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24348 _next_ordinal_to_read += 1;
24349 next_offset += envelope_size;
24350 }
24351
24352 let next_out_of_line = decoder.next_out_of_line();
24353 let handles_before = decoder.remaining_handles();
24354 if let Some((inlined, num_bytes, num_handles)) =
24355 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24356 {
24357 let member_inline_size =
24358 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
24359 decoder.context,
24360 );
24361 if inlined != (member_inline_size <= 4) {
24362 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24363 }
24364 let inner_offset;
24365 let mut inner_depth = depth.clone();
24366 if inlined {
24367 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24368 inner_offset = next_offset;
24369 } else {
24370 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24371 inner_depth.increment()?;
24372 }
24373 let val_ref = self
24374 .target_path
24375 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
24376 fidl::decode!(
24377 fidl::encoding::BoundedString<100>,
24378 D,
24379 val_ref,
24380 decoder,
24381 inner_offset,
24382 inner_depth
24383 )?;
24384 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24385 {
24386 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24387 }
24388 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24389 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24390 }
24391 }
24392
24393 next_offset += envelope_size;
24394 _next_ordinal_to_read += 1;
24395 if next_offset >= end_offset {
24396 return Ok(());
24397 }
24398
24399 while _next_ordinal_to_read < 5 {
24401 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24402 _next_ordinal_to_read += 1;
24403 next_offset += envelope_size;
24404 }
24405
24406 let next_out_of_line = decoder.next_out_of_line();
24407 let handles_before = decoder.remaining_handles();
24408 if let Some((inlined, num_bytes, num_handles)) =
24409 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24410 {
24411 let member_inline_size =
24412 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24413 if inlined != (member_inline_size <= 4) {
24414 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24415 }
24416 let inner_offset;
24417 let mut inner_depth = depth.clone();
24418 if inlined {
24419 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24420 inner_offset = next_offset;
24421 } else {
24422 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24423 inner_depth.increment()?;
24424 }
24425 let val_ref =
24426 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
24427 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
24428 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24429 {
24430 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24431 }
24432 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24433 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24434 }
24435 }
24436
24437 next_offset += envelope_size;
24438 _next_ordinal_to_read += 1;
24439 if next_offset >= end_offset {
24440 return Ok(());
24441 }
24442
24443 while _next_ordinal_to_read < 6 {
24445 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24446 _next_ordinal_to_read += 1;
24447 next_offset += envelope_size;
24448 }
24449
24450 let next_out_of_line = decoder.next_out_of_line();
24451 let handles_before = decoder.remaining_handles();
24452 if let Some((inlined, num_bytes, num_handles)) =
24453 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24454 {
24455 let member_inline_size = <fidl_fuchsia_data_common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24456 if inlined != (member_inline_size <= 4) {
24457 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24458 }
24459 let inner_offset;
24460 let mut inner_depth = depth.clone();
24461 if inlined {
24462 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24463 inner_offset = next_offset;
24464 } else {
24465 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24466 inner_depth.increment()?;
24467 }
24468 let val_ref = self.filter.get_or_insert_with(|| {
24469 fidl::new_empty!(fidl_fuchsia_data_common::Dictionary, D)
24470 });
24471 fidl::decode!(
24472 fidl_fuchsia_data_common::Dictionary,
24473 D,
24474 val_ref,
24475 decoder,
24476 inner_offset,
24477 inner_depth
24478 )?;
24479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24480 {
24481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24482 }
24483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24485 }
24486 }
24487
24488 next_offset += envelope_size;
24489
24490 while next_offset < end_offset {
24492 _next_ordinal_to_read += 1;
24493 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24494 next_offset += envelope_size;
24495 }
24496
24497 Ok(())
24498 }
24499 }
24500
24501 impl UseProtocol {
24502 #[inline(always)]
24503 fn max_ordinal_present(&self) -> u64 {
24504 if let Some(_) = self.numbered_handle {
24505 return 7;
24506 }
24507 if let Some(_) = self.source_dictionary {
24508 return 6;
24509 }
24510 if let Some(_) = self.availability {
24511 return 5;
24512 }
24513 if let Some(_) = self.dependency_type {
24514 return 4;
24515 }
24516 if let Some(_) = self.target_path {
24517 return 3;
24518 }
24519 if let Some(_) = self.source_name {
24520 return 2;
24521 }
24522 if let Some(_) = self.source {
24523 return 1;
24524 }
24525 0
24526 }
24527 }
24528
24529 impl fidl::encoding::ValueTypeMarker for UseProtocol {
24530 type Borrowed<'a> = &'a Self;
24531 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24532 value
24533 }
24534 }
24535
24536 unsafe impl fidl::encoding::TypeMarker for UseProtocol {
24537 type Owned = Self;
24538
24539 #[inline(always)]
24540 fn inline_align(_context: fidl::encoding::Context) -> usize {
24541 8
24542 }
24543
24544 #[inline(always)]
24545 fn inline_size(_context: fidl::encoding::Context) -> usize {
24546 16
24547 }
24548 }
24549
24550 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseProtocol, D>
24551 for &UseProtocol
24552 {
24553 unsafe fn encode(
24554 self,
24555 encoder: &mut fidl::encoding::Encoder<'_, D>,
24556 offset: usize,
24557 mut depth: fidl::encoding::Depth,
24558 ) -> fidl::Result<()> {
24559 encoder.debug_check_bounds::<UseProtocol>(offset);
24560 let max_ordinal: u64 = self.max_ordinal_present();
24562 encoder.write_num(max_ordinal, offset);
24563 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
24564 if max_ordinal == 0 {
24566 return Ok(());
24567 }
24568 depth.increment()?;
24569 let envelope_size = 8;
24570 let bytes_len = max_ordinal as usize * envelope_size;
24571 #[allow(unused_variables)]
24572 let offset = encoder.out_of_line_offset(bytes_len);
24573 let mut _prev_end_offset: usize = 0;
24574 if 1 > max_ordinal {
24575 return Ok(());
24576 }
24577
24578 let cur_offset: usize = (1 - 1) * envelope_size;
24581
24582 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24584
24585 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
24590 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
24591 encoder,
24592 offset + cur_offset,
24593 depth,
24594 )?;
24595
24596 _prev_end_offset = cur_offset + envelope_size;
24597 if 2 > max_ordinal {
24598 return Ok(());
24599 }
24600
24601 let cur_offset: usize = (2 - 1) * envelope_size;
24604
24605 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24607
24608 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
24613 self.source_name.as_ref().map(
24614 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
24615 ),
24616 encoder,
24617 offset + cur_offset,
24618 depth,
24619 )?;
24620
24621 _prev_end_offset = cur_offset + envelope_size;
24622 if 3 > max_ordinal {
24623 return Ok(());
24624 }
24625
24626 let cur_offset: usize = (3 - 1) * envelope_size;
24629
24630 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24632
24633 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
24638 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
24639 encoder, offset + cur_offset, depth
24640 )?;
24641
24642 _prev_end_offset = cur_offset + envelope_size;
24643 if 4 > max_ordinal {
24644 return Ok(());
24645 }
24646
24647 let cur_offset: usize = (4 - 1) * envelope_size;
24650
24651 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24653
24654 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
24659 self.dependency_type
24660 .as_ref()
24661 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
24662 encoder,
24663 offset + cur_offset,
24664 depth,
24665 )?;
24666
24667 _prev_end_offset = cur_offset + envelope_size;
24668 if 5 > max_ordinal {
24669 return Ok(());
24670 }
24671
24672 let cur_offset: usize = (5 - 1) * envelope_size;
24675
24676 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24678
24679 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
24684 self.availability
24685 .as_ref()
24686 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
24687 encoder,
24688 offset + cur_offset,
24689 depth,
24690 )?;
24691
24692 _prev_end_offset = cur_offset + envelope_size;
24693 if 6 > max_ordinal {
24694 return Ok(());
24695 }
24696
24697 let cur_offset: usize = (6 - 1) * envelope_size;
24700
24701 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24703
24704 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
24709 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
24710 encoder, offset + cur_offset, depth
24711 )?;
24712
24713 _prev_end_offset = cur_offset + envelope_size;
24714 if 7 > max_ordinal {
24715 return Ok(());
24716 }
24717
24718 let cur_offset: usize = (7 - 1) * envelope_size;
24721
24722 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24724
24725 fidl::encoding::encode_in_envelope_optional::<u8, D>(
24730 self.numbered_handle.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
24731 encoder,
24732 offset + cur_offset,
24733 depth,
24734 )?;
24735
24736 _prev_end_offset = cur_offset + envelope_size;
24737
24738 Ok(())
24739 }
24740 }
24741
24742 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseProtocol {
24743 #[inline(always)]
24744 fn new_empty() -> Self {
24745 Self::default()
24746 }
24747
24748 unsafe fn decode(
24749 &mut self,
24750 decoder: &mut fidl::encoding::Decoder<'_, D>,
24751 offset: usize,
24752 mut depth: fidl::encoding::Depth,
24753 ) -> fidl::Result<()> {
24754 decoder.debug_check_bounds::<Self>(offset);
24755 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
24756 None => return Err(fidl::Error::NotNullable),
24757 Some(len) => len,
24758 };
24759 if len == 0 {
24761 return Ok(());
24762 };
24763 depth.increment()?;
24764 let envelope_size = 8;
24765 let bytes_len = len * envelope_size;
24766 let offset = decoder.out_of_line_offset(bytes_len)?;
24767 let mut _next_ordinal_to_read = 0;
24769 let mut next_offset = offset;
24770 let end_offset = offset + bytes_len;
24771 _next_ordinal_to_read += 1;
24772 if next_offset >= end_offset {
24773 return Ok(());
24774 }
24775
24776 while _next_ordinal_to_read < 1 {
24778 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24779 _next_ordinal_to_read += 1;
24780 next_offset += envelope_size;
24781 }
24782
24783 let next_out_of_line = decoder.next_out_of_line();
24784 let handles_before = decoder.remaining_handles();
24785 if let Some((inlined, num_bytes, num_handles)) =
24786 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24787 {
24788 let member_inline_size =
24789 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24790 if inlined != (member_inline_size <= 4) {
24791 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24792 }
24793 let inner_offset;
24794 let mut inner_depth = depth.clone();
24795 if inlined {
24796 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24797 inner_offset = next_offset;
24798 } else {
24799 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24800 inner_depth.increment()?;
24801 }
24802 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
24803 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
24804 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24805 {
24806 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24807 }
24808 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24809 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24810 }
24811 }
24812
24813 next_offset += envelope_size;
24814 _next_ordinal_to_read += 1;
24815 if next_offset >= end_offset {
24816 return Ok(());
24817 }
24818
24819 while _next_ordinal_to_read < 2 {
24821 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24822 _next_ordinal_to_read += 1;
24823 next_offset += envelope_size;
24824 }
24825
24826 let next_out_of_line = decoder.next_out_of_line();
24827 let handles_before = decoder.remaining_handles();
24828 if let Some((inlined, num_bytes, num_handles)) =
24829 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24830 {
24831 let member_inline_size =
24832 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
24833 decoder.context,
24834 );
24835 if inlined != (member_inline_size <= 4) {
24836 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24837 }
24838 let inner_offset;
24839 let mut inner_depth = depth.clone();
24840 if inlined {
24841 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24842 inner_offset = next_offset;
24843 } else {
24844 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24845 inner_depth.increment()?;
24846 }
24847 let val_ref = self
24848 .source_name
24849 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
24850 fidl::decode!(
24851 fidl::encoding::BoundedString<100>,
24852 D,
24853 val_ref,
24854 decoder,
24855 inner_offset,
24856 inner_depth
24857 )?;
24858 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24859 {
24860 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24861 }
24862 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24863 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24864 }
24865 }
24866
24867 next_offset += envelope_size;
24868 _next_ordinal_to_read += 1;
24869 if next_offset >= end_offset {
24870 return Ok(());
24871 }
24872
24873 while _next_ordinal_to_read < 3 {
24875 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24876 _next_ordinal_to_read += 1;
24877 next_offset += envelope_size;
24878 }
24879
24880 let next_out_of_line = decoder.next_out_of_line();
24881 let handles_before = decoder.remaining_handles();
24882 if let Some((inlined, num_bytes, num_handles)) =
24883 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24884 {
24885 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24886 if inlined != (member_inline_size <= 4) {
24887 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24888 }
24889 let inner_offset;
24890 let mut inner_depth = depth.clone();
24891 if inlined {
24892 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24893 inner_offset = next_offset;
24894 } else {
24895 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24896 inner_depth.increment()?;
24897 }
24898 let val_ref = self.target_path.get_or_insert_with(|| {
24899 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
24900 });
24901 fidl::decode!(
24902 fidl::encoding::BoundedString<1024>,
24903 D,
24904 val_ref,
24905 decoder,
24906 inner_offset,
24907 inner_depth
24908 )?;
24909 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24910 {
24911 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24912 }
24913 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24914 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24915 }
24916 }
24917
24918 next_offset += envelope_size;
24919 _next_ordinal_to_read += 1;
24920 if next_offset >= end_offset {
24921 return Ok(());
24922 }
24923
24924 while _next_ordinal_to_read < 4 {
24926 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24927 _next_ordinal_to_read += 1;
24928 next_offset += envelope_size;
24929 }
24930
24931 let next_out_of_line = decoder.next_out_of_line();
24932 let handles_before = decoder.remaining_handles();
24933 if let Some((inlined, num_bytes, num_handles)) =
24934 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24935 {
24936 let member_inline_size =
24937 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24938 if inlined != (member_inline_size <= 4) {
24939 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24940 }
24941 let inner_offset;
24942 let mut inner_depth = depth.clone();
24943 if inlined {
24944 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24945 inner_offset = next_offset;
24946 } else {
24947 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24948 inner_depth.increment()?;
24949 }
24950 let val_ref =
24951 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
24952 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
24953 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24954 {
24955 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24956 }
24957 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24958 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24959 }
24960 }
24961
24962 next_offset += envelope_size;
24963 _next_ordinal_to_read += 1;
24964 if next_offset >= end_offset {
24965 return Ok(());
24966 }
24967
24968 while _next_ordinal_to_read < 5 {
24970 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24971 _next_ordinal_to_read += 1;
24972 next_offset += envelope_size;
24973 }
24974
24975 let next_out_of_line = decoder.next_out_of_line();
24976 let handles_before = decoder.remaining_handles();
24977 if let Some((inlined, num_bytes, num_handles)) =
24978 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24979 {
24980 let member_inline_size =
24981 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24982 if inlined != (member_inline_size <= 4) {
24983 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24984 }
24985 let inner_offset;
24986 let mut inner_depth = depth.clone();
24987 if inlined {
24988 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24989 inner_offset = next_offset;
24990 } else {
24991 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24992 inner_depth.increment()?;
24993 }
24994 let val_ref =
24995 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
24996 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
24997 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24998 {
24999 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25000 }
25001 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25002 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25003 }
25004 }
25005
25006 next_offset += envelope_size;
25007 _next_ordinal_to_read += 1;
25008 if next_offset >= end_offset {
25009 return Ok(());
25010 }
25011
25012 while _next_ordinal_to_read < 6 {
25014 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25015 _next_ordinal_to_read += 1;
25016 next_offset += envelope_size;
25017 }
25018
25019 let next_out_of_line = decoder.next_out_of_line();
25020 let handles_before = decoder.remaining_handles();
25021 if let Some((inlined, num_bytes, num_handles)) =
25022 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25023 {
25024 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25025 if inlined != (member_inline_size <= 4) {
25026 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25027 }
25028 let inner_offset;
25029 let mut inner_depth = depth.clone();
25030 if inlined {
25031 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25032 inner_offset = next_offset;
25033 } else {
25034 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25035 inner_depth.increment()?;
25036 }
25037 let val_ref = self.source_dictionary.get_or_insert_with(|| {
25038 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25039 });
25040 fidl::decode!(
25041 fidl::encoding::BoundedString<1024>,
25042 D,
25043 val_ref,
25044 decoder,
25045 inner_offset,
25046 inner_depth
25047 )?;
25048 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25049 {
25050 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25051 }
25052 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25053 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25054 }
25055 }
25056
25057 next_offset += envelope_size;
25058 _next_ordinal_to_read += 1;
25059 if next_offset >= end_offset {
25060 return Ok(());
25061 }
25062
25063 while _next_ordinal_to_read < 7 {
25065 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25066 _next_ordinal_to_read += 1;
25067 next_offset += envelope_size;
25068 }
25069
25070 let next_out_of_line = decoder.next_out_of_line();
25071 let handles_before = decoder.remaining_handles();
25072 if let Some((inlined, num_bytes, num_handles)) =
25073 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25074 {
25075 let member_inline_size =
25076 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25077 if inlined != (member_inline_size <= 4) {
25078 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25079 }
25080 let inner_offset;
25081 let mut inner_depth = depth.clone();
25082 if inlined {
25083 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25084 inner_offset = next_offset;
25085 } else {
25086 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25087 inner_depth.increment()?;
25088 }
25089 let val_ref = self.numbered_handle.get_or_insert_with(|| fidl::new_empty!(u8, D));
25090 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
25091 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25092 {
25093 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25094 }
25095 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25096 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25097 }
25098 }
25099
25100 next_offset += envelope_size;
25101
25102 while next_offset < end_offset {
25104 _next_ordinal_to_read += 1;
25105 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25106 next_offset += envelope_size;
25107 }
25108
25109 Ok(())
25110 }
25111 }
25112
25113 impl UseRunner {
25114 #[inline(always)]
25115 fn max_ordinal_present(&self) -> u64 {
25116 if let Some(_) = self.source_dictionary {
25117 return 3;
25118 }
25119 if let Some(_) = self.source_name {
25120 return 2;
25121 }
25122 if let Some(_) = self.source {
25123 return 1;
25124 }
25125 0
25126 }
25127 }
25128
25129 impl fidl::encoding::ValueTypeMarker for UseRunner {
25130 type Borrowed<'a> = &'a Self;
25131 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
25132 value
25133 }
25134 }
25135
25136 unsafe impl fidl::encoding::TypeMarker for UseRunner {
25137 type Owned = Self;
25138
25139 #[inline(always)]
25140 fn inline_align(_context: fidl::encoding::Context) -> usize {
25141 8
25142 }
25143
25144 #[inline(always)]
25145 fn inline_size(_context: fidl::encoding::Context) -> usize {
25146 16
25147 }
25148 }
25149
25150 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseRunner, D>
25151 for &UseRunner
25152 {
25153 unsafe fn encode(
25154 self,
25155 encoder: &mut fidl::encoding::Encoder<'_, D>,
25156 offset: usize,
25157 mut depth: fidl::encoding::Depth,
25158 ) -> fidl::Result<()> {
25159 encoder.debug_check_bounds::<UseRunner>(offset);
25160 let max_ordinal: u64 = self.max_ordinal_present();
25162 encoder.write_num(max_ordinal, offset);
25163 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
25164 if max_ordinal == 0 {
25166 return Ok(());
25167 }
25168 depth.increment()?;
25169 let envelope_size = 8;
25170 let bytes_len = max_ordinal as usize * envelope_size;
25171 #[allow(unused_variables)]
25172 let offset = encoder.out_of_line_offset(bytes_len);
25173 let mut _prev_end_offset: usize = 0;
25174 if 1 > max_ordinal {
25175 return Ok(());
25176 }
25177
25178 let cur_offset: usize = (1 - 1) * envelope_size;
25181
25182 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25184
25185 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
25190 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
25191 encoder,
25192 offset + cur_offset,
25193 depth,
25194 )?;
25195
25196 _prev_end_offset = cur_offset + envelope_size;
25197 if 2 > max_ordinal {
25198 return Ok(());
25199 }
25200
25201 let cur_offset: usize = (2 - 1) * envelope_size;
25204
25205 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25207
25208 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
25213 self.source_name.as_ref().map(
25214 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
25215 ),
25216 encoder,
25217 offset + cur_offset,
25218 depth,
25219 )?;
25220
25221 _prev_end_offset = cur_offset + envelope_size;
25222 if 3 > max_ordinal {
25223 return Ok(());
25224 }
25225
25226 let cur_offset: usize = (3 - 1) * envelope_size;
25229
25230 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25232
25233 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
25238 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
25239 encoder, offset + cur_offset, depth
25240 )?;
25241
25242 _prev_end_offset = cur_offset + envelope_size;
25243
25244 Ok(())
25245 }
25246 }
25247
25248 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseRunner {
25249 #[inline(always)]
25250 fn new_empty() -> Self {
25251 Self::default()
25252 }
25253
25254 unsafe fn decode(
25255 &mut self,
25256 decoder: &mut fidl::encoding::Decoder<'_, D>,
25257 offset: usize,
25258 mut depth: fidl::encoding::Depth,
25259 ) -> fidl::Result<()> {
25260 decoder.debug_check_bounds::<Self>(offset);
25261 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
25262 None => return Err(fidl::Error::NotNullable),
25263 Some(len) => len,
25264 };
25265 if len == 0 {
25267 return Ok(());
25268 };
25269 depth.increment()?;
25270 let envelope_size = 8;
25271 let bytes_len = len * envelope_size;
25272 let offset = decoder.out_of_line_offset(bytes_len)?;
25273 let mut _next_ordinal_to_read = 0;
25275 let mut next_offset = offset;
25276 let end_offset = offset + bytes_len;
25277 _next_ordinal_to_read += 1;
25278 if next_offset >= end_offset {
25279 return Ok(());
25280 }
25281
25282 while _next_ordinal_to_read < 1 {
25284 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25285 _next_ordinal_to_read += 1;
25286 next_offset += envelope_size;
25287 }
25288
25289 let next_out_of_line = decoder.next_out_of_line();
25290 let handles_before = decoder.remaining_handles();
25291 if let Some((inlined, num_bytes, num_handles)) =
25292 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25293 {
25294 let member_inline_size =
25295 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25296 if inlined != (member_inline_size <= 4) {
25297 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25298 }
25299 let inner_offset;
25300 let mut inner_depth = depth.clone();
25301 if inlined {
25302 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25303 inner_offset = next_offset;
25304 } else {
25305 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25306 inner_depth.increment()?;
25307 }
25308 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
25309 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
25310 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25311 {
25312 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25313 }
25314 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25315 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25316 }
25317 }
25318
25319 next_offset += envelope_size;
25320 _next_ordinal_to_read += 1;
25321 if next_offset >= end_offset {
25322 return Ok(());
25323 }
25324
25325 while _next_ordinal_to_read < 2 {
25327 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25328 _next_ordinal_to_read += 1;
25329 next_offset += envelope_size;
25330 }
25331
25332 let next_out_of_line = decoder.next_out_of_line();
25333 let handles_before = decoder.remaining_handles();
25334 if let Some((inlined, num_bytes, num_handles)) =
25335 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25336 {
25337 let member_inline_size =
25338 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
25339 decoder.context,
25340 );
25341 if inlined != (member_inline_size <= 4) {
25342 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25343 }
25344 let inner_offset;
25345 let mut inner_depth = depth.clone();
25346 if inlined {
25347 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25348 inner_offset = next_offset;
25349 } else {
25350 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25351 inner_depth.increment()?;
25352 }
25353 let val_ref = self
25354 .source_name
25355 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
25356 fidl::decode!(
25357 fidl::encoding::BoundedString<100>,
25358 D,
25359 val_ref,
25360 decoder,
25361 inner_offset,
25362 inner_depth
25363 )?;
25364 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25365 {
25366 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25367 }
25368 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25369 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25370 }
25371 }
25372
25373 next_offset += envelope_size;
25374 _next_ordinal_to_read += 1;
25375 if next_offset >= end_offset {
25376 return Ok(());
25377 }
25378
25379 while _next_ordinal_to_read < 3 {
25381 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25382 _next_ordinal_to_read += 1;
25383 next_offset += envelope_size;
25384 }
25385
25386 let next_out_of_line = decoder.next_out_of_line();
25387 let handles_before = decoder.remaining_handles();
25388 if let Some((inlined, num_bytes, num_handles)) =
25389 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25390 {
25391 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25392 if inlined != (member_inline_size <= 4) {
25393 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25394 }
25395 let inner_offset;
25396 let mut inner_depth = depth.clone();
25397 if inlined {
25398 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25399 inner_offset = next_offset;
25400 } else {
25401 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25402 inner_depth.increment()?;
25403 }
25404 let val_ref = self.source_dictionary.get_or_insert_with(|| {
25405 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25406 });
25407 fidl::decode!(
25408 fidl::encoding::BoundedString<1024>,
25409 D,
25410 val_ref,
25411 decoder,
25412 inner_offset,
25413 inner_depth
25414 )?;
25415 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25416 {
25417 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25418 }
25419 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25420 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25421 }
25422 }
25423
25424 next_offset += envelope_size;
25425
25426 while next_offset < end_offset {
25428 _next_ordinal_to_read += 1;
25429 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25430 next_offset += envelope_size;
25431 }
25432
25433 Ok(())
25434 }
25435 }
25436
25437 impl UseService {
25438 #[inline(always)]
25439 fn max_ordinal_present(&self) -> u64 {
25440 if let Some(_) = self.source_dictionary {
25441 return 6;
25442 }
25443 if let Some(_) = self.availability {
25444 return 5;
25445 }
25446 if let Some(_) = self.dependency_type {
25447 return 4;
25448 }
25449 if let Some(_) = self.target_path {
25450 return 3;
25451 }
25452 if let Some(_) = self.source_name {
25453 return 2;
25454 }
25455 if let Some(_) = self.source {
25456 return 1;
25457 }
25458 0
25459 }
25460 }
25461
25462 impl fidl::encoding::ValueTypeMarker for UseService {
25463 type Borrowed<'a> = &'a Self;
25464 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
25465 value
25466 }
25467 }
25468
25469 unsafe impl fidl::encoding::TypeMarker for UseService {
25470 type Owned = Self;
25471
25472 #[inline(always)]
25473 fn inline_align(_context: fidl::encoding::Context) -> usize {
25474 8
25475 }
25476
25477 #[inline(always)]
25478 fn inline_size(_context: fidl::encoding::Context) -> usize {
25479 16
25480 }
25481 }
25482
25483 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseService, D>
25484 for &UseService
25485 {
25486 unsafe fn encode(
25487 self,
25488 encoder: &mut fidl::encoding::Encoder<'_, D>,
25489 offset: usize,
25490 mut depth: fidl::encoding::Depth,
25491 ) -> fidl::Result<()> {
25492 encoder.debug_check_bounds::<UseService>(offset);
25493 let max_ordinal: u64 = self.max_ordinal_present();
25495 encoder.write_num(max_ordinal, offset);
25496 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
25497 if max_ordinal == 0 {
25499 return Ok(());
25500 }
25501 depth.increment()?;
25502 let envelope_size = 8;
25503 let bytes_len = max_ordinal as usize * envelope_size;
25504 #[allow(unused_variables)]
25505 let offset = encoder.out_of_line_offset(bytes_len);
25506 let mut _prev_end_offset: usize = 0;
25507 if 1 > max_ordinal {
25508 return Ok(());
25509 }
25510
25511 let cur_offset: usize = (1 - 1) * envelope_size;
25514
25515 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25517
25518 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
25523 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
25524 encoder,
25525 offset + cur_offset,
25526 depth,
25527 )?;
25528
25529 _prev_end_offset = cur_offset + envelope_size;
25530 if 2 > max_ordinal {
25531 return Ok(());
25532 }
25533
25534 let cur_offset: usize = (2 - 1) * envelope_size;
25537
25538 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25540
25541 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
25546 self.source_name.as_ref().map(
25547 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
25548 ),
25549 encoder,
25550 offset + cur_offset,
25551 depth,
25552 )?;
25553
25554 _prev_end_offset = cur_offset + envelope_size;
25555 if 3 > max_ordinal {
25556 return Ok(());
25557 }
25558
25559 let cur_offset: usize = (3 - 1) * envelope_size;
25562
25563 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25565
25566 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
25571 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
25572 encoder, offset + cur_offset, depth
25573 )?;
25574
25575 _prev_end_offset = cur_offset + envelope_size;
25576 if 4 > max_ordinal {
25577 return Ok(());
25578 }
25579
25580 let cur_offset: usize = (4 - 1) * envelope_size;
25583
25584 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25586
25587 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
25592 self.dependency_type
25593 .as_ref()
25594 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
25595 encoder,
25596 offset + cur_offset,
25597 depth,
25598 )?;
25599
25600 _prev_end_offset = cur_offset + envelope_size;
25601 if 5 > max_ordinal {
25602 return Ok(());
25603 }
25604
25605 let cur_offset: usize = (5 - 1) * envelope_size;
25608
25609 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25611
25612 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
25617 self.availability
25618 .as_ref()
25619 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
25620 encoder,
25621 offset + cur_offset,
25622 depth,
25623 )?;
25624
25625 _prev_end_offset = cur_offset + envelope_size;
25626 if 6 > max_ordinal {
25627 return Ok(());
25628 }
25629
25630 let cur_offset: usize = (6 - 1) * envelope_size;
25633
25634 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25636
25637 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
25642 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
25643 encoder, offset + cur_offset, depth
25644 )?;
25645
25646 _prev_end_offset = cur_offset + envelope_size;
25647
25648 Ok(())
25649 }
25650 }
25651
25652 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseService {
25653 #[inline(always)]
25654 fn new_empty() -> Self {
25655 Self::default()
25656 }
25657
25658 unsafe fn decode(
25659 &mut self,
25660 decoder: &mut fidl::encoding::Decoder<'_, D>,
25661 offset: usize,
25662 mut depth: fidl::encoding::Depth,
25663 ) -> fidl::Result<()> {
25664 decoder.debug_check_bounds::<Self>(offset);
25665 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
25666 None => return Err(fidl::Error::NotNullable),
25667 Some(len) => len,
25668 };
25669 if len == 0 {
25671 return Ok(());
25672 };
25673 depth.increment()?;
25674 let envelope_size = 8;
25675 let bytes_len = len * envelope_size;
25676 let offset = decoder.out_of_line_offset(bytes_len)?;
25677 let mut _next_ordinal_to_read = 0;
25679 let mut next_offset = offset;
25680 let end_offset = offset + bytes_len;
25681 _next_ordinal_to_read += 1;
25682 if next_offset >= end_offset {
25683 return Ok(());
25684 }
25685
25686 while _next_ordinal_to_read < 1 {
25688 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25689 _next_ordinal_to_read += 1;
25690 next_offset += envelope_size;
25691 }
25692
25693 let next_out_of_line = decoder.next_out_of_line();
25694 let handles_before = decoder.remaining_handles();
25695 if let Some((inlined, num_bytes, num_handles)) =
25696 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25697 {
25698 let member_inline_size =
25699 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25700 if inlined != (member_inline_size <= 4) {
25701 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25702 }
25703 let inner_offset;
25704 let mut inner_depth = depth.clone();
25705 if inlined {
25706 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25707 inner_offset = next_offset;
25708 } else {
25709 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25710 inner_depth.increment()?;
25711 }
25712 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
25713 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
25714 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25715 {
25716 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25717 }
25718 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25719 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25720 }
25721 }
25722
25723 next_offset += envelope_size;
25724 _next_ordinal_to_read += 1;
25725 if next_offset >= end_offset {
25726 return Ok(());
25727 }
25728
25729 while _next_ordinal_to_read < 2 {
25731 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25732 _next_ordinal_to_read += 1;
25733 next_offset += envelope_size;
25734 }
25735
25736 let next_out_of_line = decoder.next_out_of_line();
25737 let handles_before = decoder.remaining_handles();
25738 if let Some((inlined, num_bytes, num_handles)) =
25739 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25740 {
25741 let member_inline_size =
25742 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
25743 decoder.context,
25744 );
25745 if inlined != (member_inline_size <= 4) {
25746 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25747 }
25748 let inner_offset;
25749 let mut inner_depth = depth.clone();
25750 if inlined {
25751 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25752 inner_offset = next_offset;
25753 } else {
25754 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25755 inner_depth.increment()?;
25756 }
25757 let val_ref = self
25758 .source_name
25759 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
25760 fidl::decode!(
25761 fidl::encoding::BoundedString<100>,
25762 D,
25763 val_ref,
25764 decoder,
25765 inner_offset,
25766 inner_depth
25767 )?;
25768 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25769 {
25770 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25771 }
25772 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25773 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25774 }
25775 }
25776
25777 next_offset += envelope_size;
25778 _next_ordinal_to_read += 1;
25779 if next_offset >= end_offset {
25780 return Ok(());
25781 }
25782
25783 while _next_ordinal_to_read < 3 {
25785 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25786 _next_ordinal_to_read += 1;
25787 next_offset += envelope_size;
25788 }
25789
25790 let next_out_of_line = decoder.next_out_of_line();
25791 let handles_before = decoder.remaining_handles();
25792 if let Some((inlined, num_bytes, num_handles)) =
25793 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25794 {
25795 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25796 if inlined != (member_inline_size <= 4) {
25797 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25798 }
25799 let inner_offset;
25800 let mut inner_depth = depth.clone();
25801 if inlined {
25802 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25803 inner_offset = next_offset;
25804 } else {
25805 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25806 inner_depth.increment()?;
25807 }
25808 let val_ref = self.target_path.get_or_insert_with(|| {
25809 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25810 });
25811 fidl::decode!(
25812 fidl::encoding::BoundedString<1024>,
25813 D,
25814 val_ref,
25815 decoder,
25816 inner_offset,
25817 inner_depth
25818 )?;
25819 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25820 {
25821 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25822 }
25823 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25824 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25825 }
25826 }
25827
25828 next_offset += envelope_size;
25829 _next_ordinal_to_read += 1;
25830 if next_offset >= end_offset {
25831 return Ok(());
25832 }
25833
25834 while _next_ordinal_to_read < 4 {
25836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25837 _next_ordinal_to_read += 1;
25838 next_offset += envelope_size;
25839 }
25840
25841 let next_out_of_line = decoder.next_out_of_line();
25842 let handles_before = decoder.remaining_handles();
25843 if let Some((inlined, num_bytes, num_handles)) =
25844 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25845 {
25846 let member_inline_size =
25847 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25848 if inlined != (member_inline_size <= 4) {
25849 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25850 }
25851 let inner_offset;
25852 let mut inner_depth = depth.clone();
25853 if inlined {
25854 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25855 inner_offset = next_offset;
25856 } else {
25857 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25858 inner_depth.increment()?;
25859 }
25860 let val_ref =
25861 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
25862 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
25863 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25864 {
25865 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25866 }
25867 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25868 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25869 }
25870 }
25871
25872 next_offset += envelope_size;
25873 _next_ordinal_to_read += 1;
25874 if next_offset >= end_offset {
25875 return Ok(());
25876 }
25877
25878 while _next_ordinal_to_read < 5 {
25880 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25881 _next_ordinal_to_read += 1;
25882 next_offset += envelope_size;
25883 }
25884
25885 let next_out_of_line = decoder.next_out_of_line();
25886 let handles_before = decoder.remaining_handles();
25887 if let Some((inlined, num_bytes, num_handles)) =
25888 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25889 {
25890 let member_inline_size =
25891 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25892 if inlined != (member_inline_size <= 4) {
25893 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25894 }
25895 let inner_offset;
25896 let mut inner_depth = depth.clone();
25897 if inlined {
25898 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25899 inner_offset = next_offset;
25900 } else {
25901 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25902 inner_depth.increment()?;
25903 }
25904 let val_ref =
25905 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
25906 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
25907 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25908 {
25909 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25910 }
25911 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25912 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25913 }
25914 }
25915
25916 next_offset += envelope_size;
25917 _next_ordinal_to_read += 1;
25918 if next_offset >= end_offset {
25919 return Ok(());
25920 }
25921
25922 while _next_ordinal_to_read < 6 {
25924 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25925 _next_ordinal_to_read += 1;
25926 next_offset += envelope_size;
25927 }
25928
25929 let next_out_of_line = decoder.next_out_of_line();
25930 let handles_before = decoder.remaining_handles();
25931 if let Some((inlined, num_bytes, num_handles)) =
25932 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25933 {
25934 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25935 if inlined != (member_inline_size <= 4) {
25936 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25937 }
25938 let inner_offset;
25939 let mut inner_depth = depth.clone();
25940 if inlined {
25941 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25942 inner_offset = next_offset;
25943 } else {
25944 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25945 inner_depth.increment()?;
25946 }
25947 let val_ref = self.source_dictionary.get_or_insert_with(|| {
25948 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25949 });
25950 fidl::decode!(
25951 fidl::encoding::BoundedString<1024>,
25952 D,
25953 val_ref,
25954 decoder,
25955 inner_offset,
25956 inner_depth
25957 )?;
25958 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25959 {
25960 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25961 }
25962 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25963 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25964 }
25965 }
25966
25967 next_offset += envelope_size;
25968
25969 while next_offset < end_offset {
25971 _next_ordinal_to_read += 1;
25972 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25973 next_offset += envelope_size;
25974 }
25975
25976 Ok(())
25977 }
25978 }
25979
25980 impl UseStorage {
25981 #[inline(always)]
25982 fn max_ordinal_present(&self) -> u64 {
25983 if let Some(_) = self.availability {
25984 return 3;
25985 }
25986 if let Some(_) = self.target_path {
25987 return 2;
25988 }
25989 if let Some(_) = self.source_name {
25990 return 1;
25991 }
25992 0
25993 }
25994 }
25995
25996 impl fidl::encoding::ValueTypeMarker for UseStorage {
25997 type Borrowed<'a> = &'a Self;
25998 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
25999 value
26000 }
26001 }
26002
26003 unsafe impl fidl::encoding::TypeMarker for UseStorage {
26004 type Owned = Self;
26005
26006 #[inline(always)]
26007 fn inline_align(_context: fidl::encoding::Context) -> usize {
26008 8
26009 }
26010
26011 #[inline(always)]
26012 fn inline_size(_context: fidl::encoding::Context) -> usize {
26013 16
26014 }
26015 }
26016
26017 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseStorage, D>
26018 for &UseStorage
26019 {
26020 unsafe fn encode(
26021 self,
26022 encoder: &mut fidl::encoding::Encoder<'_, D>,
26023 offset: usize,
26024 mut depth: fidl::encoding::Depth,
26025 ) -> fidl::Result<()> {
26026 encoder.debug_check_bounds::<UseStorage>(offset);
26027 let max_ordinal: u64 = self.max_ordinal_present();
26029 encoder.write_num(max_ordinal, offset);
26030 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
26031 if max_ordinal == 0 {
26033 return Ok(());
26034 }
26035 depth.increment()?;
26036 let envelope_size = 8;
26037 let bytes_len = max_ordinal as usize * envelope_size;
26038 #[allow(unused_variables)]
26039 let offset = encoder.out_of_line_offset(bytes_len);
26040 let mut _prev_end_offset: usize = 0;
26041 if 1 > max_ordinal {
26042 return Ok(());
26043 }
26044
26045 let cur_offset: usize = (1 - 1) * envelope_size;
26048
26049 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
26051
26052 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
26057 self.source_name.as_ref().map(
26058 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
26059 ),
26060 encoder,
26061 offset + cur_offset,
26062 depth,
26063 )?;
26064
26065 _prev_end_offset = cur_offset + envelope_size;
26066 if 2 > max_ordinal {
26067 return Ok(());
26068 }
26069
26070 let cur_offset: usize = (2 - 1) * envelope_size;
26073
26074 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
26076
26077 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
26082 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
26083 encoder, offset + cur_offset, depth
26084 )?;
26085
26086 _prev_end_offset = cur_offset + envelope_size;
26087 if 3 > max_ordinal {
26088 return Ok(());
26089 }
26090
26091 let cur_offset: usize = (3 - 1) * envelope_size;
26094
26095 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
26097
26098 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
26103 self.availability
26104 .as_ref()
26105 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
26106 encoder,
26107 offset + cur_offset,
26108 depth,
26109 )?;
26110
26111 _prev_end_offset = cur_offset + envelope_size;
26112
26113 Ok(())
26114 }
26115 }
26116
26117 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseStorage {
26118 #[inline(always)]
26119 fn new_empty() -> Self {
26120 Self::default()
26121 }
26122
26123 unsafe fn decode(
26124 &mut self,
26125 decoder: &mut fidl::encoding::Decoder<'_, D>,
26126 offset: usize,
26127 mut depth: fidl::encoding::Depth,
26128 ) -> fidl::Result<()> {
26129 decoder.debug_check_bounds::<Self>(offset);
26130 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
26131 None => return Err(fidl::Error::NotNullable),
26132 Some(len) => len,
26133 };
26134 if len == 0 {
26136 return Ok(());
26137 };
26138 depth.increment()?;
26139 let envelope_size = 8;
26140 let bytes_len = len * envelope_size;
26141 let offset = decoder.out_of_line_offset(bytes_len)?;
26142 let mut _next_ordinal_to_read = 0;
26144 let mut next_offset = offset;
26145 let end_offset = offset + bytes_len;
26146 _next_ordinal_to_read += 1;
26147 if next_offset >= end_offset {
26148 return Ok(());
26149 }
26150
26151 while _next_ordinal_to_read < 1 {
26153 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
26154 _next_ordinal_to_read += 1;
26155 next_offset += envelope_size;
26156 }
26157
26158 let next_out_of_line = decoder.next_out_of_line();
26159 let handles_before = decoder.remaining_handles();
26160 if let Some((inlined, num_bytes, num_handles)) =
26161 fidl::encoding::decode_envelope_header(decoder, next_offset)?
26162 {
26163 let member_inline_size =
26164 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
26165 decoder.context,
26166 );
26167 if inlined != (member_inline_size <= 4) {
26168 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26169 }
26170 let inner_offset;
26171 let mut inner_depth = depth.clone();
26172 if inlined {
26173 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
26174 inner_offset = next_offset;
26175 } else {
26176 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26177 inner_depth.increment()?;
26178 }
26179 let val_ref = self
26180 .source_name
26181 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
26182 fidl::decode!(
26183 fidl::encoding::BoundedString<100>,
26184 D,
26185 val_ref,
26186 decoder,
26187 inner_offset,
26188 inner_depth
26189 )?;
26190 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
26191 {
26192 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26193 }
26194 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26195 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26196 }
26197 }
26198
26199 next_offset += envelope_size;
26200 _next_ordinal_to_read += 1;
26201 if next_offset >= end_offset {
26202 return Ok(());
26203 }
26204
26205 while _next_ordinal_to_read < 2 {
26207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
26208 _next_ordinal_to_read += 1;
26209 next_offset += envelope_size;
26210 }
26211
26212 let next_out_of_line = decoder.next_out_of_line();
26213 let handles_before = decoder.remaining_handles();
26214 if let Some((inlined, num_bytes, num_handles)) =
26215 fidl::encoding::decode_envelope_header(decoder, next_offset)?
26216 {
26217 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
26218 if inlined != (member_inline_size <= 4) {
26219 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26220 }
26221 let inner_offset;
26222 let mut inner_depth = depth.clone();
26223 if inlined {
26224 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
26225 inner_offset = next_offset;
26226 } else {
26227 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26228 inner_depth.increment()?;
26229 }
26230 let val_ref = self.target_path.get_or_insert_with(|| {
26231 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
26232 });
26233 fidl::decode!(
26234 fidl::encoding::BoundedString<1024>,
26235 D,
26236 val_ref,
26237 decoder,
26238 inner_offset,
26239 inner_depth
26240 )?;
26241 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
26242 {
26243 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26244 }
26245 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26246 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26247 }
26248 }
26249
26250 next_offset += envelope_size;
26251 _next_ordinal_to_read += 1;
26252 if next_offset >= end_offset {
26253 return Ok(());
26254 }
26255
26256 while _next_ordinal_to_read < 3 {
26258 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
26259 _next_ordinal_to_read += 1;
26260 next_offset += envelope_size;
26261 }
26262
26263 let next_out_of_line = decoder.next_out_of_line();
26264 let handles_before = decoder.remaining_handles();
26265 if let Some((inlined, num_bytes, num_handles)) =
26266 fidl::encoding::decode_envelope_header(decoder, next_offset)?
26267 {
26268 let member_inline_size =
26269 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
26270 if inlined != (member_inline_size <= 4) {
26271 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26272 }
26273 let inner_offset;
26274 let mut inner_depth = depth.clone();
26275 if inlined {
26276 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
26277 inner_offset = next_offset;
26278 } else {
26279 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26280 inner_depth.increment()?;
26281 }
26282 let val_ref =
26283 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
26284 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
26285 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
26286 {
26287 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26288 }
26289 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26290 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26291 }
26292 }
26293
26294 next_offset += envelope_size;
26295
26296 while next_offset < end_offset {
26298 _next_ordinal_to_read += 1;
26299 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
26300 next_offset += envelope_size;
26301 }
26302
26303 Ok(())
26304 }
26305 }
26306
26307 impl fidl::encoding::ValueTypeMarker for Capability {
26308 type Borrowed<'a> = &'a Self;
26309 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26310 value
26311 }
26312 }
26313
26314 unsafe impl fidl::encoding::TypeMarker for Capability {
26315 type Owned = Self;
26316
26317 #[inline(always)]
26318 fn inline_align(_context: fidl::encoding::Context) -> usize {
26319 8
26320 }
26321
26322 #[inline(always)]
26323 fn inline_size(_context: fidl::encoding::Context) -> usize {
26324 16
26325 }
26326 }
26327
26328 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Capability, D>
26329 for &Capability
26330 {
26331 #[inline]
26332 unsafe fn encode(
26333 self,
26334 encoder: &mut fidl::encoding::Encoder<'_, D>,
26335 offset: usize,
26336 _depth: fidl::encoding::Depth,
26337 ) -> fidl::Result<()> {
26338 encoder.debug_check_bounds::<Capability>(offset);
26339 encoder.write_num::<u64>(self.ordinal(), offset);
26340 match self {
26341 Capability::Service(ref val) => fidl::encoding::encode_in_envelope::<Service, D>(
26342 <Service as fidl::encoding::ValueTypeMarker>::borrow(val),
26343 encoder,
26344 offset + 8,
26345 _depth,
26346 ),
26347 Capability::Protocol(ref val) => fidl::encoding::encode_in_envelope::<Protocol, D>(
26348 <Protocol as fidl::encoding::ValueTypeMarker>::borrow(val),
26349 encoder,
26350 offset + 8,
26351 _depth,
26352 ),
26353 Capability::Directory(ref val) => {
26354 fidl::encoding::encode_in_envelope::<Directory, D>(
26355 <Directory as fidl::encoding::ValueTypeMarker>::borrow(val),
26356 encoder,
26357 offset + 8,
26358 _depth,
26359 )
26360 }
26361 Capability::Storage(ref val) => fidl::encoding::encode_in_envelope::<Storage, D>(
26362 <Storage as fidl::encoding::ValueTypeMarker>::borrow(val),
26363 encoder,
26364 offset + 8,
26365 _depth,
26366 ),
26367 Capability::Runner(ref val) => fidl::encoding::encode_in_envelope::<Runner, D>(
26368 <Runner as fidl::encoding::ValueTypeMarker>::borrow(val),
26369 encoder,
26370 offset + 8,
26371 _depth,
26372 ),
26373 Capability::Resolver(ref val) => fidl::encoding::encode_in_envelope::<Resolver, D>(
26374 <Resolver as fidl::encoding::ValueTypeMarker>::borrow(val),
26375 encoder,
26376 offset + 8,
26377 _depth,
26378 ),
26379 Capability::EventStream(ref val) => {
26380 fidl::encoding::encode_in_envelope::<EventStream, D>(
26381 <EventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
26382 encoder,
26383 offset + 8,
26384 _depth,
26385 )
26386 }
26387 Capability::Dictionary(ref val) => {
26388 fidl::encoding::encode_in_envelope::<Dictionary, D>(
26389 <Dictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
26390 encoder,
26391 offset + 8,
26392 _depth,
26393 )
26394 }
26395 Capability::Config(ref val) => {
26396 fidl::encoding::encode_in_envelope::<Configuration, D>(
26397 <Configuration as fidl::encoding::ValueTypeMarker>::borrow(val),
26398 encoder,
26399 offset + 8,
26400 _depth,
26401 )
26402 }
26403 Capability::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26404 }
26405 }
26406 }
26407
26408 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Capability {
26409 #[inline(always)]
26410 fn new_empty() -> Self {
26411 Self::__SourceBreaking { unknown_ordinal: 0 }
26412 }
26413
26414 #[inline]
26415 unsafe fn decode(
26416 &mut self,
26417 decoder: &mut fidl::encoding::Decoder<'_, D>,
26418 offset: usize,
26419 mut depth: fidl::encoding::Depth,
26420 ) -> fidl::Result<()> {
26421 decoder.debug_check_bounds::<Self>(offset);
26422 #[allow(unused_variables)]
26423 let next_out_of_line = decoder.next_out_of_line();
26424 let handles_before = decoder.remaining_handles();
26425 let (ordinal, inlined, num_bytes, num_handles) =
26426 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26427
26428 let member_inline_size = match ordinal {
26429 1 => <Service as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26430 2 => <Protocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26431 3 => <Directory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26432 4 => <Storage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26433 5 => <Runner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26434 6 => <Resolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26435 8 => <EventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26436 9 => <Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26437 10 => <Configuration as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26438 0 => return Err(fidl::Error::UnknownUnionTag),
26439 _ => num_bytes as usize,
26440 };
26441
26442 if inlined != (member_inline_size <= 4) {
26443 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26444 }
26445 let _inner_offset;
26446 if inlined {
26447 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26448 _inner_offset = offset + 8;
26449 } else {
26450 depth.increment()?;
26451 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26452 }
26453 match ordinal {
26454 1 => {
26455 #[allow(irrefutable_let_patterns)]
26456 if let Capability::Service(_) = self {
26457 } else {
26459 *self = Capability::Service(fidl::new_empty!(Service, D));
26461 }
26462 #[allow(irrefutable_let_patterns)]
26463 if let Capability::Service(ref mut val) = self {
26464 fidl::decode!(Service, D, val, decoder, _inner_offset, depth)?;
26465 } else {
26466 unreachable!()
26467 }
26468 }
26469 2 => {
26470 #[allow(irrefutable_let_patterns)]
26471 if let Capability::Protocol(_) = self {
26472 } else {
26474 *self = Capability::Protocol(fidl::new_empty!(Protocol, D));
26476 }
26477 #[allow(irrefutable_let_patterns)]
26478 if let Capability::Protocol(ref mut val) = self {
26479 fidl::decode!(Protocol, D, val, decoder, _inner_offset, depth)?;
26480 } else {
26481 unreachable!()
26482 }
26483 }
26484 3 => {
26485 #[allow(irrefutable_let_patterns)]
26486 if let Capability::Directory(_) = self {
26487 } else {
26489 *self = Capability::Directory(fidl::new_empty!(Directory, D));
26491 }
26492 #[allow(irrefutable_let_patterns)]
26493 if let Capability::Directory(ref mut val) = self {
26494 fidl::decode!(Directory, D, val, decoder, _inner_offset, depth)?;
26495 } else {
26496 unreachable!()
26497 }
26498 }
26499 4 => {
26500 #[allow(irrefutable_let_patterns)]
26501 if let Capability::Storage(_) = self {
26502 } else {
26504 *self = Capability::Storage(fidl::new_empty!(Storage, D));
26506 }
26507 #[allow(irrefutable_let_patterns)]
26508 if let Capability::Storage(ref mut val) = self {
26509 fidl::decode!(Storage, D, val, decoder, _inner_offset, depth)?;
26510 } else {
26511 unreachable!()
26512 }
26513 }
26514 5 => {
26515 #[allow(irrefutable_let_patterns)]
26516 if let Capability::Runner(_) = self {
26517 } else {
26519 *self = Capability::Runner(fidl::new_empty!(Runner, D));
26521 }
26522 #[allow(irrefutable_let_patterns)]
26523 if let Capability::Runner(ref mut val) = self {
26524 fidl::decode!(Runner, D, val, decoder, _inner_offset, depth)?;
26525 } else {
26526 unreachable!()
26527 }
26528 }
26529 6 => {
26530 #[allow(irrefutable_let_patterns)]
26531 if let Capability::Resolver(_) = self {
26532 } else {
26534 *self = Capability::Resolver(fidl::new_empty!(Resolver, D));
26536 }
26537 #[allow(irrefutable_let_patterns)]
26538 if let Capability::Resolver(ref mut val) = self {
26539 fidl::decode!(Resolver, D, val, decoder, _inner_offset, depth)?;
26540 } else {
26541 unreachable!()
26542 }
26543 }
26544 8 => {
26545 #[allow(irrefutable_let_patterns)]
26546 if let Capability::EventStream(_) = self {
26547 } else {
26549 *self = Capability::EventStream(fidl::new_empty!(EventStream, D));
26551 }
26552 #[allow(irrefutable_let_patterns)]
26553 if let Capability::EventStream(ref mut val) = self {
26554 fidl::decode!(EventStream, D, val, decoder, _inner_offset, depth)?;
26555 } else {
26556 unreachable!()
26557 }
26558 }
26559 9 => {
26560 #[allow(irrefutable_let_patterns)]
26561 if let Capability::Dictionary(_) = self {
26562 } else {
26564 *self = Capability::Dictionary(fidl::new_empty!(Dictionary, D));
26566 }
26567 #[allow(irrefutable_let_patterns)]
26568 if let Capability::Dictionary(ref mut val) = self {
26569 fidl::decode!(Dictionary, D, val, decoder, _inner_offset, depth)?;
26570 } else {
26571 unreachable!()
26572 }
26573 }
26574 10 => {
26575 #[allow(irrefutable_let_patterns)]
26576 if let Capability::Config(_) = self {
26577 } else {
26579 *self = Capability::Config(fidl::new_empty!(Configuration, D));
26581 }
26582 #[allow(irrefutable_let_patterns)]
26583 if let Capability::Config(ref mut val) = self {
26584 fidl::decode!(Configuration, D, val, decoder, _inner_offset, depth)?;
26585 } else {
26586 unreachable!()
26587 }
26588 }
26589 #[allow(deprecated)]
26590 ordinal => {
26591 for _ in 0..num_handles {
26592 decoder.drop_next_handle()?;
26593 }
26594 *self = Capability::__SourceBreaking { unknown_ordinal: ordinal };
26595 }
26596 }
26597 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
26598 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26599 }
26600 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26601 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26602 }
26603 Ok(())
26604 }
26605 }
26606
26607 impl fidl::encoding::ValueTypeMarker for ConfigChecksum {
26608 type Borrowed<'a> = &'a Self;
26609 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26610 value
26611 }
26612 }
26613
26614 unsafe impl fidl::encoding::TypeMarker for ConfigChecksum {
26615 type Owned = Self;
26616
26617 #[inline(always)]
26618 fn inline_align(_context: fidl::encoding::Context) -> usize {
26619 8
26620 }
26621
26622 #[inline(always)]
26623 fn inline_size(_context: fidl::encoding::Context) -> usize {
26624 16
26625 }
26626 }
26627
26628 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigChecksum, D>
26629 for &ConfigChecksum
26630 {
26631 #[inline]
26632 unsafe fn encode(
26633 self,
26634 encoder: &mut fidl::encoding::Encoder<'_, D>,
26635 offset: usize,
26636 _depth: fidl::encoding::Depth,
26637 ) -> fidl::Result<()> {
26638 encoder.debug_check_bounds::<ConfigChecksum>(offset);
26639 encoder.write_num::<u64>(self.ordinal(), offset);
26640 match self {
26641 ConfigChecksum::Sha256(ref val) => fidl::encoding::encode_in_envelope::<
26642 fidl::encoding::Array<u8, 32>,
26643 D,
26644 >(
26645 <fidl::encoding::Array<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow(val),
26646 encoder,
26647 offset + 8,
26648 _depth,
26649 ),
26650 ConfigChecksum::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26651 }
26652 }
26653 }
26654
26655 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigChecksum {
26656 #[inline(always)]
26657 fn new_empty() -> Self {
26658 Self::__SourceBreaking { unknown_ordinal: 0 }
26659 }
26660
26661 #[inline]
26662 unsafe fn decode(
26663 &mut self,
26664 decoder: &mut fidl::encoding::Decoder<'_, D>,
26665 offset: usize,
26666 mut depth: fidl::encoding::Depth,
26667 ) -> fidl::Result<()> {
26668 decoder.debug_check_bounds::<Self>(offset);
26669 #[allow(unused_variables)]
26670 let next_out_of_line = decoder.next_out_of_line();
26671 let handles_before = decoder.remaining_handles();
26672 let (ordinal, inlined, num_bytes, num_handles) =
26673 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26674
26675 let member_inline_size = match ordinal {
26676 1 => <fidl::encoding::Array<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
26677 decoder.context,
26678 ),
26679 0 => return Err(fidl::Error::UnknownUnionTag),
26680 _ => num_bytes as usize,
26681 };
26682
26683 if inlined != (member_inline_size <= 4) {
26684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26685 }
26686 let _inner_offset;
26687 if inlined {
26688 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26689 _inner_offset = offset + 8;
26690 } else {
26691 depth.increment()?;
26692 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26693 }
26694 match ordinal {
26695 1 => {
26696 #[allow(irrefutable_let_patterns)]
26697 if let ConfigChecksum::Sha256(_) = self {
26698 } else {
26700 *self = ConfigChecksum::Sha256(
26702 fidl::new_empty!(fidl::encoding::Array<u8, 32>, D),
26703 );
26704 }
26705 #[allow(irrefutable_let_patterns)]
26706 if let ConfigChecksum::Sha256(ref mut val) = self {
26707 fidl::decode!(fidl::encoding::Array<u8, 32>, D, val, decoder, _inner_offset, depth)?;
26708 } else {
26709 unreachable!()
26710 }
26711 }
26712 #[allow(deprecated)]
26713 ordinal => {
26714 for _ in 0..num_handles {
26715 decoder.drop_next_handle()?;
26716 }
26717 *self = ConfigChecksum::__SourceBreaking { unknown_ordinal: ordinal };
26718 }
26719 }
26720 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
26721 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26722 }
26723 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26724 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26725 }
26726 Ok(())
26727 }
26728 }
26729
26730 impl fidl::encoding::ValueTypeMarker for ConfigSingleValue {
26731 type Borrowed<'a> = &'a Self;
26732 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26733 value
26734 }
26735 }
26736
26737 unsafe impl fidl::encoding::TypeMarker for ConfigSingleValue {
26738 type Owned = Self;
26739
26740 #[inline(always)]
26741 fn inline_align(_context: fidl::encoding::Context) -> usize {
26742 8
26743 }
26744
26745 #[inline(always)]
26746 fn inline_size(_context: fidl::encoding::Context) -> usize {
26747 16
26748 }
26749 }
26750
26751 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigSingleValue, D>
26752 for &ConfigSingleValue
26753 {
26754 #[inline]
26755 unsafe fn encode(
26756 self,
26757 encoder: &mut fidl::encoding::Encoder<'_, D>,
26758 offset: usize,
26759 _depth: fidl::encoding::Depth,
26760 ) -> fidl::Result<()> {
26761 encoder.debug_check_bounds::<ConfigSingleValue>(offset);
26762 encoder.write_num::<u64>(self.ordinal(), offset);
26763 match self {
26764 ConfigSingleValue::Bool(ref val) => fidl::encoding::encode_in_envelope::<bool, D>(
26765 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
26766 encoder,
26767 offset + 8,
26768 _depth,
26769 ),
26770 ConfigSingleValue::Uint8(ref val) => fidl::encoding::encode_in_envelope::<u8, D>(
26771 <u8 as fidl::encoding::ValueTypeMarker>::borrow(val),
26772 encoder,
26773 offset + 8,
26774 _depth,
26775 ),
26776 ConfigSingleValue::Uint16(ref val) => fidl::encoding::encode_in_envelope::<u16, D>(
26777 <u16 as fidl::encoding::ValueTypeMarker>::borrow(val),
26778 encoder,
26779 offset + 8,
26780 _depth,
26781 ),
26782 ConfigSingleValue::Uint32(ref val) => fidl::encoding::encode_in_envelope::<u32, D>(
26783 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
26784 encoder,
26785 offset + 8,
26786 _depth,
26787 ),
26788 ConfigSingleValue::Uint64(ref val) => fidl::encoding::encode_in_envelope::<u64, D>(
26789 <u64 as fidl::encoding::ValueTypeMarker>::borrow(val),
26790 encoder,
26791 offset + 8,
26792 _depth,
26793 ),
26794 ConfigSingleValue::Int8(ref val) => fidl::encoding::encode_in_envelope::<i8, D>(
26795 <i8 as fidl::encoding::ValueTypeMarker>::borrow(val),
26796 encoder,
26797 offset + 8,
26798 _depth,
26799 ),
26800 ConfigSingleValue::Int16(ref val) => fidl::encoding::encode_in_envelope::<i16, D>(
26801 <i16 as fidl::encoding::ValueTypeMarker>::borrow(val),
26802 encoder,
26803 offset + 8,
26804 _depth,
26805 ),
26806 ConfigSingleValue::Int32(ref val) => fidl::encoding::encode_in_envelope::<i32, D>(
26807 <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
26808 encoder,
26809 offset + 8,
26810 _depth,
26811 ),
26812 ConfigSingleValue::Int64(ref val) => fidl::encoding::encode_in_envelope::<i64, D>(
26813 <i64 as fidl::encoding::ValueTypeMarker>::borrow(val),
26814 encoder,
26815 offset + 8,
26816 _depth,
26817 ),
26818 ConfigSingleValue::String(ref val) => fidl::encoding::encode_in_envelope::<
26819 fidl::encoding::UnboundedString,
26820 D,
26821 >(
26822 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
26823 val,
26824 ),
26825 encoder,
26826 offset + 8,
26827 _depth,
26828 ),
26829 ConfigSingleValue::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26830 }
26831 }
26832 }
26833
26834 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigSingleValue {
26835 #[inline(always)]
26836 fn new_empty() -> Self {
26837 Self::__SourceBreaking { unknown_ordinal: 0 }
26838 }
26839
26840 #[inline]
26841 unsafe fn decode(
26842 &mut self,
26843 decoder: &mut fidl::encoding::Decoder<'_, D>,
26844 offset: usize,
26845 mut depth: fidl::encoding::Depth,
26846 ) -> fidl::Result<()> {
26847 decoder.debug_check_bounds::<Self>(offset);
26848 #[allow(unused_variables)]
26849 let next_out_of_line = decoder.next_out_of_line();
26850 let handles_before = decoder.remaining_handles();
26851 let (ordinal, inlined, num_bytes, num_handles) =
26852 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26853
26854 let member_inline_size = match ordinal {
26855 1 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26856 2 => <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26857 3 => <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26858 4 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26859 5 => <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26860 6 => <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26861 7 => <i16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26862 8 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26863 9 => <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26864 10 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
26865 decoder.context,
26866 ),
26867 0 => return Err(fidl::Error::UnknownUnionTag),
26868 _ => num_bytes as usize,
26869 };
26870
26871 if inlined != (member_inline_size <= 4) {
26872 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26873 }
26874 let _inner_offset;
26875 if inlined {
26876 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26877 _inner_offset = offset + 8;
26878 } else {
26879 depth.increment()?;
26880 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26881 }
26882 match ordinal {
26883 1 => {
26884 #[allow(irrefutable_let_patterns)]
26885 if let ConfigSingleValue::Bool(_) = self {
26886 } else {
26888 *self = ConfigSingleValue::Bool(fidl::new_empty!(bool, D));
26890 }
26891 #[allow(irrefutable_let_patterns)]
26892 if let ConfigSingleValue::Bool(ref mut val) = self {
26893 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
26894 } else {
26895 unreachable!()
26896 }
26897 }
26898 2 => {
26899 #[allow(irrefutable_let_patterns)]
26900 if let ConfigSingleValue::Uint8(_) = self {
26901 } else {
26903 *self = ConfigSingleValue::Uint8(fidl::new_empty!(u8, D));
26905 }
26906 #[allow(irrefutable_let_patterns)]
26907 if let ConfigSingleValue::Uint8(ref mut val) = self {
26908 fidl::decode!(u8, D, val, decoder, _inner_offset, depth)?;
26909 } else {
26910 unreachable!()
26911 }
26912 }
26913 3 => {
26914 #[allow(irrefutable_let_patterns)]
26915 if let ConfigSingleValue::Uint16(_) = self {
26916 } else {
26918 *self = ConfigSingleValue::Uint16(fidl::new_empty!(u16, D));
26920 }
26921 #[allow(irrefutable_let_patterns)]
26922 if let ConfigSingleValue::Uint16(ref mut val) = self {
26923 fidl::decode!(u16, D, val, decoder, _inner_offset, depth)?;
26924 } else {
26925 unreachable!()
26926 }
26927 }
26928 4 => {
26929 #[allow(irrefutable_let_patterns)]
26930 if let ConfigSingleValue::Uint32(_) = self {
26931 } else {
26933 *self = ConfigSingleValue::Uint32(fidl::new_empty!(u32, D));
26935 }
26936 #[allow(irrefutable_let_patterns)]
26937 if let ConfigSingleValue::Uint32(ref mut val) = self {
26938 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
26939 } else {
26940 unreachable!()
26941 }
26942 }
26943 5 => {
26944 #[allow(irrefutable_let_patterns)]
26945 if let ConfigSingleValue::Uint64(_) = self {
26946 } else {
26948 *self = ConfigSingleValue::Uint64(fidl::new_empty!(u64, D));
26950 }
26951 #[allow(irrefutable_let_patterns)]
26952 if let ConfigSingleValue::Uint64(ref mut val) = self {
26953 fidl::decode!(u64, D, val, decoder, _inner_offset, depth)?;
26954 } else {
26955 unreachable!()
26956 }
26957 }
26958 6 => {
26959 #[allow(irrefutable_let_patterns)]
26960 if let ConfigSingleValue::Int8(_) = self {
26961 } else {
26963 *self = ConfigSingleValue::Int8(fidl::new_empty!(i8, D));
26965 }
26966 #[allow(irrefutable_let_patterns)]
26967 if let ConfigSingleValue::Int8(ref mut val) = self {
26968 fidl::decode!(i8, D, val, decoder, _inner_offset, depth)?;
26969 } else {
26970 unreachable!()
26971 }
26972 }
26973 7 => {
26974 #[allow(irrefutable_let_patterns)]
26975 if let ConfigSingleValue::Int16(_) = self {
26976 } else {
26978 *self = ConfigSingleValue::Int16(fidl::new_empty!(i16, D));
26980 }
26981 #[allow(irrefutable_let_patterns)]
26982 if let ConfigSingleValue::Int16(ref mut val) = self {
26983 fidl::decode!(i16, D, val, decoder, _inner_offset, depth)?;
26984 } else {
26985 unreachable!()
26986 }
26987 }
26988 8 => {
26989 #[allow(irrefutable_let_patterns)]
26990 if let ConfigSingleValue::Int32(_) = self {
26991 } else {
26993 *self = ConfigSingleValue::Int32(fidl::new_empty!(i32, D));
26995 }
26996 #[allow(irrefutable_let_patterns)]
26997 if let ConfigSingleValue::Int32(ref mut val) = self {
26998 fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
26999 } else {
27000 unreachable!()
27001 }
27002 }
27003 9 => {
27004 #[allow(irrefutable_let_patterns)]
27005 if let ConfigSingleValue::Int64(_) = self {
27006 } else {
27008 *self = ConfigSingleValue::Int64(fidl::new_empty!(i64, D));
27010 }
27011 #[allow(irrefutable_let_patterns)]
27012 if let ConfigSingleValue::Int64(ref mut val) = self {
27013 fidl::decode!(i64, D, val, decoder, _inner_offset, depth)?;
27014 } else {
27015 unreachable!()
27016 }
27017 }
27018 10 => {
27019 #[allow(irrefutable_let_patterns)]
27020 if let ConfigSingleValue::String(_) = self {
27021 } else {
27023 *self = ConfigSingleValue::String(fidl::new_empty!(
27025 fidl::encoding::UnboundedString,
27026 D
27027 ));
27028 }
27029 #[allow(irrefutable_let_patterns)]
27030 if let ConfigSingleValue::String(ref mut val) = self {
27031 fidl::decode!(
27032 fidl::encoding::UnboundedString,
27033 D,
27034 val,
27035 decoder,
27036 _inner_offset,
27037 depth
27038 )?;
27039 } else {
27040 unreachable!()
27041 }
27042 }
27043 #[allow(deprecated)]
27044 ordinal => {
27045 for _ in 0..num_handles {
27046 decoder.drop_next_handle()?;
27047 }
27048 *self = ConfigSingleValue::__SourceBreaking { unknown_ordinal: ordinal };
27049 }
27050 }
27051 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27052 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27053 }
27054 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27055 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27056 }
27057 Ok(())
27058 }
27059 }
27060
27061 impl fidl::encoding::ValueTypeMarker for ConfigValue {
27062 type Borrowed<'a> = &'a Self;
27063 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27064 value
27065 }
27066 }
27067
27068 unsafe impl fidl::encoding::TypeMarker for ConfigValue {
27069 type Owned = Self;
27070
27071 #[inline(always)]
27072 fn inline_align(_context: fidl::encoding::Context) -> usize {
27073 8
27074 }
27075
27076 #[inline(always)]
27077 fn inline_size(_context: fidl::encoding::Context) -> usize {
27078 16
27079 }
27080 }
27081
27082 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValue, D>
27083 for &ConfigValue
27084 {
27085 #[inline]
27086 unsafe fn encode(
27087 self,
27088 encoder: &mut fidl::encoding::Encoder<'_, D>,
27089 offset: usize,
27090 _depth: fidl::encoding::Depth,
27091 ) -> fidl::Result<()> {
27092 encoder.debug_check_bounds::<ConfigValue>(offset);
27093 encoder.write_num::<u64>(self.ordinal(), offset);
27094 match self {
27095 ConfigValue::Single(ref val) => {
27096 fidl::encoding::encode_in_envelope::<ConfigSingleValue, D>(
27097 <ConfigSingleValue as fidl::encoding::ValueTypeMarker>::borrow(val),
27098 encoder,
27099 offset + 8,
27100 _depth,
27101 )
27102 }
27103 ConfigValue::Vector(ref val) => {
27104 fidl::encoding::encode_in_envelope::<ConfigVectorValue, D>(
27105 <ConfigVectorValue as fidl::encoding::ValueTypeMarker>::borrow(val),
27106 encoder,
27107 offset + 8,
27108 _depth,
27109 )
27110 }
27111 ConfigValue::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27112 }
27113 }
27114 }
27115
27116 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValue {
27117 #[inline(always)]
27118 fn new_empty() -> Self {
27119 Self::__SourceBreaking { unknown_ordinal: 0 }
27120 }
27121
27122 #[inline]
27123 unsafe fn decode(
27124 &mut self,
27125 decoder: &mut fidl::encoding::Decoder<'_, D>,
27126 offset: usize,
27127 mut depth: fidl::encoding::Depth,
27128 ) -> fidl::Result<()> {
27129 decoder.debug_check_bounds::<Self>(offset);
27130 #[allow(unused_variables)]
27131 let next_out_of_line = decoder.next_out_of_line();
27132 let handles_before = decoder.remaining_handles();
27133 let (ordinal, inlined, num_bytes, num_handles) =
27134 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27135
27136 let member_inline_size = match ordinal {
27137 1 => {
27138 <ConfigSingleValue as fidl::encoding::TypeMarker>::inline_size(decoder.context)
27139 }
27140 2 => {
27141 <ConfigVectorValue as fidl::encoding::TypeMarker>::inline_size(decoder.context)
27142 }
27143 0 => return Err(fidl::Error::UnknownUnionTag),
27144 _ => num_bytes as usize,
27145 };
27146
27147 if inlined != (member_inline_size <= 4) {
27148 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27149 }
27150 let _inner_offset;
27151 if inlined {
27152 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27153 _inner_offset = offset + 8;
27154 } else {
27155 depth.increment()?;
27156 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27157 }
27158 match ordinal {
27159 1 => {
27160 #[allow(irrefutable_let_patterns)]
27161 if let ConfigValue::Single(_) = self {
27162 } else {
27164 *self = ConfigValue::Single(fidl::new_empty!(ConfigSingleValue, D));
27166 }
27167 #[allow(irrefutable_let_patterns)]
27168 if let ConfigValue::Single(ref mut val) = self {
27169 fidl::decode!(ConfigSingleValue, D, val, decoder, _inner_offset, depth)?;
27170 } else {
27171 unreachable!()
27172 }
27173 }
27174 2 => {
27175 #[allow(irrefutable_let_patterns)]
27176 if let ConfigValue::Vector(_) = self {
27177 } else {
27179 *self = ConfigValue::Vector(fidl::new_empty!(ConfigVectorValue, D));
27181 }
27182 #[allow(irrefutable_let_patterns)]
27183 if let ConfigValue::Vector(ref mut val) = self {
27184 fidl::decode!(ConfigVectorValue, D, val, decoder, _inner_offset, depth)?;
27185 } else {
27186 unreachable!()
27187 }
27188 }
27189 #[allow(deprecated)]
27190 ordinal => {
27191 for _ in 0..num_handles {
27192 decoder.drop_next_handle()?;
27193 }
27194 *self = ConfigValue::__SourceBreaking { unknown_ordinal: ordinal };
27195 }
27196 }
27197 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27198 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27199 }
27200 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27201 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27202 }
27203 Ok(())
27204 }
27205 }
27206
27207 impl fidl::encoding::ValueTypeMarker for ConfigValueSource {
27208 type Borrowed<'a> = &'a Self;
27209 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27210 value
27211 }
27212 }
27213
27214 unsafe impl fidl::encoding::TypeMarker for ConfigValueSource {
27215 type Owned = Self;
27216
27217 #[inline(always)]
27218 fn inline_align(_context: fidl::encoding::Context) -> usize {
27219 8
27220 }
27221
27222 #[inline(always)]
27223 fn inline_size(_context: fidl::encoding::Context) -> usize {
27224 16
27225 }
27226 }
27227
27228 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValueSource, D>
27229 for &ConfigValueSource
27230 {
27231 #[inline]
27232 unsafe fn encode(
27233 self,
27234 encoder: &mut fidl::encoding::Encoder<'_, D>,
27235 offset: usize,
27236 _depth: fidl::encoding::Depth,
27237 ) -> fidl::Result<()> {
27238 encoder.debug_check_bounds::<ConfigValueSource>(offset);
27239 encoder.write_num::<u64>(self.ordinal(), offset);
27240 match self {
27241 ConfigValueSource::PackagePath(ref val) => fidl::encoding::encode_in_envelope::<
27242 fidl::encoding::UnboundedString,
27243 D,
27244 >(
27245 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
27246 val,
27247 ),
27248 encoder,
27249 offset + 8,
27250 _depth,
27251 ),
27252 ConfigValueSource::Capabilities(ref val) => {
27253 fidl::encoding::encode_in_envelope::<ConfigSourceCapabilities, D>(
27254 <ConfigSourceCapabilities as fidl::encoding::ValueTypeMarker>::borrow(val),
27255 encoder,
27256 offset + 8,
27257 _depth,
27258 )
27259 }
27260 ConfigValueSource::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27261 }
27262 }
27263 }
27264
27265 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValueSource {
27266 #[inline(always)]
27267 fn new_empty() -> Self {
27268 Self::__SourceBreaking { unknown_ordinal: 0 }
27269 }
27270
27271 #[inline]
27272 unsafe fn decode(
27273 &mut self,
27274 decoder: &mut fidl::encoding::Decoder<'_, D>,
27275 offset: usize,
27276 mut depth: fidl::encoding::Depth,
27277 ) -> fidl::Result<()> {
27278 decoder.debug_check_bounds::<Self>(offset);
27279 #[allow(unused_variables)]
27280 let next_out_of_line = decoder.next_out_of_line();
27281 let handles_before = decoder.remaining_handles();
27282 let (ordinal, inlined, num_bytes, num_handles) =
27283 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27284
27285 let member_inline_size = match ordinal {
27286 1 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
27287 decoder.context,
27288 ),
27289 2 => <ConfigSourceCapabilities as fidl::encoding::TypeMarker>::inline_size(
27290 decoder.context,
27291 ),
27292 0 => return Err(fidl::Error::UnknownUnionTag),
27293 _ => num_bytes as usize,
27294 };
27295
27296 if inlined != (member_inline_size <= 4) {
27297 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27298 }
27299 let _inner_offset;
27300 if inlined {
27301 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27302 _inner_offset = offset + 8;
27303 } else {
27304 depth.increment()?;
27305 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27306 }
27307 match ordinal {
27308 1 => {
27309 #[allow(irrefutable_let_patterns)]
27310 if let ConfigValueSource::PackagePath(_) = self {
27311 } else {
27313 *self = ConfigValueSource::PackagePath(fidl::new_empty!(
27315 fidl::encoding::UnboundedString,
27316 D
27317 ));
27318 }
27319 #[allow(irrefutable_let_patterns)]
27320 if let ConfigValueSource::PackagePath(ref mut val) = self {
27321 fidl::decode!(
27322 fidl::encoding::UnboundedString,
27323 D,
27324 val,
27325 decoder,
27326 _inner_offset,
27327 depth
27328 )?;
27329 } else {
27330 unreachable!()
27331 }
27332 }
27333 2 => {
27334 #[allow(irrefutable_let_patterns)]
27335 if let ConfigValueSource::Capabilities(_) = self {
27336 } else {
27338 *self = ConfigValueSource::Capabilities(fidl::new_empty!(
27340 ConfigSourceCapabilities,
27341 D
27342 ));
27343 }
27344 #[allow(irrefutable_let_patterns)]
27345 if let ConfigValueSource::Capabilities(ref mut val) = self {
27346 fidl::decode!(
27347 ConfigSourceCapabilities,
27348 D,
27349 val,
27350 decoder,
27351 _inner_offset,
27352 depth
27353 )?;
27354 } else {
27355 unreachable!()
27356 }
27357 }
27358 #[allow(deprecated)]
27359 ordinal => {
27360 for _ in 0..num_handles {
27361 decoder.drop_next_handle()?;
27362 }
27363 *self = ConfigValueSource::__SourceBreaking { unknown_ordinal: ordinal };
27364 }
27365 }
27366 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27367 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27368 }
27369 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27370 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27371 }
27372 Ok(())
27373 }
27374 }
27375
27376 impl fidl::encoding::ValueTypeMarker for ConfigVectorValue {
27377 type Borrowed<'a> = &'a Self;
27378 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27379 value
27380 }
27381 }
27382
27383 unsafe impl fidl::encoding::TypeMarker for ConfigVectorValue {
27384 type Owned = Self;
27385
27386 #[inline(always)]
27387 fn inline_align(_context: fidl::encoding::Context) -> usize {
27388 8
27389 }
27390
27391 #[inline(always)]
27392 fn inline_size(_context: fidl::encoding::Context) -> usize {
27393 16
27394 }
27395 }
27396
27397 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigVectorValue, D>
27398 for &ConfigVectorValue
27399 {
27400 #[inline]
27401 unsafe fn encode(
27402 self,
27403 encoder: &mut fidl::encoding::Encoder<'_, D>,
27404 offset: usize,
27405 _depth: fidl::encoding::Depth,
27406 ) -> fidl::Result<()> {
27407 encoder.debug_check_bounds::<ConfigVectorValue>(offset);
27408 encoder.write_num::<u64>(self.ordinal(), offset);
27409 match self {
27410 ConfigVectorValue::BoolVector(ref val) => {
27411 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<bool>, D>(
27412 <fidl::encoding::UnboundedVector<bool> as fidl::encoding::ValueTypeMarker>::borrow(val),
27413 encoder, offset + 8, _depth
27414 )
27415 }
27416 ConfigVectorValue::Uint8Vector(ref val) => {
27417 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u8>, D>(
27418 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(val),
27419 encoder, offset + 8, _depth
27420 )
27421 }
27422 ConfigVectorValue::Uint16Vector(ref val) => {
27423 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u16>, D>(
27424 <fidl::encoding::UnboundedVector<u16> as fidl::encoding::ValueTypeMarker>::borrow(val),
27425 encoder, offset + 8, _depth
27426 )
27427 }
27428 ConfigVectorValue::Uint32Vector(ref val) => {
27429 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u32>, D>(
27430 <fidl::encoding::UnboundedVector<u32> as fidl::encoding::ValueTypeMarker>::borrow(val),
27431 encoder, offset + 8, _depth
27432 )
27433 }
27434 ConfigVectorValue::Uint64Vector(ref val) => {
27435 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u64>, D>(
27436 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(val),
27437 encoder, offset + 8, _depth
27438 )
27439 }
27440 ConfigVectorValue::Int8Vector(ref val) => {
27441 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i8>, D>(
27442 <fidl::encoding::UnboundedVector<i8> as fidl::encoding::ValueTypeMarker>::borrow(val),
27443 encoder, offset + 8, _depth
27444 )
27445 }
27446 ConfigVectorValue::Int16Vector(ref val) => {
27447 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i16>, D>(
27448 <fidl::encoding::UnboundedVector<i16> as fidl::encoding::ValueTypeMarker>::borrow(val),
27449 encoder, offset + 8, _depth
27450 )
27451 }
27452 ConfigVectorValue::Int32Vector(ref val) => {
27453 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i32>, D>(
27454 <fidl::encoding::UnboundedVector<i32> as fidl::encoding::ValueTypeMarker>::borrow(val),
27455 encoder, offset + 8, _depth
27456 )
27457 }
27458 ConfigVectorValue::Int64Vector(ref val) => {
27459 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i64>, D>(
27460 <fidl::encoding::UnboundedVector<i64> as fidl::encoding::ValueTypeMarker>::borrow(val),
27461 encoder, offset + 8, _depth
27462 )
27463 }
27464 ConfigVectorValue::StringVector(ref val) => {
27465 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>, D>(
27466 <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(val),
27467 encoder, offset + 8, _depth
27468 )
27469 }
27470 ConfigVectorValue::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27471 }
27472 }
27473 }
27474
27475 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigVectorValue {
27476 #[inline(always)]
27477 fn new_empty() -> Self {
27478 Self::__SourceBreaking { unknown_ordinal: 0 }
27479 }
27480
27481 #[inline]
27482 unsafe fn decode(
27483 &mut self,
27484 decoder: &mut fidl::encoding::Decoder<'_, D>,
27485 offset: usize,
27486 mut depth: fidl::encoding::Depth,
27487 ) -> fidl::Result<()> {
27488 decoder.debug_check_bounds::<Self>(offset);
27489 #[allow(unused_variables)]
27490 let next_out_of_line = decoder.next_out_of_line();
27491 let handles_before = decoder.remaining_handles();
27492 let (ordinal, inlined, num_bytes, num_handles) =
27493 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27494
27495 let member_inline_size = match ordinal {
27496 1 => <fidl::encoding::UnboundedVector<bool> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27497 2 => <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27498 3 => <fidl::encoding::UnboundedVector<u16> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27499 4 => <fidl::encoding::UnboundedVector<u32> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27500 5 => <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27501 6 => <fidl::encoding::UnboundedVector<i8> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27502 7 => <fidl::encoding::UnboundedVector<i16> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27503 8 => <fidl::encoding::UnboundedVector<i32> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27504 9 => <fidl::encoding::UnboundedVector<i64> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27505 10 => <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27506 0 => return Err(fidl::Error::UnknownUnionTag),
27507 _ => num_bytes as usize,
27508 };
27509
27510 if inlined != (member_inline_size <= 4) {
27511 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27512 }
27513 let _inner_offset;
27514 if inlined {
27515 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27516 _inner_offset = offset + 8;
27517 } else {
27518 depth.increment()?;
27519 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27520 }
27521 match ordinal {
27522 1 => {
27523 #[allow(irrefutable_let_patterns)]
27524 if let ConfigVectorValue::BoolVector(_) = self {
27525 } else {
27527 *self = ConfigVectorValue::BoolVector(fidl::new_empty!(
27529 fidl::encoding::UnboundedVector<bool>,
27530 D
27531 ));
27532 }
27533 #[allow(irrefutable_let_patterns)]
27534 if let ConfigVectorValue::BoolVector(ref mut val) = self {
27535 fidl::decode!(
27536 fidl::encoding::UnboundedVector<bool>,
27537 D,
27538 val,
27539 decoder,
27540 _inner_offset,
27541 depth
27542 )?;
27543 } else {
27544 unreachable!()
27545 }
27546 }
27547 2 => {
27548 #[allow(irrefutable_let_patterns)]
27549 if let ConfigVectorValue::Uint8Vector(_) = self {
27550 } else {
27552 *self = ConfigVectorValue::Uint8Vector(fidl::new_empty!(
27554 fidl::encoding::UnboundedVector<u8>,
27555 D
27556 ));
27557 }
27558 #[allow(irrefutable_let_patterns)]
27559 if let ConfigVectorValue::Uint8Vector(ref mut val) = self {
27560 fidl::decode!(
27561 fidl::encoding::UnboundedVector<u8>,
27562 D,
27563 val,
27564 decoder,
27565 _inner_offset,
27566 depth
27567 )?;
27568 } else {
27569 unreachable!()
27570 }
27571 }
27572 3 => {
27573 #[allow(irrefutable_let_patterns)]
27574 if let ConfigVectorValue::Uint16Vector(_) = self {
27575 } else {
27577 *self = ConfigVectorValue::Uint16Vector(fidl::new_empty!(
27579 fidl::encoding::UnboundedVector<u16>,
27580 D
27581 ));
27582 }
27583 #[allow(irrefutable_let_patterns)]
27584 if let ConfigVectorValue::Uint16Vector(ref mut val) = self {
27585 fidl::decode!(
27586 fidl::encoding::UnboundedVector<u16>,
27587 D,
27588 val,
27589 decoder,
27590 _inner_offset,
27591 depth
27592 )?;
27593 } else {
27594 unreachable!()
27595 }
27596 }
27597 4 => {
27598 #[allow(irrefutable_let_patterns)]
27599 if let ConfigVectorValue::Uint32Vector(_) = self {
27600 } else {
27602 *self = ConfigVectorValue::Uint32Vector(fidl::new_empty!(
27604 fidl::encoding::UnboundedVector<u32>,
27605 D
27606 ));
27607 }
27608 #[allow(irrefutable_let_patterns)]
27609 if let ConfigVectorValue::Uint32Vector(ref mut val) = self {
27610 fidl::decode!(
27611 fidl::encoding::UnboundedVector<u32>,
27612 D,
27613 val,
27614 decoder,
27615 _inner_offset,
27616 depth
27617 )?;
27618 } else {
27619 unreachable!()
27620 }
27621 }
27622 5 => {
27623 #[allow(irrefutable_let_patterns)]
27624 if let ConfigVectorValue::Uint64Vector(_) = self {
27625 } else {
27627 *self = ConfigVectorValue::Uint64Vector(fidl::new_empty!(
27629 fidl::encoding::UnboundedVector<u64>,
27630 D
27631 ));
27632 }
27633 #[allow(irrefutable_let_patterns)]
27634 if let ConfigVectorValue::Uint64Vector(ref mut val) = self {
27635 fidl::decode!(
27636 fidl::encoding::UnboundedVector<u64>,
27637 D,
27638 val,
27639 decoder,
27640 _inner_offset,
27641 depth
27642 )?;
27643 } else {
27644 unreachable!()
27645 }
27646 }
27647 6 => {
27648 #[allow(irrefutable_let_patterns)]
27649 if let ConfigVectorValue::Int8Vector(_) = self {
27650 } else {
27652 *self = ConfigVectorValue::Int8Vector(fidl::new_empty!(
27654 fidl::encoding::UnboundedVector<i8>,
27655 D
27656 ));
27657 }
27658 #[allow(irrefutable_let_patterns)]
27659 if let ConfigVectorValue::Int8Vector(ref mut val) = self {
27660 fidl::decode!(
27661 fidl::encoding::UnboundedVector<i8>,
27662 D,
27663 val,
27664 decoder,
27665 _inner_offset,
27666 depth
27667 )?;
27668 } else {
27669 unreachable!()
27670 }
27671 }
27672 7 => {
27673 #[allow(irrefutable_let_patterns)]
27674 if let ConfigVectorValue::Int16Vector(_) = self {
27675 } else {
27677 *self = ConfigVectorValue::Int16Vector(fidl::new_empty!(
27679 fidl::encoding::UnboundedVector<i16>,
27680 D
27681 ));
27682 }
27683 #[allow(irrefutable_let_patterns)]
27684 if let ConfigVectorValue::Int16Vector(ref mut val) = self {
27685 fidl::decode!(
27686 fidl::encoding::UnboundedVector<i16>,
27687 D,
27688 val,
27689 decoder,
27690 _inner_offset,
27691 depth
27692 )?;
27693 } else {
27694 unreachable!()
27695 }
27696 }
27697 8 => {
27698 #[allow(irrefutable_let_patterns)]
27699 if let ConfigVectorValue::Int32Vector(_) = self {
27700 } else {
27702 *self = ConfigVectorValue::Int32Vector(fidl::new_empty!(
27704 fidl::encoding::UnboundedVector<i32>,
27705 D
27706 ));
27707 }
27708 #[allow(irrefutable_let_patterns)]
27709 if let ConfigVectorValue::Int32Vector(ref mut val) = self {
27710 fidl::decode!(
27711 fidl::encoding::UnboundedVector<i32>,
27712 D,
27713 val,
27714 decoder,
27715 _inner_offset,
27716 depth
27717 )?;
27718 } else {
27719 unreachable!()
27720 }
27721 }
27722 9 => {
27723 #[allow(irrefutable_let_patterns)]
27724 if let ConfigVectorValue::Int64Vector(_) = self {
27725 } else {
27727 *self = ConfigVectorValue::Int64Vector(fidl::new_empty!(
27729 fidl::encoding::UnboundedVector<i64>,
27730 D
27731 ));
27732 }
27733 #[allow(irrefutable_let_patterns)]
27734 if let ConfigVectorValue::Int64Vector(ref mut val) = self {
27735 fidl::decode!(
27736 fidl::encoding::UnboundedVector<i64>,
27737 D,
27738 val,
27739 decoder,
27740 _inner_offset,
27741 depth
27742 )?;
27743 } else {
27744 unreachable!()
27745 }
27746 }
27747 10 => {
27748 #[allow(irrefutable_let_patterns)]
27749 if let ConfigVectorValue::StringVector(_) = self {
27750 } else {
27752 *self = ConfigVectorValue::StringVector(fidl::new_empty!(
27754 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
27755 D
27756 ));
27757 }
27758 #[allow(irrefutable_let_patterns)]
27759 if let ConfigVectorValue::StringVector(ref mut val) = self {
27760 fidl::decode!(
27761 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
27762 D,
27763 val,
27764 decoder,
27765 _inner_offset,
27766 depth
27767 )?;
27768 } else {
27769 unreachable!()
27770 }
27771 }
27772 #[allow(deprecated)]
27773 ordinal => {
27774 for _ in 0..num_handles {
27775 decoder.drop_next_handle()?;
27776 }
27777 *self = ConfigVectorValue::__SourceBreaking { unknown_ordinal: ordinal };
27778 }
27779 }
27780 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27781 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27782 }
27783 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27784 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27785 }
27786 Ok(())
27787 }
27788 }
27789
27790 impl fidl::encoding::ValueTypeMarker for DebugRegistration {
27791 type Borrowed<'a> = &'a Self;
27792 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27793 value
27794 }
27795 }
27796
27797 unsafe impl fidl::encoding::TypeMarker for DebugRegistration {
27798 type Owned = Self;
27799
27800 #[inline(always)]
27801 fn inline_align(_context: fidl::encoding::Context) -> usize {
27802 8
27803 }
27804
27805 #[inline(always)]
27806 fn inline_size(_context: fidl::encoding::Context) -> usize {
27807 16
27808 }
27809 }
27810
27811 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DebugRegistration, D>
27812 for &DebugRegistration
27813 {
27814 #[inline]
27815 unsafe fn encode(
27816 self,
27817 encoder: &mut fidl::encoding::Encoder<'_, D>,
27818 offset: usize,
27819 _depth: fidl::encoding::Depth,
27820 ) -> fidl::Result<()> {
27821 encoder.debug_check_bounds::<DebugRegistration>(offset);
27822 encoder.write_num::<u64>(self.ordinal(), offset);
27823 match self {
27824 DebugRegistration::Protocol(ref val) => {
27825 fidl::encoding::encode_in_envelope::<DebugProtocolRegistration, D>(
27826 <DebugProtocolRegistration as fidl::encoding::ValueTypeMarker>::borrow(val),
27827 encoder,
27828 offset + 8,
27829 _depth,
27830 )
27831 }
27832 DebugRegistration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27833 }
27834 }
27835 }
27836
27837 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DebugRegistration {
27838 #[inline(always)]
27839 fn new_empty() -> Self {
27840 Self::__SourceBreaking { unknown_ordinal: 0 }
27841 }
27842
27843 #[inline]
27844 unsafe fn decode(
27845 &mut self,
27846 decoder: &mut fidl::encoding::Decoder<'_, D>,
27847 offset: usize,
27848 mut depth: fidl::encoding::Depth,
27849 ) -> fidl::Result<()> {
27850 decoder.debug_check_bounds::<Self>(offset);
27851 #[allow(unused_variables)]
27852 let next_out_of_line = decoder.next_out_of_line();
27853 let handles_before = decoder.remaining_handles();
27854 let (ordinal, inlined, num_bytes, num_handles) =
27855 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27856
27857 let member_inline_size = match ordinal {
27858 1 => <DebugProtocolRegistration as fidl::encoding::TypeMarker>::inline_size(
27859 decoder.context,
27860 ),
27861 0 => return Err(fidl::Error::UnknownUnionTag),
27862 _ => num_bytes as usize,
27863 };
27864
27865 if inlined != (member_inline_size <= 4) {
27866 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27867 }
27868 let _inner_offset;
27869 if inlined {
27870 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27871 _inner_offset = offset + 8;
27872 } else {
27873 depth.increment()?;
27874 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27875 }
27876 match ordinal {
27877 1 => {
27878 #[allow(irrefutable_let_patterns)]
27879 if let DebugRegistration::Protocol(_) = self {
27880 } else {
27882 *self = DebugRegistration::Protocol(fidl::new_empty!(
27884 DebugProtocolRegistration,
27885 D
27886 ));
27887 }
27888 #[allow(irrefutable_let_patterns)]
27889 if let DebugRegistration::Protocol(ref mut val) = self {
27890 fidl::decode!(
27891 DebugProtocolRegistration,
27892 D,
27893 val,
27894 decoder,
27895 _inner_offset,
27896 depth
27897 )?;
27898 } else {
27899 unreachable!()
27900 }
27901 }
27902 #[allow(deprecated)]
27903 ordinal => {
27904 for _ in 0..num_handles {
27905 decoder.drop_next_handle()?;
27906 }
27907 *self = DebugRegistration::__SourceBreaking { unknown_ordinal: ordinal };
27908 }
27909 }
27910 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27911 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27912 }
27913 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27914 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27915 }
27916 Ok(())
27917 }
27918 }
27919
27920 impl fidl::encoding::ValueTypeMarker for Expose {
27921 type Borrowed<'a> = &'a Self;
27922 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27923 value
27924 }
27925 }
27926
27927 unsafe impl fidl::encoding::TypeMarker for Expose {
27928 type Owned = Self;
27929
27930 #[inline(always)]
27931 fn inline_align(_context: fidl::encoding::Context) -> usize {
27932 8
27933 }
27934
27935 #[inline(always)]
27936 fn inline_size(_context: fidl::encoding::Context) -> usize {
27937 16
27938 }
27939 }
27940
27941 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Expose, D> for &Expose {
27942 #[inline]
27943 unsafe fn encode(
27944 self,
27945 encoder: &mut fidl::encoding::Encoder<'_, D>,
27946 offset: usize,
27947 _depth: fidl::encoding::Depth,
27948 ) -> fidl::Result<()> {
27949 encoder.debug_check_bounds::<Expose>(offset);
27950 encoder.write_num::<u64>(self.ordinal(), offset);
27951 match self {
27952 Expose::Service(ref val) => fidl::encoding::encode_in_envelope::<ExposeService, D>(
27953 <ExposeService as fidl::encoding::ValueTypeMarker>::borrow(val),
27954 encoder,
27955 offset + 8,
27956 _depth,
27957 ),
27958 Expose::Protocol(ref val) => {
27959 fidl::encoding::encode_in_envelope::<ExposeProtocol, D>(
27960 <ExposeProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
27961 encoder,
27962 offset + 8,
27963 _depth,
27964 )
27965 }
27966 Expose::Directory(ref val) => {
27967 fidl::encoding::encode_in_envelope::<ExposeDirectory, D>(
27968 <ExposeDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
27969 encoder,
27970 offset + 8,
27971 _depth,
27972 )
27973 }
27974 Expose::Runner(ref val) => fidl::encoding::encode_in_envelope::<ExposeRunner, D>(
27975 <ExposeRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
27976 encoder,
27977 offset + 8,
27978 _depth,
27979 ),
27980 Expose::Resolver(ref val) => {
27981 fidl::encoding::encode_in_envelope::<ExposeResolver, D>(
27982 <ExposeResolver as fidl::encoding::ValueTypeMarker>::borrow(val),
27983 encoder,
27984 offset + 8,
27985 _depth,
27986 )
27987 }
27988 Expose::Dictionary(ref val) => {
27989 fidl::encoding::encode_in_envelope::<ExposeDictionary, D>(
27990 <ExposeDictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
27991 encoder,
27992 offset + 8,
27993 _depth,
27994 )
27995 }
27996 Expose::Config(ref val) => {
27997 fidl::encoding::encode_in_envelope::<ExposeConfiguration, D>(
27998 <ExposeConfiguration as fidl::encoding::ValueTypeMarker>::borrow(val),
27999 encoder,
28000 offset + 8,
28001 _depth,
28002 )
28003 }
28004 Expose::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28005 }
28006 }
28007 }
28008
28009 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Expose {
28010 #[inline(always)]
28011 fn new_empty() -> Self {
28012 Self::__SourceBreaking { unknown_ordinal: 0 }
28013 }
28014
28015 #[inline]
28016 unsafe fn decode(
28017 &mut self,
28018 decoder: &mut fidl::encoding::Decoder<'_, D>,
28019 offset: usize,
28020 mut depth: fidl::encoding::Depth,
28021 ) -> fidl::Result<()> {
28022 decoder.debug_check_bounds::<Self>(offset);
28023 #[allow(unused_variables)]
28024 let next_out_of_line = decoder.next_out_of_line();
28025 let handles_before = decoder.remaining_handles();
28026 let (ordinal, inlined, num_bytes, num_handles) =
28027 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28028
28029 let member_inline_size = match ordinal {
28030 1 => <ExposeService as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28031 2 => <ExposeProtocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28032 3 => <ExposeDirectory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28033 4 => <ExposeRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28034 5 => <ExposeResolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28035 7 => <ExposeDictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28036 8 => <ExposeConfiguration as fidl::encoding::TypeMarker>::inline_size(
28037 decoder.context,
28038 ),
28039 0 => return Err(fidl::Error::UnknownUnionTag),
28040 _ => num_bytes as usize,
28041 };
28042
28043 if inlined != (member_inline_size <= 4) {
28044 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28045 }
28046 let _inner_offset;
28047 if inlined {
28048 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28049 _inner_offset = offset + 8;
28050 } else {
28051 depth.increment()?;
28052 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28053 }
28054 match ordinal {
28055 1 => {
28056 #[allow(irrefutable_let_patterns)]
28057 if let Expose::Service(_) = self {
28058 } else {
28060 *self = Expose::Service(fidl::new_empty!(ExposeService, D));
28062 }
28063 #[allow(irrefutable_let_patterns)]
28064 if let Expose::Service(ref mut val) = self {
28065 fidl::decode!(ExposeService, D, val, decoder, _inner_offset, depth)?;
28066 } else {
28067 unreachable!()
28068 }
28069 }
28070 2 => {
28071 #[allow(irrefutable_let_patterns)]
28072 if let Expose::Protocol(_) = self {
28073 } else {
28075 *self = Expose::Protocol(fidl::new_empty!(ExposeProtocol, D));
28077 }
28078 #[allow(irrefutable_let_patterns)]
28079 if let Expose::Protocol(ref mut val) = self {
28080 fidl::decode!(ExposeProtocol, D, val, decoder, _inner_offset, depth)?;
28081 } else {
28082 unreachable!()
28083 }
28084 }
28085 3 => {
28086 #[allow(irrefutable_let_patterns)]
28087 if let Expose::Directory(_) = self {
28088 } else {
28090 *self = Expose::Directory(fidl::new_empty!(ExposeDirectory, D));
28092 }
28093 #[allow(irrefutable_let_patterns)]
28094 if let Expose::Directory(ref mut val) = self {
28095 fidl::decode!(ExposeDirectory, D, val, decoder, _inner_offset, depth)?;
28096 } else {
28097 unreachable!()
28098 }
28099 }
28100 4 => {
28101 #[allow(irrefutable_let_patterns)]
28102 if let Expose::Runner(_) = self {
28103 } else {
28105 *self = Expose::Runner(fidl::new_empty!(ExposeRunner, D));
28107 }
28108 #[allow(irrefutable_let_patterns)]
28109 if let Expose::Runner(ref mut val) = self {
28110 fidl::decode!(ExposeRunner, D, val, decoder, _inner_offset, depth)?;
28111 } else {
28112 unreachable!()
28113 }
28114 }
28115 5 => {
28116 #[allow(irrefutable_let_patterns)]
28117 if let Expose::Resolver(_) = self {
28118 } else {
28120 *self = Expose::Resolver(fidl::new_empty!(ExposeResolver, D));
28122 }
28123 #[allow(irrefutable_let_patterns)]
28124 if let Expose::Resolver(ref mut val) = self {
28125 fidl::decode!(ExposeResolver, D, val, decoder, _inner_offset, depth)?;
28126 } else {
28127 unreachable!()
28128 }
28129 }
28130 7 => {
28131 #[allow(irrefutable_let_patterns)]
28132 if let Expose::Dictionary(_) = self {
28133 } else {
28135 *self = Expose::Dictionary(fidl::new_empty!(ExposeDictionary, D));
28137 }
28138 #[allow(irrefutable_let_patterns)]
28139 if let Expose::Dictionary(ref mut val) = self {
28140 fidl::decode!(ExposeDictionary, D, val, decoder, _inner_offset, depth)?;
28141 } else {
28142 unreachable!()
28143 }
28144 }
28145 8 => {
28146 #[allow(irrefutable_let_patterns)]
28147 if let Expose::Config(_) = self {
28148 } else {
28150 *self = Expose::Config(fidl::new_empty!(ExposeConfiguration, D));
28152 }
28153 #[allow(irrefutable_let_patterns)]
28154 if let Expose::Config(ref mut val) = self {
28155 fidl::decode!(ExposeConfiguration, D, val, decoder, _inner_offset, depth)?;
28156 } else {
28157 unreachable!()
28158 }
28159 }
28160 #[allow(deprecated)]
28161 ordinal => {
28162 for _ in 0..num_handles {
28163 decoder.drop_next_handle()?;
28164 }
28165 *self = Expose::__SourceBreaking { unknown_ordinal: ordinal };
28166 }
28167 }
28168 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28170 }
28171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28173 }
28174 Ok(())
28175 }
28176 }
28177
28178 impl fidl::encoding::ValueTypeMarker for LayoutConstraint {
28179 type Borrowed<'a> = &'a Self;
28180 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28181 value
28182 }
28183 }
28184
28185 unsafe impl fidl::encoding::TypeMarker for LayoutConstraint {
28186 type Owned = Self;
28187
28188 #[inline(always)]
28189 fn inline_align(_context: fidl::encoding::Context) -> usize {
28190 8
28191 }
28192
28193 #[inline(always)]
28194 fn inline_size(_context: fidl::encoding::Context) -> usize {
28195 16
28196 }
28197 }
28198
28199 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LayoutConstraint, D>
28200 for &LayoutConstraint
28201 {
28202 #[inline]
28203 unsafe fn encode(
28204 self,
28205 encoder: &mut fidl::encoding::Encoder<'_, D>,
28206 offset: usize,
28207 _depth: fidl::encoding::Depth,
28208 ) -> fidl::Result<()> {
28209 encoder.debug_check_bounds::<LayoutConstraint>(offset);
28210 encoder.write_num::<u64>(self.ordinal(), offset);
28211 match self {
28212 LayoutConstraint::MaxSize(ref val) => fidl::encoding::encode_in_envelope::<u32, D>(
28213 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
28214 encoder,
28215 offset + 8,
28216 _depth,
28217 ),
28218 LayoutConstraint::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28219 }
28220 }
28221 }
28222
28223 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LayoutConstraint {
28224 #[inline(always)]
28225 fn new_empty() -> Self {
28226 Self::__SourceBreaking { unknown_ordinal: 0 }
28227 }
28228
28229 #[inline]
28230 unsafe fn decode(
28231 &mut self,
28232 decoder: &mut fidl::encoding::Decoder<'_, D>,
28233 offset: usize,
28234 mut depth: fidl::encoding::Depth,
28235 ) -> fidl::Result<()> {
28236 decoder.debug_check_bounds::<Self>(offset);
28237 #[allow(unused_variables)]
28238 let next_out_of_line = decoder.next_out_of_line();
28239 let handles_before = decoder.remaining_handles();
28240 let (ordinal, inlined, num_bytes, num_handles) =
28241 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28242
28243 let member_inline_size = match ordinal {
28244 1 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28245 0 => return Err(fidl::Error::UnknownUnionTag),
28246 _ => num_bytes as usize,
28247 };
28248
28249 if inlined != (member_inline_size <= 4) {
28250 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28251 }
28252 let _inner_offset;
28253 if inlined {
28254 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28255 _inner_offset = offset + 8;
28256 } else {
28257 depth.increment()?;
28258 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28259 }
28260 match ordinal {
28261 1 => {
28262 #[allow(irrefutable_let_patterns)]
28263 if let LayoutConstraint::MaxSize(_) = self {
28264 } else {
28266 *self = LayoutConstraint::MaxSize(fidl::new_empty!(u32, D));
28268 }
28269 #[allow(irrefutable_let_patterns)]
28270 if let LayoutConstraint::MaxSize(ref mut val) = self {
28271 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
28272 } else {
28273 unreachable!()
28274 }
28275 }
28276 #[allow(deprecated)]
28277 ordinal => {
28278 for _ in 0..num_handles {
28279 decoder.drop_next_handle()?;
28280 }
28281 *self = LayoutConstraint::__SourceBreaking { unknown_ordinal: ordinal };
28282 }
28283 }
28284 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28285 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28286 }
28287 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28288 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28289 }
28290 Ok(())
28291 }
28292 }
28293
28294 impl fidl::encoding::ValueTypeMarker for LayoutParameter {
28295 type Borrowed<'a> = &'a Self;
28296 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28297 value
28298 }
28299 }
28300
28301 unsafe impl fidl::encoding::TypeMarker for LayoutParameter {
28302 type Owned = Self;
28303
28304 #[inline(always)]
28305 fn inline_align(_context: fidl::encoding::Context) -> usize {
28306 8
28307 }
28308
28309 #[inline(always)]
28310 fn inline_size(_context: fidl::encoding::Context) -> usize {
28311 16
28312 }
28313 }
28314
28315 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LayoutParameter, D>
28316 for &LayoutParameter
28317 {
28318 #[inline]
28319 unsafe fn encode(
28320 self,
28321 encoder: &mut fidl::encoding::Encoder<'_, D>,
28322 offset: usize,
28323 _depth: fidl::encoding::Depth,
28324 ) -> fidl::Result<()> {
28325 encoder.debug_check_bounds::<LayoutParameter>(offset);
28326 encoder.write_num::<u64>(self.ordinal(), offset);
28327 match self {
28328 LayoutParameter::NestedType(ref val) => {
28329 fidl::encoding::encode_in_envelope::<ConfigType, D>(
28330 <ConfigType as fidl::encoding::ValueTypeMarker>::borrow(val),
28331 encoder,
28332 offset + 8,
28333 _depth,
28334 )
28335 }
28336 LayoutParameter::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28337 }
28338 }
28339 }
28340
28341 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LayoutParameter {
28342 #[inline(always)]
28343 fn new_empty() -> Self {
28344 Self::__SourceBreaking { unknown_ordinal: 0 }
28345 }
28346
28347 #[inline]
28348 unsafe fn decode(
28349 &mut self,
28350 decoder: &mut fidl::encoding::Decoder<'_, D>,
28351 offset: usize,
28352 mut depth: fidl::encoding::Depth,
28353 ) -> fidl::Result<()> {
28354 decoder.debug_check_bounds::<Self>(offset);
28355 #[allow(unused_variables)]
28356 let next_out_of_line = decoder.next_out_of_line();
28357 let handles_before = decoder.remaining_handles();
28358 let (ordinal, inlined, num_bytes, num_handles) =
28359 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28360
28361 let member_inline_size = match ordinal {
28362 1 => <ConfigType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28363 0 => return Err(fidl::Error::UnknownUnionTag),
28364 _ => num_bytes as usize,
28365 };
28366
28367 if inlined != (member_inline_size <= 4) {
28368 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28369 }
28370 let _inner_offset;
28371 if inlined {
28372 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28373 _inner_offset = offset + 8;
28374 } else {
28375 depth.increment()?;
28376 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28377 }
28378 match ordinal {
28379 1 => {
28380 #[allow(irrefutable_let_patterns)]
28381 if let LayoutParameter::NestedType(_) = self {
28382 } else {
28384 *self = LayoutParameter::NestedType(fidl::new_empty!(ConfigType, D));
28386 }
28387 #[allow(irrefutable_let_patterns)]
28388 if let LayoutParameter::NestedType(ref mut val) = self {
28389 fidl::decode!(ConfigType, D, val, decoder, _inner_offset, depth)?;
28390 } else {
28391 unreachable!()
28392 }
28393 }
28394 #[allow(deprecated)]
28395 ordinal => {
28396 for _ in 0..num_handles {
28397 decoder.drop_next_handle()?;
28398 }
28399 *self = LayoutParameter::__SourceBreaking { unknown_ordinal: ordinal };
28400 }
28401 }
28402 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28403 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28404 }
28405 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28406 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28407 }
28408 Ok(())
28409 }
28410 }
28411
28412 impl fidl::encoding::ValueTypeMarker for Offer {
28413 type Borrowed<'a> = &'a Self;
28414 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28415 value
28416 }
28417 }
28418
28419 unsafe impl fidl::encoding::TypeMarker for Offer {
28420 type Owned = Self;
28421
28422 #[inline(always)]
28423 fn inline_align(_context: fidl::encoding::Context) -> usize {
28424 8
28425 }
28426
28427 #[inline(always)]
28428 fn inline_size(_context: fidl::encoding::Context) -> usize {
28429 16
28430 }
28431 }
28432
28433 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Offer, D> for &Offer {
28434 #[inline]
28435 unsafe fn encode(
28436 self,
28437 encoder: &mut fidl::encoding::Encoder<'_, D>,
28438 offset: usize,
28439 _depth: fidl::encoding::Depth,
28440 ) -> fidl::Result<()> {
28441 encoder.debug_check_bounds::<Offer>(offset);
28442 encoder.write_num::<u64>(self.ordinal(), offset);
28443 match self {
28444 Offer::Service(ref val) => fidl::encoding::encode_in_envelope::<OfferService, D>(
28445 <OfferService as fidl::encoding::ValueTypeMarker>::borrow(val),
28446 encoder,
28447 offset + 8,
28448 _depth,
28449 ),
28450 Offer::Protocol(ref val) => fidl::encoding::encode_in_envelope::<OfferProtocol, D>(
28451 <OfferProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
28452 encoder,
28453 offset + 8,
28454 _depth,
28455 ),
28456 Offer::Directory(ref val) => {
28457 fidl::encoding::encode_in_envelope::<OfferDirectory, D>(
28458 <OfferDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
28459 encoder,
28460 offset + 8,
28461 _depth,
28462 )
28463 }
28464 Offer::Storage(ref val) => fidl::encoding::encode_in_envelope::<OfferStorage, D>(
28465 <OfferStorage as fidl::encoding::ValueTypeMarker>::borrow(val),
28466 encoder,
28467 offset + 8,
28468 _depth,
28469 ),
28470 Offer::Runner(ref val) => fidl::encoding::encode_in_envelope::<OfferRunner, D>(
28471 <OfferRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
28472 encoder,
28473 offset + 8,
28474 _depth,
28475 ),
28476 Offer::Resolver(ref val) => fidl::encoding::encode_in_envelope::<OfferResolver, D>(
28477 <OfferResolver as fidl::encoding::ValueTypeMarker>::borrow(val),
28478 encoder,
28479 offset + 8,
28480 _depth,
28481 ),
28482 Offer::EventStream(ref val) => {
28483 fidl::encoding::encode_in_envelope::<OfferEventStream, D>(
28484 <OfferEventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
28485 encoder,
28486 offset + 8,
28487 _depth,
28488 )
28489 }
28490 Offer::Dictionary(ref val) => {
28491 fidl::encoding::encode_in_envelope::<OfferDictionary, D>(
28492 <OfferDictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
28493 encoder,
28494 offset + 8,
28495 _depth,
28496 )
28497 }
28498 Offer::Config(ref val) => {
28499 fidl::encoding::encode_in_envelope::<OfferConfiguration, D>(
28500 <OfferConfiguration as fidl::encoding::ValueTypeMarker>::borrow(val),
28501 encoder,
28502 offset + 8,
28503 _depth,
28504 )
28505 }
28506 Offer::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28507 }
28508 }
28509 }
28510
28511 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Offer {
28512 #[inline(always)]
28513 fn new_empty() -> Self {
28514 Self::__SourceBreaking { unknown_ordinal: 0 }
28515 }
28516
28517 #[inline]
28518 unsafe fn decode(
28519 &mut self,
28520 decoder: &mut fidl::encoding::Decoder<'_, D>,
28521 offset: usize,
28522 mut depth: fidl::encoding::Depth,
28523 ) -> fidl::Result<()> {
28524 decoder.debug_check_bounds::<Self>(offset);
28525 #[allow(unused_variables)]
28526 let next_out_of_line = decoder.next_out_of_line();
28527 let handles_before = decoder.remaining_handles();
28528 let (ordinal, inlined, num_bytes, num_handles) =
28529 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28530
28531 let member_inline_size = match ordinal {
28532 1 => <OfferService as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28533 2 => <OfferProtocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28534 3 => <OfferDirectory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28535 4 => <OfferStorage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28536 5 => <OfferRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28537 6 => <OfferResolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28538 8 => <OfferEventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28539 9 => <OfferDictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28540 10 => {
28541 <OfferConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context)
28542 }
28543 0 => return Err(fidl::Error::UnknownUnionTag),
28544 _ => num_bytes as usize,
28545 };
28546
28547 if inlined != (member_inline_size <= 4) {
28548 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28549 }
28550 let _inner_offset;
28551 if inlined {
28552 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28553 _inner_offset = offset + 8;
28554 } else {
28555 depth.increment()?;
28556 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28557 }
28558 match ordinal {
28559 1 => {
28560 #[allow(irrefutable_let_patterns)]
28561 if let Offer::Service(_) = self {
28562 } else {
28564 *self = Offer::Service(fidl::new_empty!(OfferService, D));
28566 }
28567 #[allow(irrefutable_let_patterns)]
28568 if let Offer::Service(ref mut val) = self {
28569 fidl::decode!(OfferService, D, val, decoder, _inner_offset, depth)?;
28570 } else {
28571 unreachable!()
28572 }
28573 }
28574 2 => {
28575 #[allow(irrefutable_let_patterns)]
28576 if let Offer::Protocol(_) = self {
28577 } else {
28579 *self = Offer::Protocol(fidl::new_empty!(OfferProtocol, D));
28581 }
28582 #[allow(irrefutable_let_patterns)]
28583 if let Offer::Protocol(ref mut val) = self {
28584 fidl::decode!(OfferProtocol, D, val, decoder, _inner_offset, depth)?;
28585 } else {
28586 unreachable!()
28587 }
28588 }
28589 3 => {
28590 #[allow(irrefutable_let_patterns)]
28591 if let Offer::Directory(_) = self {
28592 } else {
28594 *self = Offer::Directory(fidl::new_empty!(OfferDirectory, D));
28596 }
28597 #[allow(irrefutable_let_patterns)]
28598 if let Offer::Directory(ref mut val) = self {
28599 fidl::decode!(OfferDirectory, D, val, decoder, _inner_offset, depth)?;
28600 } else {
28601 unreachable!()
28602 }
28603 }
28604 4 => {
28605 #[allow(irrefutable_let_patterns)]
28606 if let Offer::Storage(_) = self {
28607 } else {
28609 *self = Offer::Storage(fidl::new_empty!(OfferStorage, D));
28611 }
28612 #[allow(irrefutable_let_patterns)]
28613 if let Offer::Storage(ref mut val) = self {
28614 fidl::decode!(OfferStorage, D, val, decoder, _inner_offset, depth)?;
28615 } else {
28616 unreachable!()
28617 }
28618 }
28619 5 => {
28620 #[allow(irrefutable_let_patterns)]
28621 if let Offer::Runner(_) = self {
28622 } else {
28624 *self = Offer::Runner(fidl::new_empty!(OfferRunner, D));
28626 }
28627 #[allow(irrefutable_let_patterns)]
28628 if let Offer::Runner(ref mut val) = self {
28629 fidl::decode!(OfferRunner, D, val, decoder, _inner_offset, depth)?;
28630 } else {
28631 unreachable!()
28632 }
28633 }
28634 6 => {
28635 #[allow(irrefutable_let_patterns)]
28636 if let Offer::Resolver(_) = self {
28637 } else {
28639 *self = Offer::Resolver(fidl::new_empty!(OfferResolver, D));
28641 }
28642 #[allow(irrefutable_let_patterns)]
28643 if let Offer::Resolver(ref mut val) = self {
28644 fidl::decode!(OfferResolver, D, val, decoder, _inner_offset, depth)?;
28645 } else {
28646 unreachable!()
28647 }
28648 }
28649 8 => {
28650 #[allow(irrefutable_let_patterns)]
28651 if let Offer::EventStream(_) = self {
28652 } else {
28654 *self = Offer::EventStream(fidl::new_empty!(OfferEventStream, D));
28656 }
28657 #[allow(irrefutable_let_patterns)]
28658 if let Offer::EventStream(ref mut val) = self {
28659 fidl::decode!(OfferEventStream, D, val, decoder, _inner_offset, depth)?;
28660 } else {
28661 unreachable!()
28662 }
28663 }
28664 9 => {
28665 #[allow(irrefutable_let_patterns)]
28666 if let Offer::Dictionary(_) = self {
28667 } else {
28669 *self = Offer::Dictionary(fidl::new_empty!(OfferDictionary, D));
28671 }
28672 #[allow(irrefutable_let_patterns)]
28673 if let Offer::Dictionary(ref mut val) = self {
28674 fidl::decode!(OfferDictionary, D, val, decoder, _inner_offset, depth)?;
28675 } else {
28676 unreachable!()
28677 }
28678 }
28679 10 => {
28680 #[allow(irrefutable_let_patterns)]
28681 if let Offer::Config(_) = self {
28682 } else {
28684 *self = Offer::Config(fidl::new_empty!(OfferConfiguration, D));
28686 }
28687 #[allow(irrefutable_let_patterns)]
28688 if let Offer::Config(ref mut val) = self {
28689 fidl::decode!(OfferConfiguration, D, val, decoder, _inner_offset, depth)?;
28690 } else {
28691 unreachable!()
28692 }
28693 }
28694 #[allow(deprecated)]
28695 ordinal => {
28696 for _ in 0..num_handles {
28697 decoder.drop_next_handle()?;
28698 }
28699 *self = Offer::__SourceBreaking { unknown_ordinal: ordinal };
28700 }
28701 }
28702 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28703 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28704 }
28705 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28706 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28707 }
28708 Ok(())
28709 }
28710 }
28711
28712 impl fidl::encoding::ValueTypeMarker for Ref {
28713 type Borrowed<'a> = &'a Self;
28714 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28715 value
28716 }
28717 }
28718
28719 unsafe impl fidl::encoding::TypeMarker for Ref {
28720 type Owned = Self;
28721
28722 #[inline(always)]
28723 fn inline_align(_context: fidl::encoding::Context) -> usize {
28724 8
28725 }
28726
28727 #[inline(always)]
28728 fn inline_size(_context: fidl::encoding::Context) -> usize {
28729 16
28730 }
28731 }
28732
28733 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ref, D> for &Ref {
28734 #[inline]
28735 unsafe fn encode(
28736 self,
28737 encoder: &mut fidl::encoding::Encoder<'_, D>,
28738 offset: usize,
28739 _depth: fidl::encoding::Depth,
28740 ) -> fidl::Result<()> {
28741 encoder.debug_check_bounds::<Ref>(offset);
28742 encoder.write_num::<u64>(self.ordinal(), offset);
28743 match self {
28744 Ref::Parent(ref val) => fidl::encoding::encode_in_envelope::<ParentRef, D>(
28745 <ParentRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28746 encoder,
28747 offset + 8,
28748 _depth,
28749 ),
28750 Ref::Self_(ref val) => fidl::encoding::encode_in_envelope::<SelfRef, D>(
28751 <SelfRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28752 encoder,
28753 offset + 8,
28754 _depth,
28755 ),
28756 Ref::Child(ref val) => fidl::encoding::encode_in_envelope::<ChildRef, D>(
28757 <ChildRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28758 encoder,
28759 offset + 8,
28760 _depth,
28761 ),
28762 Ref::Collection(ref val) => fidl::encoding::encode_in_envelope::<CollectionRef, D>(
28763 <CollectionRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28764 encoder,
28765 offset + 8,
28766 _depth,
28767 ),
28768 Ref::Framework(ref val) => fidl::encoding::encode_in_envelope::<FrameworkRef, D>(
28769 <FrameworkRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28770 encoder,
28771 offset + 8,
28772 _depth,
28773 ),
28774 Ref::Capability(ref val) => fidl::encoding::encode_in_envelope::<CapabilityRef, D>(
28775 <CapabilityRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28776 encoder,
28777 offset + 8,
28778 _depth,
28779 ),
28780 Ref::Debug(ref val) => fidl::encoding::encode_in_envelope::<DebugRef, D>(
28781 <DebugRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28782 encoder,
28783 offset + 8,
28784 _depth,
28785 ),
28786 Ref::VoidType(ref val) => fidl::encoding::encode_in_envelope::<VoidRef, D>(
28787 <VoidRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28788 encoder,
28789 offset + 8,
28790 _depth,
28791 ),
28792 Ref::Environment(ref val) => {
28793 fidl::encoding::encode_in_envelope::<EnvironmentRef, D>(
28794 <EnvironmentRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28795 encoder,
28796 offset + 8,
28797 _depth,
28798 )
28799 }
28800 Ref::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28801 }
28802 }
28803 }
28804
28805 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ref {
28806 #[inline(always)]
28807 fn new_empty() -> Self {
28808 Self::__SourceBreaking { unknown_ordinal: 0 }
28809 }
28810
28811 #[inline]
28812 unsafe fn decode(
28813 &mut self,
28814 decoder: &mut fidl::encoding::Decoder<'_, D>,
28815 offset: usize,
28816 mut depth: fidl::encoding::Depth,
28817 ) -> fidl::Result<()> {
28818 decoder.debug_check_bounds::<Self>(offset);
28819 #[allow(unused_variables)]
28820 let next_out_of_line = decoder.next_out_of_line();
28821 let handles_before = decoder.remaining_handles();
28822 let (ordinal, inlined, num_bytes, num_handles) =
28823 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28824
28825 let member_inline_size = match ordinal {
28826 1 => <ParentRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28827 2 => <SelfRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28828 3 => <ChildRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28829 4 => <CollectionRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28830 5 => <FrameworkRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28831 6 => <CapabilityRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28832 7 => <DebugRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28833 8 => <VoidRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28834 9 => <EnvironmentRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28835 0 => return Err(fidl::Error::UnknownUnionTag),
28836 _ => num_bytes as usize,
28837 };
28838
28839 if inlined != (member_inline_size <= 4) {
28840 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28841 }
28842 let _inner_offset;
28843 if inlined {
28844 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28845 _inner_offset = offset + 8;
28846 } else {
28847 depth.increment()?;
28848 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28849 }
28850 match ordinal {
28851 1 => {
28852 #[allow(irrefutable_let_patterns)]
28853 if let Ref::Parent(_) = self {
28854 } else {
28856 *self = Ref::Parent(fidl::new_empty!(ParentRef, D));
28858 }
28859 #[allow(irrefutable_let_patterns)]
28860 if let Ref::Parent(ref mut val) = self {
28861 fidl::decode!(ParentRef, D, val, decoder, _inner_offset, depth)?;
28862 } else {
28863 unreachable!()
28864 }
28865 }
28866 2 => {
28867 #[allow(irrefutable_let_patterns)]
28868 if let Ref::Self_(_) = self {
28869 } else {
28871 *self = Ref::Self_(fidl::new_empty!(SelfRef, D));
28873 }
28874 #[allow(irrefutable_let_patterns)]
28875 if let Ref::Self_(ref mut val) = self {
28876 fidl::decode!(SelfRef, D, val, decoder, _inner_offset, depth)?;
28877 } else {
28878 unreachable!()
28879 }
28880 }
28881 3 => {
28882 #[allow(irrefutable_let_patterns)]
28883 if let Ref::Child(_) = self {
28884 } else {
28886 *self = Ref::Child(fidl::new_empty!(ChildRef, D));
28888 }
28889 #[allow(irrefutable_let_patterns)]
28890 if let Ref::Child(ref mut val) = self {
28891 fidl::decode!(ChildRef, D, val, decoder, _inner_offset, depth)?;
28892 } else {
28893 unreachable!()
28894 }
28895 }
28896 4 => {
28897 #[allow(irrefutable_let_patterns)]
28898 if let Ref::Collection(_) = self {
28899 } else {
28901 *self = Ref::Collection(fidl::new_empty!(CollectionRef, D));
28903 }
28904 #[allow(irrefutable_let_patterns)]
28905 if let Ref::Collection(ref mut val) = self {
28906 fidl::decode!(CollectionRef, D, val, decoder, _inner_offset, depth)?;
28907 } else {
28908 unreachable!()
28909 }
28910 }
28911 5 => {
28912 #[allow(irrefutable_let_patterns)]
28913 if let Ref::Framework(_) = self {
28914 } else {
28916 *self = Ref::Framework(fidl::new_empty!(FrameworkRef, D));
28918 }
28919 #[allow(irrefutable_let_patterns)]
28920 if let Ref::Framework(ref mut val) = self {
28921 fidl::decode!(FrameworkRef, D, val, decoder, _inner_offset, depth)?;
28922 } else {
28923 unreachable!()
28924 }
28925 }
28926 6 => {
28927 #[allow(irrefutable_let_patterns)]
28928 if let Ref::Capability(_) = self {
28929 } else {
28931 *self = Ref::Capability(fidl::new_empty!(CapabilityRef, D));
28933 }
28934 #[allow(irrefutable_let_patterns)]
28935 if let Ref::Capability(ref mut val) = self {
28936 fidl::decode!(CapabilityRef, D, val, decoder, _inner_offset, depth)?;
28937 } else {
28938 unreachable!()
28939 }
28940 }
28941 7 => {
28942 #[allow(irrefutable_let_patterns)]
28943 if let Ref::Debug(_) = self {
28944 } else {
28946 *self = Ref::Debug(fidl::new_empty!(DebugRef, D));
28948 }
28949 #[allow(irrefutable_let_patterns)]
28950 if let Ref::Debug(ref mut val) = self {
28951 fidl::decode!(DebugRef, D, val, decoder, _inner_offset, depth)?;
28952 } else {
28953 unreachable!()
28954 }
28955 }
28956 8 => {
28957 #[allow(irrefutable_let_patterns)]
28958 if let Ref::VoidType(_) = self {
28959 } else {
28961 *self = Ref::VoidType(fidl::new_empty!(VoidRef, D));
28963 }
28964 #[allow(irrefutable_let_patterns)]
28965 if let Ref::VoidType(ref mut val) = self {
28966 fidl::decode!(VoidRef, D, val, decoder, _inner_offset, depth)?;
28967 } else {
28968 unreachable!()
28969 }
28970 }
28971 9 => {
28972 #[allow(irrefutable_let_patterns)]
28973 if let Ref::Environment(_) = self {
28974 } else {
28976 *self = Ref::Environment(fidl::new_empty!(EnvironmentRef, D));
28978 }
28979 #[allow(irrefutable_let_patterns)]
28980 if let Ref::Environment(ref mut val) = self {
28981 fidl::decode!(EnvironmentRef, D, val, decoder, _inner_offset, depth)?;
28982 } else {
28983 unreachable!()
28984 }
28985 }
28986 #[allow(deprecated)]
28987 ordinal => {
28988 for _ in 0..num_handles {
28989 decoder.drop_next_handle()?;
28990 }
28991 *self = Ref::__SourceBreaking { unknown_ordinal: ordinal };
28992 }
28993 }
28994 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28995 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28996 }
28997 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28998 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28999 }
29000 Ok(())
29001 }
29002 }
29003
29004 impl fidl::encoding::ValueTypeMarker for Use {
29005 type Borrowed<'a> = &'a Self;
29006 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
29007 value
29008 }
29009 }
29010
29011 unsafe impl fidl::encoding::TypeMarker for Use {
29012 type Owned = Self;
29013
29014 #[inline(always)]
29015 fn inline_align(_context: fidl::encoding::Context) -> usize {
29016 8
29017 }
29018
29019 #[inline(always)]
29020 fn inline_size(_context: fidl::encoding::Context) -> usize {
29021 16
29022 }
29023 }
29024
29025 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Use, D> for &Use {
29026 #[inline]
29027 unsafe fn encode(
29028 self,
29029 encoder: &mut fidl::encoding::Encoder<'_, D>,
29030 offset: usize,
29031 _depth: fidl::encoding::Depth,
29032 ) -> fidl::Result<()> {
29033 encoder.debug_check_bounds::<Use>(offset);
29034 encoder.write_num::<u64>(self.ordinal(), offset);
29035 match self {
29036 Use::Service(ref val) => fidl::encoding::encode_in_envelope::<UseService, D>(
29037 <UseService as fidl::encoding::ValueTypeMarker>::borrow(val),
29038 encoder,
29039 offset + 8,
29040 _depth,
29041 ),
29042 Use::Protocol(ref val) => fidl::encoding::encode_in_envelope::<UseProtocol, D>(
29043 <UseProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
29044 encoder,
29045 offset + 8,
29046 _depth,
29047 ),
29048 Use::Directory(ref val) => fidl::encoding::encode_in_envelope::<UseDirectory, D>(
29049 <UseDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
29050 encoder,
29051 offset + 8,
29052 _depth,
29053 ),
29054 Use::Storage(ref val) => fidl::encoding::encode_in_envelope::<UseStorage, D>(
29055 <UseStorage as fidl::encoding::ValueTypeMarker>::borrow(val),
29056 encoder,
29057 offset + 8,
29058 _depth,
29059 ),
29060 Use::EventStream(ref val) => {
29061 fidl::encoding::encode_in_envelope::<UseEventStream, D>(
29062 <UseEventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
29063 encoder,
29064 offset + 8,
29065 _depth,
29066 )
29067 }
29068 Use::Runner(ref val) => fidl::encoding::encode_in_envelope::<UseRunner, D>(
29069 <UseRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
29070 encoder,
29071 offset + 8,
29072 _depth,
29073 ),
29074 Use::Config(ref val) => fidl::encoding::encode_in_envelope::<UseConfiguration, D>(
29075 <UseConfiguration as fidl::encoding::ValueTypeMarker>::borrow(val),
29076 encoder,
29077 offset + 8,
29078 _depth,
29079 ),
29080 Use::Dictionary(ref val) => fidl::encoding::encode_in_envelope::<UseDictionary, D>(
29081 <UseDictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
29082 encoder,
29083 offset + 8,
29084 _depth,
29085 ),
29086 Use::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
29087 }
29088 }
29089 }
29090
29091 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Use {
29092 #[inline(always)]
29093 fn new_empty() -> Self {
29094 Self::__SourceBreaking { unknown_ordinal: 0 }
29095 }
29096
29097 #[inline]
29098 unsafe fn decode(
29099 &mut self,
29100 decoder: &mut fidl::encoding::Decoder<'_, D>,
29101 offset: usize,
29102 mut depth: fidl::encoding::Depth,
29103 ) -> fidl::Result<()> {
29104 decoder.debug_check_bounds::<Self>(offset);
29105 #[allow(unused_variables)]
29106 let next_out_of_line = decoder.next_out_of_line();
29107 let handles_before = decoder.remaining_handles();
29108 let (ordinal, inlined, num_bytes, num_handles) =
29109 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
29110
29111 let member_inline_size = match ordinal {
29112 1 => <UseService as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29113 2 => <UseProtocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29114 3 => <UseDirectory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29115 4 => <UseStorage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29116 7 => <UseEventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29117 8 => <UseRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29118 9 => <UseConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29119 10 => <UseDictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
29120 0 => return Err(fidl::Error::UnknownUnionTag),
29121 _ => num_bytes as usize,
29122 };
29123
29124 if inlined != (member_inline_size <= 4) {
29125 return Err(fidl::Error::InvalidInlineBitInEnvelope);
29126 }
29127 let _inner_offset;
29128 if inlined {
29129 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
29130 _inner_offset = offset + 8;
29131 } else {
29132 depth.increment()?;
29133 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
29134 }
29135 match ordinal {
29136 1 => {
29137 #[allow(irrefutable_let_patterns)]
29138 if let Use::Service(_) = self {
29139 } else {
29141 *self = Use::Service(fidl::new_empty!(UseService, D));
29143 }
29144 #[allow(irrefutable_let_patterns)]
29145 if let Use::Service(ref mut val) = self {
29146 fidl::decode!(UseService, D, val, decoder, _inner_offset, depth)?;
29147 } else {
29148 unreachable!()
29149 }
29150 }
29151 2 => {
29152 #[allow(irrefutable_let_patterns)]
29153 if let Use::Protocol(_) = self {
29154 } else {
29156 *self = Use::Protocol(fidl::new_empty!(UseProtocol, D));
29158 }
29159 #[allow(irrefutable_let_patterns)]
29160 if let Use::Protocol(ref mut val) = self {
29161 fidl::decode!(UseProtocol, D, val, decoder, _inner_offset, depth)?;
29162 } else {
29163 unreachable!()
29164 }
29165 }
29166 3 => {
29167 #[allow(irrefutable_let_patterns)]
29168 if let Use::Directory(_) = self {
29169 } else {
29171 *self = Use::Directory(fidl::new_empty!(UseDirectory, D));
29173 }
29174 #[allow(irrefutable_let_patterns)]
29175 if let Use::Directory(ref mut val) = self {
29176 fidl::decode!(UseDirectory, D, val, decoder, _inner_offset, depth)?;
29177 } else {
29178 unreachable!()
29179 }
29180 }
29181 4 => {
29182 #[allow(irrefutable_let_patterns)]
29183 if let Use::Storage(_) = self {
29184 } else {
29186 *self = Use::Storage(fidl::new_empty!(UseStorage, D));
29188 }
29189 #[allow(irrefutable_let_patterns)]
29190 if let Use::Storage(ref mut val) = self {
29191 fidl::decode!(UseStorage, D, val, decoder, _inner_offset, depth)?;
29192 } else {
29193 unreachable!()
29194 }
29195 }
29196 7 => {
29197 #[allow(irrefutable_let_patterns)]
29198 if let Use::EventStream(_) = self {
29199 } else {
29201 *self = Use::EventStream(fidl::new_empty!(UseEventStream, D));
29203 }
29204 #[allow(irrefutable_let_patterns)]
29205 if let Use::EventStream(ref mut val) = self {
29206 fidl::decode!(UseEventStream, D, val, decoder, _inner_offset, depth)?;
29207 } else {
29208 unreachable!()
29209 }
29210 }
29211 8 => {
29212 #[allow(irrefutable_let_patterns)]
29213 if let Use::Runner(_) = self {
29214 } else {
29216 *self = Use::Runner(fidl::new_empty!(UseRunner, D));
29218 }
29219 #[allow(irrefutable_let_patterns)]
29220 if let Use::Runner(ref mut val) = self {
29221 fidl::decode!(UseRunner, D, val, decoder, _inner_offset, depth)?;
29222 } else {
29223 unreachable!()
29224 }
29225 }
29226 9 => {
29227 #[allow(irrefutable_let_patterns)]
29228 if let Use::Config(_) = self {
29229 } else {
29231 *self = Use::Config(fidl::new_empty!(UseConfiguration, D));
29233 }
29234 #[allow(irrefutable_let_patterns)]
29235 if let Use::Config(ref mut val) = self {
29236 fidl::decode!(UseConfiguration, D, val, decoder, _inner_offset, depth)?;
29237 } else {
29238 unreachable!()
29239 }
29240 }
29241 10 => {
29242 #[allow(irrefutable_let_patterns)]
29243 if let Use::Dictionary(_) = self {
29244 } else {
29246 *self = Use::Dictionary(fidl::new_empty!(UseDictionary, D));
29248 }
29249 #[allow(irrefutable_let_patterns)]
29250 if let Use::Dictionary(ref mut val) = self {
29251 fidl::decode!(UseDictionary, D, val, decoder, _inner_offset, depth)?;
29252 } else {
29253 unreachable!()
29254 }
29255 }
29256 #[allow(deprecated)]
29257 ordinal => {
29258 for _ in 0..num_handles {
29259 decoder.drop_next_handle()?;
29260 }
29261 *self = Use::__SourceBreaking { unknown_ordinal: ordinal };
29262 }
29263 }
29264 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
29265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
29266 }
29267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
29268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
29269 }
29270 Ok(())
29271 }
29272 }
29273}