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 #[doc(hidden)]
729 pub __source_breaking: fidl::marker::SourceBreaking,
730}
731
732impl fidl::Persistable for Component {}
733
734#[derive(Clone, Debug, Default, PartialEq)]
736pub struct ConfigField {
737 pub key: Option<String>,
740 pub type_: Option<ConfigType>,
743 pub mutability: Option<ConfigMutability>,
745 #[doc(hidden)]
746 pub __source_breaking: fidl::marker::SourceBreaking,
747}
748
749impl fidl::Persistable for ConfigField {}
750
751#[derive(Clone, Debug, Default, PartialEq)]
753pub struct ConfigOverride {
754 pub key: Option<String>,
755 pub value: Option<ConfigValue>,
756 #[doc(hidden)]
757 pub __source_breaking: fidl::marker::SourceBreaking,
758}
759
760impl fidl::Persistable for ConfigOverride {}
761
762#[derive(Clone, Debug, Default, PartialEq)]
764pub struct ConfigSchema {
765 pub fields: Option<Vec<ConfigField>>,
767 pub checksum: Option<ConfigChecksum>,
769 pub value_source: Option<ConfigValueSource>,
771 #[doc(hidden)]
772 pub __source_breaking: fidl::marker::SourceBreaking,
773}
774
775impl fidl::Persistable for ConfigSchema {}
776
777#[derive(Clone, Debug, Default, PartialEq)]
778pub struct ConfigSourceCapabilities {
779 #[doc(hidden)]
780 pub __source_breaking: fidl::marker::SourceBreaking,
781}
782
783impl fidl::Persistable for ConfigSourceCapabilities {}
784
785#[derive(Clone, Debug, Default, PartialEq)]
788pub struct ConfigValueSpec {
789 pub value: Option<ConfigValue>,
790 #[doc(hidden)]
791 pub __source_breaking: fidl::marker::SourceBreaking,
792}
793
794impl fidl::Persistable for ConfigValueSpec {}
795
796#[derive(Clone, Debug, Default, PartialEq)]
798pub struct ConfigValuesData {
799 pub values: Option<Vec<ConfigValueSpec>>,
801 pub checksum: Option<ConfigChecksum>,
804 #[doc(hidden)]
805 pub __source_breaking: fidl::marker::SourceBreaking,
806}
807
808impl fidl::Persistable for ConfigValuesData {}
809
810#[derive(Clone, Debug, Default, PartialEq)]
817pub struct Configuration {
818 pub name: Option<String>,
820 pub value: Option<ConfigValue>,
822 #[doc(hidden)]
823 pub __source_breaking: fidl::marker::SourceBreaking,
824}
825
826impl fidl::Persistable for Configuration {}
827
828#[derive(Clone, Debug, Default, PartialEq)]
835pub struct DebugProtocolRegistration {
836 pub source: Option<Ref>,
839 pub source_name: Option<String>,
841 pub target_name: Option<String>,
843 #[doc(hidden)]
844 pub __source_breaking: fidl::marker::SourceBreaking,
845}
846
847impl fidl::Persistable for DebugProtocolRegistration {}
848
849#[derive(Clone, Debug, Default, PartialEq)]
851pub struct Dictionary {
852 pub name: Option<String>,
856 pub source: Option<Ref>,
859 pub source_dictionary: Option<String>,
864 pub source_path: Option<String>,
871 #[doc(hidden)]
872 pub __source_breaking: fidl::marker::SourceBreaking,
873}
874
875impl fidl::Persistable for Dictionary {}
876
877#[derive(Clone, Debug, Default, PartialEq)]
882pub struct Directory {
883 pub name: Option<String>,
885 pub source_path: Option<String>,
890 pub rights: Option<fidl_fuchsia_io__common::Operations>,
893 #[doc(hidden)]
894 pub __source_breaking: fidl::marker::SourceBreaking,
895}
896
897impl fidl::Persistable for Directory {}
898
899#[derive(Clone, Debug, Default, PartialEq)]
901pub struct Environment {
902 pub name: Option<String>,
904 pub extends: Option<EnvironmentExtends>,
907 pub runners: Option<Vec<RunnerRegistration>>,
912 pub resolvers: Option<Vec<ResolverRegistration>>,
918 pub debug_capabilities: Option<Vec<DebugRegistration>>,
926 pub stop_timeout_ms: Option<u32>,
930 #[doc(hidden)]
931 pub __source_breaking: fidl::marker::SourceBreaking,
932}
933
934impl fidl::Persistable for Environment {}
935
936#[derive(Clone, Debug, Default, PartialEq)]
942pub struct EventStream {
943 pub name: Option<String>,
947 #[doc(hidden)]
948 pub __source_breaking: fidl::marker::SourceBreaking,
949}
950
951impl fidl::Persistable for EventStream {}
952
953#[derive(Clone, Debug, Default, PartialEq)]
955pub struct EventSubscription {
956 pub event_name: Option<String>,
958 #[doc(hidden)]
959 pub __source_breaking: fidl::marker::SourceBreaking,
960}
961
962impl fidl::Persistable for EventSubscription {}
963
964#[derive(Clone, Debug, Default, PartialEq)]
967pub struct ExposeConfiguration {
968 pub source: Option<Ref>,
973 pub source_name: Option<String>,
976 pub target: Option<Ref>,
978 pub target_name: Option<String>,
980 pub availability: Option<Availability>,
983 pub source_dictionary: Option<String>,
988 #[doc(hidden)]
989 pub __source_breaking: fidl::marker::SourceBreaking,
990}
991
992impl fidl::Persistable for ExposeConfiguration {}
993
994#[derive(Clone, Debug, Default, PartialEq)]
1000pub struct ExposeDictionary {
1001 pub source: Option<Ref>,
1006 pub source_name: Option<String>,
1009 pub target: Option<Ref>,
1012 pub target_name: Option<String>,
1014 pub availability: Option<Availability>,
1017 pub source_dictionary: Option<String>,
1026 #[doc(hidden)]
1027 pub __source_breaking: fidl::marker::SourceBreaking,
1028}
1029
1030impl fidl::Persistable for ExposeDictionary {}
1031
1032#[derive(Clone, Debug, Default, PartialEq)]
1035pub struct ExposeDirectory {
1036 pub source: Option<Ref>,
1041 pub source_name: Option<String>,
1044 pub target: Option<Ref>,
1047 pub target_name: Option<String>,
1049 pub rights: Option<fidl_fuchsia_io__common::Operations>,
1052 pub subdir: Option<String>,
1055 pub availability: Option<Availability>,
1058 pub source_dictionary: Option<String>,
1067 #[doc(hidden)]
1068 pub __source_breaking: fidl::marker::SourceBreaking,
1069}
1070
1071impl fidl::Persistable for ExposeDirectory {}
1072
1073#[derive(Clone, Debug, Default, PartialEq)]
1079pub struct ExposeProtocol {
1080 pub source: Option<Ref>,
1085 pub source_name: Option<String>,
1088 pub target: Option<Ref>,
1091 pub target_name: Option<String>,
1093 pub availability: Option<Availability>,
1096 pub source_dictionary: Option<String>,
1105 #[doc(hidden)]
1106 pub __source_breaking: fidl::marker::SourceBreaking,
1107}
1108
1109impl fidl::Persistable for ExposeProtocol {}
1110
1111#[derive(Clone, Debug, Default, PartialEq)]
1114pub struct ExposeResolver {
1115 pub source: Option<Ref>,
1118 pub source_name: Option<String>,
1121 pub target: Option<Ref>,
1123 pub target_name: Option<String>,
1125 pub source_dictionary: Option<String>,
1134 #[doc(hidden)]
1135 pub __source_breaking: fidl::marker::SourceBreaking,
1136}
1137
1138impl fidl::Persistable for ExposeResolver {}
1139
1140#[derive(Clone, Debug, Default, PartialEq)]
1143pub struct ExposeRunner {
1144 pub source: Option<Ref>,
1147 pub source_name: Option<String>,
1150 pub target: Option<Ref>,
1153 pub target_name: Option<String>,
1155 pub source_dictionary: Option<String>,
1164 #[doc(hidden)]
1165 pub __source_breaking: fidl::marker::SourceBreaking,
1166}
1167
1168impl fidl::Persistable for ExposeRunner {}
1169
1170#[derive(Clone, Debug, Default, PartialEq)]
1176pub struct ExposeService {
1177 pub source: Option<Ref>,
1182 pub source_name: Option<String>,
1185 pub target: Option<Ref>,
1188 pub target_name: Option<String>,
1190 pub availability: Option<Availability>,
1193 pub source_dictionary: Option<String>,
1198 #[doc(hidden)]
1199 pub __source_breaking: fidl::marker::SourceBreaking,
1200}
1201
1202impl fidl::Persistable for ExposeService {}
1203
1204#[derive(Clone, Debug, Default, PartialEq)]
1208pub struct OfferConfiguration {
1209 pub source: Option<Ref>,
1214 pub source_name: Option<String>,
1216 pub target: Option<Ref>,
1218 pub target_name: Option<String>,
1220 pub availability: Option<Availability>,
1227 pub source_dictionary: Option<String>,
1232 #[doc(hidden)]
1233 pub __source_breaking: fidl::marker::SourceBreaking,
1234}
1235
1236impl fidl::Persistable for OfferConfiguration {}
1237
1238#[derive(Clone, Debug, Default, PartialEq)]
1245pub struct OfferDictionary {
1246 pub source: Option<Ref>,
1251 pub source_name: Option<String>,
1253 pub target: Option<Ref>,
1256 pub target_name: Option<String>,
1258 pub dependency_type: Option<DependencyType>,
1262 pub availability: Option<Availability>,
1269 pub source_dictionary: Option<String>,
1274 #[doc(hidden)]
1275 pub __source_breaking: fidl::marker::SourceBreaking,
1276}
1277
1278impl fidl::Persistable for OfferDictionary {}
1279
1280#[derive(Clone, Debug, Default, PartialEq)]
1284pub struct OfferDirectory {
1285 pub source: Option<Ref>,
1290 pub source_name: Option<String>,
1292 pub target: Option<Ref>,
1295 pub target_name: Option<String>,
1297 pub rights: Option<fidl_fuchsia_io__common::Operations>,
1300 pub subdir: Option<String>,
1303 pub dependency_type: Option<DependencyType>,
1307 pub availability: Option<Availability>,
1314 pub source_dictionary: Option<String>,
1319 #[doc(hidden)]
1320 pub __source_breaking: fidl::marker::SourceBreaking,
1321}
1322
1323impl fidl::Persistable for OfferDirectory {}
1324
1325#[derive(Clone, Debug, Default, PartialEq)]
1327pub struct OfferEventStream {
1328 pub source: Option<Ref>,
1333 pub source_name: Option<String>,
1335 pub scope: Option<Vec<Ref>>,
1341 pub target: Option<Ref>,
1343 pub target_name: Option<String>,
1345 pub availability: Option<Availability>,
1352 #[doc(hidden)]
1353 pub __source_breaking: fidl::marker::SourceBreaking,
1354}
1355
1356impl fidl::Persistable for OfferEventStream {}
1357
1358#[derive(Clone, Debug, Default, PartialEq)]
1365pub struct OfferProtocol {
1366 pub source: Option<Ref>,
1371 pub source_name: Option<String>,
1373 pub target: Option<Ref>,
1376 pub target_name: Option<String>,
1378 pub dependency_type: Option<DependencyType>,
1382 pub availability: Option<Availability>,
1389 pub source_dictionary: Option<String>,
1394 #[doc(hidden)]
1395 pub __source_breaking: fidl::marker::SourceBreaking,
1396}
1397
1398impl fidl::Persistable for OfferProtocol {}
1399
1400#[derive(Clone, Debug, Default, PartialEq)]
1404pub struct OfferResolver {
1405 pub source: Option<Ref>,
1410 pub source_name: Option<String>,
1412 pub target: Option<Ref>,
1415 pub target_name: Option<String>,
1417 pub source_dictionary: Option<String>,
1422 #[doc(hidden)]
1423 pub __source_breaking: fidl::marker::SourceBreaking,
1424}
1425
1426impl fidl::Persistable for OfferResolver {}
1427
1428#[derive(Clone, Debug, Default, PartialEq)]
1432pub struct OfferRunner {
1433 pub source: Option<Ref>,
1438 pub source_name: Option<String>,
1440 pub target: Option<Ref>,
1443 pub target_name: Option<String>,
1445 pub source_dictionary: Option<String>,
1450 #[doc(hidden)]
1451 pub __source_breaking: fidl::marker::SourceBreaking,
1452}
1453
1454impl fidl::Persistable for OfferRunner {}
1455
1456#[derive(Clone, Debug, Default, PartialEq)]
1463pub struct OfferService {
1464 pub source: Option<Ref>,
1469 pub source_name: Option<String>,
1471 pub target: Option<Ref>,
1474 pub target_name: Option<String>,
1476 pub source_instance_filter: Option<Vec<String>>,
1481 pub renamed_instances: Option<Vec<NameMapping>>,
1493 pub availability: Option<Availability>,
1500 pub source_dictionary: Option<String>,
1505 pub dependency_type: Option<DependencyType>,
1509 #[doc(hidden)]
1510 pub __source_breaking: fidl::marker::SourceBreaking,
1511}
1512
1513impl fidl::Persistable for OfferService {}
1514
1515#[derive(Clone, Debug, Default, PartialEq)]
1519pub struct OfferStorage {
1520 pub source_name: Option<String>,
1522 pub source: Option<Ref>,
1527 pub target: Option<Ref>,
1530 pub target_name: Option<String>,
1532 pub availability: Option<Availability>,
1539 #[doc(hidden)]
1540 pub __source_breaking: fidl::marker::SourceBreaking,
1541}
1542
1543impl fidl::Persistable for OfferStorage {}
1544
1545#[derive(Clone, Debug, Default, PartialEq)]
1553pub struct Program {
1554 pub runner: Option<String>,
1559 pub info: Option<fidl_fuchsia_data__common::Dictionary>,
1570 #[doc(hidden)]
1571 pub __source_breaking: fidl::marker::SourceBreaking,
1572}
1573
1574impl fidl::Persistable for Program {}
1575
1576#[derive(Clone, Debug, Default, PartialEq)]
1581pub struct Protocol {
1582 pub name: Option<String>,
1584 pub source_path: Option<String>,
1589 pub delivery: Option<DeliveryType>,
1593 #[doc(hidden)]
1594 pub __source_breaking: fidl::marker::SourceBreaking,
1595}
1596
1597impl fidl::Persistable for Protocol {}
1598
1599#[derive(Clone, Debug, Default, PartialEq)]
1603pub struct Resolver {
1604 pub name: Option<String>,
1608 pub source_path: Option<String>,
1613 #[doc(hidden)]
1614 pub __source_breaking: fidl::marker::SourceBreaking,
1615}
1616
1617impl fidl::Persistable for Resolver {}
1618
1619#[derive(Clone, Debug, Default, PartialEq)]
1621pub struct ResolverRegistration {
1622 pub resolver: Option<String>,
1624 pub source: Option<Ref>,
1627 pub scheme: Option<String>,
1632 #[doc(hidden)]
1633 pub __source_breaking: fidl::marker::SourceBreaking,
1634}
1635
1636impl fidl::Persistable for ResolverRegistration {}
1637
1638#[derive(Clone, Debug, Default, PartialEq)]
1640pub struct Runner {
1641 pub name: Option<String>,
1645 pub source_path: Option<String>,
1650 #[doc(hidden)]
1651 pub __source_breaking: fidl::marker::SourceBreaking,
1652}
1653
1654impl fidl::Persistable for Runner {}
1655
1656#[derive(Clone, Debug, Default, PartialEq)]
1658pub struct RunnerRegistration {
1659 pub source_name: Option<String>,
1662 pub source: Option<Ref>,
1665 pub target_name: Option<String>,
1668 #[doc(hidden)]
1669 pub __source_breaking: fidl::marker::SourceBreaking,
1670}
1671
1672impl fidl::Persistable for RunnerRegistration {}
1673
1674#[derive(Clone, Debug, Default, PartialEq)]
1679pub struct Service {
1680 pub name: Option<String>,
1682 pub source_path: Option<String>,
1687 #[doc(hidden)]
1688 pub __source_breaking: fidl::marker::SourceBreaking,
1689}
1690
1691impl fidl::Persistable for Service {}
1692
1693#[derive(Clone, Debug, Default, PartialEq)]
1696pub struct Storage {
1697 pub name: Option<String>,
1699 pub source: Option<Ref>,
1702 pub backing_dir: Option<String>,
1705 pub subdir: Option<String>,
1708 pub storage_id: Option<StorageId>,
1712 #[doc(hidden)]
1713 pub __source_breaking: fidl::marker::SourceBreaking,
1714}
1715
1716impl fidl::Persistable for Storage {}
1717
1718#[derive(Clone, Debug, Default, PartialEq)]
1719pub struct UseConfiguration {
1720 pub source: Option<Ref>,
1723 pub source_name: Option<String>,
1726 pub target_name: Option<String>,
1730 pub availability: Option<Availability>,
1735 pub type_: Option<ConfigType>,
1738 pub default: Option<ConfigValue>,
1741 pub source_dictionary: Option<String>,
1746 #[doc(hidden)]
1747 pub __source_breaking: fidl::marker::SourceBreaking,
1748}
1749
1750impl fidl::Persistable for UseConfiguration {}
1751
1752#[derive(Clone, Debug, Default, PartialEq)]
1753pub struct UseDictionary {
1754 pub source: Option<Ref>,
1757 pub source_name: Option<String>,
1760 pub target_path: Option<String>,
1765 pub dependency_type: Option<DependencyType>,
1774 pub availability: Option<Availability>,
1779 pub source_dictionary: Option<String>,
1784 #[doc(hidden)]
1785 pub __source_breaking: fidl::marker::SourceBreaking,
1786}
1787
1788impl fidl::Persistable for UseDictionary {}
1789
1790#[derive(Clone, Debug, Default, PartialEq)]
1792pub struct UseDirectory {
1793 pub source: Option<Ref>,
1796 pub source_name: Option<String>,
1799 pub target_path: Option<String>,
1804 pub rights: Option<fidl_fuchsia_io__common::Operations>,
1806 pub subdir: Option<String>,
1809 pub dependency_type: Option<DependencyType>,
1818 pub availability: Option<Availability>,
1823 pub source_dictionary: Option<String>,
1828 #[doc(hidden)]
1829 pub __source_breaking: fidl::marker::SourceBreaking,
1830}
1831
1832impl fidl::Persistable for UseDirectory {}
1833
1834#[derive(Clone, Debug, Default, PartialEq)]
1836pub struct UseEventStream {
1837 pub source_name: Option<String>,
1839 pub source: Option<Ref>,
1841 pub scope: Option<Vec<Ref>>,
1847 pub target_path: Option<String>,
1850 pub availability: Option<Availability>,
1855 pub filter: Option<fidl_fuchsia_data__common::Dictionary>,
1859 #[doc(hidden)]
1860 pub __source_breaking: fidl::marker::SourceBreaking,
1861}
1862
1863impl fidl::Persistable for UseEventStream {}
1864
1865#[derive(Clone, Debug, Default, PartialEq)]
1870pub struct UseProtocol {
1871 pub source: Option<Ref>,
1874 pub source_name: Option<String>,
1877 pub target_path: Option<String>,
1882 pub dependency_type: Option<DependencyType>,
1891 pub availability: Option<Availability>,
1896 pub source_dictionary: Option<String>,
1901 pub numbered_handle: Option<u8>,
1909 #[doc(hidden)]
1910 pub __source_breaking: fidl::marker::SourceBreaking,
1911}
1912
1913impl fidl::Persistable for UseProtocol {}
1914
1915#[derive(Clone, Debug, Default, PartialEq)]
1917pub struct UseRunner {
1918 pub source: Option<Ref>,
1921 pub source_name: Option<String>,
1924 pub source_dictionary: Option<String>,
1929 #[doc(hidden)]
1930 pub __source_breaking: fidl::marker::SourceBreaking,
1931}
1932
1933impl fidl::Persistable for UseRunner {}
1934
1935#[derive(Clone, Debug, Default, PartialEq)]
1940pub struct UseService {
1941 pub source: Option<Ref>,
1944 pub source_name: Option<String>,
1947 pub target_path: Option<String>,
1952 pub dependency_type: Option<DependencyType>,
1961 pub availability: Option<Availability>,
1966 pub source_dictionary: Option<String>,
1971 #[doc(hidden)]
1972 pub __source_breaking: fidl::marker::SourceBreaking,
1973}
1974
1975impl fidl::Persistable for UseService {}
1976
1977#[derive(Clone, Debug, Default, PartialEq)]
1979pub struct UseStorage {
1980 pub source_name: Option<String>,
1983 pub target_path: Option<String>,
1988 pub availability: Option<Availability>,
1993 #[doc(hidden)]
1994 pub __source_breaking: fidl::marker::SourceBreaking,
1995}
1996
1997impl fidl::Persistable for UseStorage {}
1998
1999#[derive(Clone, Debug)]
2001pub enum Capability {
2002 Service(Service),
2003 Protocol(Protocol),
2004 Directory(Directory),
2005 Storage(Storage),
2006 Runner(Runner),
2007 Resolver(Resolver),
2008 EventStream(EventStream),
2009 Dictionary(Dictionary),
2010 Config(Configuration),
2011 #[doc(hidden)]
2012 __SourceBreaking {
2013 unknown_ordinal: u64,
2014 },
2015}
2016
2017#[macro_export]
2019macro_rules! CapabilityUnknown {
2020 () => {
2021 _
2022 };
2023}
2024
2025impl PartialEq for Capability {
2027 fn eq(&self, other: &Self) -> bool {
2028 match (self, other) {
2029 (Self::Service(x), Self::Service(y)) => *x == *y,
2030 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2031 (Self::Directory(x), Self::Directory(y)) => *x == *y,
2032 (Self::Storage(x), Self::Storage(y)) => *x == *y,
2033 (Self::Runner(x), Self::Runner(y)) => *x == *y,
2034 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
2035 (Self::EventStream(x), Self::EventStream(y)) => *x == *y,
2036 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
2037 (Self::Config(x), Self::Config(y)) => *x == *y,
2038 _ => false,
2039 }
2040 }
2041}
2042
2043impl Capability {
2044 #[inline]
2045 pub fn ordinal(&self) -> u64 {
2046 match *self {
2047 Self::Service(_) => 1,
2048 Self::Protocol(_) => 2,
2049 Self::Directory(_) => 3,
2050 Self::Storage(_) => 4,
2051 Self::Runner(_) => 5,
2052 Self::Resolver(_) => 6,
2053 Self::EventStream(_) => 8,
2054 Self::Dictionary(_) => 9,
2055 Self::Config(_) => 10,
2056 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2057 }
2058 }
2059
2060 #[inline]
2061 pub fn unknown_variant_for_testing() -> Self {
2062 Self::__SourceBreaking { unknown_ordinal: 0 }
2063 }
2064
2065 #[inline]
2066 pub fn is_unknown(&self) -> bool {
2067 match self {
2068 Self::__SourceBreaking { .. } => true,
2069 _ => false,
2070 }
2071 }
2072}
2073
2074impl fidl::Persistable for Capability {}
2075
2076#[derive(Clone, Debug)]
2079pub enum ConfigChecksum {
2080 Sha256([u8; 32]),
2082 #[doc(hidden)]
2083 __SourceBreaking { unknown_ordinal: u64 },
2084}
2085
2086#[macro_export]
2088macro_rules! ConfigChecksumUnknown {
2089 () => {
2090 _
2091 };
2092}
2093
2094impl PartialEq for ConfigChecksum {
2096 fn eq(&self, other: &Self) -> bool {
2097 match (self, other) {
2098 (Self::Sha256(x), Self::Sha256(y)) => *x == *y,
2099 _ => false,
2100 }
2101 }
2102}
2103
2104impl ConfigChecksum {
2105 #[inline]
2106 pub fn ordinal(&self) -> u64 {
2107 match *self {
2108 Self::Sha256(_) => 1,
2109 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2110 }
2111 }
2112
2113 #[inline]
2114 pub fn unknown_variant_for_testing() -> Self {
2115 Self::__SourceBreaking { unknown_ordinal: 0 }
2116 }
2117
2118 #[inline]
2119 pub fn is_unknown(&self) -> bool {
2120 match self {
2121 Self::__SourceBreaking { .. } => true,
2122 _ => false,
2123 }
2124 }
2125}
2126
2127impl fidl::Persistable for ConfigChecksum {}
2128
2129#[derive(Clone, Debug)]
2131pub enum ConfigSingleValue {
2132 Bool(bool),
2133 Uint8(u8),
2134 Uint16(u16),
2135 Uint32(u32),
2136 Uint64(u64),
2137 Int8(i8),
2138 Int16(i16),
2139 Int32(i32),
2140 Int64(i64),
2141 String(String),
2142 #[doc(hidden)]
2143 __SourceBreaking {
2144 unknown_ordinal: u64,
2145 },
2146}
2147
2148#[macro_export]
2150macro_rules! ConfigSingleValueUnknown {
2151 () => {
2152 _
2153 };
2154}
2155
2156impl PartialEq for ConfigSingleValue {
2158 fn eq(&self, other: &Self) -> bool {
2159 match (self, other) {
2160 (Self::Bool(x), Self::Bool(y)) => *x == *y,
2161 (Self::Uint8(x), Self::Uint8(y)) => *x == *y,
2162 (Self::Uint16(x), Self::Uint16(y)) => *x == *y,
2163 (Self::Uint32(x), Self::Uint32(y)) => *x == *y,
2164 (Self::Uint64(x), Self::Uint64(y)) => *x == *y,
2165 (Self::Int8(x), Self::Int8(y)) => *x == *y,
2166 (Self::Int16(x), Self::Int16(y)) => *x == *y,
2167 (Self::Int32(x), Self::Int32(y)) => *x == *y,
2168 (Self::Int64(x), Self::Int64(y)) => *x == *y,
2169 (Self::String(x), Self::String(y)) => *x == *y,
2170 _ => false,
2171 }
2172 }
2173}
2174
2175impl ConfigSingleValue {
2176 #[inline]
2177 pub fn ordinal(&self) -> u64 {
2178 match *self {
2179 Self::Bool(_) => 1,
2180 Self::Uint8(_) => 2,
2181 Self::Uint16(_) => 3,
2182 Self::Uint32(_) => 4,
2183 Self::Uint64(_) => 5,
2184 Self::Int8(_) => 6,
2185 Self::Int16(_) => 7,
2186 Self::Int32(_) => 8,
2187 Self::Int64(_) => 9,
2188 Self::String(_) => 10,
2189 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2190 }
2191 }
2192
2193 #[inline]
2194 pub fn unknown_variant_for_testing() -> Self {
2195 Self::__SourceBreaking { unknown_ordinal: 0 }
2196 }
2197
2198 #[inline]
2199 pub fn is_unknown(&self) -> bool {
2200 match self {
2201 Self::__SourceBreaking { .. } => true,
2202 _ => false,
2203 }
2204 }
2205}
2206
2207impl fidl::Persistable for ConfigSingleValue {}
2208
2209#[derive(Clone, Debug)]
2213pub enum ConfigValue {
2214 Single(ConfigSingleValue),
2215 Vector(ConfigVectorValue),
2216 #[doc(hidden)]
2217 __SourceBreaking {
2218 unknown_ordinal: u64,
2219 },
2220}
2221
2222#[macro_export]
2224macro_rules! ConfigValueUnknown {
2225 () => {
2226 _
2227 };
2228}
2229
2230impl PartialEq for ConfigValue {
2232 fn eq(&self, other: &Self) -> bool {
2233 match (self, other) {
2234 (Self::Single(x), Self::Single(y)) => *x == *y,
2235 (Self::Vector(x), Self::Vector(y)) => *x == *y,
2236 _ => false,
2237 }
2238 }
2239}
2240
2241impl ConfigValue {
2242 #[inline]
2243 pub fn ordinal(&self) -> u64 {
2244 match *self {
2245 Self::Single(_) => 1,
2246 Self::Vector(_) => 2,
2247 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2248 }
2249 }
2250
2251 #[inline]
2252 pub fn unknown_variant_for_testing() -> Self {
2253 Self::__SourceBreaking { unknown_ordinal: 0 }
2254 }
2255
2256 #[inline]
2257 pub fn is_unknown(&self) -> bool {
2258 match self {
2259 Self::__SourceBreaking { .. } => true,
2260 _ => false,
2261 }
2262 }
2263}
2264
2265impl fidl::Persistable for ConfigValue {}
2266
2267#[derive(Clone, Debug)]
2269pub enum ConfigValueSource {
2270 PackagePath(String),
2272 Capabilities(ConfigSourceCapabilities),
2274 #[doc(hidden)]
2275 __SourceBreaking { unknown_ordinal: u64 },
2276}
2277
2278#[macro_export]
2280macro_rules! ConfigValueSourceUnknown {
2281 () => {
2282 _
2283 };
2284}
2285
2286impl PartialEq for ConfigValueSource {
2288 fn eq(&self, other: &Self) -> bool {
2289 match (self, other) {
2290 (Self::PackagePath(x), Self::PackagePath(y)) => *x == *y,
2291 (Self::Capabilities(x), Self::Capabilities(y)) => *x == *y,
2292 _ => false,
2293 }
2294 }
2295}
2296
2297impl ConfigValueSource {
2298 #[inline]
2299 pub fn ordinal(&self) -> u64 {
2300 match *self {
2301 Self::PackagePath(_) => 1,
2302 Self::Capabilities(_) => 2,
2303 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2304 }
2305 }
2306
2307 #[inline]
2308 pub fn unknown_variant_for_testing() -> Self {
2309 Self::__SourceBreaking { unknown_ordinal: 0 }
2310 }
2311
2312 #[inline]
2313 pub fn is_unknown(&self) -> bool {
2314 match self {
2315 Self::__SourceBreaking { .. } => true,
2316 _ => false,
2317 }
2318 }
2319}
2320
2321impl fidl::Persistable for ConfigValueSource {}
2322
2323#[derive(Clone, Debug)]
2325pub enum ConfigVectorValue {
2326 BoolVector(Vec<bool>),
2327 Uint8Vector(Vec<u8>),
2328 Uint16Vector(Vec<u16>),
2329 Uint32Vector(Vec<u32>),
2330 Uint64Vector(Vec<u64>),
2331 Int8Vector(Vec<i8>),
2332 Int16Vector(Vec<i16>),
2333 Int32Vector(Vec<i32>),
2334 Int64Vector(Vec<i64>),
2335 StringVector(Vec<String>),
2336 #[doc(hidden)]
2337 __SourceBreaking {
2338 unknown_ordinal: u64,
2339 },
2340}
2341
2342#[macro_export]
2344macro_rules! ConfigVectorValueUnknown {
2345 () => {
2346 _
2347 };
2348}
2349
2350impl PartialEq for ConfigVectorValue {
2352 fn eq(&self, other: &Self) -> bool {
2353 match (self, other) {
2354 (Self::BoolVector(x), Self::BoolVector(y)) => *x == *y,
2355 (Self::Uint8Vector(x), Self::Uint8Vector(y)) => *x == *y,
2356 (Self::Uint16Vector(x), Self::Uint16Vector(y)) => *x == *y,
2357 (Self::Uint32Vector(x), Self::Uint32Vector(y)) => *x == *y,
2358 (Self::Uint64Vector(x), Self::Uint64Vector(y)) => *x == *y,
2359 (Self::Int8Vector(x), Self::Int8Vector(y)) => *x == *y,
2360 (Self::Int16Vector(x), Self::Int16Vector(y)) => *x == *y,
2361 (Self::Int32Vector(x), Self::Int32Vector(y)) => *x == *y,
2362 (Self::Int64Vector(x), Self::Int64Vector(y)) => *x == *y,
2363 (Self::StringVector(x), Self::StringVector(y)) => *x == *y,
2364 _ => false,
2365 }
2366 }
2367}
2368
2369impl ConfigVectorValue {
2370 #[inline]
2371 pub fn ordinal(&self) -> u64 {
2372 match *self {
2373 Self::BoolVector(_) => 1,
2374 Self::Uint8Vector(_) => 2,
2375 Self::Uint16Vector(_) => 3,
2376 Self::Uint32Vector(_) => 4,
2377 Self::Uint64Vector(_) => 5,
2378 Self::Int8Vector(_) => 6,
2379 Self::Int16Vector(_) => 7,
2380 Self::Int32Vector(_) => 8,
2381 Self::Int64Vector(_) => 9,
2382 Self::StringVector(_) => 10,
2383 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2384 }
2385 }
2386
2387 #[inline]
2388 pub fn unknown_variant_for_testing() -> Self {
2389 Self::__SourceBreaking { unknown_ordinal: 0 }
2390 }
2391
2392 #[inline]
2393 pub fn is_unknown(&self) -> bool {
2394 match self {
2395 Self::__SourceBreaking { .. } => true,
2396 _ => false,
2397 }
2398 }
2399}
2400
2401impl fidl::Persistable for ConfigVectorValue {}
2402
2403#[derive(Clone, Debug)]
2405pub enum DebugRegistration {
2406 Protocol(DebugProtocolRegistration),
2407 #[doc(hidden)]
2408 __SourceBreaking {
2409 unknown_ordinal: u64,
2410 },
2411}
2412
2413#[macro_export]
2415macro_rules! DebugRegistrationUnknown {
2416 () => {
2417 _
2418 };
2419}
2420
2421impl PartialEq for DebugRegistration {
2423 fn eq(&self, other: &Self) -> bool {
2424 match (self, other) {
2425 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2426 _ => false,
2427 }
2428 }
2429}
2430
2431impl DebugRegistration {
2432 #[inline]
2433 pub fn ordinal(&self) -> u64 {
2434 match *self {
2435 Self::Protocol(_) => 1,
2436 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2437 }
2438 }
2439
2440 #[inline]
2441 pub fn unknown_variant_for_testing() -> Self {
2442 Self::__SourceBreaking { unknown_ordinal: 0 }
2443 }
2444
2445 #[inline]
2446 pub fn is_unknown(&self) -> bool {
2447 match self {
2448 Self::__SourceBreaking { .. } => true,
2449 _ => false,
2450 }
2451 }
2452}
2453
2454impl fidl::Persistable for DebugRegistration {}
2455
2456#[derive(Clone, Debug)]
2460pub enum Expose {
2461 Service(ExposeService),
2462 Protocol(ExposeProtocol),
2463 Directory(ExposeDirectory),
2464 Runner(ExposeRunner),
2465 Resolver(ExposeResolver),
2466 Dictionary(ExposeDictionary),
2467 Config(ExposeConfiguration),
2468 #[doc(hidden)]
2469 __SourceBreaking {
2470 unknown_ordinal: u64,
2471 },
2472}
2473
2474#[macro_export]
2476macro_rules! ExposeUnknown {
2477 () => {
2478 _
2479 };
2480}
2481
2482impl PartialEq for Expose {
2484 fn eq(&self, other: &Self) -> bool {
2485 match (self, other) {
2486 (Self::Service(x), Self::Service(y)) => *x == *y,
2487 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2488 (Self::Directory(x), Self::Directory(y)) => *x == *y,
2489 (Self::Runner(x), Self::Runner(y)) => *x == *y,
2490 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
2491 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
2492 (Self::Config(x), Self::Config(y)) => *x == *y,
2493 _ => false,
2494 }
2495 }
2496}
2497
2498impl Expose {
2499 #[inline]
2500 pub fn ordinal(&self) -> u64 {
2501 match *self {
2502 Self::Service(_) => 1,
2503 Self::Protocol(_) => 2,
2504 Self::Directory(_) => 3,
2505 Self::Runner(_) => 4,
2506 Self::Resolver(_) => 5,
2507 Self::Dictionary(_) => 7,
2508 Self::Config(_) => 8,
2509 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2510 }
2511 }
2512
2513 #[inline]
2514 pub fn unknown_variant_for_testing() -> Self {
2515 Self::__SourceBreaking { unknown_ordinal: 0 }
2516 }
2517
2518 #[inline]
2519 pub fn is_unknown(&self) -> bool {
2520 match self {
2521 Self::__SourceBreaking { .. } => true,
2522 _ => false,
2523 }
2524 }
2525}
2526
2527impl fidl::Persistable for Expose {}
2528
2529#[derive(Clone, Debug)]
2530pub enum LayoutConstraint {
2531 MaxSize(u32),
2532 #[doc(hidden)]
2533 __SourceBreaking {
2534 unknown_ordinal: u64,
2535 },
2536}
2537
2538#[macro_export]
2540macro_rules! LayoutConstraintUnknown {
2541 () => {
2542 _
2543 };
2544}
2545
2546impl PartialEq for LayoutConstraint {
2548 fn eq(&self, other: &Self) -> bool {
2549 match (self, other) {
2550 (Self::MaxSize(x), Self::MaxSize(y)) => *x == *y,
2551 _ => false,
2552 }
2553 }
2554}
2555
2556impl LayoutConstraint {
2557 #[inline]
2558 pub fn ordinal(&self) -> u64 {
2559 match *self {
2560 Self::MaxSize(_) => 1,
2561 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2562 }
2563 }
2564
2565 #[inline]
2566 pub fn unknown_variant_for_testing() -> Self {
2567 Self::__SourceBreaking { unknown_ordinal: 0 }
2568 }
2569
2570 #[inline]
2571 pub fn is_unknown(&self) -> bool {
2572 match self {
2573 Self::__SourceBreaking { .. } => true,
2574 _ => false,
2575 }
2576 }
2577}
2578
2579impl fidl::Persistable for LayoutConstraint {}
2580
2581#[derive(Clone, Debug)]
2582pub enum LayoutParameter {
2583 NestedType(ConfigType),
2584 #[doc(hidden)]
2585 __SourceBreaking {
2586 unknown_ordinal: u64,
2587 },
2588}
2589
2590#[macro_export]
2592macro_rules! LayoutParameterUnknown {
2593 () => {
2594 _
2595 };
2596}
2597
2598impl PartialEq for LayoutParameter {
2600 fn eq(&self, other: &Self) -> bool {
2601 match (self, other) {
2602 (Self::NestedType(x), Self::NestedType(y)) => *x == *y,
2603 _ => false,
2604 }
2605 }
2606}
2607
2608impl LayoutParameter {
2609 #[inline]
2610 pub fn ordinal(&self) -> u64 {
2611 match *self {
2612 Self::NestedType(_) => 1,
2613 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2614 }
2615 }
2616
2617 #[inline]
2618 pub fn unknown_variant_for_testing() -> Self {
2619 Self::__SourceBreaking { unknown_ordinal: 0 }
2620 }
2621
2622 #[inline]
2623 pub fn is_unknown(&self) -> bool {
2624 match self {
2625 Self::__SourceBreaking { .. } => true,
2626 _ => false,
2627 }
2628 }
2629}
2630
2631impl fidl::Persistable for LayoutParameter {}
2632
2633#[derive(Clone, Debug)]
2637pub enum Offer {
2638 Service(OfferService),
2639 Protocol(OfferProtocol),
2640 Directory(OfferDirectory),
2641 Storage(OfferStorage),
2642 Runner(OfferRunner),
2643 Resolver(OfferResolver),
2644 EventStream(OfferEventStream),
2645 Dictionary(OfferDictionary),
2646 Config(OfferConfiguration),
2647 #[doc(hidden)]
2648 __SourceBreaking {
2649 unknown_ordinal: u64,
2650 },
2651}
2652
2653#[macro_export]
2655macro_rules! OfferUnknown {
2656 () => {
2657 _
2658 };
2659}
2660
2661impl PartialEq for Offer {
2663 fn eq(&self, other: &Self) -> bool {
2664 match (self, other) {
2665 (Self::Service(x), Self::Service(y)) => *x == *y,
2666 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2667 (Self::Directory(x), Self::Directory(y)) => *x == *y,
2668 (Self::Storage(x), Self::Storage(y)) => *x == *y,
2669 (Self::Runner(x), Self::Runner(y)) => *x == *y,
2670 (Self::Resolver(x), Self::Resolver(y)) => *x == *y,
2671 (Self::EventStream(x), Self::EventStream(y)) => *x == *y,
2672 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
2673 (Self::Config(x), Self::Config(y)) => *x == *y,
2674 _ => false,
2675 }
2676 }
2677}
2678
2679impl Offer {
2680 #[inline]
2681 pub fn ordinal(&self) -> u64 {
2682 match *self {
2683 Self::Service(_) => 1,
2684 Self::Protocol(_) => 2,
2685 Self::Directory(_) => 3,
2686 Self::Storage(_) => 4,
2687 Self::Runner(_) => 5,
2688 Self::Resolver(_) => 6,
2689 Self::EventStream(_) => 8,
2690 Self::Dictionary(_) => 9,
2691 Self::Config(_) => 10,
2692 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2693 }
2694 }
2695
2696 #[inline]
2697 pub fn unknown_variant_for_testing() -> Self {
2698 Self::__SourceBreaking { unknown_ordinal: 0 }
2699 }
2700
2701 #[inline]
2702 pub fn is_unknown(&self) -> bool {
2703 match self {
2704 Self::__SourceBreaking { .. } => true,
2705 _ => false,
2706 }
2707 }
2708}
2709
2710impl fidl::Persistable for Offer {}
2711
2712#[derive(Clone, Debug)]
2715pub enum Ref {
2716 Parent(ParentRef),
2717 Self_(SelfRef),
2718 Child(ChildRef),
2719 Collection(CollectionRef),
2720 Framework(FrameworkRef),
2721 Capability(CapabilityRef),
2722 Debug(DebugRef),
2723 VoidType(VoidRef),
2724 Environment(EnvironmentRef),
2725 #[doc(hidden)]
2726 __SourceBreaking {
2727 unknown_ordinal: u64,
2728 },
2729}
2730
2731#[macro_export]
2733macro_rules! RefUnknown {
2734 () => {
2735 _
2736 };
2737}
2738
2739impl PartialEq for Ref {
2741 fn eq(&self, other: &Self) -> bool {
2742 match (self, other) {
2743 (Self::Parent(x), Self::Parent(y)) => *x == *y,
2744 (Self::Self_(x), Self::Self_(y)) => *x == *y,
2745 (Self::Child(x), Self::Child(y)) => *x == *y,
2746 (Self::Collection(x), Self::Collection(y)) => *x == *y,
2747 (Self::Framework(x), Self::Framework(y)) => *x == *y,
2748 (Self::Capability(x), Self::Capability(y)) => *x == *y,
2749 (Self::Debug(x), Self::Debug(y)) => *x == *y,
2750 (Self::VoidType(x), Self::VoidType(y)) => *x == *y,
2751 (Self::Environment(x), Self::Environment(y)) => *x == *y,
2752 _ => false,
2753 }
2754 }
2755}
2756
2757impl Ref {
2758 #[inline]
2759 pub fn ordinal(&self) -> u64 {
2760 match *self {
2761 Self::Parent(_) => 1,
2762 Self::Self_(_) => 2,
2763 Self::Child(_) => 3,
2764 Self::Collection(_) => 4,
2765 Self::Framework(_) => 5,
2766 Self::Capability(_) => 6,
2767 Self::Debug(_) => 7,
2768 Self::VoidType(_) => 8,
2769 Self::Environment(_) => 9,
2770 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2771 }
2772 }
2773
2774 #[inline]
2775 pub fn unknown_variant_for_testing() -> Self {
2776 Self::__SourceBreaking { unknown_ordinal: 0 }
2777 }
2778
2779 #[inline]
2780 pub fn is_unknown(&self) -> bool {
2781 match self {
2782 Self::__SourceBreaking { .. } => true,
2783 _ => false,
2784 }
2785 }
2786}
2787
2788impl fidl::Persistable for Ref {}
2789
2790#[derive(Clone, Debug)]
2792pub enum Use {
2793 Service(UseService),
2794 Protocol(UseProtocol),
2795 Directory(UseDirectory),
2796 Storage(UseStorage),
2797 EventStream(UseEventStream),
2798 Runner(UseRunner),
2799 Config(UseConfiguration),
2800 Dictionary(UseDictionary),
2801 #[doc(hidden)]
2802 __SourceBreaking {
2803 unknown_ordinal: u64,
2804 },
2805}
2806
2807#[macro_export]
2809macro_rules! UseUnknown {
2810 () => {
2811 _
2812 };
2813}
2814
2815impl PartialEq for Use {
2817 fn eq(&self, other: &Self) -> bool {
2818 match (self, other) {
2819 (Self::Service(x), Self::Service(y)) => *x == *y,
2820 (Self::Protocol(x), Self::Protocol(y)) => *x == *y,
2821 (Self::Directory(x), Self::Directory(y)) => *x == *y,
2822 (Self::Storage(x), Self::Storage(y)) => *x == *y,
2823 (Self::EventStream(x), Self::EventStream(y)) => *x == *y,
2824 (Self::Runner(x), Self::Runner(y)) => *x == *y,
2825 (Self::Config(x), Self::Config(y)) => *x == *y,
2826 (Self::Dictionary(x), Self::Dictionary(y)) => *x == *y,
2827 _ => false,
2828 }
2829 }
2830}
2831
2832impl Use {
2833 #[inline]
2834 pub fn ordinal(&self) -> u64 {
2835 match *self {
2836 Self::Service(_) => 1,
2837 Self::Protocol(_) => 2,
2838 Self::Directory(_) => 3,
2839 Self::Storage(_) => 4,
2840 Self::EventStream(_) => 7,
2841 Self::Runner(_) => 8,
2842 Self::Config(_) => 9,
2843 Self::Dictionary(_) => 10,
2844 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2845 }
2846 }
2847
2848 #[inline]
2849 pub fn unknown_variant_for_testing() -> Self {
2850 Self::__SourceBreaking { unknown_ordinal: 0 }
2851 }
2852
2853 #[inline]
2854 pub fn is_unknown(&self) -> bool {
2855 match self {
2856 Self::__SourceBreaking { .. } => true,
2857 _ => false,
2858 }
2859 }
2860}
2861
2862impl fidl::Persistable for Use {}
2863
2864mod internal {
2865 use super::*;
2866 unsafe impl fidl::encoding::TypeMarker for ConfigMutability {
2867 type Owned = Self;
2868
2869 #[inline(always)]
2870 fn inline_align(_context: fidl::encoding::Context) -> usize {
2871 4
2872 }
2873
2874 #[inline(always)]
2875 fn inline_size(_context: fidl::encoding::Context) -> usize {
2876 4
2877 }
2878 }
2879
2880 impl fidl::encoding::ValueTypeMarker for ConfigMutability {
2881 type Borrowed<'a> = Self;
2882 #[inline(always)]
2883 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2884 *value
2885 }
2886 }
2887
2888 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
2889 for ConfigMutability
2890 {
2891 #[inline]
2892 unsafe fn encode(
2893 self,
2894 encoder: &mut fidl::encoding::Encoder<'_, D>,
2895 offset: usize,
2896 _depth: fidl::encoding::Depth,
2897 ) -> fidl::Result<()> {
2898 encoder.debug_check_bounds::<Self>(offset);
2899 encoder.write_num(self.bits(), offset);
2900 Ok(())
2901 }
2902 }
2903
2904 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigMutability {
2905 #[inline(always)]
2906 fn new_empty() -> Self {
2907 Self::empty()
2908 }
2909
2910 #[inline]
2911 unsafe fn decode(
2912 &mut self,
2913 decoder: &mut fidl::encoding::Decoder<'_, D>,
2914 offset: usize,
2915 _depth: fidl::encoding::Depth,
2916 ) -> fidl::Result<()> {
2917 decoder.debug_check_bounds::<Self>(offset);
2918 let prim = decoder.read_num::<u32>(offset);
2919 *self = Self::from_bits_allow_unknown(prim);
2920 Ok(())
2921 }
2922 }
2923 unsafe impl fidl::encoding::TypeMarker for AllowedOffers {
2924 type Owned = Self;
2925
2926 #[inline(always)]
2927 fn inline_align(_context: fidl::encoding::Context) -> usize {
2928 std::mem::align_of::<u32>()
2929 }
2930
2931 #[inline(always)]
2932 fn inline_size(_context: fidl::encoding::Context) -> usize {
2933 std::mem::size_of::<u32>()
2934 }
2935
2936 #[inline(always)]
2937 fn encode_is_copy() -> bool {
2938 true
2939 }
2940
2941 #[inline(always)]
2942 fn decode_is_copy() -> bool {
2943 false
2944 }
2945 }
2946
2947 impl fidl::encoding::ValueTypeMarker for AllowedOffers {
2948 type Borrowed<'a> = Self;
2949 #[inline(always)]
2950 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2951 *value
2952 }
2953 }
2954
2955 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AllowedOffers {
2956 #[inline]
2957 unsafe fn encode(
2958 self,
2959 encoder: &mut fidl::encoding::Encoder<'_, D>,
2960 offset: usize,
2961 _depth: fidl::encoding::Depth,
2962 ) -> fidl::Result<()> {
2963 encoder.debug_check_bounds::<Self>(offset);
2964 encoder.write_num(self.into_primitive(), offset);
2965 Ok(())
2966 }
2967 }
2968
2969 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AllowedOffers {
2970 #[inline(always)]
2971 fn new_empty() -> Self {
2972 Self::StaticOnly
2973 }
2974
2975 #[inline]
2976 unsafe fn decode(
2977 &mut self,
2978 decoder: &mut fidl::encoding::Decoder<'_, D>,
2979 offset: usize,
2980 _depth: fidl::encoding::Depth,
2981 ) -> fidl::Result<()> {
2982 decoder.debug_check_bounds::<Self>(offset);
2983 let prim = decoder.read_num::<u32>(offset);
2984
2985 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
2986 Ok(())
2987 }
2988 }
2989 unsafe impl fidl::encoding::TypeMarker for Availability {
2990 type Owned = Self;
2991
2992 #[inline(always)]
2993 fn inline_align(_context: fidl::encoding::Context) -> usize {
2994 std::mem::align_of::<u32>()
2995 }
2996
2997 #[inline(always)]
2998 fn inline_size(_context: fidl::encoding::Context) -> usize {
2999 std::mem::size_of::<u32>()
3000 }
3001
3002 #[inline(always)]
3003 fn encode_is_copy() -> bool {
3004 true
3005 }
3006
3007 #[inline(always)]
3008 fn decode_is_copy() -> bool {
3009 false
3010 }
3011 }
3012
3013 impl fidl::encoding::ValueTypeMarker for Availability {
3014 type Borrowed<'a> = Self;
3015 #[inline(always)]
3016 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3017 *value
3018 }
3019 }
3020
3021 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Availability {
3022 #[inline]
3023 unsafe fn encode(
3024 self,
3025 encoder: &mut fidl::encoding::Encoder<'_, D>,
3026 offset: usize,
3027 _depth: fidl::encoding::Depth,
3028 ) -> fidl::Result<()> {
3029 encoder.debug_check_bounds::<Self>(offset);
3030 encoder.write_num(self.into_primitive(), offset);
3031 Ok(())
3032 }
3033 }
3034
3035 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Availability {
3036 #[inline(always)]
3037 fn new_empty() -> Self {
3038 Self::Required
3039 }
3040
3041 #[inline]
3042 unsafe fn decode(
3043 &mut self,
3044 decoder: &mut fidl::encoding::Decoder<'_, D>,
3045 offset: usize,
3046 _depth: fidl::encoding::Depth,
3047 ) -> fidl::Result<()> {
3048 decoder.debug_check_bounds::<Self>(offset);
3049 let prim = decoder.read_num::<u32>(offset);
3050
3051 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3052 Ok(())
3053 }
3054 }
3055 unsafe impl fidl::encoding::TypeMarker for ConfigTypeLayout {
3056 type Owned = Self;
3057
3058 #[inline(always)]
3059 fn inline_align(_context: fidl::encoding::Context) -> usize {
3060 std::mem::align_of::<u32>()
3061 }
3062
3063 #[inline(always)]
3064 fn inline_size(_context: fidl::encoding::Context) -> usize {
3065 std::mem::size_of::<u32>()
3066 }
3067
3068 #[inline(always)]
3069 fn encode_is_copy() -> bool {
3070 false
3071 }
3072
3073 #[inline(always)]
3074 fn decode_is_copy() -> bool {
3075 false
3076 }
3077 }
3078
3079 impl fidl::encoding::ValueTypeMarker for ConfigTypeLayout {
3080 type Borrowed<'a> = Self;
3081 #[inline(always)]
3082 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3083 *value
3084 }
3085 }
3086
3087 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3088 for ConfigTypeLayout
3089 {
3090 #[inline]
3091 unsafe fn encode(
3092 self,
3093 encoder: &mut fidl::encoding::Encoder<'_, D>,
3094 offset: usize,
3095 _depth: fidl::encoding::Depth,
3096 ) -> fidl::Result<()> {
3097 encoder.debug_check_bounds::<Self>(offset);
3098 encoder.write_num(self.into_primitive(), offset);
3099 Ok(())
3100 }
3101 }
3102
3103 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigTypeLayout {
3104 #[inline(always)]
3105 fn new_empty() -> Self {
3106 Self::unknown()
3107 }
3108
3109 #[inline]
3110 unsafe fn decode(
3111 &mut self,
3112 decoder: &mut fidl::encoding::Decoder<'_, D>,
3113 offset: usize,
3114 _depth: fidl::encoding::Depth,
3115 ) -> fidl::Result<()> {
3116 decoder.debug_check_bounds::<Self>(offset);
3117 let prim = decoder.read_num::<u32>(offset);
3118
3119 *self = Self::from_primitive_allow_unknown(prim);
3120 Ok(())
3121 }
3122 }
3123 unsafe impl fidl::encoding::TypeMarker for DeliveryType {
3124 type Owned = Self;
3125
3126 #[inline(always)]
3127 fn inline_align(_context: fidl::encoding::Context) -> usize {
3128 std::mem::align_of::<u32>()
3129 }
3130
3131 #[inline(always)]
3132 fn inline_size(_context: fidl::encoding::Context) -> usize {
3133 std::mem::size_of::<u32>()
3134 }
3135
3136 #[inline(always)]
3137 fn encode_is_copy() -> bool {
3138 false
3139 }
3140
3141 #[inline(always)]
3142 fn decode_is_copy() -> bool {
3143 false
3144 }
3145 }
3146
3147 impl fidl::encoding::ValueTypeMarker for DeliveryType {
3148 type Borrowed<'a> = Self;
3149 #[inline(always)]
3150 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3151 *value
3152 }
3153 }
3154
3155 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DeliveryType {
3156 #[inline]
3157 unsafe fn encode(
3158 self,
3159 encoder: &mut fidl::encoding::Encoder<'_, D>,
3160 offset: usize,
3161 _depth: fidl::encoding::Depth,
3162 ) -> fidl::Result<()> {
3163 encoder.debug_check_bounds::<Self>(offset);
3164 encoder.write_num(self.into_primitive(), offset);
3165 Ok(())
3166 }
3167 }
3168
3169 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DeliveryType {
3170 #[inline(always)]
3171 fn new_empty() -> Self {
3172 Self::unknown()
3173 }
3174
3175 #[inline]
3176 unsafe fn decode(
3177 &mut self,
3178 decoder: &mut fidl::encoding::Decoder<'_, D>,
3179 offset: usize,
3180 _depth: fidl::encoding::Depth,
3181 ) -> fidl::Result<()> {
3182 decoder.debug_check_bounds::<Self>(offset);
3183 let prim = decoder.read_num::<u32>(offset);
3184
3185 *self = Self::from_primitive_allow_unknown(prim);
3186 Ok(())
3187 }
3188 }
3189 unsafe impl fidl::encoding::TypeMarker for DependencyType {
3190 type Owned = Self;
3191
3192 #[inline(always)]
3193 fn inline_align(_context: fidl::encoding::Context) -> usize {
3194 std::mem::align_of::<u32>()
3195 }
3196
3197 #[inline(always)]
3198 fn inline_size(_context: fidl::encoding::Context) -> usize {
3199 std::mem::size_of::<u32>()
3200 }
3201
3202 #[inline(always)]
3203 fn encode_is_copy() -> bool {
3204 true
3205 }
3206
3207 #[inline(always)]
3208 fn decode_is_copy() -> bool {
3209 false
3210 }
3211 }
3212
3213 impl fidl::encoding::ValueTypeMarker for DependencyType {
3214 type Borrowed<'a> = Self;
3215 #[inline(always)]
3216 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3217 *value
3218 }
3219 }
3220
3221 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for DependencyType {
3222 #[inline]
3223 unsafe fn encode(
3224 self,
3225 encoder: &mut fidl::encoding::Encoder<'_, D>,
3226 offset: usize,
3227 _depth: fidl::encoding::Depth,
3228 ) -> fidl::Result<()> {
3229 encoder.debug_check_bounds::<Self>(offset);
3230 encoder.write_num(self.into_primitive(), offset);
3231 Ok(())
3232 }
3233 }
3234
3235 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DependencyType {
3236 #[inline(always)]
3237 fn new_empty() -> Self {
3238 Self::Strong
3239 }
3240
3241 #[inline]
3242 unsafe fn decode(
3243 &mut self,
3244 decoder: &mut fidl::encoding::Decoder<'_, D>,
3245 offset: usize,
3246 _depth: fidl::encoding::Depth,
3247 ) -> fidl::Result<()> {
3248 decoder.debug_check_bounds::<Self>(offset);
3249 let prim = decoder.read_num::<u32>(offset);
3250
3251 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3252 Ok(())
3253 }
3254 }
3255 unsafe impl fidl::encoding::TypeMarker for Durability {
3256 type Owned = Self;
3257
3258 #[inline(always)]
3259 fn inline_align(_context: fidl::encoding::Context) -> usize {
3260 std::mem::align_of::<u32>()
3261 }
3262
3263 #[inline(always)]
3264 fn inline_size(_context: fidl::encoding::Context) -> usize {
3265 std::mem::size_of::<u32>()
3266 }
3267
3268 #[inline(always)]
3269 fn encode_is_copy() -> bool {
3270 true
3271 }
3272
3273 #[inline(always)]
3274 fn decode_is_copy() -> bool {
3275 false
3276 }
3277 }
3278
3279 impl fidl::encoding::ValueTypeMarker for Durability {
3280 type Borrowed<'a> = Self;
3281 #[inline(always)]
3282 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3283 *value
3284 }
3285 }
3286
3287 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Durability {
3288 #[inline]
3289 unsafe fn encode(
3290 self,
3291 encoder: &mut fidl::encoding::Encoder<'_, D>,
3292 offset: usize,
3293 _depth: fidl::encoding::Depth,
3294 ) -> fidl::Result<()> {
3295 encoder.debug_check_bounds::<Self>(offset);
3296 encoder.write_num(self.into_primitive(), offset);
3297 Ok(())
3298 }
3299 }
3300
3301 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Durability {
3302 #[inline(always)]
3303 fn new_empty() -> Self {
3304 Self::Transient
3305 }
3306
3307 #[inline]
3308 unsafe fn decode(
3309 &mut self,
3310 decoder: &mut fidl::encoding::Decoder<'_, D>,
3311 offset: usize,
3312 _depth: fidl::encoding::Depth,
3313 ) -> fidl::Result<()> {
3314 decoder.debug_check_bounds::<Self>(offset);
3315 let prim = decoder.read_num::<u32>(offset);
3316
3317 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3318 Ok(())
3319 }
3320 }
3321 unsafe impl fidl::encoding::TypeMarker for EnvironmentExtends {
3322 type Owned = Self;
3323
3324 #[inline(always)]
3325 fn inline_align(_context: fidl::encoding::Context) -> usize {
3326 std::mem::align_of::<u32>()
3327 }
3328
3329 #[inline(always)]
3330 fn inline_size(_context: fidl::encoding::Context) -> usize {
3331 std::mem::size_of::<u32>()
3332 }
3333
3334 #[inline(always)]
3335 fn encode_is_copy() -> bool {
3336 true
3337 }
3338
3339 #[inline(always)]
3340 fn decode_is_copy() -> bool {
3341 false
3342 }
3343 }
3344
3345 impl fidl::encoding::ValueTypeMarker for EnvironmentExtends {
3346 type Borrowed<'a> = Self;
3347 #[inline(always)]
3348 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3349 *value
3350 }
3351 }
3352
3353 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3354 for EnvironmentExtends
3355 {
3356 #[inline]
3357 unsafe fn encode(
3358 self,
3359 encoder: &mut fidl::encoding::Encoder<'_, D>,
3360 offset: usize,
3361 _depth: fidl::encoding::Depth,
3362 ) -> fidl::Result<()> {
3363 encoder.debug_check_bounds::<Self>(offset);
3364 encoder.write_num(self.into_primitive(), offset);
3365 Ok(())
3366 }
3367 }
3368
3369 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnvironmentExtends {
3370 #[inline(always)]
3371 fn new_empty() -> Self {
3372 Self::None
3373 }
3374
3375 #[inline]
3376 unsafe fn decode(
3377 &mut self,
3378 decoder: &mut fidl::encoding::Decoder<'_, D>,
3379 offset: usize,
3380 _depth: fidl::encoding::Depth,
3381 ) -> fidl::Result<()> {
3382 decoder.debug_check_bounds::<Self>(offset);
3383 let prim = decoder.read_num::<u32>(offset);
3384
3385 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3386 Ok(())
3387 }
3388 }
3389 unsafe impl fidl::encoding::TypeMarker for OnTerminate {
3390 type Owned = Self;
3391
3392 #[inline(always)]
3393 fn inline_align(_context: fidl::encoding::Context) -> usize {
3394 std::mem::align_of::<u32>()
3395 }
3396
3397 #[inline(always)]
3398 fn inline_size(_context: fidl::encoding::Context) -> usize {
3399 std::mem::size_of::<u32>()
3400 }
3401
3402 #[inline(always)]
3403 fn encode_is_copy() -> bool {
3404 true
3405 }
3406
3407 #[inline(always)]
3408 fn decode_is_copy() -> bool {
3409 false
3410 }
3411 }
3412
3413 impl fidl::encoding::ValueTypeMarker for OnTerminate {
3414 type Borrowed<'a> = Self;
3415 #[inline(always)]
3416 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3417 *value
3418 }
3419 }
3420
3421 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for OnTerminate {
3422 #[inline]
3423 unsafe fn encode(
3424 self,
3425 encoder: &mut fidl::encoding::Encoder<'_, D>,
3426 offset: usize,
3427 _depth: fidl::encoding::Depth,
3428 ) -> fidl::Result<()> {
3429 encoder.debug_check_bounds::<Self>(offset);
3430 encoder.write_num(self.into_primitive(), offset);
3431 Ok(())
3432 }
3433 }
3434
3435 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OnTerminate {
3436 #[inline(always)]
3437 fn new_empty() -> Self {
3438 Self::None
3439 }
3440
3441 #[inline]
3442 unsafe fn decode(
3443 &mut self,
3444 decoder: &mut fidl::encoding::Decoder<'_, D>,
3445 offset: usize,
3446 _depth: fidl::encoding::Depth,
3447 ) -> fidl::Result<()> {
3448 decoder.debug_check_bounds::<Self>(offset);
3449 let prim = decoder.read_num::<u32>(offset);
3450
3451 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3452 Ok(())
3453 }
3454 }
3455 unsafe impl fidl::encoding::TypeMarker for StartupMode {
3456 type Owned = Self;
3457
3458 #[inline(always)]
3459 fn inline_align(_context: fidl::encoding::Context) -> usize {
3460 std::mem::align_of::<u32>()
3461 }
3462
3463 #[inline(always)]
3464 fn inline_size(_context: fidl::encoding::Context) -> usize {
3465 std::mem::size_of::<u32>()
3466 }
3467
3468 #[inline(always)]
3469 fn encode_is_copy() -> bool {
3470 true
3471 }
3472
3473 #[inline(always)]
3474 fn decode_is_copy() -> bool {
3475 false
3476 }
3477 }
3478
3479 impl fidl::encoding::ValueTypeMarker for StartupMode {
3480 type Borrowed<'a> = Self;
3481 #[inline(always)]
3482 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3483 *value
3484 }
3485 }
3486
3487 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StartupMode {
3488 #[inline]
3489 unsafe fn encode(
3490 self,
3491 encoder: &mut fidl::encoding::Encoder<'_, D>,
3492 offset: usize,
3493 _depth: fidl::encoding::Depth,
3494 ) -> fidl::Result<()> {
3495 encoder.debug_check_bounds::<Self>(offset);
3496 encoder.write_num(self.into_primitive(), offset);
3497 Ok(())
3498 }
3499 }
3500
3501 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StartupMode {
3502 #[inline(always)]
3503 fn new_empty() -> Self {
3504 Self::Lazy
3505 }
3506
3507 #[inline]
3508 unsafe fn decode(
3509 &mut self,
3510 decoder: &mut fidl::encoding::Decoder<'_, D>,
3511 offset: usize,
3512 _depth: fidl::encoding::Depth,
3513 ) -> fidl::Result<()> {
3514 decoder.debug_check_bounds::<Self>(offset);
3515 let prim = decoder.read_num::<u32>(offset);
3516
3517 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3518 Ok(())
3519 }
3520 }
3521 unsafe impl fidl::encoding::TypeMarker for StorageId {
3522 type Owned = Self;
3523
3524 #[inline(always)]
3525 fn inline_align(_context: fidl::encoding::Context) -> usize {
3526 std::mem::align_of::<u32>()
3527 }
3528
3529 #[inline(always)]
3530 fn inline_size(_context: fidl::encoding::Context) -> usize {
3531 std::mem::size_of::<u32>()
3532 }
3533
3534 #[inline(always)]
3535 fn encode_is_copy() -> bool {
3536 true
3537 }
3538
3539 #[inline(always)]
3540 fn decode_is_copy() -> bool {
3541 false
3542 }
3543 }
3544
3545 impl fidl::encoding::ValueTypeMarker for StorageId {
3546 type Borrowed<'a> = Self;
3547 #[inline(always)]
3548 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3549 *value
3550 }
3551 }
3552
3553 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StorageId {
3554 #[inline]
3555 unsafe fn encode(
3556 self,
3557 encoder: &mut fidl::encoding::Encoder<'_, D>,
3558 offset: usize,
3559 _depth: fidl::encoding::Depth,
3560 ) -> fidl::Result<()> {
3561 encoder.debug_check_bounds::<Self>(offset);
3562 encoder.write_num(self.into_primitive(), offset);
3563 Ok(())
3564 }
3565 }
3566
3567 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StorageId {
3568 #[inline(always)]
3569 fn new_empty() -> Self {
3570 Self::StaticInstanceId
3571 }
3572
3573 #[inline]
3574 unsafe fn decode(
3575 &mut self,
3576 decoder: &mut fidl::encoding::Decoder<'_, D>,
3577 offset: usize,
3578 _depth: fidl::encoding::Depth,
3579 ) -> fidl::Result<()> {
3580 decoder.debug_check_bounds::<Self>(offset);
3581 let prim = decoder.read_num::<u32>(offset);
3582
3583 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3584 Ok(())
3585 }
3586 }
3587
3588 impl fidl::encoding::ValueTypeMarker for CapabilityRef {
3589 type Borrowed<'a> = &'a Self;
3590 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3591 value
3592 }
3593 }
3594
3595 unsafe impl fidl::encoding::TypeMarker for CapabilityRef {
3596 type Owned = Self;
3597
3598 #[inline(always)]
3599 fn inline_align(_context: fidl::encoding::Context) -> usize {
3600 8
3601 }
3602
3603 #[inline(always)]
3604 fn inline_size(_context: fidl::encoding::Context) -> usize {
3605 16
3606 }
3607 }
3608
3609 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CapabilityRef, D>
3610 for &CapabilityRef
3611 {
3612 #[inline]
3613 unsafe fn encode(
3614 self,
3615 encoder: &mut fidl::encoding::Encoder<'_, D>,
3616 offset: usize,
3617 _depth: fidl::encoding::Depth,
3618 ) -> fidl::Result<()> {
3619 encoder.debug_check_bounds::<CapabilityRef>(offset);
3620 fidl::encoding::Encode::<CapabilityRef, D>::encode(
3622 (<fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
3623 &self.name,
3624 ),),
3625 encoder,
3626 offset,
3627 _depth,
3628 )
3629 }
3630 }
3631 unsafe impl<
3632 D: fidl::encoding::ResourceDialect,
3633 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
3634 > fidl::encoding::Encode<CapabilityRef, D> for (T0,)
3635 {
3636 #[inline]
3637 unsafe fn encode(
3638 self,
3639 encoder: &mut fidl::encoding::Encoder<'_, D>,
3640 offset: usize,
3641 depth: fidl::encoding::Depth,
3642 ) -> fidl::Result<()> {
3643 encoder.debug_check_bounds::<CapabilityRef>(offset);
3644 self.0.encode(encoder, offset + 0, depth)?;
3648 Ok(())
3649 }
3650 }
3651
3652 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CapabilityRef {
3653 #[inline(always)]
3654 fn new_empty() -> Self {
3655 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<100>, D) }
3656 }
3657
3658 #[inline]
3659 unsafe fn decode(
3660 &mut self,
3661 decoder: &mut fidl::encoding::Decoder<'_, D>,
3662 offset: usize,
3663 _depth: fidl::encoding::Depth,
3664 ) -> fidl::Result<()> {
3665 decoder.debug_check_bounds::<Self>(offset);
3666 fidl::decode!(
3668 fidl::encoding::BoundedString<100>,
3669 D,
3670 &mut self.name,
3671 decoder,
3672 offset + 0,
3673 _depth
3674 )?;
3675 Ok(())
3676 }
3677 }
3678
3679 impl fidl::encoding::ValueTypeMarker for ChildRef {
3680 type Borrowed<'a> = &'a Self;
3681 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3682 value
3683 }
3684 }
3685
3686 unsafe impl fidl::encoding::TypeMarker for ChildRef {
3687 type Owned = Self;
3688
3689 #[inline(always)]
3690 fn inline_align(_context: fidl::encoding::Context) -> usize {
3691 8
3692 }
3693
3694 #[inline(always)]
3695 fn inline_size(_context: fidl::encoding::Context) -> usize {
3696 32
3697 }
3698 }
3699
3700 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ChildRef, D> for &ChildRef {
3701 #[inline]
3702 unsafe fn encode(
3703 self,
3704 encoder: &mut fidl::encoding::Encoder<'_, D>,
3705 offset: usize,
3706 _depth: fidl::encoding::Depth,
3707 ) -> fidl::Result<()> {
3708 encoder.debug_check_bounds::<ChildRef>(offset);
3709 fidl::encoding::Encode::<ChildRef, D>::encode(
3711 (
3712 <fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.name),
3713 <fidl::encoding::Optional<fidl::encoding::BoundedString<100>> as fidl::encoding::ValueTypeMarker>::borrow(&self.collection),
3714 ),
3715 encoder, offset, _depth
3716 )
3717 }
3718 }
3719 unsafe impl<
3720 D: fidl::encoding::ResourceDialect,
3721 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
3722 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::BoundedString<100>>, D>,
3723 > fidl::encoding::Encode<ChildRef, D> for (T0, T1)
3724 {
3725 #[inline]
3726 unsafe fn encode(
3727 self,
3728 encoder: &mut fidl::encoding::Encoder<'_, D>,
3729 offset: usize,
3730 depth: fidl::encoding::Depth,
3731 ) -> fidl::Result<()> {
3732 encoder.debug_check_bounds::<ChildRef>(offset);
3733 self.0.encode(encoder, offset + 0, depth)?;
3737 self.1.encode(encoder, offset + 16, depth)?;
3738 Ok(())
3739 }
3740 }
3741
3742 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ChildRef {
3743 #[inline(always)]
3744 fn new_empty() -> Self {
3745 Self {
3746 name: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D),
3747 collection: fidl::new_empty!(
3748 fidl::encoding::Optional<fidl::encoding::BoundedString<100>>,
3749 D
3750 ),
3751 }
3752 }
3753
3754 #[inline]
3755 unsafe fn decode(
3756 &mut self,
3757 decoder: &mut fidl::encoding::Decoder<'_, D>,
3758 offset: usize,
3759 _depth: fidl::encoding::Depth,
3760 ) -> fidl::Result<()> {
3761 decoder.debug_check_bounds::<Self>(offset);
3762 fidl::decode!(
3764 fidl::encoding::BoundedString<1024>,
3765 D,
3766 &mut self.name,
3767 decoder,
3768 offset + 0,
3769 _depth
3770 )?;
3771 fidl::decode!(
3772 fidl::encoding::Optional<fidl::encoding::BoundedString<100>>,
3773 D,
3774 &mut self.collection,
3775 decoder,
3776 offset + 16,
3777 _depth
3778 )?;
3779 Ok(())
3780 }
3781 }
3782
3783 impl fidl::encoding::ValueTypeMarker for CollectionRef {
3784 type Borrowed<'a> = &'a Self;
3785 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3786 value
3787 }
3788 }
3789
3790 unsafe impl fidl::encoding::TypeMarker for CollectionRef {
3791 type Owned = Self;
3792
3793 #[inline(always)]
3794 fn inline_align(_context: fidl::encoding::Context) -> usize {
3795 8
3796 }
3797
3798 #[inline(always)]
3799 fn inline_size(_context: fidl::encoding::Context) -> usize {
3800 16
3801 }
3802 }
3803
3804 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CollectionRef, D>
3805 for &CollectionRef
3806 {
3807 #[inline]
3808 unsafe fn encode(
3809 self,
3810 encoder: &mut fidl::encoding::Encoder<'_, D>,
3811 offset: usize,
3812 _depth: fidl::encoding::Depth,
3813 ) -> fidl::Result<()> {
3814 encoder.debug_check_bounds::<CollectionRef>(offset);
3815 fidl::encoding::Encode::<CollectionRef, D>::encode(
3817 (<fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
3818 &self.name,
3819 ),),
3820 encoder,
3821 offset,
3822 _depth,
3823 )
3824 }
3825 }
3826 unsafe impl<
3827 D: fidl::encoding::ResourceDialect,
3828 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
3829 > fidl::encoding::Encode<CollectionRef, D> for (T0,)
3830 {
3831 #[inline]
3832 unsafe fn encode(
3833 self,
3834 encoder: &mut fidl::encoding::Encoder<'_, D>,
3835 offset: usize,
3836 depth: fidl::encoding::Depth,
3837 ) -> fidl::Result<()> {
3838 encoder.debug_check_bounds::<CollectionRef>(offset);
3839 self.0.encode(encoder, offset + 0, depth)?;
3843 Ok(())
3844 }
3845 }
3846
3847 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CollectionRef {
3848 #[inline(always)]
3849 fn new_empty() -> Self {
3850 Self { name: fidl::new_empty!(fidl::encoding::BoundedString<100>, D) }
3851 }
3852
3853 #[inline]
3854 unsafe fn decode(
3855 &mut self,
3856 decoder: &mut fidl::encoding::Decoder<'_, D>,
3857 offset: usize,
3858 _depth: fidl::encoding::Depth,
3859 ) -> fidl::Result<()> {
3860 decoder.debug_check_bounds::<Self>(offset);
3861 fidl::decode!(
3863 fidl::encoding::BoundedString<100>,
3864 D,
3865 &mut self.name,
3866 decoder,
3867 offset + 0,
3868 _depth
3869 )?;
3870 Ok(())
3871 }
3872 }
3873
3874 impl fidl::encoding::ValueTypeMarker for ConfigType {
3875 type Borrowed<'a> = &'a Self;
3876 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3877 value
3878 }
3879 }
3880
3881 unsafe impl fidl::encoding::TypeMarker for ConfigType {
3882 type Owned = Self;
3883
3884 #[inline(always)]
3885 fn inline_align(_context: fidl::encoding::Context) -> usize {
3886 8
3887 }
3888
3889 #[inline(always)]
3890 fn inline_size(_context: fidl::encoding::Context) -> usize {
3891 40
3892 }
3893 }
3894
3895 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigType, D>
3896 for &ConfigType
3897 {
3898 #[inline]
3899 unsafe fn encode(
3900 self,
3901 encoder: &mut fidl::encoding::Encoder<'_, D>,
3902 offset: usize,
3903 _depth: fidl::encoding::Depth,
3904 ) -> fidl::Result<()> {
3905 encoder.debug_check_bounds::<ConfigType>(offset);
3906 fidl::encoding::Encode::<ConfigType, D>::encode(
3908 (
3909 <ConfigTypeLayout as fidl::encoding::ValueTypeMarker>::borrow(&self.layout),
3910 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<LayoutParameter>> as fidl::encoding::ValueTypeMarker>::borrow(&self.parameters),
3911 <fidl::encoding::UnboundedVector<LayoutConstraint> as fidl::encoding::ValueTypeMarker>::borrow(&self.constraints),
3912 ),
3913 encoder, offset, _depth
3914 )
3915 }
3916 }
3917 unsafe impl<
3918 D: fidl::encoding::ResourceDialect,
3919 T0: fidl::encoding::Encode<ConfigTypeLayout, D>,
3920 T1: fidl::encoding::Encode<
3921 fidl::encoding::Optional<fidl::encoding::UnboundedVector<LayoutParameter>>,
3922 D,
3923 >,
3924 T2: fidl::encoding::Encode<fidl::encoding::UnboundedVector<LayoutConstraint>, D>,
3925 > fidl::encoding::Encode<ConfigType, D> for (T0, T1, T2)
3926 {
3927 #[inline]
3928 unsafe fn encode(
3929 self,
3930 encoder: &mut fidl::encoding::Encoder<'_, D>,
3931 offset: usize,
3932 depth: fidl::encoding::Depth,
3933 ) -> fidl::Result<()> {
3934 encoder.debug_check_bounds::<ConfigType>(offset);
3935 unsafe {
3938 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
3939 (ptr as *mut u64).write_unaligned(0);
3940 }
3941 self.0.encode(encoder, offset + 0, depth)?;
3943 self.1.encode(encoder, offset + 8, depth)?;
3944 self.2.encode(encoder, offset + 24, depth)?;
3945 Ok(())
3946 }
3947 }
3948
3949 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigType {
3950 #[inline(always)]
3951 fn new_empty() -> Self {
3952 Self {
3953 layout: fidl::new_empty!(ConfigTypeLayout, D),
3954 parameters: fidl::new_empty!(
3955 fidl::encoding::Optional<fidl::encoding::UnboundedVector<LayoutParameter>>,
3956 D
3957 ),
3958 constraints: fidl::new_empty!(fidl::encoding::UnboundedVector<LayoutConstraint>, D),
3959 }
3960 }
3961
3962 #[inline]
3963 unsafe fn decode(
3964 &mut self,
3965 decoder: &mut fidl::encoding::Decoder<'_, D>,
3966 offset: usize,
3967 _depth: fidl::encoding::Depth,
3968 ) -> fidl::Result<()> {
3969 decoder.debug_check_bounds::<Self>(offset);
3970 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
3972 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3973 let mask = 0xffffffff00000000u64;
3974 let maskedval = padval & mask;
3975 if maskedval != 0 {
3976 return Err(fidl::Error::NonZeroPadding {
3977 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
3978 });
3979 }
3980 fidl::decode!(ConfigTypeLayout, D, &mut self.layout, decoder, offset + 0, _depth)?;
3981 fidl::decode!(
3982 fidl::encoding::Optional<fidl::encoding::UnboundedVector<LayoutParameter>>,
3983 D,
3984 &mut self.parameters,
3985 decoder,
3986 offset + 8,
3987 _depth
3988 )?;
3989 fidl::decode!(
3990 fidl::encoding::UnboundedVector<LayoutConstraint>,
3991 D,
3992 &mut self.constraints,
3993 decoder,
3994 offset + 24,
3995 _depth
3996 )?;
3997 Ok(())
3998 }
3999 }
4000
4001 impl fidl::encoding::ValueTypeMarker for DebugRef {
4002 type Borrowed<'a> = &'a Self;
4003 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4004 value
4005 }
4006 }
4007
4008 unsafe impl fidl::encoding::TypeMarker for DebugRef {
4009 type Owned = Self;
4010
4011 #[inline(always)]
4012 fn inline_align(_context: fidl::encoding::Context) -> usize {
4013 1
4014 }
4015
4016 #[inline(always)]
4017 fn inline_size(_context: fidl::encoding::Context) -> usize {
4018 1
4019 }
4020 }
4021
4022 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DebugRef, D> for &DebugRef {
4023 #[inline]
4024 unsafe fn encode(
4025 self,
4026 encoder: &mut fidl::encoding::Encoder<'_, D>,
4027 offset: usize,
4028 _depth: fidl::encoding::Depth,
4029 ) -> fidl::Result<()> {
4030 encoder.debug_check_bounds::<DebugRef>(offset);
4031 encoder.write_num(0u8, offset);
4032 Ok(())
4033 }
4034 }
4035
4036 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DebugRef {
4037 #[inline(always)]
4038 fn new_empty() -> Self {
4039 Self
4040 }
4041
4042 #[inline]
4043 unsafe fn decode(
4044 &mut self,
4045 decoder: &mut fidl::encoding::Decoder<'_, D>,
4046 offset: usize,
4047 _depth: fidl::encoding::Depth,
4048 ) -> fidl::Result<()> {
4049 decoder.debug_check_bounds::<Self>(offset);
4050 match decoder.read_num::<u8>(offset) {
4051 0 => Ok(()),
4052 _ => Err(fidl::Error::Invalid),
4053 }
4054 }
4055 }
4056
4057 impl fidl::encoding::ValueTypeMarker for EnvironmentRef {
4058 type Borrowed<'a> = &'a Self;
4059 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4060 value
4061 }
4062 }
4063
4064 unsafe impl fidl::encoding::TypeMarker for EnvironmentRef {
4065 type Owned = Self;
4066
4067 #[inline(always)]
4068 fn inline_align(_context: fidl::encoding::Context) -> usize {
4069 1
4070 }
4071
4072 #[inline(always)]
4073 fn inline_size(_context: fidl::encoding::Context) -> usize {
4074 1
4075 }
4076 }
4077
4078 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EnvironmentRef, D>
4079 for &EnvironmentRef
4080 {
4081 #[inline]
4082 unsafe fn encode(
4083 self,
4084 encoder: &mut fidl::encoding::Encoder<'_, D>,
4085 offset: usize,
4086 _depth: fidl::encoding::Depth,
4087 ) -> fidl::Result<()> {
4088 encoder.debug_check_bounds::<EnvironmentRef>(offset);
4089 encoder.write_num(0u8, offset);
4090 Ok(())
4091 }
4092 }
4093
4094 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EnvironmentRef {
4095 #[inline(always)]
4096 fn new_empty() -> Self {
4097 Self
4098 }
4099
4100 #[inline]
4101 unsafe fn decode(
4102 &mut self,
4103 decoder: &mut fidl::encoding::Decoder<'_, D>,
4104 offset: usize,
4105 _depth: fidl::encoding::Depth,
4106 ) -> fidl::Result<()> {
4107 decoder.debug_check_bounds::<Self>(offset);
4108 match decoder.read_num::<u8>(offset) {
4109 0 => Ok(()),
4110 _ => Err(fidl::Error::Invalid),
4111 }
4112 }
4113 }
4114
4115 impl fidl::encoding::ValueTypeMarker for FrameworkRef {
4116 type Borrowed<'a> = &'a Self;
4117 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4118 value
4119 }
4120 }
4121
4122 unsafe impl fidl::encoding::TypeMarker for FrameworkRef {
4123 type Owned = Self;
4124
4125 #[inline(always)]
4126 fn inline_align(_context: fidl::encoding::Context) -> usize {
4127 1
4128 }
4129
4130 #[inline(always)]
4131 fn inline_size(_context: fidl::encoding::Context) -> usize {
4132 1
4133 }
4134 }
4135
4136 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FrameworkRef, D>
4137 for &FrameworkRef
4138 {
4139 #[inline]
4140 unsafe fn encode(
4141 self,
4142 encoder: &mut fidl::encoding::Encoder<'_, D>,
4143 offset: usize,
4144 _depth: fidl::encoding::Depth,
4145 ) -> fidl::Result<()> {
4146 encoder.debug_check_bounds::<FrameworkRef>(offset);
4147 encoder.write_num(0u8, offset);
4148 Ok(())
4149 }
4150 }
4151
4152 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FrameworkRef {
4153 #[inline(always)]
4154 fn new_empty() -> Self {
4155 Self
4156 }
4157
4158 #[inline]
4159 unsafe fn decode(
4160 &mut self,
4161 decoder: &mut fidl::encoding::Decoder<'_, D>,
4162 offset: usize,
4163 _depth: fidl::encoding::Depth,
4164 ) -> fidl::Result<()> {
4165 decoder.debug_check_bounds::<Self>(offset);
4166 match decoder.read_num::<u8>(offset) {
4167 0 => Ok(()),
4168 _ => Err(fidl::Error::Invalid),
4169 }
4170 }
4171 }
4172
4173 impl fidl::encoding::ValueTypeMarker for NameMapping {
4174 type Borrowed<'a> = &'a Self;
4175 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4176 value
4177 }
4178 }
4179
4180 unsafe impl fidl::encoding::TypeMarker for NameMapping {
4181 type Owned = Self;
4182
4183 #[inline(always)]
4184 fn inline_align(_context: fidl::encoding::Context) -> usize {
4185 8
4186 }
4187
4188 #[inline(always)]
4189 fn inline_size(_context: fidl::encoding::Context) -> usize {
4190 32
4191 }
4192 }
4193
4194 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<NameMapping, D>
4195 for &NameMapping
4196 {
4197 #[inline]
4198 unsafe fn encode(
4199 self,
4200 encoder: &mut fidl::encoding::Encoder<'_, D>,
4201 offset: usize,
4202 _depth: fidl::encoding::Depth,
4203 ) -> fidl::Result<()> {
4204 encoder.debug_check_bounds::<NameMapping>(offset);
4205 fidl::encoding::Encode::<NameMapping, D>::encode(
4207 (
4208 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
4209 &self.source_name,
4210 ),
4211 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(
4212 &self.target_name,
4213 ),
4214 ),
4215 encoder,
4216 offset,
4217 _depth,
4218 )
4219 }
4220 }
4221 unsafe impl<
4222 D: fidl::encoding::ResourceDialect,
4223 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
4224 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
4225 > fidl::encoding::Encode<NameMapping, D> for (T0, T1)
4226 {
4227 #[inline]
4228 unsafe fn encode(
4229 self,
4230 encoder: &mut fidl::encoding::Encoder<'_, D>,
4231 offset: usize,
4232 depth: fidl::encoding::Depth,
4233 ) -> fidl::Result<()> {
4234 encoder.debug_check_bounds::<NameMapping>(offset);
4235 self.0.encode(encoder, offset + 0, depth)?;
4239 self.1.encode(encoder, offset + 16, depth)?;
4240 Ok(())
4241 }
4242 }
4243
4244 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for NameMapping {
4245 #[inline(always)]
4246 fn new_empty() -> Self {
4247 Self {
4248 source_name: fidl::new_empty!(fidl::encoding::BoundedString<100>, D),
4249 target_name: fidl::new_empty!(fidl::encoding::BoundedString<100>, D),
4250 }
4251 }
4252
4253 #[inline]
4254 unsafe fn decode(
4255 &mut self,
4256 decoder: &mut fidl::encoding::Decoder<'_, D>,
4257 offset: usize,
4258 _depth: fidl::encoding::Depth,
4259 ) -> fidl::Result<()> {
4260 decoder.debug_check_bounds::<Self>(offset);
4261 fidl::decode!(
4263 fidl::encoding::BoundedString<100>,
4264 D,
4265 &mut self.source_name,
4266 decoder,
4267 offset + 0,
4268 _depth
4269 )?;
4270 fidl::decode!(
4271 fidl::encoding::BoundedString<100>,
4272 D,
4273 &mut self.target_name,
4274 decoder,
4275 offset + 16,
4276 _depth
4277 )?;
4278 Ok(())
4279 }
4280 }
4281
4282 impl fidl::encoding::ValueTypeMarker for ParentRef {
4283 type Borrowed<'a> = &'a Self;
4284 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4285 value
4286 }
4287 }
4288
4289 unsafe impl fidl::encoding::TypeMarker for ParentRef {
4290 type Owned = Self;
4291
4292 #[inline(always)]
4293 fn inline_align(_context: fidl::encoding::Context) -> usize {
4294 1
4295 }
4296
4297 #[inline(always)]
4298 fn inline_size(_context: fidl::encoding::Context) -> usize {
4299 1
4300 }
4301 }
4302
4303 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ParentRef, D>
4304 for &ParentRef
4305 {
4306 #[inline]
4307 unsafe fn encode(
4308 self,
4309 encoder: &mut fidl::encoding::Encoder<'_, D>,
4310 offset: usize,
4311 _depth: fidl::encoding::Depth,
4312 ) -> fidl::Result<()> {
4313 encoder.debug_check_bounds::<ParentRef>(offset);
4314 encoder.write_num(0u8, offset);
4315 Ok(())
4316 }
4317 }
4318
4319 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ParentRef {
4320 #[inline(always)]
4321 fn new_empty() -> Self {
4322 Self
4323 }
4324
4325 #[inline]
4326 unsafe fn decode(
4327 &mut self,
4328 decoder: &mut fidl::encoding::Decoder<'_, D>,
4329 offset: usize,
4330 _depth: fidl::encoding::Depth,
4331 ) -> fidl::Result<()> {
4332 decoder.debug_check_bounds::<Self>(offset);
4333 match decoder.read_num::<u8>(offset) {
4334 0 => Ok(()),
4335 _ => Err(fidl::Error::Invalid),
4336 }
4337 }
4338 }
4339
4340 impl fidl::encoding::ValueTypeMarker for ResolvedConfig {
4341 type Borrowed<'a> = &'a Self;
4342 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4343 value
4344 }
4345 }
4346
4347 unsafe impl fidl::encoding::TypeMarker for ResolvedConfig {
4348 type Owned = Self;
4349
4350 #[inline(always)]
4351 fn inline_align(_context: fidl::encoding::Context) -> usize {
4352 8
4353 }
4354
4355 #[inline(always)]
4356 fn inline_size(_context: fidl::encoding::Context) -> usize {
4357 32
4358 }
4359 }
4360
4361 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ResolvedConfig, D>
4362 for &ResolvedConfig
4363 {
4364 #[inline]
4365 unsafe fn encode(
4366 self,
4367 encoder: &mut fidl::encoding::Encoder<'_, D>,
4368 offset: usize,
4369 _depth: fidl::encoding::Depth,
4370 ) -> fidl::Result<()> {
4371 encoder.debug_check_bounds::<ResolvedConfig>(offset);
4372 fidl::encoding::Encode::<ResolvedConfig, D>::encode(
4374 (
4375 <fidl::encoding::UnboundedVector<ResolvedConfigField> as fidl::encoding::ValueTypeMarker>::borrow(&self.fields),
4376 <ConfigChecksum as fidl::encoding::ValueTypeMarker>::borrow(&self.checksum),
4377 ),
4378 encoder, offset, _depth
4379 )
4380 }
4381 }
4382 unsafe impl<
4383 D: fidl::encoding::ResourceDialect,
4384 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<ResolvedConfigField>, D>,
4385 T1: fidl::encoding::Encode<ConfigChecksum, D>,
4386 > fidl::encoding::Encode<ResolvedConfig, D> for (T0, T1)
4387 {
4388 #[inline]
4389 unsafe fn encode(
4390 self,
4391 encoder: &mut fidl::encoding::Encoder<'_, D>,
4392 offset: usize,
4393 depth: fidl::encoding::Depth,
4394 ) -> fidl::Result<()> {
4395 encoder.debug_check_bounds::<ResolvedConfig>(offset);
4396 self.0.encode(encoder, offset + 0, depth)?;
4400 self.1.encode(encoder, offset + 16, depth)?;
4401 Ok(())
4402 }
4403 }
4404
4405 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ResolvedConfig {
4406 #[inline(always)]
4407 fn new_empty() -> Self {
4408 Self {
4409 fields: fidl::new_empty!(fidl::encoding::UnboundedVector<ResolvedConfigField>, D),
4410 checksum: fidl::new_empty!(ConfigChecksum, D),
4411 }
4412 }
4413
4414 #[inline]
4415 unsafe fn decode(
4416 &mut self,
4417 decoder: &mut fidl::encoding::Decoder<'_, D>,
4418 offset: usize,
4419 _depth: fidl::encoding::Depth,
4420 ) -> fidl::Result<()> {
4421 decoder.debug_check_bounds::<Self>(offset);
4422 fidl::decode!(
4424 fidl::encoding::UnboundedVector<ResolvedConfigField>,
4425 D,
4426 &mut self.fields,
4427 decoder,
4428 offset + 0,
4429 _depth
4430 )?;
4431 fidl::decode!(ConfigChecksum, D, &mut self.checksum, decoder, offset + 16, _depth)?;
4432 Ok(())
4433 }
4434 }
4435
4436 impl fidl::encoding::ValueTypeMarker for ResolvedConfigField {
4437 type Borrowed<'a> = &'a Self;
4438 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4439 value
4440 }
4441 }
4442
4443 unsafe impl fidl::encoding::TypeMarker for ResolvedConfigField {
4444 type Owned = Self;
4445
4446 #[inline(always)]
4447 fn inline_align(_context: fidl::encoding::Context) -> usize {
4448 8
4449 }
4450
4451 #[inline(always)]
4452 fn inline_size(_context: fidl::encoding::Context) -> usize {
4453 32
4454 }
4455 }
4456
4457 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ResolvedConfigField, D>
4458 for &ResolvedConfigField
4459 {
4460 #[inline]
4461 unsafe fn encode(
4462 self,
4463 encoder: &mut fidl::encoding::Encoder<'_, D>,
4464 offset: usize,
4465 _depth: fidl::encoding::Depth,
4466 ) -> fidl::Result<()> {
4467 encoder.debug_check_bounds::<ResolvedConfigField>(offset);
4468 fidl::encoding::Encode::<ResolvedConfigField, D>::encode(
4470 (
4471 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
4472 &self.key,
4473 ),
4474 <ConfigValue as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
4475 ),
4476 encoder,
4477 offset,
4478 _depth,
4479 )
4480 }
4481 }
4482 unsafe impl<
4483 D: fidl::encoding::ResourceDialect,
4484 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
4485 T1: fidl::encoding::Encode<ConfigValue, D>,
4486 > fidl::encoding::Encode<ResolvedConfigField, D> for (T0, T1)
4487 {
4488 #[inline]
4489 unsafe fn encode(
4490 self,
4491 encoder: &mut fidl::encoding::Encoder<'_, D>,
4492 offset: usize,
4493 depth: fidl::encoding::Depth,
4494 ) -> fidl::Result<()> {
4495 encoder.debug_check_bounds::<ResolvedConfigField>(offset);
4496 self.0.encode(encoder, offset + 0, depth)?;
4500 self.1.encode(encoder, offset + 16, depth)?;
4501 Ok(())
4502 }
4503 }
4504
4505 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ResolvedConfigField {
4506 #[inline(always)]
4507 fn new_empty() -> Self {
4508 Self {
4509 key: fidl::new_empty!(fidl::encoding::UnboundedString, D),
4510 value: fidl::new_empty!(ConfigValue, D),
4511 }
4512 }
4513
4514 #[inline]
4515 unsafe fn decode(
4516 &mut self,
4517 decoder: &mut fidl::encoding::Decoder<'_, D>,
4518 offset: usize,
4519 _depth: fidl::encoding::Depth,
4520 ) -> fidl::Result<()> {
4521 decoder.debug_check_bounds::<Self>(offset);
4522 fidl::decode!(
4524 fidl::encoding::UnboundedString,
4525 D,
4526 &mut self.key,
4527 decoder,
4528 offset + 0,
4529 _depth
4530 )?;
4531 fidl::decode!(ConfigValue, D, &mut self.value, decoder, offset + 16, _depth)?;
4532 Ok(())
4533 }
4534 }
4535
4536 impl fidl::encoding::ValueTypeMarker for SelfRef {
4537 type Borrowed<'a> = &'a Self;
4538 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4539 value
4540 }
4541 }
4542
4543 unsafe impl fidl::encoding::TypeMarker for SelfRef {
4544 type Owned = Self;
4545
4546 #[inline(always)]
4547 fn inline_align(_context: fidl::encoding::Context) -> usize {
4548 1
4549 }
4550
4551 #[inline(always)]
4552 fn inline_size(_context: fidl::encoding::Context) -> usize {
4553 1
4554 }
4555 }
4556
4557 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SelfRef, D> for &SelfRef {
4558 #[inline]
4559 unsafe fn encode(
4560 self,
4561 encoder: &mut fidl::encoding::Encoder<'_, D>,
4562 offset: usize,
4563 _depth: fidl::encoding::Depth,
4564 ) -> fidl::Result<()> {
4565 encoder.debug_check_bounds::<SelfRef>(offset);
4566 encoder.write_num(0u8, offset);
4567 Ok(())
4568 }
4569 }
4570
4571 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SelfRef {
4572 #[inline(always)]
4573 fn new_empty() -> Self {
4574 Self
4575 }
4576
4577 #[inline]
4578 unsafe fn decode(
4579 &mut self,
4580 decoder: &mut fidl::encoding::Decoder<'_, D>,
4581 offset: usize,
4582 _depth: fidl::encoding::Depth,
4583 ) -> fidl::Result<()> {
4584 decoder.debug_check_bounds::<Self>(offset);
4585 match decoder.read_num::<u8>(offset) {
4586 0 => Ok(()),
4587 _ => Err(fidl::Error::Invalid),
4588 }
4589 }
4590 }
4591
4592 impl fidl::encoding::ValueTypeMarker for VoidRef {
4593 type Borrowed<'a> = &'a Self;
4594 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4595 value
4596 }
4597 }
4598
4599 unsafe impl fidl::encoding::TypeMarker for VoidRef {
4600 type Owned = Self;
4601
4602 #[inline(always)]
4603 fn inline_align(_context: fidl::encoding::Context) -> usize {
4604 1
4605 }
4606
4607 #[inline(always)]
4608 fn inline_size(_context: fidl::encoding::Context) -> usize {
4609 1
4610 }
4611 }
4612
4613 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VoidRef, D> for &VoidRef {
4614 #[inline]
4615 unsafe fn encode(
4616 self,
4617 encoder: &mut fidl::encoding::Encoder<'_, D>,
4618 offset: usize,
4619 _depth: fidl::encoding::Depth,
4620 ) -> fidl::Result<()> {
4621 encoder.debug_check_bounds::<VoidRef>(offset);
4622 encoder.write_num(0u8, offset);
4623 Ok(())
4624 }
4625 }
4626
4627 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VoidRef {
4628 #[inline(always)]
4629 fn new_empty() -> Self {
4630 Self
4631 }
4632
4633 #[inline]
4634 unsafe fn decode(
4635 &mut self,
4636 decoder: &mut fidl::encoding::Decoder<'_, D>,
4637 offset: usize,
4638 _depth: fidl::encoding::Depth,
4639 ) -> fidl::Result<()> {
4640 decoder.debug_check_bounds::<Self>(offset);
4641 match decoder.read_num::<u8>(offset) {
4642 0 => Ok(()),
4643 _ => Err(fidl::Error::Invalid),
4644 }
4645 }
4646 }
4647
4648 impl Child {
4649 #[inline(always)]
4650 fn max_ordinal_present(&self) -> u64 {
4651 if let Some(_) = self.config_overrides {
4652 return 6;
4653 }
4654 if let Some(_) = self.on_terminate {
4655 return 5;
4656 }
4657 if let Some(_) = self.environment {
4658 return 4;
4659 }
4660 if let Some(_) = self.startup {
4661 return 3;
4662 }
4663 if let Some(_) = self.url {
4664 return 2;
4665 }
4666 if let Some(_) = self.name {
4667 return 1;
4668 }
4669 0
4670 }
4671 }
4672
4673 impl fidl::encoding::ValueTypeMarker for Child {
4674 type Borrowed<'a> = &'a Self;
4675 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4676 value
4677 }
4678 }
4679
4680 unsafe impl fidl::encoding::TypeMarker for Child {
4681 type Owned = Self;
4682
4683 #[inline(always)]
4684 fn inline_align(_context: fidl::encoding::Context) -> usize {
4685 8
4686 }
4687
4688 #[inline(always)]
4689 fn inline_size(_context: fidl::encoding::Context) -> usize {
4690 16
4691 }
4692 }
4693
4694 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Child, D> for &Child {
4695 unsafe fn encode(
4696 self,
4697 encoder: &mut fidl::encoding::Encoder<'_, D>,
4698 offset: usize,
4699 mut depth: fidl::encoding::Depth,
4700 ) -> fidl::Result<()> {
4701 encoder.debug_check_bounds::<Child>(offset);
4702 let max_ordinal: u64 = self.max_ordinal_present();
4704 encoder.write_num(max_ordinal, offset);
4705 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4706 if max_ordinal == 0 {
4708 return Ok(());
4709 }
4710 depth.increment()?;
4711 let envelope_size = 8;
4712 let bytes_len = max_ordinal as usize * envelope_size;
4713 #[allow(unused_variables)]
4714 let offset = encoder.out_of_line_offset(bytes_len);
4715 let mut _prev_end_offset: usize = 0;
4716 if 1 > max_ordinal {
4717 return Ok(());
4718 }
4719
4720 let cur_offset: usize = (1 - 1) * envelope_size;
4723
4724 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4726
4727 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
4732 self.name.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
4733 encoder, offset + cur_offset, depth
4734 )?;
4735
4736 _prev_end_offset = cur_offset + envelope_size;
4737 if 2 > max_ordinal {
4738 return Ok(());
4739 }
4740
4741 let cur_offset: usize = (2 - 1) * envelope_size;
4744
4745 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4747
4748 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
4753 self.url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
4754 encoder, offset + cur_offset, depth
4755 )?;
4756
4757 _prev_end_offset = cur_offset + envelope_size;
4758 if 3 > max_ordinal {
4759 return Ok(());
4760 }
4761
4762 let cur_offset: usize = (3 - 1) * envelope_size;
4765
4766 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4768
4769 fidl::encoding::encode_in_envelope_optional::<StartupMode, D>(
4774 self.startup.as_ref().map(<StartupMode as fidl::encoding::ValueTypeMarker>::borrow),
4775 encoder,
4776 offset + cur_offset,
4777 depth,
4778 )?;
4779
4780 _prev_end_offset = cur_offset + envelope_size;
4781 if 4 > max_ordinal {
4782 return Ok(());
4783 }
4784
4785 let cur_offset: usize = (4 - 1) * envelope_size;
4788
4789 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4791
4792 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
4797 self.environment.as_ref().map(
4798 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
4799 ),
4800 encoder,
4801 offset + cur_offset,
4802 depth,
4803 )?;
4804
4805 _prev_end_offset = cur_offset + envelope_size;
4806 if 5 > max_ordinal {
4807 return Ok(());
4808 }
4809
4810 let cur_offset: usize = (5 - 1) * envelope_size;
4813
4814 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4816
4817 fidl::encoding::encode_in_envelope_optional::<OnTerminate, D>(
4822 self.on_terminate
4823 .as_ref()
4824 .map(<OnTerminate as fidl::encoding::ValueTypeMarker>::borrow),
4825 encoder,
4826 offset + cur_offset,
4827 depth,
4828 )?;
4829
4830 _prev_end_offset = cur_offset + envelope_size;
4831 if 6 > max_ordinal {
4832 return Ok(());
4833 }
4834
4835 let cur_offset: usize = (6 - 1) * envelope_size;
4838
4839 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4841
4842 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ConfigOverride>, D>(
4847 self.config_overrides.as_ref().map(<fidl::encoding::UnboundedVector<ConfigOverride> as fidl::encoding::ValueTypeMarker>::borrow),
4848 encoder, offset + cur_offset, depth
4849 )?;
4850
4851 _prev_end_offset = cur_offset + envelope_size;
4852
4853 Ok(())
4854 }
4855 }
4856
4857 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Child {
4858 #[inline(always)]
4859 fn new_empty() -> Self {
4860 Self::default()
4861 }
4862
4863 unsafe fn decode(
4864 &mut self,
4865 decoder: &mut fidl::encoding::Decoder<'_, D>,
4866 offset: usize,
4867 mut depth: fidl::encoding::Depth,
4868 ) -> fidl::Result<()> {
4869 decoder.debug_check_bounds::<Self>(offset);
4870 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4871 None => return Err(fidl::Error::NotNullable),
4872 Some(len) => len,
4873 };
4874 if len == 0 {
4876 return Ok(());
4877 };
4878 depth.increment()?;
4879 let envelope_size = 8;
4880 let bytes_len = len * envelope_size;
4881 let offset = decoder.out_of_line_offset(bytes_len)?;
4882 let mut _next_ordinal_to_read = 0;
4884 let mut next_offset = offset;
4885 let end_offset = offset + bytes_len;
4886 _next_ordinal_to_read += 1;
4887 if next_offset >= end_offset {
4888 return Ok(());
4889 }
4890
4891 while _next_ordinal_to_read < 1 {
4893 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4894 _next_ordinal_to_read += 1;
4895 next_offset += envelope_size;
4896 }
4897
4898 let next_out_of_line = decoder.next_out_of_line();
4899 let handles_before = decoder.remaining_handles();
4900 if let Some((inlined, num_bytes, num_handles)) =
4901 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4902 {
4903 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4904 if inlined != (member_inline_size <= 4) {
4905 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4906 }
4907 let inner_offset;
4908 let mut inner_depth = depth.clone();
4909 if inlined {
4910 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4911 inner_offset = next_offset;
4912 } else {
4913 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4914 inner_depth.increment()?;
4915 }
4916 let val_ref = self.name.get_or_insert_with(|| {
4917 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
4918 });
4919 fidl::decode!(
4920 fidl::encoding::BoundedString<1024>,
4921 D,
4922 val_ref,
4923 decoder,
4924 inner_offset,
4925 inner_depth
4926 )?;
4927 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4928 {
4929 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4930 }
4931 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4932 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4933 }
4934 }
4935
4936 next_offset += envelope_size;
4937 _next_ordinal_to_read += 1;
4938 if next_offset >= end_offset {
4939 return Ok(());
4940 }
4941
4942 while _next_ordinal_to_read < 2 {
4944 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4945 _next_ordinal_to_read += 1;
4946 next_offset += envelope_size;
4947 }
4948
4949 let next_out_of_line = decoder.next_out_of_line();
4950 let handles_before = decoder.remaining_handles();
4951 if let Some((inlined, num_bytes, num_handles)) =
4952 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4953 {
4954 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4955 if inlined != (member_inline_size <= 4) {
4956 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4957 }
4958 let inner_offset;
4959 let mut inner_depth = depth.clone();
4960 if inlined {
4961 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4962 inner_offset = next_offset;
4963 } else {
4964 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4965 inner_depth.increment()?;
4966 }
4967 let val_ref = self.url.get_or_insert_with(|| {
4968 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
4969 });
4970 fidl::decode!(
4971 fidl::encoding::BoundedString<4096>,
4972 D,
4973 val_ref,
4974 decoder,
4975 inner_offset,
4976 inner_depth
4977 )?;
4978 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4979 {
4980 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4981 }
4982 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4983 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4984 }
4985 }
4986
4987 next_offset += envelope_size;
4988 _next_ordinal_to_read += 1;
4989 if next_offset >= end_offset {
4990 return Ok(());
4991 }
4992
4993 while _next_ordinal_to_read < 3 {
4995 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4996 _next_ordinal_to_read += 1;
4997 next_offset += envelope_size;
4998 }
4999
5000 let next_out_of_line = decoder.next_out_of_line();
5001 let handles_before = decoder.remaining_handles();
5002 if let Some((inlined, num_bytes, num_handles)) =
5003 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5004 {
5005 let member_inline_size =
5006 <StartupMode as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5007 if inlined != (member_inline_size <= 4) {
5008 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5009 }
5010 let inner_offset;
5011 let mut inner_depth = depth.clone();
5012 if inlined {
5013 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5014 inner_offset = next_offset;
5015 } else {
5016 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5017 inner_depth.increment()?;
5018 }
5019 let val_ref = self.startup.get_or_insert_with(|| fidl::new_empty!(StartupMode, D));
5020 fidl::decode!(StartupMode, D, val_ref, decoder, inner_offset, inner_depth)?;
5021 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5022 {
5023 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5024 }
5025 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5026 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5027 }
5028 }
5029
5030 next_offset += envelope_size;
5031 _next_ordinal_to_read += 1;
5032 if next_offset >= end_offset {
5033 return Ok(());
5034 }
5035
5036 while _next_ordinal_to_read < 4 {
5038 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5039 _next_ordinal_to_read += 1;
5040 next_offset += envelope_size;
5041 }
5042
5043 let next_out_of_line = decoder.next_out_of_line();
5044 let handles_before = decoder.remaining_handles();
5045 if let Some((inlined, num_bytes, num_handles)) =
5046 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5047 {
5048 let member_inline_size =
5049 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
5050 decoder.context,
5051 );
5052 if inlined != (member_inline_size <= 4) {
5053 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5054 }
5055 let inner_offset;
5056 let mut inner_depth = depth.clone();
5057 if inlined {
5058 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5059 inner_offset = next_offset;
5060 } else {
5061 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5062 inner_depth.increment()?;
5063 }
5064 let val_ref = self
5065 .environment
5066 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
5067 fidl::decode!(
5068 fidl::encoding::BoundedString<100>,
5069 D,
5070 val_ref,
5071 decoder,
5072 inner_offset,
5073 inner_depth
5074 )?;
5075 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5076 {
5077 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5078 }
5079 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5080 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5081 }
5082 }
5083
5084 next_offset += envelope_size;
5085 _next_ordinal_to_read += 1;
5086 if next_offset >= end_offset {
5087 return Ok(());
5088 }
5089
5090 while _next_ordinal_to_read < 5 {
5092 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5093 _next_ordinal_to_read += 1;
5094 next_offset += envelope_size;
5095 }
5096
5097 let next_out_of_line = decoder.next_out_of_line();
5098 let handles_before = decoder.remaining_handles();
5099 if let Some((inlined, num_bytes, num_handles)) =
5100 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5101 {
5102 let member_inline_size =
5103 <OnTerminate as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5104 if inlined != (member_inline_size <= 4) {
5105 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5106 }
5107 let inner_offset;
5108 let mut inner_depth = depth.clone();
5109 if inlined {
5110 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5111 inner_offset = next_offset;
5112 } else {
5113 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5114 inner_depth.increment()?;
5115 }
5116 let val_ref =
5117 self.on_terminate.get_or_insert_with(|| fidl::new_empty!(OnTerminate, D));
5118 fidl::decode!(OnTerminate, D, val_ref, decoder, inner_offset, inner_depth)?;
5119 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5120 {
5121 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5122 }
5123 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5124 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5125 }
5126 }
5127
5128 next_offset += envelope_size;
5129 _next_ordinal_to_read += 1;
5130 if next_offset >= end_offset {
5131 return Ok(());
5132 }
5133
5134 while _next_ordinal_to_read < 6 {
5136 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5137 _next_ordinal_to_read += 1;
5138 next_offset += envelope_size;
5139 }
5140
5141 let next_out_of_line = decoder.next_out_of_line();
5142 let handles_before = decoder.remaining_handles();
5143 if let Some((inlined, num_bytes, num_handles)) =
5144 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5145 {
5146 let member_inline_size = <fidl::encoding::UnboundedVector<ConfigOverride> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5147 if inlined != (member_inline_size <= 4) {
5148 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5149 }
5150 let inner_offset;
5151 let mut inner_depth = depth.clone();
5152 if inlined {
5153 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5154 inner_offset = next_offset;
5155 } else {
5156 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5157 inner_depth.increment()?;
5158 }
5159 let val_ref = self.config_overrides.get_or_insert_with(|| {
5160 fidl::new_empty!(fidl::encoding::UnboundedVector<ConfigOverride>, D)
5161 });
5162 fidl::decode!(
5163 fidl::encoding::UnboundedVector<ConfigOverride>,
5164 D,
5165 val_ref,
5166 decoder,
5167 inner_offset,
5168 inner_depth
5169 )?;
5170 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5171 {
5172 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5173 }
5174 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5175 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5176 }
5177 }
5178
5179 next_offset += envelope_size;
5180
5181 while next_offset < end_offset {
5183 _next_ordinal_to_read += 1;
5184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5185 next_offset += envelope_size;
5186 }
5187
5188 Ok(())
5189 }
5190 }
5191
5192 impl Collection {
5193 #[inline(always)]
5194 fn max_ordinal_present(&self) -> u64 {
5195 if let Some(_) = self.persistent_storage {
5196 return 6;
5197 }
5198 if let Some(_) = self.allow_long_names {
5199 return 5;
5200 }
5201 if let Some(_) = self.allowed_offers {
5202 return 4;
5203 }
5204 if let Some(_) = self.environment {
5205 return 3;
5206 }
5207 if let Some(_) = self.durability {
5208 return 2;
5209 }
5210 if let Some(_) = self.name {
5211 return 1;
5212 }
5213 0
5214 }
5215 }
5216
5217 impl fidl::encoding::ValueTypeMarker for Collection {
5218 type Borrowed<'a> = &'a Self;
5219 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5220 value
5221 }
5222 }
5223
5224 unsafe impl fidl::encoding::TypeMarker for Collection {
5225 type Owned = Self;
5226
5227 #[inline(always)]
5228 fn inline_align(_context: fidl::encoding::Context) -> usize {
5229 8
5230 }
5231
5232 #[inline(always)]
5233 fn inline_size(_context: fidl::encoding::Context) -> usize {
5234 16
5235 }
5236 }
5237
5238 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Collection, D>
5239 for &Collection
5240 {
5241 unsafe fn encode(
5242 self,
5243 encoder: &mut fidl::encoding::Encoder<'_, D>,
5244 offset: usize,
5245 mut depth: fidl::encoding::Depth,
5246 ) -> fidl::Result<()> {
5247 encoder.debug_check_bounds::<Collection>(offset);
5248 let max_ordinal: u64 = self.max_ordinal_present();
5250 encoder.write_num(max_ordinal, offset);
5251 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5252 if max_ordinal == 0 {
5254 return Ok(());
5255 }
5256 depth.increment()?;
5257 let envelope_size = 8;
5258 let bytes_len = max_ordinal as usize * envelope_size;
5259 #[allow(unused_variables)]
5260 let offset = encoder.out_of_line_offset(bytes_len);
5261 let mut _prev_end_offset: usize = 0;
5262 if 1 > max_ordinal {
5263 return Ok(());
5264 }
5265
5266 let cur_offset: usize = (1 - 1) * envelope_size;
5269
5270 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5272
5273 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
5278 self.name.as_ref().map(
5279 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
5280 ),
5281 encoder,
5282 offset + cur_offset,
5283 depth,
5284 )?;
5285
5286 _prev_end_offset = cur_offset + envelope_size;
5287 if 2 > max_ordinal {
5288 return Ok(());
5289 }
5290
5291 let cur_offset: usize = (2 - 1) * envelope_size;
5294
5295 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5297
5298 fidl::encoding::encode_in_envelope_optional::<Durability, D>(
5303 self.durability
5304 .as_ref()
5305 .map(<Durability as fidl::encoding::ValueTypeMarker>::borrow),
5306 encoder,
5307 offset + cur_offset,
5308 depth,
5309 )?;
5310
5311 _prev_end_offset = cur_offset + envelope_size;
5312 if 3 > max_ordinal {
5313 return Ok(());
5314 }
5315
5316 let cur_offset: usize = (3 - 1) * envelope_size;
5319
5320 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5322
5323 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
5328 self.environment.as_ref().map(
5329 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
5330 ),
5331 encoder,
5332 offset + cur_offset,
5333 depth,
5334 )?;
5335
5336 _prev_end_offset = cur_offset + envelope_size;
5337 if 4 > max_ordinal {
5338 return Ok(());
5339 }
5340
5341 let cur_offset: usize = (4 - 1) * envelope_size;
5344
5345 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5347
5348 fidl::encoding::encode_in_envelope_optional::<AllowedOffers, D>(
5353 self.allowed_offers
5354 .as_ref()
5355 .map(<AllowedOffers as fidl::encoding::ValueTypeMarker>::borrow),
5356 encoder,
5357 offset + cur_offset,
5358 depth,
5359 )?;
5360
5361 _prev_end_offset = cur_offset + envelope_size;
5362 if 5 > max_ordinal {
5363 return Ok(());
5364 }
5365
5366 let cur_offset: usize = (5 - 1) * envelope_size;
5369
5370 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5372
5373 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5378 self.allow_long_names
5379 .as_ref()
5380 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5381 encoder,
5382 offset + cur_offset,
5383 depth,
5384 )?;
5385
5386 _prev_end_offset = cur_offset + envelope_size;
5387 if 6 > max_ordinal {
5388 return Ok(());
5389 }
5390
5391 let cur_offset: usize = (6 - 1) * envelope_size;
5394
5395 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5397
5398 fidl::encoding::encode_in_envelope_optional::<bool, D>(
5403 self.persistent_storage
5404 .as_ref()
5405 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
5406 encoder,
5407 offset + cur_offset,
5408 depth,
5409 )?;
5410
5411 _prev_end_offset = cur_offset + envelope_size;
5412
5413 Ok(())
5414 }
5415 }
5416
5417 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Collection {
5418 #[inline(always)]
5419 fn new_empty() -> Self {
5420 Self::default()
5421 }
5422
5423 unsafe fn decode(
5424 &mut self,
5425 decoder: &mut fidl::encoding::Decoder<'_, D>,
5426 offset: usize,
5427 mut depth: fidl::encoding::Depth,
5428 ) -> fidl::Result<()> {
5429 decoder.debug_check_bounds::<Self>(offset);
5430 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5431 None => return Err(fidl::Error::NotNullable),
5432 Some(len) => len,
5433 };
5434 if len == 0 {
5436 return Ok(());
5437 };
5438 depth.increment()?;
5439 let envelope_size = 8;
5440 let bytes_len = len * envelope_size;
5441 let offset = decoder.out_of_line_offset(bytes_len)?;
5442 let mut _next_ordinal_to_read = 0;
5444 let mut next_offset = offset;
5445 let end_offset = offset + bytes_len;
5446 _next_ordinal_to_read += 1;
5447 if next_offset >= end_offset {
5448 return Ok(());
5449 }
5450
5451 while _next_ordinal_to_read < 1 {
5453 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5454 _next_ordinal_to_read += 1;
5455 next_offset += envelope_size;
5456 }
5457
5458 let next_out_of_line = decoder.next_out_of_line();
5459 let handles_before = decoder.remaining_handles();
5460 if let Some((inlined, num_bytes, num_handles)) =
5461 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5462 {
5463 let member_inline_size =
5464 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
5465 decoder.context,
5466 );
5467 if inlined != (member_inline_size <= 4) {
5468 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5469 }
5470 let inner_offset;
5471 let mut inner_depth = depth.clone();
5472 if inlined {
5473 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5474 inner_offset = next_offset;
5475 } else {
5476 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5477 inner_depth.increment()?;
5478 }
5479 let val_ref = self
5480 .name
5481 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
5482 fidl::decode!(
5483 fidl::encoding::BoundedString<100>,
5484 D,
5485 val_ref,
5486 decoder,
5487 inner_offset,
5488 inner_depth
5489 )?;
5490 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5491 {
5492 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5493 }
5494 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5495 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5496 }
5497 }
5498
5499 next_offset += envelope_size;
5500 _next_ordinal_to_read += 1;
5501 if next_offset >= end_offset {
5502 return Ok(());
5503 }
5504
5505 while _next_ordinal_to_read < 2 {
5507 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5508 _next_ordinal_to_read += 1;
5509 next_offset += envelope_size;
5510 }
5511
5512 let next_out_of_line = decoder.next_out_of_line();
5513 let handles_before = decoder.remaining_handles();
5514 if let Some((inlined, num_bytes, num_handles)) =
5515 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5516 {
5517 let member_inline_size =
5518 <Durability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5519 if inlined != (member_inline_size <= 4) {
5520 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5521 }
5522 let inner_offset;
5523 let mut inner_depth = depth.clone();
5524 if inlined {
5525 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5526 inner_offset = next_offset;
5527 } else {
5528 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5529 inner_depth.increment()?;
5530 }
5531 let val_ref =
5532 self.durability.get_or_insert_with(|| fidl::new_empty!(Durability, D));
5533 fidl::decode!(Durability, D, val_ref, decoder, inner_offset, inner_depth)?;
5534 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5535 {
5536 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5537 }
5538 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5539 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5540 }
5541 }
5542
5543 next_offset += envelope_size;
5544 _next_ordinal_to_read += 1;
5545 if next_offset >= end_offset {
5546 return Ok(());
5547 }
5548
5549 while _next_ordinal_to_read < 3 {
5551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5552 _next_ordinal_to_read += 1;
5553 next_offset += envelope_size;
5554 }
5555
5556 let next_out_of_line = decoder.next_out_of_line();
5557 let handles_before = decoder.remaining_handles();
5558 if let Some((inlined, num_bytes, num_handles)) =
5559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5560 {
5561 let member_inline_size =
5562 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
5563 decoder.context,
5564 );
5565 if inlined != (member_inline_size <= 4) {
5566 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5567 }
5568 let inner_offset;
5569 let mut inner_depth = depth.clone();
5570 if inlined {
5571 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5572 inner_offset = next_offset;
5573 } else {
5574 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5575 inner_depth.increment()?;
5576 }
5577 let val_ref = self
5578 .environment
5579 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
5580 fidl::decode!(
5581 fidl::encoding::BoundedString<100>,
5582 D,
5583 val_ref,
5584 decoder,
5585 inner_offset,
5586 inner_depth
5587 )?;
5588 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5589 {
5590 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5591 }
5592 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5593 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5594 }
5595 }
5596
5597 next_offset += envelope_size;
5598 _next_ordinal_to_read += 1;
5599 if next_offset >= end_offset {
5600 return Ok(());
5601 }
5602
5603 while _next_ordinal_to_read < 4 {
5605 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5606 _next_ordinal_to_read += 1;
5607 next_offset += envelope_size;
5608 }
5609
5610 let next_out_of_line = decoder.next_out_of_line();
5611 let handles_before = decoder.remaining_handles();
5612 if let Some((inlined, num_bytes, num_handles)) =
5613 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5614 {
5615 let member_inline_size =
5616 <AllowedOffers as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5617 if inlined != (member_inline_size <= 4) {
5618 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5619 }
5620 let inner_offset;
5621 let mut inner_depth = depth.clone();
5622 if inlined {
5623 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5624 inner_offset = next_offset;
5625 } else {
5626 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5627 inner_depth.increment()?;
5628 }
5629 let val_ref =
5630 self.allowed_offers.get_or_insert_with(|| fidl::new_empty!(AllowedOffers, D));
5631 fidl::decode!(AllowedOffers, D, val_ref, decoder, inner_offset, inner_depth)?;
5632 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5633 {
5634 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5635 }
5636 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5637 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5638 }
5639 }
5640
5641 next_offset += envelope_size;
5642 _next_ordinal_to_read += 1;
5643 if next_offset >= end_offset {
5644 return Ok(());
5645 }
5646
5647 while _next_ordinal_to_read < 5 {
5649 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5650 _next_ordinal_to_read += 1;
5651 next_offset += envelope_size;
5652 }
5653
5654 let next_out_of_line = decoder.next_out_of_line();
5655 let handles_before = decoder.remaining_handles();
5656 if let Some((inlined, num_bytes, num_handles)) =
5657 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5658 {
5659 let member_inline_size =
5660 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5661 if inlined != (member_inline_size <= 4) {
5662 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5663 }
5664 let inner_offset;
5665 let mut inner_depth = depth.clone();
5666 if inlined {
5667 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5668 inner_offset = next_offset;
5669 } else {
5670 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5671 inner_depth.increment()?;
5672 }
5673 let val_ref =
5674 self.allow_long_names.get_or_insert_with(|| fidl::new_empty!(bool, D));
5675 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5676 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5677 {
5678 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5679 }
5680 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5681 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5682 }
5683 }
5684
5685 next_offset += envelope_size;
5686 _next_ordinal_to_read += 1;
5687 if next_offset >= end_offset {
5688 return Ok(());
5689 }
5690
5691 while _next_ordinal_to_read < 6 {
5693 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5694 _next_ordinal_to_read += 1;
5695 next_offset += envelope_size;
5696 }
5697
5698 let next_out_of_line = decoder.next_out_of_line();
5699 let handles_before = decoder.remaining_handles();
5700 if let Some((inlined, num_bytes, num_handles)) =
5701 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5702 {
5703 let member_inline_size =
5704 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5705 if inlined != (member_inline_size <= 4) {
5706 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5707 }
5708 let inner_offset;
5709 let mut inner_depth = depth.clone();
5710 if inlined {
5711 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5712 inner_offset = next_offset;
5713 } else {
5714 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5715 inner_depth.increment()?;
5716 }
5717 let val_ref =
5718 self.persistent_storage.get_or_insert_with(|| fidl::new_empty!(bool, D));
5719 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
5720 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5721 {
5722 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5723 }
5724 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5725 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5726 }
5727 }
5728
5729 next_offset += envelope_size;
5730
5731 while next_offset < end_offset {
5733 _next_ordinal_to_read += 1;
5734 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5735 next_offset += envelope_size;
5736 }
5737
5738 Ok(())
5739 }
5740 }
5741
5742 impl Component {
5743 #[inline(always)]
5744 fn max_ordinal_present(&self) -> u64 {
5745 if let Some(_) = self.config {
5746 return 10;
5747 }
5748 if let Some(_) = self.facets {
5749 return 9;
5750 }
5751 if let Some(_) = self.environments {
5752 return 8;
5753 }
5754 if let Some(_) = self.collections {
5755 return 7;
5756 }
5757 if let Some(_) = self.children {
5758 return 6;
5759 }
5760 if let Some(_) = self.capabilities {
5761 return 5;
5762 }
5763 if let Some(_) = self.offers {
5764 return 4;
5765 }
5766 if let Some(_) = self.exposes {
5767 return 3;
5768 }
5769 if let Some(_) = self.uses {
5770 return 2;
5771 }
5772 if let Some(_) = self.program {
5773 return 1;
5774 }
5775 0
5776 }
5777 }
5778
5779 impl fidl::encoding::ValueTypeMarker for Component {
5780 type Borrowed<'a> = &'a Self;
5781 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5782 value
5783 }
5784 }
5785
5786 unsafe impl fidl::encoding::TypeMarker for Component {
5787 type Owned = Self;
5788
5789 #[inline(always)]
5790 fn inline_align(_context: fidl::encoding::Context) -> usize {
5791 8
5792 }
5793
5794 #[inline(always)]
5795 fn inline_size(_context: fidl::encoding::Context) -> usize {
5796 16
5797 }
5798 }
5799
5800 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Component, D>
5801 for &Component
5802 {
5803 unsafe fn encode(
5804 self,
5805 encoder: &mut fidl::encoding::Encoder<'_, D>,
5806 offset: usize,
5807 mut depth: fidl::encoding::Depth,
5808 ) -> fidl::Result<()> {
5809 encoder.debug_check_bounds::<Component>(offset);
5810 let max_ordinal: u64 = self.max_ordinal_present();
5812 encoder.write_num(max_ordinal, offset);
5813 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5814 if max_ordinal == 0 {
5816 return Ok(());
5817 }
5818 depth.increment()?;
5819 let envelope_size = 8;
5820 let bytes_len = max_ordinal as usize * envelope_size;
5821 #[allow(unused_variables)]
5822 let offset = encoder.out_of_line_offset(bytes_len);
5823 let mut _prev_end_offset: usize = 0;
5824 if 1 > max_ordinal {
5825 return Ok(());
5826 }
5827
5828 let cur_offset: usize = (1 - 1) * envelope_size;
5831
5832 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5834
5835 fidl::encoding::encode_in_envelope_optional::<Program, D>(
5840 self.program.as_ref().map(<Program as fidl::encoding::ValueTypeMarker>::borrow),
5841 encoder,
5842 offset + cur_offset,
5843 depth,
5844 )?;
5845
5846 _prev_end_offset = cur_offset + envelope_size;
5847 if 2 > max_ordinal {
5848 return Ok(());
5849 }
5850
5851 let cur_offset: usize = (2 - 1) * envelope_size;
5854
5855 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5857
5858 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Use>, D>(
5863 self.uses.as_ref().map(<fidl::encoding::UnboundedVector<Use> as fidl::encoding::ValueTypeMarker>::borrow),
5864 encoder, offset + cur_offset, depth
5865 )?;
5866
5867 _prev_end_offset = cur_offset + envelope_size;
5868 if 3 > max_ordinal {
5869 return Ok(());
5870 }
5871
5872 let cur_offset: usize = (3 - 1) * envelope_size;
5875
5876 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5878
5879 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Expose>, D>(
5884 self.exposes.as_ref().map(<fidl::encoding::UnboundedVector<Expose> as fidl::encoding::ValueTypeMarker>::borrow),
5885 encoder, offset + cur_offset, depth
5886 )?;
5887
5888 _prev_end_offset = cur_offset + envelope_size;
5889 if 4 > max_ordinal {
5890 return Ok(());
5891 }
5892
5893 let cur_offset: usize = (4 - 1) * envelope_size;
5896
5897 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5899
5900 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Offer>, D>(
5905 self.offers.as_ref().map(<fidl::encoding::UnboundedVector<Offer> as fidl::encoding::ValueTypeMarker>::borrow),
5906 encoder, offset + cur_offset, depth
5907 )?;
5908
5909 _prev_end_offset = cur_offset + envelope_size;
5910 if 5 > max_ordinal {
5911 return Ok(());
5912 }
5913
5914 let cur_offset: usize = (5 - 1) * envelope_size;
5917
5918 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5920
5921 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Capability>, D>(
5926 self.capabilities.as_ref().map(<fidl::encoding::UnboundedVector<Capability> as fidl::encoding::ValueTypeMarker>::borrow),
5927 encoder, offset + cur_offset, depth
5928 )?;
5929
5930 _prev_end_offset = cur_offset + envelope_size;
5931 if 6 > max_ordinal {
5932 return Ok(());
5933 }
5934
5935 let cur_offset: usize = (6 - 1) * envelope_size;
5938
5939 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5941
5942 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Child>, D>(
5947 self.children.as_ref().map(<fidl::encoding::UnboundedVector<Child> as fidl::encoding::ValueTypeMarker>::borrow),
5948 encoder, offset + cur_offset, depth
5949 )?;
5950
5951 _prev_end_offset = cur_offset + envelope_size;
5952 if 7 > max_ordinal {
5953 return Ok(());
5954 }
5955
5956 let cur_offset: usize = (7 - 1) * envelope_size;
5959
5960 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5962
5963 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Collection>, D>(
5968 self.collections.as_ref().map(<fidl::encoding::UnboundedVector<Collection> as fidl::encoding::ValueTypeMarker>::borrow),
5969 encoder, offset + cur_offset, depth
5970 )?;
5971
5972 _prev_end_offset = cur_offset + envelope_size;
5973 if 8 > max_ordinal {
5974 return Ok(());
5975 }
5976
5977 let cur_offset: usize = (8 - 1) * envelope_size;
5980
5981 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5983
5984 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Environment>, D>(
5989 self.environments.as_ref().map(<fidl::encoding::UnboundedVector<Environment> as fidl::encoding::ValueTypeMarker>::borrow),
5990 encoder, offset + cur_offset, depth
5991 )?;
5992
5993 _prev_end_offset = cur_offset + envelope_size;
5994 if 9 > max_ordinal {
5995 return Ok(());
5996 }
5997
5998 let cur_offset: usize = (9 - 1) * envelope_size;
6001
6002 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6004
6005 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data__common::Dictionary, D>(
6010 self.facets.as_ref().map(<fidl_fuchsia_data__common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
6011 encoder, offset + cur_offset, depth
6012 )?;
6013
6014 _prev_end_offset = cur_offset + envelope_size;
6015 if 10 > max_ordinal {
6016 return Ok(());
6017 }
6018
6019 let cur_offset: usize = (10 - 1) * envelope_size;
6022
6023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6025
6026 fidl::encoding::encode_in_envelope_optional::<ConfigSchema, D>(
6031 self.config.as_ref().map(<ConfigSchema as fidl::encoding::ValueTypeMarker>::borrow),
6032 encoder,
6033 offset + cur_offset,
6034 depth,
6035 )?;
6036
6037 _prev_end_offset = cur_offset + envelope_size;
6038
6039 Ok(())
6040 }
6041 }
6042
6043 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Component {
6044 #[inline(always)]
6045 fn new_empty() -> Self {
6046 Self::default()
6047 }
6048
6049 unsafe fn decode(
6050 &mut self,
6051 decoder: &mut fidl::encoding::Decoder<'_, D>,
6052 offset: usize,
6053 mut depth: fidl::encoding::Depth,
6054 ) -> fidl::Result<()> {
6055 decoder.debug_check_bounds::<Self>(offset);
6056 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6057 None => return Err(fidl::Error::NotNullable),
6058 Some(len) => len,
6059 };
6060 if len == 0 {
6062 return Ok(());
6063 };
6064 depth.increment()?;
6065 let envelope_size = 8;
6066 let bytes_len = len * envelope_size;
6067 let offset = decoder.out_of_line_offset(bytes_len)?;
6068 let mut _next_ordinal_to_read = 0;
6070 let mut next_offset = offset;
6071 let end_offset = offset + bytes_len;
6072 _next_ordinal_to_read += 1;
6073 if next_offset >= end_offset {
6074 return Ok(());
6075 }
6076
6077 while _next_ordinal_to_read < 1 {
6079 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6080 _next_ordinal_to_read += 1;
6081 next_offset += envelope_size;
6082 }
6083
6084 let next_out_of_line = decoder.next_out_of_line();
6085 let handles_before = decoder.remaining_handles();
6086 if let Some((inlined, num_bytes, num_handles)) =
6087 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6088 {
6089 let member_inline_size =
6090 <Program as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6091 if inlined != (member_inline_size <= 4) {
6092 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6093 }
6094 let inner_offset;
6095 let mut inner_depth = depth.clone();
6096 if inlined {
6097 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6098 inner_offset = next_offset;
6099 } else {
6100 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6101 inner_depth.increment()?;
6102 }
6103 let val_ref = self.program.get_or_insert_with(|| fidl::new_empty!(Program, D));
6104 fidl::decode!(Program, D, val_ref, decoder, inner_offset, inner_depth)?;
6105 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6106 {
6107 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6108 }
6109 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6110 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6111 }
6112 }
6113
6114 next_offset += envelope_size;
6115 _next_ordinal_to_read += 1;
6116 if next_offset >= end_offset {
6117 return Ok(());
6118 }
6119
6120 while _next_ordinal_to_read < 2 {
6122 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6123 _next_ordinal_to_read += 1;
6124 next_offset += envelope_size;
6125 }
6126
6127 let next_out_of_line = decoder.next_out_of_line();
6128 let handles_before = decoder.remaining_handles();
6129 if let Some((inlined, num_bytes, num_handles)) =
6130 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6131 {
6132 let member_inline_size = <fidl::encoding::UnboundedVector<Use> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6133 if inlined != (member_inline_size <= 4) {
6134 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6135 }
6136 let inner_offset;
6137 let mut inner_depth = depth.clone();
6138 if inlined {
6139 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6140 inner_offset = next_offset;
6141 } else {
6142 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6143 inner_depth.increment()?;
6144 }
6145 let val_ref = self.uses.get_or_insert_with(|| {
6146 fidl::new_empty!(fidl::encoding::UnboundedVector<Use>, D)
6147 });
6148 fidl::decode!(
6149 fidl::encoding::UnboundedVector<Use>,
6150 D,
6151 val_ref,
6152 decoder,
6153 inner_offset,
6154 inner_depth
6155 )?;
6156 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6157 {
6158 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6159 }
6160 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6161 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6162 }
6163 }
6164
6165 next_offset += envelope_size;
6166 _next_ordinal_to_read += 1;
6167 if next_offset >= end_offset {
6168 return Ok(());
6169 }
6170
6171 while _next_ordinal_to_read < 3 {
6173 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6174 _next_ordinal_to_read += 1;
6175 next_offset += envelope_size;
6176 }
6177
6178 let next_out_of_line = decoder.next_out_of_line();
6179 let handles_before = decoder.remaining_handles();
6180 if let Some((inlined, num_bytes, num_handles)) =
6181 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6182 {
6183 let member_inline_size = <fidl::encoding::UnboundedVector<Expose> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6184 if inlined != (member_inline_size <= 4) {
6185 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6186 }
6187 let inner_offset;
6188 let mut inner_depth = depth.clone();
6189 if inlined {
6190 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6191 inner_offset = next_offset;
6192 } else {
6193 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6194 inner_depth.increment()?;
6195 }
6196 let val_ref = self.exposes.get_or_insert_with(|| {
6197 fidl::new_empty!(fidl::encoding::UnboundedVector<Expose>, D)
6198 });
6199 fidl::decode!(
6200 fidl::encoding::UnboundedVector<Expose>,
6201 D,
6202 val_ref,
6203 decoder,
6204 inner_offset,
6205 inner_depth
6206 )?;
6207 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6208 {
6209 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6210 }
6211 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6212 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6213 }
6214 }
6215
6216 next_offset += envelope_size;
6217 _next_ordinal_to_read += 1;
6218 if next_offset >= end_offset {
6219 return Ok(());
6220 }
6221
6222 while _next_ordinal_to_read < 4 {
6224 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6225 _next_ordinal_to_read += 1;
6226 next_offset += envelope_size;
6227 }
6228
6229 let next_out_of_line = decoder.next_out_of_line();
6230 let handles_before = decoder.remaining_handles();
6231 if let Some((inlined, num_bytes, num_handles)) =
6232 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6233 {
6234 let member_inline_size = <fidl::encoding::UnboundedVector<Offer> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6235 if inlined != (member_inline_size <= 4) {
6236 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6237 }
6238 let inner_offset;
6239 let mut inner_depth = depth.clone();
6240 if inlined {
6241 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6242 inner_offset = next_offset;
6243 } else {
6244 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6245 inner_depth.increment()?;
6246 }
6247 let val_ref = self.offers.get_or_insert_with(|| {
6248 fidl::new_empty!(fidl::encoding::UnboundedVector<Offer>, D)
6249 });
6250 fidl::decode!(
6251 fidl::encoding::UnboundedVector<Offer>,
6252 D,
6253 val_ref,
6254 decoder,
6255 inner_offset,
6256 inner_depth
6257 )?;
6258 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6259 {
6260 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6261 }
6262 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6263 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6264 }
6265 }
6266
6267 next_offset += envelope_size;
6268 _next_ordinal_to_read += 1;
6269 if next_offset >= end_offset {
6270 return Ok(());
6271 }
6272
6273 while _next_ordinal_to_read < 5 {
6275 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6276 _next_ordinal_to_read += 1;
6277 next_offset += envelope_size;
6278 }
6279
6280 let next_out_of_line = decoder.next_out_of_line();
6281 let handles_before = decoder.remaining_handles();
6282 if let Some((inlined, num_bytes, num_handles)) =
6283 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6284 {
6285 let member_inline_size = <fidl::encoding::UnboundedVector<Capability> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6286 if inlined != (member_inline_size <= 4) {
6287 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6288 }
6289 let inner_offset;
6290 let mut inner_depth = depth.clone();
6291 if inlined {
6292 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6293 inner_offset = next_offset;
6294 } else {
6295 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6296 inner_depth.increment()?;
6297 }
6298 let val_ref = self.capabilities.get_or_insert_with(|| {
6299 fidl::new_empty!(fidl::encoding::UnboundedVector<Capability>, D)
6300 });
6301 fidl::decode!(
6302 fidl::encoding::UnboundedVector<Capability>,
6303 D,
6304 val_ref,
6305 decoder,
6306 inner_offset,
6307 inner_depth
6308 )?;
6309 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6310 {
6311 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6312 }
6313 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6314 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6315 }
6316 }
6317
6318 next_offset += envelope_size;
6319 _next_ordinal_to_read += 1;
6320 if next_offset >= end_offset {
6321 return Ok(());
6322 }
6323
6324 while _next_ordinal_to_read < 6 {
6326 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6327 _next_ordinal_to_read += 1;
6328 next_offset += envelope_size;
6329 }
6330
6331 let next_out_of_line = decoder.next_out_of_line();
6332 let handles_before = decoder.remaining_handles();
6333 if let Some((inlined, num_bytes, num_handles)) =
6334 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6335 {
6336 let member_inline_size = <fidl::encoding::UnboundedVector<Child> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6337 if inlined != (member_inline_size <= 4) {
6338 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6339 }
6340 let inner_offset;
6341 let mut inner_depth = depth.clone();
6342 if inlined {
6343 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6344 inner_offset = next_offset;
6345 } else {
6346 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6347 inner_depth.increment()?;
6348 }
6349 let val_ref = self.children.get_or_insert_with(|| {
6350 fidl::new_empty!(fidl::encoding::UnboundedVector<Child>, D)
6351 });
6352 fidl::decode!(
6353 fidl::encoding::UnboundedVector<Child>,
6354 D,
6355 val_ref,
6356 decoder,
6357 inner_offset,
6358 inner_depth
6359 )?;
6360 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6361 {
6362 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6363 }
6364 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6365 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6366 }
6367 }
6368
6369 next_offset += envelope_size;
6370 _next_ordinal_to_read += 1;
6371 if next_offset >= end_offset {
6372 return Ok(());
6373 }
6374
6375 while _next_ordinal_to_read < 7 {
6377 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6378 _next_ordinal_to_read += 1;
6379 next_offset += envelope_size;
6380 }
6381
6382 let next_out_of_line = decoder.next_out_of_line();
6383 let handles_before = decoder.remaining_handles();
6384 if let Some((inlined, num_bytes, num_handles)) =
6385 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6386 {
6387 let member_inline_size = <fidl::encoding::UnboundedVector<Collection> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6388 if inlined != (member_inline_size <= 4) {
6389 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6390 }
6391 let inner_offset;
6392 let mut inner_depth = depth.clone();
6393 if inlined {
6394 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6395 inner_offset = next_offset;
6396 } else {
6397 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6398 inner_depth.increment()?;
6399 }
6400 let val_ref = self.collections.get_or_insert_with(|| {
6401 fidl::new_empty!(fidl::encoding::UnboundedVector<Collection>, D)
6402 });
6403 fidl::decode!(
6404 fidl::encoding::UnboundedVector<Collection>,
6405 D,
6406 val_ref,
6407 decoder,
6408 inner_offset,
6409 inner_depth
6410 )?;
6411 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6412 {
6413 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6414 }
6415 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6416 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6417 }
6418 }
6419
6420 next_offset += envelope_size;
6421 _next_ordinal_to_read += 1;
6422 if next_offset >= end_offset {
6423 return Ok(());
6424 }
6425
6426 while _next_ordinal_to_read < 8 {
6428 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6429 _next_ordinal_to_read += 1;
6430 next_offset += envelope_size;
6431 }
6432
6433 let next_out_of_line = decoder.next_out_of_line();
6434 let handles_before = decoder.remaining_handles();
6435 if let Some((inlined, num_bytes, num_handles)) =
6436 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6437 {
6438 let member_inline_size = <fidl::encoding::UnboundedVector<Environment> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6439 if inlined != (member_inline_size <= 4) {
6440 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6441 }
6442 let inner_offset;
6443 let mut inner_depth = depth.clone();
6444 if inlined {
6445 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6446 inner_offset = next_offset;
6447 } else {
6448 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6449 inner_depth.increment()?;
6450 }
6451 let val_ref = self.environments.get_or_insert_with(|| {
6452 fidl::new_empty!(fidl::encoding::UnboundedVector<Environment>, D)
6453 });
6454 fidl::decode!(
6455 fidl::encoding::UnboundedVector<Environment>,
6456 D,
6457 val_ref,
6458 decoder,
6459 inner_offset,
6460 inner_depth
6461 )?;
6462 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6463 {
6464 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6465 }
6466 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6467 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6468 }
6469 }
6470
6471 next_offset += envelope_size;
6472 _next_ordinal_to_read += 1;
6473 if next_offset >= end_offset {
6474 return Ok(());
6475 }
6476
6477 while _next_ordinal_to_read < 9 {
6479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6480 _next_ordinal_to_read += 1;
6481 next_offset += envelope_size;
6482 }
6483
6484 let next_out_of_line = decoder.next_out_of_line();
6485 let handles_before = decoder.remaining_handles();
6486 if let Some((inlined, num_bytes, num_handles)) =
6487 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6488 {
6489 let member_inline_size = <fidl_fuchsia_data__common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6490 if inlined != (member_inline_size <= 4) {
6491 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6492 }
6493 let inner_offset;
6494 let mut inner_depth = depth.clone();
6495 if inlined {
6496 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6497 inner_offset = next_offset;
6498 } else {
6499 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6500 inner_depth.increment()?;
6501 }
6502 let val_ref = self.facets.get_or_insert_with(|| {
6503 fidl::new_empty!(fidl_fuchsia_data__common::Dictionary, D)
6504 });
6505 fidl::decode!(
6506 fidl_fuchsia_data__common::Dictionary,
6507 D,
6508 val_ref,
6509 decoder,
6510 inner_offset,
6511 inner_depth
6512 )?;
6513 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6514 {
6515 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6516 }
6517 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6518 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6519 }
6520 }
6521
6522 next_offset += envelope_size;
6523 _next_ordinal_to_read += 1;
6524 if next_offset >= end_offset {
6525 return Ok(());
6526 }
6527
6528 while _next_ordinal_to_read < 10 {
6530 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6531 _next_ordinal_to_read += 1;
6532 next_offset += envelope_size;
6533 }
6534
6535 let next_out_of_line = decoder.next_out_of_line();
6536 let handles_before = decoder.remaining_handles();
6537 if let Some((inlined, num_bytes, num_handles)) =
6538 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6539 {
6540 let member_inline_size =
6541 <ConfigSchema as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6542 if inlined != (member_inline_size <= 4) {
6543 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6544 }
6545 let inner_offset;
6546 let mut inner_depth = depth.clone();
6547 if inlined {
6548 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6549 inner_offset = next_offset;
6550 } else {
6551 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6552 inner_depth.increment()?;
6553 }
6554 let val_ref = self.config.get_or_insert_with(|| fidl::new_empty!(ConfigSchema, D));
6555 fidl::decode!(ConfigSchema, D, val_ref, decoder, inner_offset, inner_depth)?;
6556 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6557 {
6558 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6559 }
6560 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6561 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6562 }
6563 }
6564
6565 next_offset += envelope_size;
6566
6567 while next_offset < end_offset {
6569 _next_ordinal_to_read += 1;
6570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6571 next_offset += envelope_size;
6572 }
6573
6574 Ok(())
6575 }
6576 }
6577
6578 impl ConfigField {
6579 #[inline(always)]
6580 fn max_ordinal_present(&self) -> u64 {
6581 if let Some(_) = self.mutability {
6582 return 3;
6583 }
6584 if let Some(_) = self.type_ {
6585 return 2;
6586 }
6587 if let Some(_) = self.key {
6588 return 1;
6589 }
6590 0
6591 }
6592 }
6593
6594 impl fidl::encoding::ValueTypeMarker for ConfigField {
6595 type Borrowed<'a> = &'a Self;
6596 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6597 value
6598 }
6599 }
6600
6601 unsafe impl fidl::encoding::TypeMarker for ConfigField {
6602 type Owned = Self;
6603
6604 #[inline(always)]
6605 fn inline_align(_context: fidl::encoding::Context) -> usize {
6606 8
6607 }
6608
6609 #[inline(always)]
6610 fn inline_size(_context: fidl::encoding::Context) -> usize {
6611 16
6612 }
6613 }
6614
6615 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigField, D>
6616 for &ConfigField
6617 {
6618 unsafe fn encode(
6619 self,
6620 encoder: &mut fidl::encoding::Encoder<'_, D>,
6621 offset: usize,
6622 mut depth: fidl::encoding::Depth,
6623 ) -> fidl::Result<()> {
6624 encoder.debug_check_bounds::<ConfigField>(offset);
6625 let max_ordinal: u64 = self.max_ordinal_present();
6627 encoder.write_num(max_ordinal, offset);
6628 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6629 if max_ordinal == 0 {
6631 return Ok(());
6632 }
6633 depth.increment()?;
6634 let envelope_size = 8;
6635 let bytes_len = max_ordinal as usize * envelope_size;
6636 #[allow(unused_variables)]
6637 let offset = encoder.out_of_line_offset(bytes_len);
6638 let mut _prev_end_offset: usize = 0;
6639 if 1 > max_ordinal {
6640 return Ok(());
6641 }
6642
6643 let cur_offset: usize = (1 - 1) * envelope_size;
6646
6647 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6649
6650 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
6655 self.key.as_ref().map(
6656 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
6657 ),
6658 encoder,
6659 offset + cur_offset,
6660 depth,
6661 )?;
6662
6663 _prev_end_offset = cur_offset + envelope_size;
6664 if 2 > max_ordinal {
6665 return Ok(());
6666 }
6667
6668 let cur_offset: usize = (2 - 1) * envelope_size;
6671
6672 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6674
6675 fidl::encoding::encode_in_envelope_optional::<ConfigType, D>(
6680 self.type_.as_ref().map(<ConfigType as fidl::encoding::ValueTypeMarker>::borrow),
6681 encoder,
6682 offset + cur_offset,
6683 depth,
6684 )?;
6685
6686 _prev_end_offset = cur_offset + envelope_size;
6687 if 3 > max_ordinal {
6688 return Ok(());
6689 }
6690
6691 let cur_offset: usize = (3 - 1) * envelope_size;
6694
6695 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6697
6698 fidl::encoding::encode_in_envelope_optional::<ConfigMutability, D>(
6703 self.mutability
6704 .as_ref()
6705 .map(<ConfigMutability as fidl::encoding::ValueTypeMarker>::borrow),
6706 encoder,
6707 offset + cur_offset,
6708 depth,
6709 )?;
6710
6711 _prev_end_offset = cur_offset + envelope_size;
6712
6713 Ok(())
6714 }
6715 }
6716
6717 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigField {
6718 #[inline(always)]
6719 fn new_empty() -> Self {
6720 Self::default()
6721 }
6722
6723 unsafe fn decode(
6724 &mut self,
6725 decoder: &mut fidl::encoding::Decoder<'_, D>,
6726 offset: usize,
6727 mut depth: fidl::encoding::Depth,
6728 ) -> fidl::Result<()> {
6729 decoder.debug_check_bounds::<Self>(offset);
6730 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
6731 None => return Err(fidl::Error::NotNullable),
6732 Some(len) => len,
6733 };
6734 if len == 0 {
6736 return Ok(());
6737 };
6738 depth.increment()?;
6739 let envelope_size = 8;
6740 let bytes_len = len * envelope_size;
6741 let offset = decoder.out_of_line_offset(bytes_len)?;
6742 let mut _next_ordinal_to_read = 0;
6744 let mut next_offset = offset;
6745 let end_offset = offset + bytes_len;
6746 _next_ordinal_to_read += 1;
6747 if next_offset >= end_offset {
6748 return Ok(());
6749 }
6750
6751 while _next_ordinal_to_read < 1 {
6753 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6754 _next_ordinal_to_read += 1;
6755 next_offset += envelope_size;
6756 }
6757
6758 let next_out_of_line = decoder.next_out_of_line();
6759 let handles_before = decoder.remaining_handles();
6760 if let Some((inlined, num_bytes, num_handles)) =
6761 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6762 {
6763 let member_inline_size =
6764 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
6765 decoder.context,
6766 );
6767 if inlined != (member_inline_size <= 4) {
6768 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6769 }
6770 let inner_offset;
6771 let mut inner_depth = depth.clone();
6772 if inlined {
6773 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6774 inner_offset = next_offset;
6775 } else {
6776 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6777 inner_depth.increment()?;
6778 }
6779 let val_ref = self
6780 .key
6781 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
6782 fidl::decode!(
6783 fidl::encoding::BoundedString<64>,
6784 D,
6785 val_ref,
6786 decoder,
6787 inner_offset,
6788 inner_depth
6789 )?;
6790 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6791 {
6792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6793 }
6794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6796 }
6797 }
6798
6799 next_offset += envelope_size;
6800 _next_ordinal_to_read += 1;
6801 if next_offset >= end_offset {
6802 return Ok(());
6803 }
6804
6805 while _next_ordinal_to_read < 2 {
6807 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6808 _next_ordinal_to_read += 1;
6809 next_offset += envelope_size;
6810 }
6811
6812 let next_out_of_line = decoder.next_out_of_line();
6813 let handles_before = decoder.remaining_handles();
6814 if let Some((inlined, num_bytes, num_handles)) =
6815 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6816 {
6817 let member_inline_size =
6818 <ConfigType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6819 if inlined != (member_inline_size <= 4) {
6820 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6821 }
6822 let inner_offset;
6823 let mut inner_depth = depth.clone();
6824 if inlined {
6825 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6826 inner_offset = next_offset;
6827 } else {
6828 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6829 inner_depth.increment()?;
6830 }
6831 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(ConfigType, D));
6832 fidl::decode!(ConfigType, D, val_ref, decoder, inner_offset, inner_depth)?;
6833 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6834 {
6835 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6836 }
6837 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6838 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6839 }
6840 }
6841
6842 next_offset += envelope_size;
6843 _next_ordinal_to_read += 1;
6844 if next_offset >= end_offset {
6845 return Ok(());
6846 }
6847
6848 while _next_ordinal_to_read < 3 {
6850 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6851 _next_ordinal_to_read += 1;
6852 next_offset += envelope_size;
6853 }
6854
6855 let next_out_of_line = decoder.next_out_of_line();
6856 let handles_before = decoder.remaining_handles();
6857 if let Some((inlined, num_bytes, num_handles)) =
6858 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6859 {
6860 let member_inline_size =
6861 <ConfigMutability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6862 if inlined != (member_inline_size <= 4) {
6863 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6864 }
6865 let inner_offset;
6866 let mut inner_depth = depth.clone();
6867 if inlined {
6868 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6869 inner_offset = next_offset;
6870 } else {
6871 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6872 inner_depth.increment()?;
6873 }
6874 let val_ref =
6875 self.mutability.get_or_insert_with(|| fidl::new_empty!(ConfigMutability, D));
6876 fidl::decode!(ConfigMutability, D, val_ref, decoder, inner_offset, inner_depth)?;
6877 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6878 {
6879 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6880 }
6881 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6882 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6883 }
6884 }
6885
6886 next_offset += envelope_size;
6887
6888 while next_offset < end_offset {
6890 _next_ordinal_to_read += 1;
6891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6892 next_offset += envelope_size;
6893 }
6894
6895 Ok(())
6896 }
6897 }
6898
6899 impl ConfigOverride {
6900 #[inline(always)]
6901 fn max_ordinal_present(&self) -> u64 {
6902 if let Some(_) = self.value {
6903 return 2;
6904 }
6905 if let Some(_) = self.key {
6906 return 1;
6907 }
6908 0
6909 }
6910 }
6911
6912 impl fidl::encoding::ValueTypeMarker for ConfigOverride {
6913 type Borrowed<'a> = &'a Self;
6914 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6915 value
6916 }
6917 }
6918
6919 unsafe impl fidl::encoding::TypeMarker for ConfigOverride {
6920 type Owned = Self;
6921
6922 #[inline(always)]
6923 fn inline_align(_context: fidl::encoding::Context) -> usize {
6924 8
6925 }
6926
6927 #[inline(always)]
6928 fn inline_size(_context: fidl::encoding::Context) -> usize {
6929 16
6930 }
6931 }
6932
6933 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigOverride, D>
6934 for &ConfigOverride
6935 {
6936 unsafe fn encode(
6937 self,
6938 encoder: &mut fidl::encoding::Encoder<'_, D>,
6939 offset: usize,
6940 mut depth: fidl::encoding::Depth,
6941 ) -> fidl::Result<()> {
6942 encoder.debug_check_bounds::<ConfigOverride>(offset);
6943 let max_ordinal: u64 = self.max_ordinal_present();
6945 encoder.write_num(max_ordinal, offset);
6946 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
6947 if max_ordinal == 0 {
6949 return Ok(());
6950 }
6951 depth.increment()?;
6952 let envelope_size = 8;
6953 let bytes_len = max_ordinal as usize * envelope_size;
6954 #[allow(unused_variables)]
6955 let offset = encoder.out_of_line_offset(bytes_len);
6956 let mut _prev_end_offset: usize = 0;
6957 if 1 > max_ordinal {
6958 return Ok(());
6959 }
6960
6961 let cur_offset: usize = (1 - 1) * envelope_size;
6964
6965 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6967
6968 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
6973 self.key.as_ref().map(
6974 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
6975 ),
6976 encoder,
6977 offset + cur_offset,
6978 depth,
6979 )?;
6980
6981 _prev_end_offset = cur_offset + envelope_size;
6982 if 2 > max_ordinal {
6983 return Ok(());
6984 }
6985
6986 let cur_offset: usize = (2 - 1) * envelope_size;
6989
6990 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
6992
6993 fidl::encoding::encode_in_envelope_optional::<ConfigValue, D>(
6998 self.value.as_ref().map(<ConfigValue as fidl::encoding::ValueTypeMarker>::borrow),
6999 encoder,
7000 offset + cur_offset,
7001 depth,
7002 )?;
7003
7004 _prev_end_offset = cur_offset + envelope_size;
7005
7006 Ok(())
7007 }
7008 }
7009
7010 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigOverride {
7011 #[inline(always)]
7012 fn new_empty() -> Self {
7013 Self::default()
7014 }
7015
7016 unsafe fn decode(
7017 &mut self,
7018 decoder: &mut fidl::encoding::Decoder<'_, D>,
7019 offset: usize,
7020 mut depth: fidl::encoding::Depth,
7021 ) -> fidl::Result<()> {
7022 decoder.debug_check_bounds::<Self>(offset);
7023 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7024 None => return Err(fidl::Error::NotNullable),
7025 Some(len) => len,
7026 };
7027 if len == 0 {
7029 return Ok(());
7030 };
7031 depth.increment()?;
7032 let envelope_size = 8;
7033 let bytes_len = len * envelope_size;
7034 let offset = decoder.out_of_line_offset(bytes_len)?;
7035 let mut _next_ordinal_to_read = 0;
7037 let mut next_offset = offset;
7038 let end_offset = offset + bytes_len;
7039 _next_ordinal_to_read += 1;
7040 if next_offset >= end_offset {
7041 return Ok(());
7042 }
7043
7044 while _next_ordinal_to_read < 1 {
7046 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7047 _next_ordinal_to_read += 1;
7048 next_offset += envelope_size;
7049 }
7050
7051 let next_out_of_line = decoder.next_out_of_line();
7052 let handles_before = decoder.remaining_handles();
7053 if let Some((inlined, num_bytes, num_handles)) =
7054 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7055 {
7056 let member_inline_size =
7057 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
7058 decoder.context,
7059 );
7060 if inlined != (member_inline_size <= 4) {
7061 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7062 }
7063 let inner_offset;
7064 let mut inner_depth = depth.clone();
7065 if inlined {
7066 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7067 inner_offset = next_offset;
7068 } else {
7069 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7070 inner_depth.increment()?;
7071 }
7072 let val_ref = self
7073 .key
7074 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
7075 fidl::decode!(
7076 fidl::encoding::BoundedString<64>,
7077 D,
7078 val_ref,
7079 decoder,
7080 inner_offset,
7081 inner_depth
7082 )?;
7083 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7084 {
7085 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7086 }
7087 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7088 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7089 }
7090 }
7091
7092 next_offset += envelope_size;
7093 _next_ordinal_to_read += 1;
7094 if next_offset >= end_offset {
7095 return Ok(());
7096 }
7097
7098 while _next_ordinal_to_read < 2 {
7100 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7101 _next_ordinal_to_read += 1;
7102 next_offset += envelope_size;
7103 }
7104
7105 let next_out_of_line = decoder.next_out_of_line();
7106 let handles_before = decoder.remaining_handles();
7107 if let Some((inlined, num_bytes, num_handles)) =
7108 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7109 {
7110 let member_inline_size =
7111 <ConfigValue as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7112 if inlined != (member_inline_size <= 4) {
7113 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7114 }
7115 let inner_offset;
7116 let mut inner_depth = depth.clone();
7117 if inlined {
7118 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7119 inner_offset = next_offset;
7120 } else {
7121 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7122 inner_depth.increment()?;
7123 }
7124 let val_ref = self.value.get_or_insert_with(|| fidl::new_empty!(ConfigValue, D));
7125 fidl::decode!(ConfigValue, D, val_ref, decoder, inner_offset, inner_depth)?;
7126 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7127 {
7128 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7129 }
7130 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7131 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7132 }
7133 }
7134
7135 next_offset += envelope_size;
7136
7137 while next_offset < end_offset {
7139 _next_ordinal_to_read += 1;
7140 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7141 next_offset += envelope_size;
7142 }
7143
7144 Ok(())
7145 }
7146 }
7147
7148 impl ConfigSchema {
7149 #[inline(always)]
7150 fn max_ordinal_present(&self) -> u64 {
7151 if let Some(_) = self.value_source {
7152 return 3;
7153 }
7154 if let Some(_) = self.checksum {
7155 return 2;
7156 }
7157 if let Some(_) = self.fields {
7158 return 1;
7159 }
7160 0
7161 }
7162 }
7163
7164 impl fidl::encoding::ValueTypeMarker for ConfigSchema {
7165 type Borrowed<'a> = &'a Self;
7166 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7167 value
7168 }
7169 }
7170
7171 unsafe impl fidl::encoding::TypeMarker for ConfigSchema {
7172 type Owned = Self;
7173
7174 #[inline(always)]
7175 fn inline_align(_context: fidl::encoding::Context) -> usize {
7176 8
7177 }
7178
7179 #[inline(always)]
7180 fn inline_size(_context: fidl::encoding::Context) -> usize {
7181 16
7182 }
7183 }
7184
7185 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigSchema, D>
7186 for &ConfigSchema
7187 {
7188 unsafe fn encode(
7189 self,
7190 encoder: &mut fidl::encoding::Encoder<'_, D>,
7191 offset: usize,
7192 mut depth: fidl::encoding::Depth,
7193 ) -> fidl::Result<()> {
7194 encoder.debug_check_bounds::<ConfigSchema>(offset);
7195 let max_ordinal: u64 = self.max_ordinal_present();
7197 encoder.write_num(max_ordinal, offset);
7198 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7199 if max_ordinal == 0 {
7201 return Ok(());
7202 }
7203 depth.increment()?;
7204 let envelope_size = 8;
7205 let bytes_len = max_ordinal as usize * envelope_size;
7206 #[allow(unused_variables)]
7207 let offset = encoder.out_of_line_offset(bytes_len);
7208 let mut _prev_end_offset: usize = 0;
7209 if 1 > max_ordinal {
7210 return Ok(());
7211 }
7212
7213 let cur_offset: usize = (1 - 1) * envelope_size;
7216
7217 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7219
7220 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ConfigField>, D>(
7225 self.fields.as_ref().map(<fidl::encoding::UnboundedVector<ConfigField> as fidl::encoding::ValueTypeMarker>::borrow),
7226 encoder, offset + cur_offset, depth
7227 )?;
7228
7229 _prev_end_offset = cur_offset + envelope_size;
7230 if 2 > max_ordinal {
7231 return Ok(());
7232 }
7233
7234 let cur_offset: usize = (2 - 1) * envelope_size;
7237
7238 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7240
7241 fidl::encoding::encode_in_envelope_optional::<ConfigChecksum, D>(
7246 self.checksum
7247 .as_ref()
7248 .map(<ConfigChecksum as fidl::encoding::ValueTypeMarker>::borrow),
7249 encoder,
7250 offset + cur_offset,
7251 depth,
7252 )?;
7253
7254 _prev_end_offset = cur_offset + envelope_size;
7255 if 3 > max_ordinal {
7256 return Ok(());
7257 }
7258
7259 let cur_offset: usize = (3 - 1) * envelope_size;
7262
7263 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7265
7266 fidl::encoding::encode_in_envelope_optional::<ConfigValueSource, D>(
7271 self.value_source
7272 .as_ref()
7273 .map(<ConfigValueSource as fidl::encoding::ValueTypeMarker>::borrow),
7274 encoder,
7275 offset + cur_offset,
7276 depth,
7277 )?;
7278
7279 _prev_end_offset = cur_offset + envelope_size;
7280
7281 Ok(())
7282 }
7283 }
7284
7285 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigSchema {
7286 #[inline(always)]
7287 fn new_empty() -> Self {
7288 Self::default()
7289 }
7290
7291 unsafe fn decode(
7292 &mut self,
7293 decoder: &mut fidl::encoding::Decoder<'_, D>,
7294 offset: usize,
7295 mut depth: fidl::encoding::Depth,
7296 ) -> fidl::Result<()> {
7297 decoder.debug_check_bounds::<Self>(offset);
7298 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7299 None => return Err(fidl::Error::NotNullable),
7300 Some(len) => len,
7301 };
7302 if len == 0 {
7304 return Ok(());
7305 };
7306 depth.increment()?;
7307 let envelope_size = 8;
7308 let bytes_len = len * envelope_size;
7309 let offset = decoder.out_of_line_offset(bytes_len)?;
7310 let mut _next_ordinal_to_read = 0;
7312 let mut next_offset = offset;
7313 let end_offset = offset + bytes_len;
7314 _next_ordinal_to_read += 1;
7315 if next_offset >= end_offset {
7316 return Ok(());
7317 }
7318
7319 while _next_ordinal_to_read < 1 {
7321 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7322 _next_ordinal_to_read += 1;
7323 next_offset += envelope_size;
7324 }
7325
7326 let next_out_of_line = decoder.next_out_of_line();
7327 let handles_before = decoder.remaining_handles();
7328 if let Some((inlined, num_bytes, num_handles)) =
7329 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7330 {
7331 let member_inline_size = <fidl::encoding::UnboundedVector<ConfigField> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7332 if inlined != (member_inline_size <= 4) {
7333 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7334 }
7335 let inner_offset;
7336 let mut inner_depth = depth.clone();
7337 if inlined {
7338 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7339 inner_offset = next_offset;
7340 } else {
7341 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7342 inner_depth.increment()?;
7343 }
7344 let val_ref = self.fields.get_or_insert_with(|| {
7345 fidl::new_empty!(fidl::encoding::UnboundedVector<ConfigField>, D)
7346 });
7347 fidl::decode!(
7348 fidl::encoding::UnboundedVector<ConfigField>,
7349 D,
7350 val_ref,
7351 decoder,
7352 inner_offset,
7353 inner_depth
7354 )?;
7355 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7356 {
7357 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7358 }
7359 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7360 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7361 }
7362 }
7363
7364 next_offset += envelope_size;
7365 _next_ordinal_to_read += 1;
7366 if next_offset >= end_offset {
7367 return Ok(());
7368 }
7369
7370 while _next_ordinal_to_read < 2 {
7372 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7373 _next_ordinal_to_read += 1;
7374 next_offset += envelope_size;
7375 }
7376
7377 let next_out_of_line = decoder.next_out_of_line();
7378 let handles_before = decoder.remaining_handles();
7379 if let Some((inlined, num_bytes, num_handles)) =
7380 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7381 {
7382 let member_inline_size =
7383 <ConfigChecksum as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7384 if inlined != (member_inline_size <= 4) {
7385 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7386 }
7387 let inner_offset;
7388 let mut inner_depth = depth.clone();
7389 if inlined {
7390 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7391 inner_offset = next_offset;
7392 } else {
7393 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7394 inner_depth.increment()?;
7395 }
7396 let val_ref =
7397 self.checksum.get_or_insert_with(|| fidl::new_empty!(ConfigChecksum, D));
7398 fidl::decode!(ConfigChecksum, D, val_ref, decoder, inner_offset, inner_depth)?;
7399 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7400 {
7401 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7402 }
7403 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7404 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7405 }
7406 }
7407
7408 next_offset += envelope_size;
7409 _next_ordinal_to_read += 1;
7410 if next_offset >= end_offset {
7411 return Ok(());
7412 }
7413
7414 while _next_ordinal_to_read < 3 {
7416 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7417 _next_ordinal_to_read += 1;
7418 next_offset += envelope_size;
7419 }
7420
7421 let next_out_of_line = decoder.next_out_of_line();
7422 let handles_before = decoder.remaining_handles();
7423 if let Some((inlined, num_bytes, num_handles)) =
7424 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7425 {
7426 let member_inline_size =
7427 <ConfigValueSource as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7428 if inlined != (member_inline_size <= 4) {
7429 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7430 }
7431 let inner_offset;
7432 let mut inner_depth = depth.clone();
7433 if inlined {
7434 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7435 inner_offset = next_offset;
7436 } else {
7437 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7438 inner_depth.increment()?;
7439 }
7440 let val_ref =
7441 self.value_source.get_or_insert_with(|| fidl::new_empty!(ConfigValueSource, D));
7442 fidl::decode!(ConfigValueSource, D, val_ref, decoder, inner_offset, inner_depth)?;
7443 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7444 {
7445 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7446 }
7447 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7448 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7449 }
7450 }
7451
7452 next_offset += envelope_size;
7453
7454 while next_offset < end_offset {
7456 _next_ordinal_to_read += 1;
7457 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7458 next_offset += envelope_size;
7459 }
7460
7461 Ok(())
7462 }
7463 }
7464
7465 impl ConfigSourceCapabilities {
7466 #[inline(always)]
7467 fn max_ordinal_present(&self) -> u64 {
7468 0
7469 }
7470 }
7471
7472 impl fidl::encoding::ValueTypeMarker for ConfigSourceCapabilities {
7473 type Borrowed<'a> = &'a Self;
7474 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7475 value
7476 }
7477 }
7478
7479 unsafe impl fidl::encoding::TypeMarker for ConfigSourceCapabilities {
7480 type Owned = Self;
7481
7482 #[inline(always)]
7483 fn inline_align(_context: fidl::encoding::Context) -> usize {
7484 8
7485 }
7486
7487 #[inline(always)]
7488 fn inline_size(_context: fidl::encoding::Context) -> usize {
7489 16
7490 }
7491 }
7492
7493 unsafe impl<D: fidl::encoding::ResourceDialect>
7494 fidl::encoding::Encode<ConfigSourceCapabilities, D> for &ConfigSourceCapabilities
7495 {
7496 unsafe fn encode(
7497 self,
7498 encoder: &mut fidl::encoding::Encoder<'_, D>,
7499 offset: usize,
7500 mut depth: fidl::encoding::Depth,
7501 ) -> fidl::Result<()> {
7502 encoder.debug_check_bounds::<ConfigSourceCapabilities>(offset);
7503 let max_ordinal: u64 = self.max_ordinal_present();
7505 encoder.write_num(max_ordinal, offset);
7506 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7507 if max_ordinal == 0 {
7509 return Ok(());
7510 }
7511 depth.increment()?;
7512 let envelope_size = 8;
7513 let bytes_len = max_ordinal as usize * envelope_size;
7514 #[allow(unused_variables)]
7515 let offset = encoder.out_of_line_offset(bytes_len);
7516 let mut _prev_end_offset: usize = 0;
7517
7518 Ok(())
7519 }
7520 }
7521
7522 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7523 for ConfigSourceCapabilities
7524 {
7525 #[inline(always)]
7526 fn new_empty() -> Self {
7527 Self::default()
7528 }
7529
7530 unsafe fn decode(
7531 &mut self,
7532 decoder: &mut fidl::encoding::Decoder<'_, D>,
7533 offset: usize,
7534 mut depth: fidl::encoding::Depth,
7535 ) -> fidl::Result<()> {
7536 decoder.debug_check_bounds::<Self>(offset);
7537 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7538 None => return Err(fidl::Error::NotNullable),
7539 Some(len) => len,
7540 };
7541 if len == 0 {
7543 return Ok(());
7544 };
7545 depth.increment()?;
7546 let envelope_size = 8;
7547 let bytes_len = len * envelope_size;
7548 let offset = decoder.out_of_line_offset(bytes_len)?;
7549 let mut _next_ordinal_to_read = 0;
7551 let mut next_offset = offset;
7552 let end_offset = offset + bytes_len;
7553
7554 while next_offset < end_offset {
7556 _next_ordinal_to_read += 1;
7557 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7558 next_offset += envelope_size;
7559 }
7560
7561 Ok(())
7562 }
7563 }
7564
7565 impl ConfigValueSpec {
7566 #[inline(always)]
7567 fn max_ordinal_present(&self) -> u64 {
7568 if let Some(_) = self.value {
7569 return 1;
7570 }
7571 0
7572 }
7573 }
7574
7575 impl fidl::encoding::ValueTypeMarker for ConfigValueSpec {
7576 type Borrowed<'a> = &'a Self;
7577 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7578 value
7579 }
7580 }
7581
7582 unsafe impl fidl::encoding::TypeMarker for ConfigValueSpec {
7583 type Owned = Self;
7584
7585 #[inline(always)]
7586 fn inline_align(_context: fidl::encoding::Context) -> usize {
7587 8
7588 }
7589
7590 #[inline(always)]
7591 fn inline_size(_context: fidl::encoding::Context) -> usize {
7592 16
7593 }
7594 }
7595
7596 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValueSpec, D>
7597 for &ConfigValueSpec
7598 {
7599 unsafe fn encode(
7600 self,
7601 encoder: &mut fidl::encoding::Encoder<'_, D>,
7602 offset: usize,
7603 mut depth: fidl::encoding::Depth,
7604 ) -> fidl::Result<()> {
7605 encoder.debug_check_bounds::<ConfigValueSpec>(offset);
7606 let max_ordinal: u64 = self.max_ordinal_present();
7608 encoder.write_num(max_ordinal, offset);
7609 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7610 if max_ordinal == 0 {
7612 return Ok(());
7613 }
7614 depth.increment()?;
7615 let envelope_size = 8;
7616 let bytes_len = max_ordinal as usize * envelope_size;
7617 #[allow(unused_variables)]
7618 let offset = encoder.out_of_line_offset(bytes_len);
7619 let mut _prev_end_offset: usize = 0;
7620 if 1 > max_ordinal {
7621 return Ok(());
7622 }
7623
7624 let cur_offset: usize = (1 - 1) * envelope_size;
7627
7628 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7630
7631 fidl::encoding::encode_in_envelope_optional::<ConfigValue, D>(
7636 self.value.as_ref().map(<ConfigValue as fidl::encoding::ValueTypeMarker>::borrow),
7637 encoder,
7638 offset + cur_offset,
7639 depth,
7640 )?;
7641
7642 _prev_end_offset = cur_offset + envelope_size;
7643
7644 Ok(())
7645 }
7646 }
7647
7648 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValueSpec {
7649 #[inline(always)]
7650 fn new_empty() -> Self {
7651 Self::default()
7652 }
7653
7654 unsafe fn decode(
7655 &mut self,
7656 decoder: &mut fidl::encoding::Decoder<'_, D>,
7657 offset: usize,
7658 mut depth: fidl::encoding::Depth,
7659 ) -> fidl::Result<()> {
7660 decoder.debug_check_bounds::<Self>(offset);
7661 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7662 None => return Err(fidl::Error::NotNullable),
7663 Some(len) => len,
7664 };
7665 if len == 0 {
7667 return Ok(());
7668 };
7669 depth.increment()?;
7670 let envelope_size = 8;
7671 let bytes_len = len * envelope_size;
7672 let offset = decoder.out_of_line_offset(bytes_len)?;
7673 let mut _next_ordinal_to_read = 0;
7675 let mut next_offset = offset;
7676 let end_offset = offset + bytes_len;
7677 _next_ordinal_to_read += 1;
7678 if next_offset >= end_offset {
7679 return Ok(());
7680 }
7681
7682 while _next_ordinal_to_read < 1 {
7684 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7685 _next_ordinal_to_read += 1;
7686 next_offset += envelope_size;
7687 }
7688
7689 let next_out_of_line = decoder.next_out_of_line();
7690 let handles_before = decoder.remaining_handles();
7691 if let Some((inlined, num_bytes, num_handles)) =
7692 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7693 {
7694 let member_inline_size =
7695 <ConfigValue as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7696 if inlined != (member_inline_size <= 4) {
7697 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7698 }
7699 let inner_offset;
7700 let mut inner_depth = depth.clone();
7701 if inlined {
7702 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7703 inner_offset = next_offset;
7704 } else {
7705 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7706 inner_depth.increment()?;
7707 }
7708 let val_ref = self.value.get_or_insert_with(|| fidl::new_empty!(ConfigValue, D));
7709 fidl::decode!(ConfigValue, D, val_ref, decoder, inner_offset, inner_depth)?;
7710 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7711 {
7712 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7713 }
7714 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7715 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7716 }
7717 }
7718
7719 next_offset += envelope_size;
7720
7721 while next_offset < end_offset {
7723 _next_ordinal_to_read += 1;
7724 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7725 next_offset += envelope_size;
7726 }
7727
7728 Ok(())
7729 }
7730 }
7731
7732 impl ConfigValuesData {
7733 #[inline(always)]
7734 fn max_ordinal_present(&self) -> u64 {
7735 if let Some(_) = self.checksum {
7736 return 2;
7737 }
7738 if let Some(_) = self.values {
7739 return 1;
7740 }
7741 0
7742 }
7743 }
7744
7745 impl fidl::encoding::ValueTypeMarker for ConfigValuesData {
7746 type Borrowed<'a> = &'a Self;
7747 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7748 value
7749 }
7750 }
7751
7752 unsafe impl fidl::encoding::TypeMarker for ConfigValuesData {
7753 type Owned = Self;
7754
7755 #[inline(always)]
7756 fn inline_align(_context: fidl::encoding::Context) -> usize {
7757 8
7758 }
7759
7760 #[inline(always)]
7761 fn inline_size(_context: fidl::encoding::Context) -> usize {
7762 16
7763 }
7764 }
7765
7766 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValuesData, D>
7767 for &ConfigValuesData
7768 {
7769 unsafe fn encode(
7770 self,
7771 encoder: &mut fidl::encoding::Encoder<'_, D>,
7772 offset: usize,
7773 mut depth: fidl::encoding::Depth,
7774 ) -> fidl::Result<()> {
7775 encoder.debug_check_bounds::<ConfigValuesData>(offset);
7776 let max_ordinal: u64 = self.max_ordinal_present();
7778 encoder.write_num(max_ordinal, offset);
7779 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
7780 if max_ordinal == 0 {
7782 return Ok(());
7783 }
7784 depth.increment()?;
7785 let envelope_size = 8;
7786 let bytes_len = max_ordinal as usize * envelope_size;
7787 #[allow(unused_variables)]
7788 let offset = encoder.out_of_line_offset(bytes_len);
7789 let mut _prev_end_offset: usize = 0;
7790 if 1 > max_ordinal {
7791 return Ok(());
7792 }
7793
7794 let cur_offset: usize = (1 - 1) * envelope_size;
7797
7798 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7800
7801 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ConfigValueSpec>, D>(
7806 self.values.as_ref().map(<fidl::encoding::UnboundedVector<ConfigValueSpec> as fidl::encoding::ValueTypeMarker>::borrow),
7807 encoder, offset + cur_offset, depth
7808 )?;
7809
7810 _prev_end_offset = cur_offset + envelope_size;
7811 if 2 > max_ordinal {
7812 return Ok(());
7813 }
7814
7815 let cur_offset: usize = (2 - 1) * envelope_size;
7818
7819 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
7821
7822 fidl::encoding::encode_in_envelope_optional::<ConfigChecksum, D>(
7827 self.checksum
7828 .as_ref()
7829 .map(<ConfigChecksum as fidl::encoding::ValueTypeMarker>::borrow),
7830 encoder,
7831 offset + cur_offset,
7832 depth,
7833 )?;
7834
7835 _prev_end_offset = cur_offset + envelope_size;
7836
7837 Ok(())
7838 }
7839 }
7840
7841 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValuesData {
7842 #[inline(always)]
7843 fn new_empty() -> Self {
7844 Self::default()
7845 }
7846
7847 unsafe fn decode(
7848 &mut self,
7849 decoder: &mut fidl::encoding::Decoder<'_, D>,
7850 offset: usize,
7851 mut depth: fidl::encoding::Depth,
7852 ) -> fidl::Result<()> {
7853 decoder.debug_check_bounds::<Self>(offset);
7854 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
7855 None => return Err(fidl::Error::NotNullable),
7856 Some(len) => len,
7857 };
7858 if len == 0 {
7860 return Ok(());
7861 };
7862 depth.increment()?;
7863 let envelope_size = 8;
7864 let bytes_len = len * envelope_size;
7865 let offset = decoder.out_of_line_offset(bytes_len)?;
7866 let mut _next_ordinal_to_read = 0;
7868 let mut next_offset = offset;
7869 let end_offset = offset + bytes_len;
7870 _next_ordinal_to_read += 1;
7871 if next_offset >= end_offset {
7872 return Ok(());
7873 }
7874
7875 while _next_ordinal_to_read < 1 {
7877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7878 _next_ordinal_to_read += 1;
7879 next_offset += envelope_size;
7880 }
7881
7882 let next_out_of_line = decoder.next_out_of_line();
7883 let handles_before = decoder.remaining_handles();
7884 if let Some((inlined, num_bytes, num_handles)) =
7885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7886 {
7887 let member_inline_size = <fidl::encoding::UnboundedVector<ConfigValueSpec> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7888 if inlined != (member_inline_size <= 4) {
7889 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7890 }
7891 let inner_offset;
7892 let mut inner_depth = depth.clone();
7893 if inlined {
7894 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7895 inner_offset = next_offset;
7896 } else {
7897 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7898 inner_depth.increment()?;
7899 }
7900 let val_ref = self.values.get_or_insert_with(|| {
7901 fidl::new_empty!(fidl::encoding::UnboundedVector<ConfigValueSpec>, D)
7902 });
7903 fidl::decode!(
7904 fidl::encoding::UnboundedVector<ConfigValueSpec>,
7905 D,
7906 val_ref,
7907 decoder,
7908 inner_offset,
7909 inner_depth
7910 )?;
7911 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7912 {
7913 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7914 }
7915 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7916 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7917 }
7918 }
7919
7920 next_offset += envelope_size;
7921 _next_ordinal_to_read += 1;
7922 if next_offset >= end_offset {
7923 return Ok(());
7924 }
7925
7926 while _next_ordinal_to_read < 2 {
7928 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7929 _next_ordinal_to_read += 1;
7930 next_offset += envelope_size;
7931 }
7932
7933 let next_out_of_line = decoder.next_out_of_line();
7934 let handles_before = decoder.remaining_handles();
7935 if let Some((inlined, num_bytes, num_handles)) =
7936 fidl::encoding::decode_envelope_header(decoder, next_offset)?
7937 {
7938 let member_inline_size =
7939 <ConfigChecksum as fidl::encoding::TypeMarker>::inline_size(decoder.context);
7940 if inlined != (member_inline_size <= 4) {
7941 return Err(fidl::Error::InvalidInlineBitInEnvelope);
7942 }
7943 let inner_offset;
7944 let mut inner_depth = depth.clone();
7945 if inlined {
7946 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
7947 inner_offset = next_offset;
7948 } else {
7949 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
7950 inner_depth.increment()?;
7951 }
7952 let val_ref =
7953 self.checksum.get_or_insert_with(|| fidl::new_empty!(ConfigChecksum, D));
7954 fidl::decode!(ConfigChecksum, D, val_ref, decoder, inner_offset, inner_depth)?;
7955 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
7956 {
7957 return Err(fidl::Error::InvalidNumBytesInEnvelope);
7958 }
7959 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
7960 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
7961 }
7962 }
7963
7964 next_offset += envelope_size;
7965
7966 while next_offset < end_offset {
7968 _next_ordinal_to_read += 1;
7969 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
7970 next_offset += envelope_size;
7971 }
7972
7973 Ok(())
7974 }
7975 }
7976
7977 impl Configuration {
7978 #[inline(always)]
7979 fn max_ordinal_present(&self) -> u64 {
7980 if let Some(_) = self.value {
7981 return 2;
7982 }
7983 if let Some(_) = self.name {
7984 return 1;
7985 }
7986 0
7987 }
7988 }
7989
7990 impl fidl::encoding::ValueTypeMarker for Configuration {
7991 type Borrowed<'a> = &'a Self;
7992 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7993 value
7994 }
7995 }
7996
7997 unsafe impl fidl::encoding::TypeMarker for Configuration {
7998 type Owned = Self;
7999
8000 #[inline(always)]
8001 fn inline_align(_context: fidl::encoding::Context) -> usize {
8002 8
8003 }
8004
8005 #[inline(always)]
8006 fn inline_size(_context: fidl::encoding::Context) -> usize {
8007 16
8008 }
8009 }
8010
8011 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Configuration, D>
8012 for &Configuration
8013 {
8014 unsafe fn encode(
8015 self,
8016 encoder: &mut fidl::encoding::Encoder<'_, D>,
8017 offset: usize,
8018 mut depth: fidl::encoding::Depth,
8019 ) -> fidl::Result<()> {
8020 encoder.debug_check_bounds::<Configuration>(offset);
8021 let max_ordinal: u64 = self.max_ordinal_present();
8023 encoder.write_num(max_ordinal, offset);
8024 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8025 if max_ordinal == 0 {
8027 return Ok(());
8028 }
8029 depth.increment()?;
8030 let envelope_size = 8;
8031 let bytes_len = max_ordinal as usize * envelope_size;
8032 #[allow(unused_variables)]
8033 let offset = encoder.out_of_line_offset(bytes_len);
8034 let mut _prev_end_offset: usize = 0;
8035 if 1 > max_ordinal {
8036 return Ok(());
8037 }
8038
8039 let cur_offset: usize = (1 - 1) * envelope_size;
8042
8043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8045
8046 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
8051 self.name.as_ref().map(
8052 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
8053 ),
8054 encoder,
8055 offset + cur_offset,
8056 depth,
8057 )?;
8058
8059 _prev_end_offset = cur_offset + envelope_size;
8060 if 2 > max_ordinal {
8061 return Ok(());
8062 }
8063
8064 let cur_offset: usize = (2 - 1) * envelope_size;
8067
8068 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8070
8071 fidl::encoding::encode_in_envelope_optional::<ConfigValue, D>(
8076 self.value.as_ref().map(<ConfigValue as fidl::encoding::ValueTypeMarker>::borrow),
8077 encoder,
8078 offset + cur_offset,
8079 depth,
8080 )?;
8081
8082 _prev_end_offset = cur_offset + envelope_size;
8083
8084 Ok(())
8085 }
8086 }
8087
8088 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Configuration {
8089 #[inline(always)]
8090 fn new_empty() -> Self {
8091 Self::default()
8092 }
8093
8094 unsafe fn decode(
8095 &mut self,
8096 decoder: &mut fidl::encoding::Decoder<'_, D>,
8097 offset: usize,
8098 mut depth: fidl::encoding::Depth,
8099 ) -> fidl::Result<()> {
8100 decoder.debug_check_bounds::<Self>(offset);
8101 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8102 None => return Err(fidl::Error::NotNullable),
8103 Some(len) => len,
8104 };
8105 if len == 0 {
8107 return Ok(());
8108 };
8109 depth.increment()?;
8110 let envelope_size = 8;
8111 let bytes_len = len * envelope_size;
8112 let offset = decoder.out_of_line_offset(bytes_len)?;
8113 let mut _next_ordinal_to_read = 0;
8115 let mut next_offset = offset;
8116 let end_offset = offset + bytes_len;
8117 _next_ordinal_to_read += 1;
8118 if next_offset >= end_offset {
8119 return Ok(());
8120 }
8121
8122 while _next_ordinal_to_read < 1 {
8124 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8125 _next_ordinal_to_read += 1;
8126 next_offset += envelope_size;
8127 }
8128
8129 let next_out_of_line = decoder.next_out_of_line();
8130 let handles_before = decoder.remaining_handles();
8131 if let Some((inlined, num_bytes, num_handles)) =
8132 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8133 {
8134 let member_inline_size =
8135 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
8136 decoder.context,
8137 );
8138 if inlined != (member_inline_size <= 4) {
8139 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8140 }
8141 let inner_offset;
8142 let mut inner_depth = depth.clone();
8143 if inlined {
8144 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8145 inner_offset = next_offset;
8146 } else {
8147 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8148 inner_depth.increment()?;
8149 }
8150 let val_ref = self
8151 .name
8152 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
8153 fidl::decode!(
8154 fidl::encoding::BoundedString<100>,
8155 D,
8156 val_ref,
8157 decoder,
8158 inner_offset,
8159 inner_depth
8160 )?;
8161 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8162 {
8163 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8164 }
8165 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8166 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8167 }
8168 }
8169
8170 next_offset += envelope_size;
8171 _next_ordinal_to_read += 1;
8172 if next_offset >= end_offset {
8173 return Ok(());
8174 }
8175
8176 while _next_ordinal_to_read < 2 {
8178 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8179 _next_ordinal_to_read += 1;
8180 next_offset += envelope_size;
8181 }
8182
8183 let next_out_of_line = decoder.next_out_of_line();
8184 let handles_before = decoder.remaining_handles();
8185 if let Some((inlined, num_bytes, num_handles)) =
8186 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8187 {
8188 let member_inline_size =
8189 <ConfigValue as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8190 if inlined != (member_inline_size <= 4) {
8191 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8192 }
8193 let inner_offset;
8194 let mut inner_depth = depth.clone();
8195 if inlined {
8196 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8197 inner_offset = next_offset;
8198 } else {
8199 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8200 inner_depth.increment()?;
8201 }
8202 let val_ref = self.value.get_or_insert_with(|| fidl::new_empty!(ConfigValue, D));
8203 fidl::decode!(ConfigValue, D, val_ref, decoder, inner_offset, inner_depth)?;
8204 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8205 {
8206 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8207 }
8208 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8209 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8210 }
8211 }
8212
8213 next_offset += envelope_size;
8214
8215 while next_offset < end_offset {
8217 _next_ordinal_to_read += 1;
8218 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8219 next_offset += envelope_size;
8220 }
8221
8222 Ok(())
8223 }
8224 }
8225
8226 impl DebugProtocolRegistration {
8227 #[inline(always)]
8228 fn max_ordinal_present(&self) -> u64 {
8229 if let Some(_) = self.target_name {
8230 return 3;
8231 }
8232 if let Some(_) = self.source_name {
8233 return 2;
8234 }
8235 if let Some(_) = self.source {
8236 return 1;
8237 }
8238 0
8239 }
8240 }
8241
8242 impl fidl::encoding::ValueTypeMarker for DebugProtocolRegistration {
8243 type Borrowed<'a> = &'a Self;
8244 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8245 value
8246 }
8247 }
8248
8249 unsafe impl fidl::encoding::TypeMarker for DebugProtocolRegistration {
8250 type Owned = Self;
8251
8252 #[inline(always)]
8253 fn inline_align(_context: fidl::encoding::Context) -> usize {
8254 8
8255 }
8256
8257 #[inline(always)]
8258 fn inline_size(_context: fidl::encoding::Context) -> usize {
8259 16
8260 }
8261 }
8262
8263 unsafe impl<D: fidl::encoding::ResourceDialect>
8264 fidl::encoding::Encode<DebugProtocolRegistration, D> for &DebugProtocolRegistration
8265 {
8266 unsafe fn encode(
8267 self,
8268 encoder: &mut fidl::encoding::Encoder<'_, D>,
8269 offset: usize,
8270 mut depth: fidl::encoding::Depth,
8271 ) -> fidl::Result<()> {
8272 encoder.debug_check_bounds::<DebugProtocolRegistration>(offset);
8273 let max_ordinal: u64 = self.max_ordinal_present();
8275 encoder.write_num(max_ordinal, offset);
8276 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8277 if max_ordinal == 0 {
8279 return Ok(());
8280 }
8281 depth.increment()?;
8282 let envelope_size = 8;
8283 let bytes_len = max_ordinal as usize * envelope_size;
8284 #[allow(unused_variables)]
8285 let offset = encoder.out_of_line_offset(bytes_len);
8286 let mut _prev_end_offset: usize = 0;
8287 if 1 > max_ordinal {
8288 return Ok(());
8289 }
8290
8291 let cur_offset: usize = (1 - 1) * envelope_size;
8294
8295 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8297
8298 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
8303 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
8304 encoder,
8305 offset + cur_offset,
8306 depth,
8307 )?;
8308
8309 _prev_end_offset = cur_offset + envelope_size;
8310 if 2 > max_ordinal {
8311 return Ok(());
8312 }
8313
8314 let cur_offset: usize = (2 - 1) * envelope_size;
8317
8318 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8320
8321 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
8326 self.source_name.as_ref().map(
8327 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
8328 ),
8329 encoder,
8330 offset + cur_offset,
8331 depth,
8332 )?;
8333
8334 _prev_end_offset = cur_offset + envelope_size;
8335 if 3 > max_ordinal {
8336 return Ok(());
8337 }
8338
8339 let cur_offset: usize = (3 - 1) * envelope_size;
8342
8343 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8345
8346 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
8351 self.target_name.as_ref().map(
8352 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
8353 ),
8354 encoder,
8355 offset + cur_offset,
8356 depth,
8357 )?;
8358
8359 _prev_end_offset = cur_offset + envelope_size;
8360
8361 Ok(())
8362 }
8363 }
8364
8365 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8366 for DebugProtocolRegistration
8367 {
8368 #[inline(always)]
8369 fn new_empty() -> Self {
8370 Self::default()
8371 }
8372
8373 unsafe fn decode(
8374 &mut self,
8375 decoder: &mut fidl::encoding::Decoder<'_, D>,
8376 offset: usize,
8377 mut depth: fidl::encoding::Depth,
8378 ) -> fidl::Result<()> {
8379 decoder.debug_check_bounds::<Self>(offset);
8380 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8381 None => return Err(fidl::Error::NotNullable),
8382 Some(len) => len,
8383 };
8384 if len == 0 {
8386 return Ok(());
8387 };
8388 depth.increment()?;
8389 let envelope_size = 8;
8390 let bytes_len = len * envelope_size;
8391 let offset = decoder.out_of_line_offset(bytes_len)?;
8392 let mut _next_ordinal_to_read = 0;
8394 let mut next_offset = offset;
8395 let end_offset = offset + bytes_len;
8396 _next_ordinal_to_read += 1;
8397 if next_offset >= end_offset {
8398 return Ok(());
8399 }
8400
8401 while _next_ordinal_to_read < 1 {
8403 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8404 _next_ordinal_to_read += 1;
8405 next_offset += envelope_size;
8406 }
8407
8408 let next_out_of_line = decoder.next_out_of_line();
8409 let handles_before = decoder.remaining_handles();
8410 if let Some((inlined, num_bytes, num_handles)) =
8411 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8412 {
8413 let member_inline_size =
8414 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8415 if inlined != (member_inline_size <= 4) {
8416 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8417 }
8418 let inner_offset;
8419 let mut inner_depth = depth.clone();
8420 if inlined {
8421 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8422 inner_offset = next_offset;
8423 } else {
8424 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8425 inner_depth.increment()?;
8426 }
8427 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
8428 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
8429 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8430 {
8431 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8432 }
8433 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8434 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8435 }
8436 }
8437
8438 next_offset += envelope_size;
8439 _next_ordinal_to_read += 1;
8440 if next_offset >= end_offset {
8441 return Ok(());
8442 }
8443
8444 while _next_ordinal_to_read < 2 {
8446 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8447 _next_ordinal_to_read += 1;
8448 next_offset += envelope_size;
8449 }
8450
8451 let next_out_of_line = decoder.next_out_of_line();
8452 let handles_before = decoder.remaining_handles();
8453 if let Some((inlined, num_bytes, num_handles)) =
8454 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8455 {
8456 let member_inline_size =
8457 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
8458 decoder.context,
8459 );
8460 if inlined != (member_inline_size <= 4) {
8461 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8462 }
8463 let inner_offset;
8464 let mut inner_depth = depth.clone();
8465 if inlined {
8466 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8467 inner_offset = next_offset;
8468 } else {
8469 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8470 inner_depth.increment()?;
8471 }
8472 let val_ref = self
8473 .source_name
8474 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
8475 fidl::decode!(
8476 fidl::encoding::BoundedString<100>,
8477 D,
8478 val_ref,
8479 decoder,
8480 inner_offset,
8481 inner_depth
8482 )?;
8483 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8484 {
8485 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8486 }
8487 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8488 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8489 }
8490 }
8491
8492 next_offset += envelope_size;
8493 _next_ordinal_to_read += 1;
8494 if next_offset >= end_offset {
8495 return Ok(());
8496 }
8497
8498 while _next_ordinal_to_read < 3 {
8500 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8501 _next_ordinal_to_read += 1;
8502 next_offset += envelope_size;
8503 }
8504
8505 let next_out_of_line = decoder.next_out_of_line();
8506 let handles_before = decoder.remaining_handles();
8507 if let Some((inlined, num_bytes, num_handles)) =
8508 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8509 {
8510 let member_inline_size =
8511 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
8512 decoder.context,
8513 );
8514 if inlined != (member_inline_size <= 4) {
8515 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8516 }
8517 let inner_offset;
8518 let mut inner_depth = depth.clone();
8519 if inlined {
8520 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8521 inner_offset = next_offset;
8522 } else {
8523 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8524 inner_depth.increment()?;
8525 }
8526 let val_ref = self
8527 .target_name
8528 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
8529 fidl::decode!(
8530 fidl::encoding::BoundedString<100>,
8531 D,
8532 val_ref,
8533 decoder,
8534 inner_offset,
8535 inner_depth
8536 )?;
8537 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8538 {
8539 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8540 }
8541 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8542 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8543 }
8544 }
8545
8546 next_offset += envelope_size;
8547
8548 while next_offset < end_offset {
8550 _next_ordinal_to_read += 1;
8551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8552 next_offset += envelope_size;
8553 }
8554
8555 Ok(())
8556 }
8557 }
8558
8559 impl Dictionary {
8560 #[inline(always)]
8561 fn max_ordinal_present(&self) -> u64 {
8562 if let Some(_) = self.source_path {
8563 return 4;
8564 }
8565 if let Some(_) = self.source_dictionary {
8566 return 3;
8567 }
8568 if let Some(_) = self.source {
8569 return 2;
8570 }
8571 if let Some(_) = self.name {
8572 return 1;
8573 }
8574 0
8575 }
8576 }
8577
8578 impl fidl::encoding::ValueTypeMarker for Dictionary {
8579 type Borrowed<'a> = &'a Self;
8580 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8581 value
8582 }
8583 }
8584
8585 unsafe impl fidl::encoding::TypeMarker for Dictionary {
8586 type Owned = Self;
8587
8588 #[inline(always)]
8589 fn inline_align(_context: fidl::encoding::Context) -> usize {
8590 8
8591 }
8592
8593 #[inline(always)]
8594 fn inline_size(_context: fidl::encoding::Context) -> usize {
8595 16
8596 }
8597 }
8598
8599 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Dictionary, D>
8600 for &Dictionary
8601 {
8602 unsafe fn encode(
8603 self,
8604 encoder: &mut fidl::encoding::Encoder<'_, D>,
8605 offset: usize,
8606 mut depth: fidl::encoding::Depth,
8607 ) -> fidl::Result<()> {
8608 encoder.debug_check_bounds::<Dictionary>(offset);
8609 let max_ordinal: u64 = self.max_ordinal_present();
8611 encoder.write_num(max_ordinal, offset);
8612 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
8613 if max_ordinal == 0 {
8615 return Ok(());
8616 }
8617 depth.increment()?;
8618 let envelope_size = 8;
8619 let bytes_len = max_ordinal as usize * envelope_size;
8620 #[allow(unused_variables)]
8621 let offset = encoder.out_of_line_offset(bytes_len);
8622 let mut _prev_end_offset: usize = 0;
8623 if 1 > max_ordinal {
8624 return Ok(());
8625 }
8626
8627 let cur_offset: usize = (1 - 1) * envelope_size;
8630
8631 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8633
8634 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
8639 self.name.as_ref().map(
8640 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
8641 ),
8642 encoder,
8643 offset + cur_offset,
8644 depth,
8645 )?;
8646
8647 _prev_end_offset = cur_offset + envelope_size;
8648 if 2 > max_ordinal {
8649 return Ok(());
8650 }
8651
8652 let cur_offset: usize = (2 - 1) * envelope_size;
8655
8656 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8658
8659 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
8664 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
8665 encoder,
8666 offset + cur_offset,
8667 depth,
8668 )?;
8669
8670 _prev_end_offset = cur_offset + envelope_size;
8671 if 3 > max_ordinal {
8672 return Ok(());
8673 }
8674
8675 let cur_offset: usize = (3 - 1) * envelope_size;
8678
8679 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8681
8682 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
8687 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
8688 encoder, offset + cur_offset, depth
8689 )?;
8690
8691 _prev_end_offset = cur_offset + envelope_size;
8692 if 4 > max_ordinal {
8693 return Ok(());
8694 }
8695
8696 let cur_offset: usize = (4 - 1) * envelope_size;
8699
8700 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
8702
8703 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
8708 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
8709 encoder, offset + cur_offset, depth
8710 )?;
8711
8712 _prev_end_offset = cur_offset + envelope_size;
8713
8714 Ok(())
8715 }
8716 }
8717
8718 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Dictionary {
8719 #[inline(always)]
8720 fn new_empty() -> Self {
8721 Self::default()
8722 }
8723
8724 unsafe fn decode(
8725 &mut self,
8726 decoder: &mut fidl::encoding::Decoder<'_, D>,
8727 offset: usize,
8728 mut depth: fidl::encoding::Depth,
8729 ) -> fidl::Result<()> {
8730 decoder.debug_check_bounds::<Self>(offset);
8731 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
8732 None => return Err(fidl::Error::NotNullable),
8733 Some(len) => len,
8734 };
8735 if len == 0 {
8737 return Ok(());
8738 };
8739 depth.increment()?;
8740 let envelope_size = 8;
8741 let bytes_len = len * envelope_size;
8742 let offset = decoder.out_of_line_offset(bytes_len)?;
8743 let mut _next_ordinal_to_read = 0;
8745 let mut next_offset = offset;
8746 let end_offset = offset + bytes_len;
8747 _next_ordinal_to_read += 1;
8748 if next_offset >= end_offset {
8749 return Ok(());
8750 }
8751
8752 while _next_ordinal_to_read < 1 {
8754 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8755 _next_ordinal_to_read += 1;
8756 next_offset += envelope_size;
8757 }
8758
8759 let next_out_of_line = decoder.next_out_of_line();
8760 let handles_before = decoder.remaining_handles();
8761 if let Some((inlined, num_bytes, num_handles)) =
8762 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8763 {
8764 let member_inline_size =
8765 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
8766 decoder.context,
8767 );
8768 if inlined != (member_inline_size <= 4) {
8769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8770 }
8771 let inner_offset;
8772 let mut inner_depth = depth.clone();
8773 if inlined {
8774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8775 inner_offset = next_offset;
8776 } else {
8777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8778 inner_depth.increment()?;
8779 }
8780 let val_ref = self
8781 .name
8782 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
8783 fidl::decode!(
8784 fidl::encoding::BoundedString<100>,
8785 D,
8786 val_ref,
8787 decoder,
8788 inner_offset,
8789 inner_depth
8790 )?;
8791 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8792 {
8793 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8794 }
8795 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8796 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8797 }
8798 }
8799
8800 next_offset += envelope_size;
8801 _next_ordinal_to_read += 1;
8802 if next_offset >= end_offset {
8803 return Ok(());
8804 }
8805
8806 while _next_ordinal_to_read < 2 {
8808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8809 _next_ordinal_to_read += 1;
8810 next_offset += envelope_size;
8811 }
8812
8813 let next_out_of_line = decoder.next_out_of_line();
8814 let handles_before = decoder.remaining_handles();
8815 if let Some((inlined, num_bytes, num_handles)) =
8816 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8817 {
8818 let member_inline_size =
8819 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8820 if inlined != (member_inline_size <= 4) {
8821 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8822 }
8823 let inner_offset;
8824 let mut inner_depth = depth.clone();
8825 if inlined {
8826 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8827 inner_offset = next_offset;
8828 } else {
8829 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8830 inner_depth.increment()?;
8831 }
8832 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
8833 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
8834 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8835 {
8836 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8837 }
8838 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8839 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8840 }
8841 }
8842
8843 next_offset += envelope_size;
8844 _next_ordinal_to_read += 1;
8845 if next_offset >= end_offset {
8846 return Ok(());
8847 }
8848
8849 while _next_ordinal_to_read < 3 {
8851 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8852 _next_ordinal_to_read += 1;
8853 next_offset += envelope_size;
8854 }
8855
8856 let next_out_of_line = decoder.next_out_of_line();
8857 let handles_before = decoder.remaining_handles();
8858 if let Some((inlined, num_bytes, num_handles)) =
8859 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8860 {
8861 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8862 if inlined != (member_inline_size <= 4) {
8863 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8864 }
8865 let inner_offset;
8866 let mut inner_depth = depth.clone();
8867 if inlined {
8868 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8869 inner_offset = next_offset;
8870 } else {
8871 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8872 inner_depth.increment()?;
8873 }
8874 let val_ref = self.source_dictionary.get_or_insert_with(|| {
8875 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
8876 });
8877 fidl::decode!(
8878 fidl::encoding::BoundedString<1024>,
8879 D,
8880 val_ref,
8881 decoder,
8882 inner_offset,
8883 inner_depth
8884 )?;
8885 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8886 {
8887 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8888 }
8889 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8890 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8891 }
8892 }
8893
8894 next_offset += envelope_size;
8895 _next_ordinal_to_read += 1;
8896 if next_offset >= end_offset {
8897 return Ok(());
8898 }
8899
8900 while _next_ordinal_to_read < 4 {
8902 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8903 _next_ordinal_to_read += 1;
8904 next_offset += envelope_size;
8905 }
8906
8907 let next_out_of_line = decoder.next_out_of_line();
8908 let handles_before = decoder.remaining_handles();
8909 if let Some((inlined, num_bytes, num_handles)) =
8910 fidl::encoding::decode_envelope_header(decoder, next_offset)?
8911 {
8912 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
8913 if inlined != (member_inline_size <= 4) {
8914 return Err(fidl::Error::InvalidInlineBitInEnvelope);
8915 }
8916 let inner_offset;
8917 let mut inner_depth = depth.clone();
8918 if inlined {
8919 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
8920 inner_offset = next_offset;
8921 } else {
8922 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
8923 inner_depth.increment()?;
8924 }
8925 let val_ref = self.source_path.get_or_insert_with(|| {
8926 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
8927 });
8928 fidl::decode!(
8929 fidl::encoding::BoundedString<1024>,
8930 D,
8931 val_ref,
8932 decoder,
8933 inner_offset,
8934 inner_depth
8935 )?;
8936 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
8937 {
8938 return Err(fidl::Error::InvalidNumBytesInEnvelope);
8939 }
8940 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
8941 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
8942 }
8943 }
8944
8945 next_offset += envelope_size;
8946
8947 while next_offset < end_offset {
8949 _next_ordinal_to_read += 1;
8950 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
8951 next_offset += envelope_size;
8952 }
8953
8954 Ok(())
8955 }
8956 }
8957
8958 impl Directory {
8959 #[inline(always)]
8960 fn max_ordinal_present(&self) -> u64 {
8961 if let Some(_) = self.rights {
8962 return 3;
8963 }
8964 if let Some(_) = self.source_path {
8965 return 2;
8966 }
8967 if let Some(_) = self.name {
8968 return 1;
8969 }
8970 0
8971 }
8972 }
8973
8974 impl fidl::encoding::ValueTypeMarker for Directory {
8975 type Borrowed<'a> = &'a Self;
8976 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8977 value
8978 }
8979 }
8980
8981 unsafe impl fidl::encoding::TypeMarker for Directory {
8982 type Owned = Self;
8983
8984 #[inline(always)]
8985 fn inline_align(_context: fidl::encoding::Context) -> usize {
8986 8
8987 }
8988
8989 #[inline(always)]
8990 fn inline_size(_context: fidl::encoding::Context) -> usize {
8991 16
8992 }
8993 }
8994
8995 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Directory, D>
8996 for &Directory
8997 {
8998 unsafe fn encode(
8999 self,
9000 encoder: &mut fidl::encoding::Encoder<'_, D>,
9001 offset: usize,
9002 mut depth: fidl::encoding::Depth,
9003 ) -> fidl::Result<()> {
9004 encoder.debug_check_bounds::<Directory>(offset);
9005 let max_ordinal: u64 = self.max_ordinal_present();
9007 encoder.write_num(max_ordinal, offset);
9008 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9009 if max_ordinal == 0 {
9011 return Ok(());
9012 }
9013 depth.increment()?;
9014 let envelope_size = 8;
9015 let bytes_len = max_ordinal as usize * envelope_size;
9016 #[allow(unused_variables)]
9017 let offset = encoder.out_of_line_offset(bytes_len);
9018 let mut _prev_end_offset: usize = 0;
9019 if 1 > max_ordinal {
9020 return Ok(());
9021 }
9022
9023 let cur_offset: usize = (1 - 1) * envelope_size;
9026
9027 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9029
9030 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
9035 self.name.as_ref().map(
9036 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
9037 ),
9038 encoder,
9039 offset + cur_offset,
9040 depth,
9041 )?;
9042
9043 _prev_end_offset = cur_offset + envelope_size;
9044 if 2 > max_ordinal {
9045 return Ok(());
9046 }
9047
9048 let cur_offset: usize = (2 - 1) * envelope_size;
9051
9052 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9054
9055 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
9060 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
9061 encoder, offset + cur_offset, depth
9062 )?;
9063
9064 _prev_end_offset = cur_offset + envelope_size;
9065 if 3 > max_ordinal {
9066 return Ok(());
9067 }
9068
9069 let cur_offset: usize = (3 - 1) * envelope_size;
9072
9073 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9075
9076 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io__common::Operations, D>(
9081 self.rights.as_ref().map(<fidl_fuchsia_io__common::Operations as fidl::encoding::ValueTypeMarker>::borrow),
9082 encoder, offset + cur_offset, depth
9083 )?;
9084
9085 _prev_end_offset = cur_offset + envelope_size;
9086
9087 Ok(())
9088 }
9089 }
9090
9091 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Directory {
9092 #[inline(always)]
9093 fn new_empty() -> Self {
9094 Self::default()
9095 }
9096
9097 unsafe fn decode(
9098 &mut self,
9099 decoder: &mut fidl::encoding::Decoder<'_, D>,
9100 offset: usize,
9101 mut depth: fidl::encoding::Depth,
9102 ) -> fidl::Result<()> {
9103 decoder.debug_check_bounds::<Self>(offset);
9104 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9105 None => return Err(fidl::Error::NotNullable),
9106 Some(len) => len,
9107 };
9108 if len == 0 {
9110 return Ok(());
9111 };
9112 depth.increment()?;
9113 let envelope_size = 8;
9114 let bytes_len = len * envelope_size;
9115 let offset = decoder.out_of_line_offset(bytes_len)?;
9116 let mut _next_ordinal_to_read = 0;
9118 let mut next_offset = offset;
9119 let end_offset = offset + bytes_len;
9120 _next_ordinal_to_read += 1;
9121 if next_offset >= end_offset {
9122 return Ok(());
9123 }
9124
9125 while _next_ordinal_to_read < 1 {
9127 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9128 _next_ordinal_to_read += 1;
9129 next_offset += envelope_size;
9130 }
9131
9132 let next_out_of_line = decoder.next_out_of_line();
9133 let handles_before = decoder.remaining_handles();
9134 if let Some((inlined, num_bytes, num_handles)) =
9135 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9136 {
9137 let member_inline_size =
9138 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
9139 decoder.context,
9140 );
9141 if inlined != (member_inline_size <= 4) {
9142 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9143 }
9144 let inner_offset;
9145 let mut inner_depth = depth.clone();
9146 if inlined {
9147 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9148 inner_offset = next_offset;
9149 } else {
9150 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9151 inner_depth.increment()?;
9152 }
9153 let val_ref = self
9154 .name
9155 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
9156 fidl::decode!(
9157 fidl::encoding::BoundedString<100>,
9158 D,
9159 val_ref,
9160 decoder,
9161 inner_offset,
9162 inner_depth
9163 )?;
9164 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9165 {
9166 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9167 }
9168 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9169 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9170 }
9171 }
9172
9173 next_offset += envelope_size;
9174 _next_ordinal_to_read += 1;
9175 if next_offset >= end_offset {
9176 return Ok(());
9177 }
9178
9179 while _next_ordinal_to_read < 2 {
9181 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9182 _next_ordinal_to_read += 1;
9183 next_offset += envelope_size;
9184 }
9185
9186 let next_out_of_line = decoder.next_out_of_line();
9187 let handles_before = decoder.remaining_handles();
9188 if let Some((inlined, num_bytes, num_handles)) =
9189 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9190 {
9191 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9192 if inlined != (member_inline_size <= 4) {
9193 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9194 }
9195 let inner_offset;
9196 let mut inner_depth = depth.clone();
9197 if inlined {
9198 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9199 inner_offset = next_offset;
9200 } else {
9201 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9202 inner_depth.increment()?;
9203 }
9204 let val_ref = self.source_path.get_or_insert_with(|| {
9205 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
9206 });
9207 fidl::decode!(
9208 fidl::encoding::BoundedString<1024>,
9209 D,
9210 val_ref,
9211 decoder,
9212 inner_offset,
9213 inner_depth
9214 )?;
9215 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9216 {
9217 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9218 }
9219 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9220 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9221 }
9222 }
9223
9224 next_offset += envelope_size;
9225 _next_ordinal_to_read += 1;
9226 if next_offset >= end_offset {
9227 return Ok(());
9228 }
9229
9230 while _next_ordinal_to_read < 3 {
9232 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9233 _next_ordinal_to_read += 1;
9234 next_offset += envelope_size;
9235 }
9236
9237 let next_out_of_line = decoder.next_out_of_line();
9238 let handles_before = decoder.remaining_handles();
9239 if let Some((inlined, num_bytes, num_handles)) =
9240 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9241 {
9242 let member_inline_size = <fidl_fuchsia_io__common::Operations as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9243 if inlined != (member_inline_size <= 4) {
9244 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9245 }
9246 let inner_offset;
9247 let mut inner_depth = depth.clone();
9248 if inlined {
9249 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9250 inner_offset = next_offset;
9251 } else {
9252 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9253 inner_depth.increment()?;
9254 }
9255 let val_ref = self.rights.get_or_insert_with(|| {
9256 fidl::new_empty!(fidl_fuchsia_io__common::Operations, D)
9257 });
9258 fidl::decode!(
9259 fidl_fuchsia_io__common::Operations,
9260 D,
9261 val_ref,
9262 decoder,
9263 inner_offset,
9264 inner_depth
9265 )?;
9266 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9267 {
9268 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9269 }
9270 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9271 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9272 }
9273 }
9274
9275 next_offset += envelope_size;
9276
9277 while next_offset < end_offset {
9279 _next_ordinal_to_read += 1;
9280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9281 next_offset += envelope_size;
9282 }
9283
9284 Ok(())
9285 }
9286 }
9287
9288 impl Environment {
9289 #[inline(always)]
9290 fn max_ordinal_present(&self) -> u64 {
9291 if let Some(_) = self.stop_timeout_ms {
9292 return 6;
9293 }
9294 if let Some(_) = self.debug_capabilities {
9295 return 5;
9296 }
9297 if let Some(_) = self.resolvers {
9298 return 4;
9299 }
9300 if let Some(_) = self.runners {
9301 return 3;
9302 }
9303 if let Some(_) = self.extends {
9304 return 2;
9305 }
9306 if let Some(_) = self.name {
9307 return 1;
9308 }
9309 0
9310 }
9311 }
9312
9313 impl fidl::encoding::ValueTypeMarker for Environment {
9314 type Borrowed<'a> = &'a Self;
9315 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9316 value
9317 }
9318 }
9319
9320 unsafe impl fidl::encoding::TypeMarker for Environment {
9321 type Owned = Self;
9322
9323 #[inline(always)]
9324 fn inline_align(_context: fidl::encoding::Context) -> usize {
9325 8
9326 }
9327
9328 #[inline(always)]
9329 fn inline_size(_context: fidl::encoding::Context) -> usize {
9330 16
9331 }
9332 }
9333
9334 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Environment, D>
9335 for &Environment
9336 {
9337 unsafe fn encode(
9338 self,
9339 encoder: &mut fidl::encoding::Encoder<'_, D>,
9340 offset: usize,
9341 mut depth: fidl::encoding::Depth,
9342 ) -> fidl::Result<()> {
9343 encoder.debug_check_bounds::<Environment>(offset);
9344 let max_ordinal: u64 = self.max_ordinal_present();
9346 encoder.write_num(max_ordinal, offset);
9347 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9348 if max_ordinal == 0 {
9350 return Ok(());
9351 }
9352 depth.increment()?;
9353 let envelope_size = 8;
9354 let bytes_len = max_ordinal as usize * envelope_size;
9355 #[allow(unused_variables)]
9356 let offset = encoder.out_of_line_offset(bytes_len);
9357 let mut _prev_end_offset: usize = 0;
9358 if 1 > max_ordinal {
9359 return Ok(());
9360 }
9361
9362 let cur_offset: usize = (1 - 1) * envelope_size;
9365
9366 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9368
9369 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
9374 self.name.as_ref().map(
9375 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
9376 ),
9377 encoder,
9378 offset + cur_offset,
9379 depth,
9380 )?;
9381
9382 _prev_end_offset = cur_offset + envelope_size;
9383 if 2 > max_ordinal {
9384 return Ok(());
9385 }
9386
9387 let cur_offset: usize = (2 - 1) * envelope_size;
9390
9391 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9393
9394 fidl::encoding::encode_in_envelope_optional::<EnvironmentExtends, D>(
9399 self.extends
9400 .as_ref()
9401 .map(<EnvironmentExtends as fidl::encoding::ValueTypeMarker>::borrow),
9402 encoder,
9403 offset + cur_offset,
9404 depth,
9405 )?;
9406
9407 _prev_end_offset = cur_offset + envelope_size;
9408 if 3 > max_ordinal {
9409 return Ok(());
9410 }
9411
9412 let cur_offset: usize = (3 - 1) * envelope_size;
9415
9416 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9418
9419 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<RunnerRegistration>, D>(
9424 self.runners.as_ref().map(<fidl::encoding::UnboundedVector<RunnerRegistration> as fidl::encoding::ValueTypeMarker>::borrow),
9425 encoder, offset + cur_offset, depth
9426 )?;
9427
9428 _prev_end_offset = cur_offset + envelope_size;
9429 if 4 > max_ordinal {
9430 return Ok(());
9431 }
9432
9433 let cur_offset: usize = (4 - 1) * envelope_size;
9436
9437 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9439
9440 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<ResolverRegistration>, D>(
9445 self.resolvers.as_ref().map(<fidl::encoding::UnboundedVector<ResolverRegistration> as fidl::encoding::ValueTypeMarker>::borrow),
9446 encoder, offset + cur_offset, depth
9447 )?;
9448
9449 _prev_end_offset = cur_offset + envelope_size;
9450 if 5 > max_ordinal {
9451 return Ok(());
9452 }
9453
9454 let cur_offset: usize = (5 - 1) * envelope_size;
9457
9458 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9460
9461 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<DebugRegistration>, D>(
9466 self.debug_capabilities.as_ref().map(<fidl::encoding::UnboundedVector<DebugRegistration> as fidl::encoding::ValueTypeMarker>::borrow),
9467 encoder, offset + cur_offset, depth
9468 )?;
9469
9470 _prev_end_offset = cur_offset + envelope_size;
9471 if 6 > max_ordinal {
9472 return Ok(());
9473 }
9474
9475 let cur_offset: usize = (6 - 1) * envelope_size;
9478
9479 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9481
9482 fidl::encoding::encode_in_envelope_optional::<u32, D>(
9487 self.stop_timeout_ms.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
9488 encoder,
9489 offset + cur_offset,
9490 depth,
9491 )?;
9492
9493 _prev_end_offset = cur_offset + envelope_size;
9494
9495 Ok(())
9496 }
9497 }
9498
9499 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Environment {
9500 #[inline(always)]
9501 fn new_empty() -> Self {
9502 Self::default()
9503 }
9504
9505 unsafe fn decode(
9506 &mut self,
9507 decoder: &mut fidl::encoding::Decoder<'_, D>,
9508 offset: usize,
9509 mut depth: fidl::encoding::Depth,
9510 ) -> fidl::Result<()> {
9511 decoder.debug_check_bounds::<Self>(offset);
9512 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9513 None => return Err(fidl::Error::NotNullable),
9514 Some(len) => len,
9515 };
9516 if len == 0 {
9518 return Ok(());
9519 };
9520 depth.increment()?;
9521 let envelope_size = 8;
9522 let bytes_len = len * envelope_size;
9523 let offset = decoder.out_of_line_offset(bytes_len)?;
9524 let mut _next_ordinal_to_read = 0;
9526 let mut next_offset = offset;
9527 let end_offset = offset + bytes_len;
9528 _next_ordinal_to_read += 1;
9529 if next_offset >= end_offset {
9530 return Ok(());
9531 }
9532
9533 while _next_ordinal_to_read < 1 {
9535 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9536 _next_ordinal_to_read += 1;
9537 next_offset += envelope_size;
9538 }
9539
9540 let next_out_of_line = decoder.next_out_of_line();
9541 let handles_before = decoder.remaining_handles();
9542 if let Some((inlined, num_bytes, num_handles)) =
9543 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9544 {
9545 let member_inline_size =
9546 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
9547 decoder.context,
9548 );
9549 if inlined != (member_inline_size <= 4) {
9550 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9551 }
9552 let inner_offset;
9553 let mut inner_depth = depth.clone();
9554 if inlined {
9555 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9556 inner_offset = next_offset;
9557 } else {
9558 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9559 inner_depth.increment()?;
9560 }
9561 let val_ref = self
9562 .name
9563 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
9564 fidl::decode!(
9565 fidl::encoding::BoundedString<100>,
9566 D,
9567 val_ref,
9568 decoder,
9569 inner_offset,
9570 inner_depth
9571 )?;
9572 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9573 {
9574 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9575 }
9576 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9577 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9578 }
9579 }
9580
9581 next_offset += envelope_size;
9582 _next_ordinal_to_read += 1;
9583 if next_offset >= end_offset {
9584 return Ok(());
9585 }
9586
9587 while _next_ordinal_to_read < 2 {
9589 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9590 _next_ordinal_to_read += 1;
9591 next_offset += envelope_size;
9592 }
9593
9594 let next_out_of_line = decoder.next_out_of_line();
9595 let handles_before = decoder.remaining_handles();
9596 if let Some((inlined, num_bytes, num_handles)) =
9597 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9598 {
9599 let member_inline_size =
9600 <EnvironmentExtends as fidl::encoding::TypeMarker>::inline_size(
9601 decoder.context,
9602 );
9603 if inlined != (member_inline_size <= 4) {
9604 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9605 }
9606 let inner_offset;
9607 let mut inner_depth = depth.clone();
9608 if inlined {
9609 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9610 inner_offset = next_offset;
9611 } else {
9612 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9613 inner_depth.increment()?;
9614 }
9615 let val_ref =
9616 self.extends.get_or_insert_with(|| fidl::new_empty!(EnvironmentExtends, D));
9617 fidl::decode!(EnvironmentExtends, D, val_ref, decoder, inner_offset, inner_depth)?;
9618 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9619 {
9620 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9621 }
9622 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9623 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9624 }
9625 }
9626
9627 next_offset += envelope_size;
9628 _next_ordinal_to_read += 1;
9629 if next_offset >= end_offset {
9630 return Ok(());
9631 }
9632
9633 while _next_ordinal_to_read < 3 {
9635 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9636 _next_ordinal_to_read += 1;
9637 next_offset += envelope_size;
9638 }
9639
9640 let next_out_of_line = decoder.next_out_of_line();
9641 let handles_before = decoder.remaining_handles();
9642 if let Some((inlined, num_bytes, num_handles)) =
9643 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9644 {
9645 let member_inline_size = <fidl::encoding::UnboundedVector<RunnerRegistration> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9646 if inlined != (member_inline_size <= 4) {
9647 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9648 }
9649 let inner_offset;
9650 let mut inner_depth = depth.clone();
9651 if inlined {
9652 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9653 inner_offset = next_offset;
9654 } else {
9655 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9656 inner_depth.increment()?;
9657 }
9658 let val_ref = self.runners.get_or_insert_with(|| {
9659 fidl::new_empty!(fidl::encoding::UnboundedVector<RunnerRegistration>, D)
9660 });
9661 fidl::decode!(
9662 fidl::encoding::UnboundedVector<RunnerRegistration>,
9663 D,
9664 val_ref,
9665 decoder,
9666 inner_offset,
9667 inner_depth
9668 )?;
9669 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9670 {
9671 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9672 }
9673 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9674 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9675 }
9676 }
9677
9678 next_offset += envelope_size;
9679 _next_ordinal_to_read += 1;
9680 if next_offset >= end_offset {
9681 return Ok(());
9682 }
9683
9684 while _next_ordinal_to_read < 4 {
9686 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9687 _next_ordinal_to_read += 1;
9688 next_offset += envelope_size;
9689 }
9690
9691 let next_out_of_line = decoder.next_out_of_line();
9692 let handles_before = decoder.remaining_handles();
9693 if let Some((inlined, num_bytes, num_handles)) =
9694 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9695 {
9696 let member_inline_size = <fidl::encoding::UnboundedVector<ResolverRegistration> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9697 if inlined != (member_inline_size <= 4) {
9698 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9699 }
9700 let inner_offset;
9701 let mut inner_depth = depth.clone();
9702 if inlined {
9703 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9704 inner_offset = next_offset;
9705 } else {
9706 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9707 inner_depth.increment()?;
9708 }
9709 let val_ref = self.resolvers.get_or_insert_with(|| {
9710 fidl::new_empty!(fidl::encoding::UnboundedVector<ResolverRegistration>, D)
9711 });
9712 fidl::decode!(
9713 fidl::encoding::UnboundedVector<ResolverRegistration>,
9714 D,
9715 val_ref,
9716 decoder,
9717 inner_offset,
9718 inner_depth
9719 )?;
9720 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9721 {
9722 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9723 }
9724 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9725 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9726 }
9727 }
9728
9729 next_offset += envelope_size;
9730 _next_ordinal_to_read += 1;
9731 if next_offset >= end_offset {
9732 return Ok(());
9733 }
9734
9735 while _next_ordinal_to_read < 5 {
9737 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9738 _next_ordinal_to_read += 1;
9739 next_offset += envelope_size;
9740 }
9741
9742 let next_out_of_line = decoder.next_out_of_line();
9743 let handles_before = decoder.remaining_handles();
9744 if let Some((inlined, num_bytes, num_handles)) =
9745 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9746 {
9747 let member_inline_size = <fidl::encoding::UnboundedVector<DebugRegistration> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9748 if inlined != (member_inline_size <= 4) {
9749 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9750 }
9751 let inner_offset;
9752 let mut inner_depth = depth.clone();
9753 if inlined {
9754 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9755 inner_offset = next_offset;
9756 } else {
9757 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9758 inner_depth.increment()?;
9759 }
9760 let val_ref = self.debug_capabilities.get_or_insert_with(|| {
9761 fidl::new_empty!(fidl::encoding::UnboundedVector<DebugRegistration>, D)
9762 });
9763 fidl::decode!(
9764 fidl::encoding::UnboundedVector<DebugRegistration>,
9765 D,
9766 val_ref,
9767 decoder,
9768 inner_offset,
9769 inner_depth
9770 )?;
9771 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9772 {
9773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9774 }
9775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9777 }
9778 }
9779
9780 next_offset += envelope_size;
9781 _next_ordinal_to_read += 1;
9782 if next_offset >= end_offset {
9783 return Ok(());
9784 }
9785
9786 while _next_ordinal_to_read < 6 {
9788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9789 _next_ordinal_to_read += 1;
9790 next_offset += envelope_size;
9791 }
9792
9793 let next_out_of_line = decoder.next_out_of_line();
9794 let handles_before = decoder.remaining_handles();
9795 if let Some((inlined, num_bytes, num_handles)) =
9796 fidl::encoding::decode_envelope_header(decoder, next_offset)?
9797 {
9798 let member_inline_size =
9799 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
9800 if inlined != (member_inline_size <= 4) {
9801 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9802 }
9803 let inner_offset;
9804 let mut inner_depth = depth.clone();
9805 if inlined {
9806 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9807 inner_offset = next_offset;
9808 } else {
9809 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9810 inner_depth.increment()?;
9811 }
9812 let val_ref = self.stop_timeout_ms.get_or_insert_with(|| fidl::new_empty!(u32, D));
9813 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
9814 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9815 {
9816 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9817 }
9818 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9819 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
9820 }
9821 }
9822
9823 next_offset += envelope_size;
9824
9825 while next_offset < end_offset {
9827 _next_ordinal_to_read += 1;
9828 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
9829 next_offset += envelope_size;
9830 }
9831
9832 Ok(())
9833 }
9834 }
9835
9836 impl EventStream {
9837 #[inline(always)]
9838 fn max_ordinal_present(&self) -> u64 {
9839 if let Some(_) = self.name {
9840 return 1;
9841 }
9842 0
9843 }
9844 }
9845
9846 impl fidl::encoding::ValueTypeMarker for EventStream {
9847 type Borrowed<'a> = &'a Self;
9848 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9849 value
9850 }
9851 }
9852
9853 unsafe impl fidl::encoding::TypeMarker for EventStream {
9854 type Owned = Self;
9855
9856 #[inline(always)]
9857 fn inline_align(_context: fidl::encoding::Context) -> usize {
9858 8
9859 }
9860
9861 #[inline(always)]
9862 fn inline_size(_context: fidl::encoding::Context) -> usize {
9863 16
9864 }
9865 }
9866
9867 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EventStream, D>
9868 for &EventStream
9869 {
9870 unsafe fn encode(
9871 self,
9872 encoder: &mut fidl::encoding::Encoder<'_, D>,
9873 offset: usize,
9874 mut depth: fidl::encoding::Depth,
9875 ) -> fidl::Result<()> {
9876 encoder.debug_check_bounds::<EventStream>(offset);
9877 let max_ordinal: u64 = self.max_ordinal_present();
9879 encoder.write_num(max_ordinal, offset);
9880 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
9881 if max_ordinal == 0 {
9883 return Ok(());
9884 }
9885 depth.increment()?;
9886 let envelope_size = 8;
9887 let bytes_len = max_ordinal as usize * envelope_size;
9888 #[allow(unused_variables)]
9889 let offset = encoder.out_of_line_offset(bytes_len);
9890 let mut _prev_end_offset: usize = 0;
9891 if 1 > max_ordinal {
9892 return Ok(());
9893 }
9894
9895 let cur_offset: usize = (1 - 1) * envelope_size;
9898
9899 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
9901
9902 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
9907 self.name.as_ref().map(
9908 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
9909 ),
9910 encoder,
9911 offset + cur_offset,
9912 depth,
9913 )?;
9914
9915 _prev_end_offset = cur_offset + envelope_size;
9916
9917 Ok(())
9918 }
9919 }
9920
9921 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EventStream {
9922 #[inline(always)]
9923 fn new_empty() -> Self {
9924 Self::default()
9925 }
9926
9927 unsafe fn decode(
9928 &mut self,
9929 decoder: &mut fidl::encoding::Decoder<'_, D>,
9930 offset: usize,
9931 mut depth: fidl::encoding::Depth,
9932 ) -> fidl::Result<()> {
9933 decoder.debug_check_bounds::<Self>(offset);
9934 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
9935 None => return Err(fidl::Error::NotNullable),
9936 Some(len) => len,
9937 };
9938 if len == 0 {
9940 return Ok(());
9941 };
9942 depth.increment()?;
9943 let envelope_size = 8;
9944 let bytes_len = len * envelope_size;
9945 let offset = decoder.out_of_line_offset(bytes_len)?;
9946 let mut _next_ordinal_to_read = 0;
9948 let mut next_offset = offset;
9949 let end_offset = offset + bytes_len;
9950 _next_ordinal_to_read += 1;
9951 if next_offset >= end_offset {
9952 return Ok(());
9953 }
9954
9955 while _next_ordinal_to_read < 1 {
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 =
9968 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
9969 decoder.context,
9970 );
9971 if inlined != (member_inline_size <= 4) {
9972 return Err(fidl::Error::InvalidInlineBitInEnvelope);
9973 }
9974 let inner_offset;
9975 let mut inner_depth = depth.clone();
9976 if inlined {
9977 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
9978 inner_offset = next_offset;
9979 } else {
9980 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
9981 inner_depth.increment()?;
9982 }
9983 let val_ref = self
9984 .name
9985 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
9986 fidl::decode!(
9987 fidl::encoding::BoundedString<100>,
9988 D,
9989 val_ref,
9990 decoder,
9991 inner_offset,
9992 inner_depth
9993 )?;
9994 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
9995 {
9996 return Err(fidl::Error::InvalidNumBytesInEnvelope);
9997 }
9998 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
9999 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10000 }
10001 }
10002
10003 next_offset += envelope_size;
10004
10005 while next_offset < end_offset {
10007 _next_ordinal_to_read += 1;
10008 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10009 next_offset += envelope_size;
10010 }
10011
10012 Ok(())
10013 }
10014 }
10015
10016 impl EventSubscription {
10017 #[inline(always)]
10018 fn max_ordinal_present(&self) -> u64 {
10019 if let Some(_) = self.event_name {
10020 return 1;
10021 }
10022 0
10023 }
10024 }
10025
10026 impl fidl::encoding::ValueTypeMarker for EventSubscription {
10027 type Borrowed<'a> = &'a Self;
10028 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10029 value
10030 }
10031 }
10032
10033 unsafe impl fidl::encoding::TypeMarker for EventSubscription {
10034 type Owned = Self;
10035
10036 #[inline(always)]
10037 fn inline_align(_context: fidl::encoding::Context) -> usize {
10038 8
10039 }
10040
10041 #[inline(always)]
10042 fn inline_size(_context: fidl::encoding::Context) -> usize {
10043 16
10044 }
10045 }
10046
10047 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EventSubscription, D>
10048 for &EventSubscription
10049 {
10050 unsafe fn encode(
10051 self,
10052 encoder: &mut fidl::encoding::Encoder<'_, D>,
10053 offset: usize,
10054 mut depth: fidl::encoding::Depth,
10055 ) -> fidl::Result<()> {
10056 encoder.debug_check_bounds::<EventSubscription>(offset);
10057 let max_ordinal: u64 = self.max_ordinal_present();
10059 encoder.write_num(max_ordinal, offset);
10060 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10061 if max_ordinal == 0 {
10063 return Ok(());
10064 }
10065 depth.increment()?;
10066 let envelope_size = 8;
10067 let bytes_len = max_ordinal as usize * envelope_size;
10068 #[allow(unused_variables)]
10069 let offset = encoder.out_of_line_offset(bytes_len);
10070 let mut _prev_end_offset: usize = 0;
10071 if 1 > max_ordinal {
10072 return Ok(());
10073 }
10074
10075 let cur_offset: usize = (1 - 1) * envelope_size;
10078
10079 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10081
10082 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10087 self.event_name.as_ref().map(
10088 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10089 ),
10090 encoder,
10091 offset + cur_offset,
10092 depth,
10093 )?;
10094
10095 _prev_end_offset = cur_offset + envelope_size;
10096
10097 Ok(())
10098 }
10099 }
10100
10101 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EventSubscription {
10102 #[inline(always)]
10103 fn new_empty() -> Self {
10104 Self::default()
10105 }
10106
10107 unsafe fn decode(
10108 &mut self,
10109 decoder: &mut fidl::encoding::Decoder<'_, D>,
10110 offset: usize,
10111 mut depth: fidl::encoding::Depth,
10112 ) -> fidl::Result<()> {
10113 decoder.debug_check_bounds::<Self>(offset);
10114 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10115 None => return Err(fidl::Error::NotNullable),
10116 Some(len) => len,
10117 };
10118 if len == 0 {
10120 return Ok(());
10121 };
10122 depth.increment()?;
10123 let envelope_size = 8;
10124 let bytes_len = len * envelope_size;
10125 let offset = decoder.out_of_line_offset(bytes_len)?;
10126 let mut _next_ordinal_to_read = 0;
10128 let mut next_offset = offset;
10129 let end_offset = offset + bytes_len;
10130 _next_ordinal_to_read += 1;
10131 if next_offset >= end_offset {
10132 return Ok(());
10133 }
10134
10135 while _next_ordinal_to_read < 1 {
10137 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10138 _next_ordinal_to_read += 1;
10139 next_offset += envelope_size;
10140 }
10141
10142 let next_out_of_line = decoder.next_out_of_line();
10143 let handles_before = decoder.remaining_handles();
10144 if let Some((inlined, num_bytes, num_handles)) =
10145 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10146 {
10147 let member_inline_size =
10148 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10149 decoder.context,
10150 );
10151 if inlined != (member_inline_size <= 4) {
10152 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10153 }
10154 let inner_offset;
10155 let mut inner_depth = depth.clone();
10156 if inlined {
10157 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10158 inner_offset = next_offset;
10159 } else {
10160 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10161 inner_depth.increment()?;
10162 }
10163 let val_ref = self
10164 .event_name
10165 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10166 fidl::decode!(
10167 fidl::encoding::BoundedString<100>,
10168 D,
10169 val_ref,
10170 decoder,
10171 inner_offset,
10172 inner_depth
10173 )?;
10174 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10175 {
10176 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10177 }
10178 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10179 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10180 }
10181 }
10182
10183 next_offset += envelope_size;
10184
10185 while next_offset < end_offset {
10187 _next_ordinal_to_read += 1;
10188 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10189 next_offset += envelope_size;
10190 }
10191
10192 Ok(())
10193 }
10194 }
10195
10196 impl ExposeConfiguration {
10197 #[inline(always)]
10198 fn max_ordinal_present(&self) -> u64 {
10199 if let Some(_) = self.source_dictionary {
10200 return 6;
10201 }
10202 if let Some(_) = self.availability {
10203 return 5;
10204 }
10205 if let Some(_) = self.target_name {
10206 return 4;
10207 }
10208 if let Some(_) = self.target {
10209 return 3;
10210 }
10211 if let Some(_) = self.source_name {
10212 return 2;
10213 }
10214 if let Some(_) = self.source {
10215 return 1;
10216 }
10217 0
10218 }
10219 }
10220
10221 impl fidl::encoding::ValueTypeMarker for ExposeConfiguration {
10222 type Borrowed<'a> = &'a Self;
10223 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10224 value
10225 }
10226 }
10227
10228 unsafe impl fidl::encoding::TypeMarker for ExposeConfiguration {
10229 type Owned = Self;
10230
10231 #[inline(always)]
10232 fn inline_align(_context: fidl::encoding::Context) -> usize {
10233 8
10234 }
10235
10236 #[inline(always)]
10237 fn inline_size(_context: fidl::encoding::Context) -> usize {
10238 16
10239 }
10240 }
10241
10242 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeConfiguration, D>
10243 for &ExposeConfiguration
10244 {
10245 unsafe fn encode(
10246 self,
10247 encoder: &mut fidl::encoding::Encoder<'_, D>,
10248 offset: usize,
10249 mut depth: fidl::encoding::Depth,
10250 ) -> fidl::Result<()> {
10251 encoder.debug_check_bounds::<ExposeConfiguration>(offset);
10252 let max_ordinal: u64 = self.max_ordinal_present();
10254 encoder.write_num(max_ordinal, offset);
10255 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10256 if max_ordinal == 0 {
10258 return Ok(());
10259 }
10260 depth.increment()?;
10261 let envelope_size = 8;
10262 let bytes_len = max_ordinal as usize * envelope_size;
10263 #[allow(unused_variables)]
10264 let offset = encoder.out_of_line_offset(bytes_len);
10265 let mut _prev_end_offset: usize = 0;
10266 if 1 > max_ordinal {
10267 return Ok(());
10268 }
10269
10270 let cur_offset: usize = (1 - 1) * envelope_size;
10273
10274 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10276
10277 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
10282 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
10283 encoder,
10284 offset + cur_offset,
10285 depth,
10286 )?;
10287
10288 _prev_end_offset = cur_offset + envelope_size;
10289 if 2 > max_ordinal {
10290 return Ok(());
10291 }
10292
10293 let cur_offset: usize = (2 - 1) * envelope_size;
10296
10297 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10299
10300 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10305 self.source_name.as_ref().map(
10306 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10307 ),
10308 encoder,
10309 offset + cur_offset,
10310 depth,
10311 )?;
10312
10313 _prev_end_offset = cur_offset + envelope_size;
10314 if 3 > max_ordinal {
10315 return Ok(());
10316 }
10317
10318 let cur_offset: usize = (3 - 1) * envelope_size;
10321
10322 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10324
10325 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
10330 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
10331 encoder,
10332 offset + cur_offset,
10333 depth,
10334 )?;
10335
10336 _prev_end_offset = cur_offset + envelope_size;
10337 if 4 > max_ordinal {
10338 return Ok(());
10339 }
10340
10341 let cur_offset: usize = (4 - 1) * envelope_size;
10344
10345 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10347
10348 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10353 self.target_name.as_ref().map(
10354 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10355 ),
10356 encoder,
10357 offset + cur_offset,
10358 depth,
10359 )?;
10360
10361 _prev_end_offset = cur_offset + envelope_size;
10362 if 5 > max_ordinal {
10363 return Ok(());
10364 }
10365
10366 let cur_offset: usize = (5 - 1) * envelope_size;
10369
10370 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10372
10373 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
10378 self.availability
10379 .as_ref()
10380 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
10381 encoder,
10382 offset + cur_offset,
10383 depth,
10384 )?;
10385
10386 _prev_end_offset = cur_offset + envelope_size;
10387 if 6 > max_ordinal {
10388 return Ok(());
10389 }
10390
10391 let cur_offset: usize = (6 - 1) * envelope_size;
10394
10395 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10397
10398 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
10403 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
10404 encoder, offset + cur_offset, depth
10405 )?;
10406
10407 _prev_end_offset = cur_offset + envelope_size;
10408
10409 Ok(())
10410 }
10411 }
10412
10413 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeConfiguration {
10414 #[inline(always)]
10415 fn new_empty() -> Self {
10416 Self::default()
10417 }
10418
10419 unsafe fn decode(
10420 &mut self,
10421 decoder: &mut fidl::encoding::Decoder<'_, D>,
10422 offset: usize,
10423 mut depth: fidl::encoding::Depth,
10424 ) -> fidl::Result<()> {
10425 decoder.debug_check_bounds::<Self>(offset);
10426 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10427 None => return Err(fidl::Error::NotNullable),
10428 Some(len) => len,
10429 };
10430 if len == 0 {
10432 return Ok(());
10433 };
10434 depth.increment()?;
10435 let envelope_size = 8;
10436 let bytes_len = len * envelope_size;
10437 let offset = decoder.out_of_line_offset(bytes_len)?;
10438 let mut _next_ordinal_to_read = 0;
10440 let mut next_offset = offset;
10441 let end_offset = offset + bytes_len;
10442 _next_ordinal_to_read += 1;
10443 if next_offset >= end_offset {
10444 return Ok(());
10445 }
10446
10447 while _next_ordinal_to_read < 1 {
10449 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10450 _next_ordinal_to_read += 1;
10451 next_offset += envelope_size;
10452 }
10453
10454 let next_out_of_line = decoder.next_out_of_line();
10455 let handles_before = decoder.remaining_handles();
10456 if let Some((inlined, num_bytes, num_handles)) =
10457 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10458 {
10459 let member_inline_size =
10460 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10461 if inlined != (member_inline_size <= 4) {
10462 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10463 }
10464 let inner_offset;
10465 let mut inner_depth = depth.clone();
10466 if inlined {
10467 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10468 inner_offset = next_offset;
10469 } else {
10470 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10471 inner_depth.increment()?;
10472 }
10473 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
10474 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
10475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10476 {
10477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10478 }
10479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10481 }
10482 }
10483
10484 next_offset += envelope_size;
10485 _next_ordinal_to_read += 1;
10486 if next_offset >= end_offset {
10487 return Ok(());
10488 }
10489
10490 while _next_ordinal_to_read < 2 {
10492 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10493 _next_ordinal_to_read += 1;
10494 next_offset += envelope_size;
10495 }
10496
10497 let next_out_of_line = decoder.next_out_of_line();
10498 let handles_before = decoder.remaining_handles();
10499 if let Some((inlined, num_bytes, num_handles)) =
10500 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10501 {
10502 let member_inline_size =
10503 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10504 decoder.context,
10505 );
10506 if inlined != (member_inline_size <= 4) {
10507 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10508 }
10509 let inner_offset;
10510 let mut inner_depth = depth.clone();
10511 if inlined {
10512 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10513 inner_offset = next_offset;
10514 } else {
10515 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10516 inner_depth.increment()?;
10517 }
10518 let val_ref = self
10519 .source_name
10520 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10521 fidl::decode!(
10522 fidl::encoding::BoundedString<100>,
10523 D,
10524 val_ref,
10525 decoder,
10526 inner_offset,
10527 inner_depth
10528 )?;
10529 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10530 {
10531 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10532 }
10533 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10534 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10535 }
10536 }
10537
10538 next_offset += envelope_size;
10539 _next_ordinal_to_read += 1;
10540 if next_offset >= end_offset {
10541 return Ok(());
10542 }
10543
10544 while _next_ordinal_to_read < 3 {
10546 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10547 _next_ordinal_to_read += 1;
10548 next_offset += envelope_size;
10549 }
10550
10551 let next_out_of_line = decoder.next_out_of_line();
10552 let handles_before = decoder.remaining_handles();
10553 if let Some((inlined, num_bytes, num_handles)) =
10554 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10555 {
10556 let member_inline_size =
10557 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10558 if inlined != (member_inline_size <= 4) {
10559 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10560 }
10561 let inner_offset;
10562 let mut inner_depth = depth.clone();
10563 if inlined {
10564 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10565 inner_offset = next_offset;
10566 } else {
10567 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10568 inner_depth.increment()?;
10569 }
10570 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
10571 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
10572 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10573 {
10574 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10575 }
10576 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10577 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10578 }
10579 }
10580
10581 next_offset += envelope_size;
10582 _next_ordinal_to_read += 1;
10583 if next_offset >= end_offset {
10584 return Ok(());
10585 }
10586
10587 while _next_ordinal_to_read < 4 {
10589 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10590 _next_ordinal_to_read += 1;
10591 next_offset += envelope_size;
10592 }
10593
10594 let next_out_of_line = decoder.next_out_of_line();
10595 let handles_before = decoder.remaining_handles();
10596 if let Some((inlined, num_bytes, num_handles)) =
10597 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10598 {
10599 let member_inline_size =
10600 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
10601 decoder.context,
10602 );
10603 if inlined != (member_inline_size <= 4) {
10604 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10605 }
10606 let inner_offset;
10607 let mut inner_depth = depth.clone();
10608 if inlined {
10609 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10610 inner_offset = next_offset;
10611 } else {
10612 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10613 inner_depth.increment()?;
10614 }
10615 let val_ref = self
10616 .target_name
10617 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
10618 fidl::decode!(
10619 fidl::encoding::BoundedString<100>,
10620 D,
10621 val_ref,
10622 decoder,
10623 inner_offset,
10624 inner_depth
10625 )?;
10626 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10627 {
10628 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10629 }
10630 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10631 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10632 }
10633 }
10634
10635 next_offset += envelope_size;
10636 _next_ordinal_to_read += 1;
10637 if next_offset >= end_offset {
10638 return Ok(());
10639 }
10640
10641 while _next_ordinal_to_read < 5 {
10643 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10644 _next_ordinal_to_read += 1;
10645 next_offset += envelope_size;
10646 }
10647
10648 let next_out_of_line = decoder.next_out_of_line();
10649 let handles_before = decoder.remaining_handles();
10650 if let Some((inlined, num_bytes, num_handles)) =
10651 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10652 {
10653 let member_inline_size =
10654 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10655 if inlined != (member_inline_size <= 4) {
10656 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10657 }
10658 let inner_offset;
10659 let mut inner_depth = depth.clone();
10660 if inlined {
10661 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10662 inner_offset = next_offset;
10663 } else {
10664 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10665 inner_depth.increment()?;
10666 }
10667 let val_ref =
10668 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
10669 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
10670 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10671 {
10672 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10673 }
10674 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10675 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10676 }
10677 }
10678
10679 next_offset += envelope_size;
10680 _next_ordinal_to_read += 1;
10681 if next_offset >= end_offset {
10682 return Ok(());
10683 }
10684
10685 while _next_ordinal_to_read < 6 {
10687 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10688 _next_ordinal_to_read += 1;
10689 next_offset += envelope_size;
10690 }
10691
10692 let next_out_of_line = decoder.next_out_of_line();
10693 let handles_before = decoder.remaining_handles();
10694 if let Some((inlined, num_bytes, num_handles)) =
10695 fidl::encoding::decode_envelope_header(decoder, next_offset)?
10696 {
10697 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
10698 if inlined != (member_inline_size <= 4) {
10699 return Err(fidl::Error::InvalidInlineBitInEnvelope);
10700 }
10701 let inner_offset;
10702 let mut inner_depth = depth.clone();
10703 if inlined {
10704 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10705 inner_offset = next_offset;
10706 } else {
10707 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10708 inner_depth.increment()?;
10709 }
10710 let val_ref = self.source_dictionary.get_or_insert_with(|| {
10711 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
10712 });
10713 fidl::decode!(
10714 fidl::encoding::BoundedString<1024>,
10715 D,
10716 val_ref,
10717 decoder,
10718 inner_offset,
10719 inner_depth
10720 )?;
10721 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10722 {
10723 return Err(fidl::Error::InvalidNumBytesInEnvelope);
10724 }
10725 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10726 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10727 }
10728 }
10729
10730 next_offset += envelope_size;
10731
10732 while next_offset < end_offset {
10734 _next_ordinal_to_read += 1;
10735 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10736 next_offset += envelope_size;
10737 }
10738
10739 Ok(())
10740 }
10741 }
10742
10743 impl ExposeDictionary {
10744 #[inline(always)]
10745 fn max_ordinal_present(&self) -> u64 {
10746 if let Some(_) = self.source_dictionary {
10747 return 6;
10748 }
10749 if let Some(_) = self.availability {
10750 return 5;
10751 }
10752 if let Some(_) = self.target_name {
10753 return 4;
10754 }
10755 if let Some(_) = self.target {
10756 return 3;
10757 }
10758 if let Some(_) = self.source_name {
10759 return 2;
10760 }
10761 if let Some(_) = self.source {
10762 return 1;
10763 }
10764 0
10765 }
10766 }
10767
10768 impl fidl::encoding::ValueTypeMarker for ExposeDictionary {
10769 type Borrowed<'a> = &'a Self;
10770 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10771 value
10772 }
10773 }
10774
10775 unsafe impl fidl::encoding::TypeMarker for ExposeDictionary {
10776 type Owned = Self;
10777
10778 #[inline(always)]
10779 fn inline_align(_context: fidl::encoding::Context) -> usize {
10780 8
10781 }
10782
10783 #[inline(always)]
10784 fn inline_size(_context: fidl::encoding::Context) -> usize {
10785 16
10786 }
10787 }
10788
10789 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeDictionary, D>
10790 for &ExposeDictionary
10791 {
10792 unsafe fn encode(
10793 self,
10794 encoder: &mut fidl::encoding::Encoder<'_, D>,
10795 offset: usize,
10796 mut depth: fidl::encoding::Depth,
10797 ) -> fidl::Result<()> {
10798 encoder.debug_check_bounds::<ExposeDictionary>(offset);
10799 let max_ordinal: u64 = self.max_ordinal_present();
10801 encoder.write_num(max_ordinal, offset);
10802 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10803 if max_ordinal == 0 {
10805 return Ok(());
10806 }
10807 depth.increment()?;
10808 let envelope_size = 8;
10809 let bytes_len = max_ordinal as usize * envelope_size;
10810 #[allow(unused_variables)]
10811 let offset = encoder.out_of_line_offset(bytes_len);
10812 let mut _prev_end_offset: usize = 0;
10813 if 1 > max_ordinal {
10814 return Ok(());
10815 }
10816
10817 let cur_offset: usize = (1 - 1) * envelope_size;
10820
10821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10823
10824 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
10829 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
10830 encoder,
10831 offset + cur_offset,
10832 depth,
10833 )?;
10834
10835 _prev_end_offset = cur_offset + envelope_size;
10836 if 2 > max_ordinal {
10837 return Ok(());
10838 }
10839
10840 let cur_offset: usize = (2 - 1) * envelope_size;
10843
10844 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10846
10847 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10852 self.source_name.as_ref().map(
10853 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10854 ),
10855 encoder,
10856 offset + cur_offset,
10857 depth,
10858 )?;
10859
10860 _prev_end_offset = cur_offset + envelope_size;
10861 if 3 > max_ordinal {
10862 return Ok(());
10863 }
10864
10865 let cur_offset: usize = (3 - 1) * envelope_size;
10868
10869 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10871
10872 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
10877 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
10878 encoder,
10879 offset + cur_offset,
10880 depth,
10881 )?;
10882
10883 _prev_end_offset = cur_offset + envelope_size;
10884 if 4 > max_ordinal {
10885 return Ok(());
10886 }
10887
10888 let cur_offset: usize = (4 - 1) * envelope_size;
10891
10892 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10894
10895 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
10900 self.target_name.as_ref().map(
10901 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
10902 ),
10903 encoder,
10904 offset + cur_offset,
10905 depth,
10906 )?;
10907
10908 _prev_end_offset = cur_offset + envelope_size;
10909 if 5 > max_ordinal {
10910 return Ok(());
10911 }
10912
10913 let cur_offset: usize = (5 - 1) * envelope_size;
10916
10917 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10919
10920 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
10925 self.availability
10926 .as_ref()
10927 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
10928 encoder,
10929 offset + cur_offset,
10930 depth,
10931 )?;
10932
10933 _prev_end_offset = cur_offset + envelope_size;
10934 if 6 > max_ordinal {
10935 return Ok(());
10936 }
10937
10938 let cur_offset: usize = (6 - 1) * envelope_size;
10941
10942 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10944
10945 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
10950 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
10951 encoder, offset + cur_offset, depth
10952 )?;
10953
10954 _prev_end_offset = cur_offset + envelope_size;
10955
10956 Ok(())
10957 }
10958 }
10959
10960 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeDictionary {
10961 #[inline(always)]
10962 fn new_empty() -> Self {
10963 Self::default()
10964 }
10965
10966 unsafe fn decode(
10967 &mut self,
10968 decoder: &mut fidl::encoding::Decoder<'_, D>,
10969 offset: usize,
10970 mut depth: fidl::encoding::Depth,
10971 ) -> fidl::Result<()> {
10972 decoder.debug_check_bounds::<Self>(offset);
10973 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10974 None => return Err(fidl::Error::NotNullable),
10975 Some(len) => len,
10976 };
10977 if len == 0 {
10979 return Ok(());
10980 };
10981 depth.increment()?;
10982 let envelope_size = 8;
10983 let bytes_len = len * envelope_size;
10984 let offset = decoder.out_of_line_offset(bytes_len)?;
10985 let mut _next_ordinal_to_read = 0;
10987 let mut next_offset = offset;
10988 let end_offset = offset + bytes_len;
10989 _next_ordinal_to_read += 1;
10990 if next_offset >= end_offset {
10991 return Ok(());
10992 }
10993
10994 while _next_ordinal_to_read < 1 {
10996 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10997 _next_ordinal_to_read += 1;
10998 next_offset += envelope_size;
10999 }
11000
11001 let next_out_of_line = decoder.next_out_of_line();
11002 let handles_before = decoder.remaining_handles();
11003 if let Some((inlined, num_bytes, num_handles)) =
11004 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11005 {
11006 let member_inline_size =
11007 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11008 if inlined != (member_inline_size <= 4) {
11009 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11010 }
11011 let inner_offset;
11012 let mut inner_depth = depth.clone();
11013 if inlined {
11014 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11015 inner_offset = next_offset;
11016 } else {
11017 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11018 inner_depth.increment()?;
11019 }
11020 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11021 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11022 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11023 {
11024 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11025 }
11026 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11027 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11028 }
11029 }
11030
11031 next_offset += envelope_size;
11032 _next_ordinal_to_read += 1;
11033 if next_offset >= end_offset {
11034 return Ok(());
11035 }
11036
11037 while _next_ordinal_to_read < 2 {
11039 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11040 _next_ordinal_to_read += 1;
11041 next_offset += envelope_size;
11042 }
11043
11044 let next_out_of_line = decoder.next_out_of_line();
11045 let handles_before = decoder.remaining_handles();
11046 if let Some((inlined, num_bytes, num_handles)) =
11047 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11048 {
11049 let member_inline_size =
11050 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11051 decoder.context,
11052 );
11053 if inlined != (member_inline_size <= 4) {
11054 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11055 }
11056 let inner_offset;
11057 let mut inner_depth = depth.clone();
11058 if inlined {
11059 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11060 inner_offset = next_offset;
11061 } else {
11062 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11063 inner_depth.increment()?;
11064 }
11065 let val_ref = self
11066 .source_name
11067 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11068 fidl::decode!(
11069 fidl::encoding::BoundedString<100>,
11070 D,
11071 val_ref,
11072 decoder,
11073 inner_offset,
11074 inner_depth
11075 )?;
11076 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11077 {
11078 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11079 }
11080 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11081 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11082 }
11083 }
11084
11085 next_offset += envelope_size;
11086 _next_ordinal_to_read += 1;
11087 if next_offset >= end_offset {
11088 return Ok(());
11089 }
11090
11091 while _next_ordinal_to_read < 3 {
11093 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11094 _next_ordinal_to_read += 1;
11095 next_offset += envelope_size;
11096 }
11097
11098 let next_out_of_line = decoder.next_out_of_line();
11099 let handles_before = decoder.remaining_handles();
11100 if let Some((inlined, num_bytes, num_handles)) =
11101 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11102 {
11103 let member_inline_size =
11104 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11105 if inlined != (member_inline_size <= 4) {
11106 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11107 }
11108 let inner_offset;
11109 let mut inner_depth = depth.clone();
11110 if inlined {
11111 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11112 inner_offset = next_offset;
11113 } else {
11114 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11115 inner_depth.increment()?;
11116 }
11117 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11118 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11119 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11120 {
11121 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11122 }
11123 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11124 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11125 }
11126 }
11127
11128 next_offset += envelope_size;
11129 _next_ordinal_to_read += 1;
11130 if next_offset >= end_offset {
11131 return Ok(());
11132 }
11133
11134 while _next_ordinal_to_read < 4 {
11136 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11137 _next_ordinal_to_read += 1;
11138 next_offset += envelope_size;
11139 }
11140
11141 let next_out_of_line = decoder.next_out_of_line();
11142 let handles_before = decoder.remaining_handles();
11143 if let Some((inlined, num_bytes, num_handles)) =
11144 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11145 {
11146 let member_inline_size =
11147 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11148 decoder.context,
11149 );
11150 if inlined != (member_inline_size <= 4) {
11151 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11152 }
11153 let inner_offset;
11154 let mut inner_depth = depth.clone();
11155 if inlined {
11156 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11157 inner_offset = next_offset;
11158 } else {
11159 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11160 inner_depth.increment()?;
11161 }
11162 let val_ref = self
11163 .target_name
11164 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11165 fidl::decode!(
11166 fidl::encoding::BoundedString<100>,
11167 D,
11168 val_ref,
11169 decoder,
11170 inner_offset,
11171 inner_depth
11172 )?;
11173 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11174 {
11175 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11176 }
11177 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11178 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11179 }
11180 }
11181
11182 next_offset += envelope_size;
11183 _next_ordinal_to_read += 1;
11184 if next_offset >= end_offset {
11185 return Ok(());
11186 }
11187
11188 while _next_ordinal_to_read < 5 {
11190 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11191 _next_ordinal_to_read += 1;
11192 next_offset += envelope_size;
11193 }
11194
11195 let next_out_of_line = decoder.next_out_of_line();
11196 let handles_before = decoder.remaining_handles();
11197 if let Some((inlined, num_bytes, num_handles)) =
11198 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11199 {
11200 let member_inline_size =
11201 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11202 if inlined != (member_inline_size <= 4) {
11203 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11204 }
11205 let inner_offset;
11206 let mut inner_depth = depth.clone();
11207 if inlined {
11208 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11209 inner_offset = next_offset;
11210 } else {
11211 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11212 inner_depth.increment()?;
11213 }
11214 let val_ref =
11215 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
11216 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
11217 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11218 {
11219 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11220 }
11221 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11222 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11223 }
11224 }
11225
11226 next_offset += envelope_size;
11227 _next_ordinal_to_read += 1;
11228 if next_offset >= end_offset {
11229 return Ok(());
11230 }
11231
11232 while _next_ordinal_to_read < 6 {
11234 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11235 _next_ordinal_to_read += 1;
11236 next_offset += envelope_size;
11237 }
11238
11239 let next_out_of_line = decoder.next_out_of_line();
11240 let handles_before = decoder.remaining_handles();
11241 if let Some((inlined, num_bytes, num_handles)) =
11242 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11243 {
11244 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11245 if inlined != (member_inline_size <= 4) {
11246 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11247 }
11248 let inner_offset;
11249 let mut inner_depth = depth.clone();
11250 if inlined {
11251 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11252 inner_offset = next_offset;
11253 } else {
11254 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11255 inner_depth.increment()?;
11256 }
11257 let val_ref = self.source_dictionary.get_or_insert_with(|| {
11258 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
11259 });
11260 fidl::decode!(
11261 fidl::encoding::BoundedString<1024>,
11262 D,
11263 val_ref,
11264 decoder,
11265 inner_offset,
11266 inner_depth
11267 )?;
11268 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11269 {
11270 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11271 }
11272 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11273 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11274 }
11275 }
11276
11277 next_offset += envelope_size;
11278
11279 while next_offset < end_offset {
11281 _next_ordinal_to_read += 1;
11282 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11283 next_offset += envelope_size;
11284 }
11285
11286 Ok(())
11287 }
11288 }
11289
11290 impl ExposeDirectory {
11291 #[inline(always)]
11292 fn max_ordinal_present(&self) -> u64 {
11293 if let Some(_) = self.source_dictionary {
11294 return 8;
11295 }
11296 if let Some(_) = self.availability {
11297 return 7;
11298 }
11299 if let Some(_) = self.subdir {
11300 return 6;
11301 }
11302 if let Some(_) = self.rights {
11303 return 5;
11304 }
11305 if let Some(_) = self.target_name {
11306 return 4;
11307 }
11308 if let Some(_) = self.target {
11309 return 3;
11310 }
11311 if let Some(_) = self.source_name {
11312 return 2;
11313 }
11314 if let Some(_) = self.source {
11315 return 1;
11316 }
11317 0
11318 }
11319 }
11320
11321 impl fidl::encoding::ValueTypeMarker for ExposeDirectory {
11322 type Borrowed<'a> = &'a Self;
11323 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11324 value
11325 }
11326 }
11327
11328 unsafe impl fidl::encoding::TypeMarker for ExposeDirectory {
11329 type Owned = Self;
11330
11331 #[inline(always)]
11332 fn inline_align(_context: fidl::encoding::Context) -> usize {
11333 8
11334 }
11335
11336 #[inline(always)]
11337 fn inline_size(_context: fidl::encoding::Context) -> usize {
11338 16
11339 }
11340 }
11341
11342 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeDirectory, D>
11343 for &ExposeDirectory
11344 {
11345 unsafe fn encode(
11346 self,
11347 encoder: &mut fidl::encoding::Encoder<'_, D>,
11348 offset: usize,
11349 mut depth: fidl::encoding::Depth,
11350 ) -> fidl::Result<()> {
11351 encoder.debug_check_bounds::<ExposeDirectory>(offset);
11352 let max_ordinal: u64 = self.max_ordinal_present();
11354 encoder.write_num(max_ordinal, offset);
11355 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
11356 if max_ordinal == 0 {
11358 return Ok(());
11359 }
11360 depth.increment()?;
11361 let envelope_size = 8;
11362 let bytes_len = max_ordinal as usize * envelope_size;
11363 #[allow(unused_variables)]
11364 let offset = encoder.out_of_line_offset(bytes_len);
11365 let mut _prev_end_offset: usize = 0;
11366 if 1 > max_ordinal {
11367 return Ok(());
11368 }
11369
11370 let cur_offset: usize = (1 - 1) * envelope_size;
11373
11374 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11376
11377 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11382 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11383 encoder,
11384 offset + cur_offset,
11385 depth,
11386 )?;
11387
11388 _prev_end_offset = cur_offset + envelope_size;
11389 if 2 > max_ordinal {
11390 return Ok(());
11391 }
11392
11393 let cur_offset: usize = (2 - 1) * envelope_size;
11396
11397 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11399
11400 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11405 self.source_name.as_ref().map(
11406 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11407 ),
11408 encoder,
11409 offset + cur_offset,
11410 depth,
11411 )?;
11412
11413 _prev_end_offset = cur_offset + envelope_size;
11414 if 3 > max_ordinal {
11415 return Ok(());
11416 }
11417
11418 let cur_offset: usize = (3 - 1) * envelope_size;
11421
11422 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11424
11425 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
11430 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
11431 encoder,
11432 offset + cur_offset,
11433 depth,
11434 )?;
11435
11436 _prev_end_offset = cur_offset + envelope_size;
11437 if 4 > max_ordinal {
11438 return Ok(());
11439 }
11440
11441 let cur_offset: usize = (4 - 1) * envelope_size;
11444
11445 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11447
11448 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
11453 self.target_name.as_ref().map(
11454 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
11455 ),
11456 encoder,
11457 offset + cur_offset,
11458 depth,
11459 )?;
11460
11461 _prev_end_offset = cur_offset + envelope_size;
11462 if 5 > max_ordinal {
11463 return Ok(());
11464 }
11465
11466 let cur_offset: usize = (5 - 1) * envelope_size;
11469
11470 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11472
11473 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io__common::Operations, D>(
11478 self.rights.as_ref().map(<fidl_fuchsia_io__common::Operations as fidl::encoding::ValueTypeMarker>::borrow),
11479 encoder, offset + cur_offset, depth
11480 )?;
11481
11482 _prev_end_offset = cur_offset + envelope_size;
11483 if 6 > max_ordinal {
11484 return Ok(());
11485 }
11486
11487 let cur_offset: usize = (6 - 1) * envelope_size;
11490
11491 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11493
11494 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
11499 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
11500 encoder, offset + cur_offset, depth
11501 )?;
11502
11503 _prev_end_offset = cur_offset + envelope_size;
11504 if 7 > max_ordinal {
11505 return Ok(());
11506 }
11507
11508 let cur_offset: usize = (7 - 1) * envelope_size;
11511
11512 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11514
11515 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
11520 self.availability
11521 .as_ref()
11522 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
11523 encoder,
11524 offset + cur_offset,
11525 depth,
11526 )?;
11527
11528 _prev_end_offset = cur_offset + envelope_size;
11529 if 8 > max_ordinal {
11530 return Ok(());
11531 }
11532
11533 let cur_offset: usize = (8 - 1) * envelope_size;
11536
11537 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
11539
11540 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
11545 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
11546 encoder, offset + cur_offset, depth
11547 )?;
11548
11549 _prev_end_offset = cur_offset + envelope_size;
11550
11551 Ok(())
11552 }
11553 }
11554
11555 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeDirectory {
11556 #[inline(always)]
11557 fn new_empty() -> Self {
11558 Self::default()
11559 }
11560
11561 unsafe fn decode(
11562 &mut self,
11563 decoder: &mut fidl::encoding::Decoder<'_, D>,
11564 offset: usize,
11565 mut depth: fidl::encoding::Depth,
11566 ) -> fidl::Result<()> {
11567 decoder.debug_check_bounds::<Self>(offset);
11568 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
11569 None => return Err(fidl::Error::NotNullable),
11570 Some(len) => len,
11571 };
11572 if len == 0 {
11574 return Ok(());
11575 };
11576 depth.increment()?;
11577 let envelope_size = 8;
11578 let bytes_len = len * envelope_size;
11579 let offset = decoder.out_of_line_offset(bytes_len)?;
11580 let mut _next_ordinal_to_read = 0;
11582 let mut next_offset = offset;
11583 let end_offset = offset + bytes_len;
11584 _next_ordinal_to_read += 1;
11585 if next_offset >= end_offset {
11586 return Ok(());
11587 }
11588
11589 while _next_ordinal_to_read < 1 {
11591 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11592 _next_ordinal_to_read += 1;
11593 next_offset += envelope_size;
11594 }
11595
11596 let next_out_of_line = decoder.next_out_of_line();
11597 let handles_before = decoder.remaining_handles();
11598 if let Some((inlined, num_bytes, num_handles)) =
11599 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11600 {
11601 let member_inline_size =
11602 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11603 if inlined != (member_inline_size <= 4) {
11604 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11605 }
11606 let inner_offset;
11607 let mut inner_depth = depth.clone();
11608 if inlined {
11609 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11610 inner_offset = next_offset;
11611 } else {
11612 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11613 inner_depth.increment()?;
11614 }
11615 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11616 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11617 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11618 {
11619 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11620 }
11621 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11622 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11623 }
11624 }
11625
11626 next_offset += envelope_size;
11627 _next_ordinal_to_read += 1;
11628 if next_offset >= end_offset {
11629 return Ok(());
11630 }
11631
11632 while _next_ordinal_to_read < 2 {
11634 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11635 _next_ordinal_to_read += 1;
11636 next_offset += envelope_size;
11637 }
11638
11639 let next_out_of_line = decoder.next_out_of_line();
11640 let handles_before = decoder.remaining_handles();
11641 if let Some((inlined, num_bytes, num_handles)) =
11642 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11643 {
11644 let member_inline_size =
11645 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11646 decoder.context,
11647 );
11648 if inlined != (member_inline_size <= 4) {
11649 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11650 }
11651 let inner_offset;
11652 let mut inner_depth = depth.clone();
11653 if inlined {
11654 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11655 inner_offset = next_offset;
11656 } else {
11657 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11658 inner_depth.increment()?;
11659 }
11660 let val_ref = self
11661 .source_name
11662 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11663 fidl::decode!(
11664 fidl::encoding::BoundedString<100>,
11665 D,
11666 val_ref,
11667 decoder,
11668 inner_offset,
11669 inner_depth
11670 )?;
11671 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11672 {
11673 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11674 }
11675 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11676 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11677 }
11678 }
11679
11680 next_offset += envelope_size;
11681 _next_ordinal_to_read += 1;
11682 if next_offset >= end_offset {
11683 return Ok(());
11684 }
11685
11686 while _next_ordinal_to_read < 3 {
11688 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11689 _next_ordinal_to_read += 1;
11690 next_offset += envelope_size;
11691 }
11692
11693 let next_out_of_line = decoder.next_out_of_line();
11694 let handles_before = decoder.remaining_handles();
11695 if let Some((inlined, num_bytes, num_handles)) =
11696 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11697 {
11698 let member_inline_size =
11699 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11700 if inlined != (member_inline_size <= 4) {
11701 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11702 }
11703 let inner_offset;
11704 let mut inner_depth = depth.clone();
11705 if inlined {
11706 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11707 inner_offset = next_offset;
11708 } else {
11709 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11710 inner_depth.increment()?;
11711 }
11712 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
11713 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
11714 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11715 {
11716 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11717 }
11718 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11719 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11720 }
11721 }
11722
11723 next_offset += envelope_size;
11724 _next_ordinal_to_read += 1;
11725 if next_offset >= end_offset {
11726 return Ok(());
11727 }
11728
11729 while _next_ordinal_to_read < 4 {
11731 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11732 _next_ordinal_to_read += 1;
11733 next_offset += envelope_size;
11734 }
11735
11736 let next_out_of_line = decoder.next_out_of_line();
11737 let handles_before = decoder.remaining_handles();
11738 if let Some((inlined, num_bytes, num_handles)) =
11739 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11740 {
11741 let member_inline_size =
11742 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
11743 decoder.context,
11744 );
11745 if inlined != (member_inline_size <= 4) {
11746 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11747 }
11748 let inner_offset;
11749 let mut inner_depth = depth.clone();
11750 if inlined {
11751 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11752 inner_offset = next_offset;
11753 } else {
11754 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11755 inner_depth.increment()?;
11756 }
11757 let val_ref = self
11758 .target_name
11759 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
11760 fidl::decode!(
11761 fidl::encoding::BoundedString<100>,
11762 D,
11763 val_ref,
11764 decoder,
11765 inner_offset,
11766 inner_depth
11767 )?;
11768 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11769 {
11770 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11771 }
11772 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11773 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11774 }
11775 }
11776
11777 next_offset += envelope_size;
11778 _next_ordinal_to_read += 1;
11779 if next_offset >= end_offset {
11780 return Ok(());
11781 }
11782
11783 while _next_ordinal_to_read < 5 {
11785 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11786 _next_ordinal_to_read += 1;
11787 next_offset += envelope_size;
11788 }
11789
11790 let next_out_of_line = decoder.next_out_of_line();
11791 let handles_before = decoder.remaining_handles();
11792 if let Some((inlined, num_bytes, num_handles)) =
11793 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11794 {
11795 let member_inline_size = <fidl_fuchsia_io__common::Operations as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11796 if inlined != (member_inline_size <= 4) {
11797 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11798 }
11799 let inner_offset;
11800 let mut inner_depth = depth.clone();
11801 if inlined {
11802 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11803 inner_offset = next_offset;
11804 } else {
11805 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11806 inner_depth.increment()?;
11807 }
11808 let val_ref = self.rights.get_or_insert_with(|| {
11809 fidl::new_empty!(fidl_fuchsia_io__common::Operations, D)
11810 });
11811 fidl::decode!(
11812 fidl_fuchsia_io__common::Operations,
11813 D,
11814 val_ref,
11815 decoder,
11816 inner_offset,
11817 inner_depth
11818 )?;
11819 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11820 {
11821 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11822 }
11823 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11824 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11825 }
11826 }
11827
11828 next_offset += envelope_size;
11829 _next_ordinal_to_read += 1;
11830 if next_offset >= end_offset {
11831 return Ok(());
11832 }
11833
11834 while _next_ordinal_to_read < 6 {
11836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11837 _next_ordinal_to_read += 1;
11838 next_offset += envelope_size;
11839 }
11840
11841 let next_out_of_line = decoder.next_out_of_line();
11842 let handles_before = decoder.remaining_handles();
11843 if let Some((inlined, num_bytes, num_handles)) =
11844 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11845 {
11846 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11847 if inlined != (member_inline_size <= 4) {
11848 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11849 }
11850 let inner_offset;
11851 let mut inner_depth = depth.clone();
11852 if inlined {
11853 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11854 inner_offset = next_offset;
11855 } else {
11856 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11857 inner_depth.increment()?;
11858 }
11859 let val_ref = self.subdir.get_or_insert_with(|| {
11860 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
11861 });
11862 fidl::decode!(
11863 fidl::encoding::BoundedString<1024>,
11864 D,
11865 val_ref,
11866 decoder,
11867 inner_offset,
11868 inner_depth
11869 )?;
11870 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11871 {
11872 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11873 }
11874 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11875 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11876 }
11877 }
11878
11879 next_offset += envelope_size;
11880 _next_ordinal_to_read += 1;
11881 if next_offset >= end_offset {
11882 return Ok(());
11883 }
11884
11885 while _next_ordinal_to_read < 7 {
11887 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11888 _next_ordinal_to_read += 1;
11889 next_offset += envelope_size;
11890 }
11891
11892 let next_out_of_line = decoder.next_out_of_line();
11893 let handles_before = decoder.remaining_handles();
11894 if let Some((inlined, num_bytes, num_handles)) =
11895 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11896 {
11897 let member_inline_size =
11898 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11899 if inlined != (member_inline_size <= 4) {
11900 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11901 }
11902 let inner_offset;
11903 let mut inner_depth = depth.clone();
11904 if inlined {
11905 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11906 inner_offset = next_offset;
11907 } else {
11908 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11909 inner_depth.increment()?;
11910 }
11911 let val_ref =
11912 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
11913 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
11914 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11915 {
11916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11917 }
11918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11920 }
11921 }
11922
11923 next_offset += envelope_size;
11924 _next_ordinal_to_read += 1;
11925 if next_offset >= end_offset {
11926 return Ok(());
11927 }
11928
11929 while _next_ordinal_to_read < 8 {
11931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11932 _next_ordinal_to_read += 1;
11933 next_offset += envelope_size;
11934 }
11935
11936 let next_out_of_line = decoder.next_out_of_line();
11937 let handles_before = decoder.remaining_handles();
11938 if let Some((inlined, num_bytes, num_handles)) =
11939 fidl::encoding::decode_envelope_header(decoder, next_offset)?
11940 {
11941 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
11942 if inlined != (member_inline_size <= 4) {
11943 return Err(fidl::Error::InvalidInlineBitInEnvelope);
11944 }
11945 let inner_offset;
11946 let mut inner_depth = depth.clone();
11947 if inlined {
11948 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
11949 inner_offset = next_offset;
11950 } else {
11951 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
11952 inner_depth.increment()?;
11953 }
11954 let val_ref = self.source_dictionary.get_or_insert_with(|| {
11955 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
11956 });
11957 fidl::decode!(
11958 fidl::encoding::BoundedString<1024>,
11959 D,
11960 val_ref,
11961 decoder,
11962 inner_offset,
11963 inner_depth
11964 )?;
11965 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
11966 {
11967 return Err(fidl::Error::InvalidNumBytesInEnvelope);
11968 }
11969 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
11970 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
11971 }
11972 }
11973
11974 next_offset += envelope_size;
11975
11976 while next_offset < end_offset {
11978 _next_ordinal_to_read += 1;
11979 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
11980 next_offset += envelope_size;
11981 }
11982
11983 Ok(())
11984 }
11985 }
11986
11987 impl ExposeProtocol {
11988 #[inline(always)]
11989 fn max_ordinal_present(&self) -> u64 {
11990 if let Some(_) = self.source_dictionary {
11991 return 6;
11992 }
11993 if let Some(_) = self.availability {
11994 return 5;
11995 }
11996 if let Some(_) = self.target_name {
11997 return 4;
11998 }
11999 if let Some(_) = self.target {
12000 return 3;
12001 }
12002 if let Some(_) = self.source_name {
12003 return 2;
12004 }
12005 if let Some(_) = self.source {
12006 return 1;
12007 }
12008 0
12009 }
12010 }
12011
12012 impl fidl::encoding::ValueTypeMarker for ExposeProtocol {
12013 type Borrowed<'a> = &'a Self;
12014 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12015 value
12016 }
12017 }
12018
12019 unsafe impl fidl::encoding::TypeMarker for ExposeProtocol {
12020 type Owned = Self;
12021
12022 #[inline(always)]
12023 fn inline_align(_context: fidl::encoding::Context) -> usize {
12024 8
12025 }
12026
12027 #[inline(always)]
12028 fn inline_size(_context: fidl::encoding::Context) -> usize {
12029 16
12030 }
12031 }
12032
12033 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeProtocol, D>
12034 for &ExposeProtocol
12035 {
12036 unsafe fn encode(
12037 self,
12038 encoder: &mut fidl::encoding::Encoder<'_, D>,
12039 offset: usize,
12040 mut depth: fidl::encoding::Depth,
12041 ) -> fidl::Result<()> {
12042 encoder.debug_check_bounds::<ExposeProtocol>(offset);
12043 let max_ordinal: u64 = self.max_ordinal_present();
12045 encoder.write_num(max_ordinal, offset);
12046 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12047 if max_ordinal == 0 {
12049 return Ok(());
12050 }
12051 depth.increment()?;
12052 let envelope_size = 8;
12053 let bytes_len = max_ordinal as usize * envelope_size;
12054 #[allow(unused_variables)]
12055 let offset = encoder.out_of_line_offset(bytes_len);
12056 let mut _prev_end_offset: usize = 0;
12057 if 1 > max_ordinal {
12058 return Ok(());
12059 }
12060
12061 let cur_offset: usize = (1 - 1) * envelope_size;
12064
12065 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12067
12068 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12073 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12074 encoder,
12075 offset + cur_offset,
12076 depth,
12077 )?;
12078
12079 _prev_end_offset = cur_offset + envelope_size;
12080 if 2 > max_ordinal {
12081 return Ok(());
12082 }
12083
12084 let cur_offset: usize = (2 - 1) * envelope_size;
12087
12088 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12090
12091 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12096 self.source_name.as_ref().map(
12097 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12098 ),
12099 encoder,
12100 offset + cur_offset,
12101 depth,
12102 )?;
12103
12104 _prev_end_offset = cur_offset + envelope_size;
12105 if 3 > max_ordinal {
12106 return Ok(());
12107 }
12108
12109 let cur_offset: usize = (3 - 1) * envelope_size;
12112
12113 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12115
12116 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12121 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12122 encoder,
12123 offset + cur_offset,
12124 depth,
12125 )?;
12126
12127 _prev_end_offset = cur_offset + envelope_size;
12128 if 4 > max_ordinal {
12129 return Ok(());
12130 }
12131
12132 let cur_offset: usize = (4 - 1) * envelope_size;
12135
12136 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12138
12139 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12144 self.target_name.as_ref().map(
12145 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12146 ),
12147 encoder,
12148 offset + cur_offset,
12149 depth,
12150 )?;
12151
12152 _prev_end_offset = cur_offset + envelope_size;
12153 if 5 > max_ordinal {
12154 return Ok(());
12155 }
12156
12157 let cur_offset: usize = (5 - 1) * envelope_size;
12160
12161 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12163
12164 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
12169 self.availability
12170 .as_ref()
12171 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
12172 encoder,
12173 offset + cur_offset,
12174 depth,
12175 )?;
12176
12177 _prev_end_offset = cur_offset + envelope_size;
12178 if 6 > max_ordinal {
12179 return Ok(());
12180 }
12181
12182 let cur_offset: usize = (6 - 1) * envelope_size;
12185
12186 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12188
12189 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
12194 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
12195 encoder, offset + cur_offset, depth
12196 )?;
12197
12198 _prev_end_offset = cur_offset + envelope_size;
12199
12200 Ok(())
12201 }
12202 }
12203
12204 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeProtocol {
12205 #[inline(always)]
12206 fn new_empty() -> Self {
12207 Self::default()
12208 }
12209
12210 unsafe fn decode(
12211 &mut self,
12212 decoder: &mut fidl::encoding::Decoder<'_, D>,
12213 offset: usize,
12214 mut depth: fidl::encoding::Depth,
12215 ) -> fidl::Result<()> {
12216 decoder.debug_check_bounds::<Self>(offset);
12217 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12218 None => return Err(fidl::Error::NotNullable),
12219 Some(len) => len,
12220 };
12221 if len == 0 {
12223 return Ok(());
12224 };
12225 depth.increment()?;
12226 let envelope_size = 8;
12227 let bytes_len = len * envelope_size;
12228 let offset = decoder.out_of_line_offset(bytes_len)?;
12229 let mut _next_ordinal_to_read = 0;
12231 let mut next_offset = offset;
12232 let end_offset = offset + bytes_len;
12233 _next_ordinal_to_read += 1;
12234 if next_offset >= end_offset {
12235 return Ok(());
12236 }
12237
12238 while _next_ordinal_to_read < 1 {
12240 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12241 _next_ordinal_to_read += 1;
12242 next_offset += envelope_size;
12243 }
12244
12245 let next_out_of_line = decoder.next_out_of_line();
12246 let handles_before = decoder.remaining_handles();
12247 if let Some((inlined, num_bytes, num_handles)) =
12248 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12249 {
12250 let member_inline_size =
12251 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12252 if inlined != (member_inline_size <= 4) {
12253 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12254 }
12255 let inner_offset;
12256 let mut inner_depth = depth.clone();
12257 if inlined {
12258 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12259 inner_offset = next_offset;
12260 } else {
12261 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12262 inner_depth.increment()?;
12263 }
12264 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
12265 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
12266 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12267 {
12268 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12269 }
12270 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12271 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12272 }
12273 }
12274
12275 next_offset += envelope_size;
12276 _next_ordinal_to_read += 1;
12277 if next_offset >= end_offset {
12278 return Ok(());
12279 }
12280
12281 while _next_ordinal_to_read < 2 {
12283 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12284 _next_ordinal_to_read += 1;
12285 next_offset += envelope_size;
12286 }
12287
12288 let next_out_of_line = decoder.next_out_of_line();
12289 let handles_before = decoder.remaining_handles();
12290 if let Some((inlined, num_bytes, num_handles)) =
12291 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12292 {
12293 let member_inline_size =
12294 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12295 decoder.context,
12296 );
12297 if inlined != (member_inline_size <= 4) {
12298 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12299 }
12300 let inner_offset;
12301 let mut inner_depth = depth.clone();
12302 if inlined {
12303 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12304 inner_offset = next_offset;
12305 } else {
12306 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12307 inner_depth.increment()?;
12308 }
12309 let val_ref = self
12310 .source_name
12311 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12312 fidl::decode!(
12313 fidl::encoding::BoundedString<100>,
12314 D,
12315 val_ref,
12316 decoder,
12317 inner_offset,
12318 inner_depth
12319 )?;
12320 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12321 {
12322 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12323 }
12324 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12325 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12326 }
12327 }
12328
12329 next_offset += envelope_size;
12330 _next_ordinal_to_read += 1;
12331 if next_offset >= end_offset {
12332 return Ok(());
12333 }
12334
12335 while _next_ordinal_to_read < 3 {
12337 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12338 _next_ordinal_to_read += 1;
12339 next_offset += envelope_size;
12340 }
12341
12342 let next_out_of_line = decoder.next_out_of_line();
12343 let handles_before = decoder.remaining_handles();
12344 if let Some((inlined, num_bytes, num_handles)) =
12345 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12346 {
12347 let member_inline_size =
12348 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12349 if inlined != (member_inline_size <= 4) {
12350 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12351 }
12352 let inner_offset;
12353 let mut inner_depth = depth.clone();
12354 if inlined {
12355 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12356 inner_offset = next_offset;
12357 } else {
12358 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12359 inner_depth.increment()?;
12360 }
12361 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
12362 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
12363 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12364 {
12365 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12366 }
12367 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12368 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12369 }
12370 }
12371
12372 next_offset += envelope_size;
12373 _next_ordinal_to_read += 1;
12374 if next_offset >= end_offset {
12375 return Ok(());
12376 }
12377
12378 while _next_ordinal_to_read < 4 {
12380 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12381 _next_ordinal_to_read += 1;
12382 next_offset += envelope_size;
12383 }
12384
12385 let next_out_of_line = decoder.next_out_of_line();
12386 let handles_before = decoder.remaining_handles();
12387 if let Some((inlined, num_bytes, num_handles)) =
12388 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12389 {
12390 let member_inline_size =
12391 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12392 decoder.context,
12393 );
12394 if inlined != (member_inline_size <= 4) {
12395 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12396 }
12397 let inner_offset;
12398 let mut inner_depth = depth.clone();
12399 if inlined {
12400 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12401 inner_offset = next_offset;
12402 } else {
12403 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12404 inner_depth.increment()?;
12405 }
12406 let val_ref = self
12407 .target_name
12408 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12409 fidl::decode!(
12410 fidl::encoding::BoundedString<100>,
12411 D,
12412 val_ref,
12413 decoder,
12414 inner_offset,
12415 inner_depth
12416 )?;
12417 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12418 {
12419 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12420 }
12421 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12422 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12423 }
12424 }
12425
12426 next_offset += envelope_size;
12427 _next_ordinal_to_read += 1;
12428 if next_offset >= end_offset {
12429 return Ok(());
12430 }
12431
12432 while _next_ordinal_to_read < 5 {
12434 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12435 _next_ordinal_to_read += 1;
12436 next_offset += envelope_size;
12437 }
12438
12439 let next_out_of_line = decoder.next_out_of_line();
12440 let handles_before = decoder.remaining_handles();
12441 if let Some((inlined, num_bytes, num_handles)) =
12442 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12443 {
12444 let member_inline_size =
12445 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12446 if inlined != (member_inline_size <= 4) {
12447 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12448 }
12449 let inner_offset;
12450 let mut inner_depth = depth.clone();
12451 if inlined {
12452 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12453 inner_offset = next_offset;
12454 } else {
12455 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12456 inner_depth.increment()?;
12457 }
12458 let val_ref =
12459 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
12460 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
12461 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12462 {
12463 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12464 }
12465 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12466 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12467 }
12468 }
12469
12470 next_offset += envelope_size;
12471 _next_ordinal_to_read += 1;
12472 if next_offset >= end_offset {
12473 return Ok(());
12474 }
12475
12476 while _next_ordinal_to_read < 6 {
12478 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12479 _next_ordinal_to_read += 1;
12480 next_offset += envelope_size;
12481 }
12482
12483 let next_out_of_line = decoder.next_out_of_line();
12484 let handles_before = decoder.remaining_handles();
12485 if let Some((inlined, num_bytes, num_handles)) =
12486 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12487 {
12488 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12489 if inlined != (member_inline_size <= 4) {
12490 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12491 }
12492 let inner_offset;
12493 let mut inner_depth = depth.clone();
12494 if inlined {
12495 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12496 inner_offset = next_offset;
12497 } else {
12498 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12499 inner_depth.increment()?;
12500 }
12501 let val_ref = self.source_dictionary.get_or_insert_with(|| {
12502 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
12503 });
12504 fidl::decode!(
12505 fidl::encoding::BoundedString<1024>,
12506 D,
12507 val_ref,
12508 decoder,
12509 inner_offset,
12510 inner_depth
12511 )?;
12512 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12513 {
12514 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12515 }
12516 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12517 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12518 }
12519 }
12520
12521 next_offset += envelope_size;
12522
12523 while next_offset < end_offset {
12525 _next_ordinal_to_read += 1;
12526 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12527 next_offset += envelope_size;
12528 }
12529
12530 Ok(())
12531 }
12532 }
12533
12534 impl ExposeResolver {
12535 #[inline(always)]
12536 fn max_ordinal_present(&self) -> u64 {
12537 if let Some(_) = self.source_dictionary {
12538 return 6;
12539 }
12540 if let Some(_) = self.target_name {
12541 return 4;
12542 }
12543 if let Some(_) = self.target {
12544 return 3;
12545 }
12546 if let Some(_) = self.source_name {
12547 return 2;
12548 }
12549 if let Some(_) = self.source {
12550 return 1;
12551 }
12552 0
12553 }
12554 }
12555
12556 impl fidl::encoding::ValueTypeMarker for ExposeResolver {
12557 type Borrowed<'a> = &'a Self;
12558 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12559 value
12560 }
12561 }
12562
12563 unsafe impl fidl::encoding::TypeMarker for ExposeResolver {
12564 type Owned = Self;
12565
12566 #[inline(always)]
12567 fn inline_align(_context: fidl::encoding::Context) -> usize {
12568 8
12569 }
12570
12571 #[inline(always)]
12572 fn inline_size(_context: fidl::encoding::Context) -> usize {
12573 16
12574 }
12575 }
12576
12577 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeResolver, D>
12578 for &ExposeResolver
12579 {
12580 unsafe fn encode(
12581 self,
12582 encoder: &mut fidl::encoding::Encoder<'_, D>,
12583 offset: usize,
12584 mut depth: fidl::encoding::Depth,
12585 ) -> fidl::Result<()> {
12586 encoder.debug_check_bounds::<ExposeResolver>(offset);
12587 let max_ordinal: u64 = self.max_ordinal_present();
12589 encoder.write_num(max_ordinal, offset);
12590 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
12591 if max_ordinal == 0 {
12593 return Ok(());
12594 }
12595 depth.increment()?;
12596 let envelope_size = 8;
12597 let bytes_len = max_ordinal as usize * envelope_size;
12598 #[allow(unused_variables)]
12599 let offset = encoder.out_of_line_offset(bytes_len);
12600 let mut _prev_end_offset: usize = 0;
12601 if 1 > max_ordinal {
12602 return Ok(());
12603 }
12604
12605 let cur_offset: usize = (1 - 1) * envelope_size;
12608
12609 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12611
12612 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12617 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12618 encoder,
12619 offset + cur_offset,
12620 depth,
12621 )?;
12622
12623 _prev_end_offset = cur_offset + envelope_size;
12624 if 2 > max_ordinal {
12625 return Ok(());
12626 }
12627
12628 let cur_offset: usize = (2 - 1) * envelope_size;
12631
12632 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12634
12635 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12640 self.source_name.as_ref().map(
12641 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12642 ),
12643 encoder,
12644 offset + cur_offset,
12645 depth,
12646 )?;
12647
12648 _prev_end_offset = cur_offset + envelope_size;
12649 if 3 > max_ordinal {
12650 return Ok(());
12651 }
12652
12653 let cur_offset: usize = (3 - 1) * envelope_size;
12656
12657 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12659
12660 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
12665 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
12666 encoder,
12667 offset + cur_offset,
12668 depth,
12669 )?;
12670
12671 _prev_end_offset = cur_offset + envelope_size;
12672 if 4 > max_ordinal {
12673 return Ok(());
12674 }
12675
12676 let cur_offset: usize = (4 - 1) * envelope_size;
12679
12680 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12682
12683 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
12688 self.target_name.as_ref().map(
12689 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
12690 ),
12691 encoder,
12692 offset + cur_offset,
12693 depth,
12694 )?;
12695
12696 _prev_end_offset = cur_offset + envelope_size;
12697 if 6 > max_ordinal {
12698 return Ok(());
12699 }
12700
12701 let cur_offset: usize = (6 - 1) * envelope_size;
12704
12705 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
12707
12708 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
12713 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
12714 encoder, offset + cur_offset, depth
12715 )?;
12716
12717 _prev_end_offset = cur_offset + envelope_size;
12718
12719 Ok(())
12720 }
12721 }
12722
12723 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeResolver {
12724 #[inline(always)]
12725 fn new_empty() -> Self {
12726 Self::default()
12727 }
12728
12729 unsafe fn decode(
12730 &mut self,
12731 decoder: &mut fidl::encoding::Decoder<'_, D>,
12732 offset: usize,
12733 mut depth: fidl::encoding::Depth,
12734 ) -> fidl::Result<()> {
12735 decoder.debug_check_bounds::<Self>(offset);
12736 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
12737 None => return Err(fidl::Error::NotNullable),
12738 Some(len) => len,
12739 };
12740 if len == 0 {
12742 return Ok(());
12743 };
12744 depth.increment()?;
12745 let envelope_size = 8;
12746 let bytes_len = len * envelope_size;
12747 let offset = decoder.out_of_line_offset(bytes_len)?;
12748 let mut _next_ordinal_to_read = 0;
12750 let mut next_offset = offset;
12751 let end_offset = offset + bytes_len;
12752 _next_ordinal_to_read += 1;
12753 if next_offset >= end_offset {
12754 return Ok(());
12755 }
12756
12757 while _next_ordinal_to_read < 1 {
12759 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12760 _next_ordinal_to_read += 1;
12761 next_offset += envelope_size;
12762 }
12763
12764 let next_out_of_line = decoder.next_out_of_line();
12765 let handles_before = decoder.remaining_handles();
12766 if let Some((inlined, num_bytes, num_handles)) =
12767 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12768 {
12769 let member_inline_size =
12770 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12771 if inlined != (member_inline_size <= 4) {
12772 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12773 }
12774 let inner_offset;
12775 let mut inner_depth = depth.clone();
12776 if inlined {
12777 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12778 inner_offset = next_offset;
12779 } else {
12780 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12781 inner_depth.increment()?;
12782 }
12783 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
12784 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
12785 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12786 {
12787 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12788 }
12789 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12790 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12791 }
12792 }
12793
12794 next_offset += envelope_size;
12795 _next_ordinal_to_read += 1;
12796 if next_offset >= end_offset {
12797 return Ok(());
12798 }
12799
12800 while _next_ordinal_to_read < 2 {
12802 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12803 _next_ordinal_to_read += 1;
12804 next_offset += envelope_size;
12805 }
12806
12807 let next_out_of_line = decoder.next_out_of_line();
12808 let handles_before = decoder.remaining_handles();
12809 if let Some((inlined, num_bytes, num_handles)) =
12810 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12811 {
12812 let member_inline_size =
12813 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12814 decoder.context,
12815 );
12816 if inlined != (member_inline_size <= 4) {
12817 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12818 }
12819 let inner_offset;
12820 let mut inner_depth = depth.clone();
12821 if inlined {
12822 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12823 inner_offset = next_offset;
12824 } else {
12825 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12826 inner_depth.increment()?;
12827 }
12828 let val_ref = self
12829 .source_name
12830 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12831 fidl::decode!(
12832 fidl::encoding::BoundedString<100>,
12833 D,
12834 val_ref,
12835 decoder,
12836 inner_offset,
12837 inner_depth
12838 )?;
12839 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12840 {
12841 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12842 }
12843 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12844 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12845 }
12846 }
12847
12848 next_offset += envelope_size;
12849 _next_ordinal_to_read += 1;
12850 if next_offset >= end_offset {
12851 return Ok(());
12852 }
12853
12854 while _next_ordinal_to_read < 3 {
12856 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12857 _next_ordinal_to_read += 1;
12858 next_offset += envelope_size;
12859 }
12860
12861 let next_out_of_line = decoder.next_out_of_line();
12862 let handles_before = decoder.remaining_handles();
12863 if let Some((inlined, num_bytes, num_handles)) =
12864 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12865 {
12866 let member_inline_size =
12867 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12868 if inlined != (member_inline_size <= 4) {
12869 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12870 }
12871 let inner_offset;
12872 let mut inner_depth = depth.clone();
12873 if inlined {
12874 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12875 inner_offset = next_offset;
12876 } else {
12877 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12878 inner_depth.increment()?;
12879 }
12880 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
12881 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
12882 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12883 {
12884 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12885 }
12886 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12887 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12888 }
12889 }
12890
12891 next_offset += envelope_size;
12892 _next_ordinal_to_read += 1;
12893 if next_offset >= end_offset {
12894 return Ok(());
12895 }
12896
12897 while _next_ordinal_to_read < 4 {
12899 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12900 _next_ordinal_to_read += 1;
12901 next_offset += envelope_size;
12902 }
12903
12904 let next_out_of_line = decoder.next_out_of_line();
12905 let handles_before = decoder.remaining_handles();
12906 if let Some((inlined, num_bytes, num_handles)) =
12907 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12908 {
12909 let member_inline_size =
12910 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
12911 decoder.context,
12912 );
12913 if inlined != (member_inline_size <= 4) {
12914 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12915 }
12916 let inner_offset;
12917 let mut inner_depth = depth.clone();
12918 if inlined {
12919 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12920 inner_offset = next_offset;
12921 } else {
12922 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12923 inner_depth.increment()?;
12924 }
12925 let val_ref = self
12926 .target_name
12927 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
12928 fidl::decode!(
12929 fidl::encoding::BoundedString<100>,
12930 D,
12931 val_ref,
12932 decoder,
12933 inner_offset,
12934 inner_depth
12935 )?;
12936 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12937 {
12938 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12939 }
12940 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12941 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12942 }
12943 }
12944
12945 next_offset += envelope_size;
12946 _next_ordinal_to_read += 1;
12947 if next_offset >= end_offset {
12948 return Ok(());
12949 }
12950
12951 while _next_ordinal_to_read < 6 {
12953 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
12954 _next_ordinal_to_read += 1;
12955 next_offset += envelope_size;
12956 }
12957
12958 let next_out_of_line = decoder.next_out_of_line();
12959 let handles_before = decoder.remaining_handles();
12960 if let Some((inlined, num_bytes, num_handles)) =
12961 fidl::encoding::decode_envelope_header(decoder, next_offset)?
12962 {
12963 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
12964 if inlined != (member_inline_size <= 4) {
12965 return Err(fidl::Error::InvalidInlineBitInEnvelope);
12966 }
12967 let inner_offset;
12968 let mut inner_depth = depth.clone();
12969 if inlined {
12970 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
12971 inner_offset = next_offset;
12972 } else {
12973 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
12974 inner_depth.increment()?;
12975 }
12976 let val_ref = self.source_dictionary.get_or_insert_with(|| {
12977 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
12978 });
12979 fidl::decode!(
12980 fidl::encoding::BoundedString<1024>,
12981 D,
12982 val_ref,
12983 decoder,
12984 inner_offset,
12985 inner_depth
12986 )?;
12987 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
12988 {
12989 return Err(fidl::Error::InvalidNumBytesInEnvelope);
12990 }
12991 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
12992 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
12993 }
12994 }
12995
12996 next_offset += envelope_size;
12997
12998 while next_offset < end_offset {
13000 _next_ordinal_to_read += 1;
13001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13002 next_offset += envelope_size;
13003 }
13004
13005 Ok(())
13006 }
13007 }
13008
13009 impl ExposeRunner {
13010 #[inline(always)]
13011 fn max_ordinal_present(&self) -> u64 {
13012 if let Some(_) = self.source_dictionary {
13013 return 6;
13014 }
13015 if let Some(_) = self.target_name {
13016 return 4;
13017 }
13018 if let Some(_) = self.target {
13019 return 3;
13020 }
13021 if let Some(_) = self.source_name {
13022 return 2;
13023 }
13024 if let Some(_) = self.source {
13025 return 1;
13026 }
13027 0
13028 }
13029 }
13030
13031 impl fidl::encoding::ValueTypeMarker for ExposeRunner {
13032 type Borrowed<'a> = &'a Self;
13033 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13034 value
13035 }
13036 }
13037
13038 unsafe impl fidl::encoding::TypeMarker for ExposeRunner {
13039 type Owned = Self;
13040
13041 #[inline(always)]
13042 fn inline_align(_context: fidl::encoding::Context) -> usize {
13043 8
13044 }
13045
13046 #[inline(always)]
13047 fn inline_size(_context: fidl::encoding::Context) -> usize {
13048 16
13049 }
13050 }
13051
13052 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeRunner, D>
13053 for &ExposeRunner
13054 {
13055 unsafe fn encode(
13056 self,
13057 encoder: &mut fidl::encoding::Encoder<'_, D>,
13058 offset: usize,
13059 mut depth: fidl::encoding::Depth,
13060 ) -> fidl::Result<()> {
13061 encoder.debug_check_bounds::<ExposeRunner>(offset);
13062 let max_ordinal: u64 = self.max_ordinal_present();
13064 encoder.write_num(max_ordinal, offset);
13065 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13066 if max_ordinal == 0 {
13068 return Ok(());
13069 }
13070 depth.increment()?;
13071 let envelope_size = 8;
13072 let bytes_len = max_ordinal as usize * envelope_size;
13073 #[allow(unused_variables)]
13074 let offset = encoder.out_of_line_offset(bytes_len);
13075 let mut _prev_end_offset: usize = 0;
13076 if 1 > max_ordinal {
13077 return Ok(());
13078 }
13079
13080 let cur_offset: usize = (1 - 1) * envelope_size;
13083
13084 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13086
13087 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13092 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13093 encoder,
13094 offset + cur_offset,
13095 depth,
13096 )?;
13097
13098 _prev_end_offset = cur_offset + envelope_size;
13099 if 2 > max_ordinal {
13100 return Ok(());
13101 }
13102
13103 let cur_offset: usize = (2 - 1) * envelope_size;
13106
13107 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13109
13110 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13115 self.source_name.as_ref().map(
13116 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13117 ),
13118 encoder,
13119 offset + cur_offset,
13120 depth,
13121 )?;
13122
13123 _prev_end_offset = cur_offset + envelope_size;
13124 if 3 > max_ordinal {
13125 return Ok(());
13126 }
13127
13128 let cur_offset: usize = (3 - 1) * envelope_size;
13131
13132 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13134
13135 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13140 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13141 encoder,
13142 offset + cur_offset,
13143 depth,
13144 )?;
13145
13146 _prev_end_offset = cur_offset + envelope_size;
13147 if 4 > max_ordinal {
13148 return Ok(());
13149 }
13150
13151 let cur_offset: usize = (4 - 1) * envelope_size;
13154
13155 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13157
13158 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13163 self.target_name.as_ref().map(
13164 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13165 ),
13166 encoder,
13167 offset + cur_offset,
13168 depth,
13169 )?;
13170
13171 _prev_end_offset = cur_offset + envelope_size;
13172 if 6 > max_ordinal {
13173 return Ok(());
13174 }
13175
13176 let cur_offset: usize = (6 - 1) * envelope_size;
13179
13180 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13182
13183 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
13188 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
13189 encoder, offset + cur_offset, depth
13190 )?;
13191
13192 _prev_end_offset = cur_offset + envelope_size;
13193
13194 Ok(())
13195 }
13196 }
13197
13198 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeRunner {
13199 #[inline(always)]
13200 fn new_empty() -> Self {
13201 Self::default()
13202 }
13203
13204 unsafe fn decode(
13205 &mut self,
13206 decoder: &mut fidl::encoding::Decoder<'_, D>,
13207 offset: usize,
13208 mut depth: fidl::encoding::Depth,
13209 ) -> fidl::Result<()> {
13210 decoder.debug_check_bounds::<Self>(offset);
13211 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13212 None => return Err(fidl::Error::NotNullable),
13213 Some(len) => len,
13214 };
13215 if len == 0 {
13217 return Ok(());
13218 };
13219 depth.increment()?;
13220 let envelope_size = 8;
13221 let bytes_len = len * envelope_size;
13222 let offset = decoder.out_of_line_offset(bytes_len)?;
13223 let mut _next_ordinal_to_read = 0;
13225 let mut next_offset = offset;
13226 let end_offset = offset + bytes_len;
13227 _next_ordinal_to_read += 1;
13228 if next_offset >= end_offset {
13229 return Ok(());
13230 }
13231
13232 while _next_ordinal_to_read < 1 {
13234 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13235 _next_ordinal_to_read += 1;
13236 next_offset += envelope_size;
13237 }
13238
13239 let next_out_of_line = decoder.next_out_of_line();
13240 let handles_before = decoder.remaining_handles();
13241 if let Some((inlined, num_bytes, num_handles)) =
13242 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13243 {
13244 let member_inline_size =
13245 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13246 if inlined != (member_inline_size <= 4) {
13247 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13248 }
13249 let inner_offset;
13250 let mut inner_depth = depth.clone();
13251 if inlined {
13252 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13253 inner_offset = next_offset;
13254 } else {
13255 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13256 inner_depth.increment()?;
13257 }
13258 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13259 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13260 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13261 {
13262 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13263 }
13264 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13265 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13266 }
13267 }
13268
13269 next_offset += envelope_size;
13270 _next_ordinal_to_read += 1;
13271 if next_offset >= end_offset {
13272 return Ok(());
13273 }
13274
13275 while _next_ordinal_to_read < 2 {
13277 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13278 _next_ordinal_to_read += 1;
13279 next_offset += envelope_size;
13280 }
13281
13282 let next_out_of_line = decoder.next_out_of_line();
13283 let handles_before = decoder.remaining_handles();
13284 if let Some((inlined, num_bytes, num_handles)) =
13285 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13286 {
13287 let member_inline_size =
13288 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13289 decoder.context,
13290 );
13291 if inlined != (member_inline_size <= 4) {
13292 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13293 }
13294 let inner_offset;
13295 let mut inner_depth = depth.clone();
13296 if inlined {
13297 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13298 inner_offset = next_offset;
13299 } else {
13300 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13301 inner_depth.increment()?;
13302 }
13303 let val_ref = self
13304 .source_name
13305 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13306 fidl::decode!(
13307 fidl::encoding::BoundedString<100>,
13308 D,
13309 val_ref,
13310 decoder,
13311 inner_offset,
13312 inner_depth
13313 )?;
13314 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13315 {
13316 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13317 }
13318 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13319 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13320 }
13321 }
13322
13323 next_offset += envelope_size;
13324 _next_ordinal_to_read += 1;
13325 if next_offset >= end_offset {
13326 return Ok(());
13327 }
13328
13329 while _next_ordinal_to_read < 3 {
13331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13332 _next_ordinal_to_read += 1;
13333 next_offset += envelope_size;
13334 }
13335
13336 let next_out_of_line = decoder.next_out_of_line();
13337 let handles_before = decoder.remaining_handles();
13338 if let Some((inlined, num_bytes, num_handles)) =
13339 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13340 {
13341 let member_inline_size =
13342 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13343 if inlined != (member_inline_size <= 4) {
13344 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13345 }
13346 let inner_offset;
13347 let mut inner_depth = depth.clone();
13348 if inlined {
13349 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13350 inner_offset = next_offset;
13351 } else {
13352 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13353 inner_depth.increment()?;
13354 }
13355 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13356 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13357 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13358 {
13359 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13360 }
13361 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13362 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13363 }
13364 }
13365
13366 next_offset += envelope_size;
13367 _next_ordinal_to_read += 1;
13368 if next_offset >= end_offset {
13369 return Ok(());
13370 }
13371
13372 while _next_ordinal_to_read < 4 {
13374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13375 _next_ordinal_to_read += 1;
13376 next_offset += envelope_size;
13377 }
13378
13379 let next_out_of_line = decoder.next_out_of_line();
13380 let handles_before = decoder.remaining_handles();
13381 if let Some((inlined, num_bytes, num_handles)) =
13382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13383 {
13384 let member_inline_size =
13385 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13386 decoder.context,
13387 );
13388 if inlined != (member_inline_size <= 4) {
13389 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13390 }
13391 let inner_offset;
13392 let mut inner_depth = depth.clone();
13393 if inlined {
13394 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13395 inner_offset = next_offset;
13396 } else {
13397 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13398 inner_depth.increment()?;
13399 }
13400 let val_ref = self
13401 .target_name
13402 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13403 fidl::decode!(
13404 fidl::encoding::BoundedString<100>,
13405 D,
13406 val_ref,
13407 decoder,
13408 inner_offset,
13409 inner_depth
13410 )?;
13411 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13412 {
13413 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13414 }
13415 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13416 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13417 }
13418 }
13419
13420 next_offset += envelope_size;
13421 _next_ordinal_to_read += 1;
13422 if next_offset >= end_offset {
13423 return Ok(());
13424 }
13425
13426 while _next_ordinal_to_read < 6 {
13428 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13429 _next_ordinal_to_read += 1;
13430 next_offset += envelope_size;
13431 }
13432
13433 let next_out_of_line = decoder.next_out_of_line();
13434 let handles_before = decoder.remaining_handles();
13435 if let Some((inlined, num_bytes, num_handles)) =
13436 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13437 {
13438 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13439 if inlined != (member_inline_size <= 4) {
13440 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13441 }
13442 let inner_offset;
13443 let mut inner_depth = depth.clone();
13444 if inlined {
13445 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13446 inner_offset = next_offset;
13447 } else {
13448 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13449 inner_depth.increment()?;
13450 }
13451 let val_ref = self.source_dictionary.get_or_insert_with(|| {
13452 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
13453 });
13454 fidl::decode!(
13455 fidl::encoding::BoundedString<1024>,
13456 D,
13457 val_ref,
13458 decoder,
13459 inner_offset,
13460 inner_depth
13461 )?;
13462 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13463 {
13464 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13465 }
13466 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13467 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13468 }
13469 }
13470
13471 next_offset += envelope_size;
13472
13473 while next_offset < end_offset {
13475 _next_ordinal_to_read += 1;
13476 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13477 next_offset += envelope_size;
13478 }
13479
13480 Ok(())
13481 }
13482 }
13483
13484 impl ExposeService {
13485 #[inline(always)]
13486 fn max_ordinal_present(&self) -> u64 {
13487 if let Some(_) = self.source_dictionary {
13488 return 6;
13489 }
13490 if let Some(_) = self.availability {
13491 return 5;
13492 }
13493 if let Some(_) = self.target_name {
13494 return 4;
13495 }
13496 if let Some(_) = self.target {
13497 return 3;
13498 }
13499 if let Some(_) = self.source_name {
13500 return 2;
13501 }
13502 if let Some(_) = self.source {
13503 return 1;
13504 }
13505 0
13506 }
13507 }
13508
13509 impl fidl::encoding::ValueTypeMarker for ExposeService {
13510 type Borrowed<'a> = &'a Self;
13511 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13512 value
13513 }
13514 }
13515
13516 unsafe impl fidl::encoding::TypeMarker for ExposeService {
13517 type Owned = Self;
13518
13519 #[inline(always)]
13520 fn inline_align(_context: fidl::encoding::Context) -> usize {
13521 8
13522 }
13523
13524 #[inline(always)]
13525 fn inline_size(_context: fidl::encoding::Context) -> usize {
13526 16
13527 }
13528 }
13529
13530 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ExposeService, D>
13531 for &ExposeService
13532 {
13533 unsafe fn encode(
13534 self,
13535 encoder: &mut fidl::encoding::Encoder<'_, D>,
13536 offset: usize,
13537 mut depth: fidl::encoding::Depth,
13538 ) -> fidl::Result<()> {
13539 encoder.debug_check_bounds::<ExposeService>(offset);
13540 let max_ordinal: u64 = self.max_ordinal_present();
13542 encoder.write_num(max_ordinal, offset);
13543 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
13544 if max_ordinal == 0 {
13546 return Ok(());
13547 }
13548 depth.increment()?;
13549 let envelope_size = 8;
13550 let bytes_len = max_ordinal as usize * envelope_size;
13551 #[allow(unused_variables)]
13552 let offset = encoder.out_of_line_offset(bytes_len);
13553 let mut _prev_end_offset: usize = 0;
13554 if 1 > max_ordinal {
13555 return Ok(());
13556 }
13557
13558 let cur_offset: usize = (1 - 1) * envelope_size;
13561
13562 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13564
13565 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13570 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13571 encoder,
13572 offset + cur_offset,
13573 depth,
13574 )?;
13575
13576 _prev_end_offset = cur_offset + envelope_size;
13577 if 2 > max_ordinal {
13578 return Ok(());
13579 }
13580
13581 let cur_offset: usize = (2 - 1) * envelope_size;
13584
13585 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13587
13588 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13593 self.source_name.as_ref().map(
13594 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13595 ),
13596 encoder,
13597 offset + cur_offset,
13598 depth,
13599 )?;
13600
13601 _prev_end_offset = cur_offset + envelope_size;
13602 if 3 > max_ordinal {
13603 return Ok(());
13604 }
13605
13606 let cur_offset: usize = (3 - 1) * envelope_size;
13609
13610 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13612
13613 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
13618 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
13619 encoder,
13620 offset + cur_offset,
13621 depth,
13622 )?;
13623
13624 _prev_end_offset = cur_offset + envelope_size;
13625 if 4 > max_ordinal {
13626 return Ok(());
13627 }
13628
13629 let cur_offset: usize = (4 - 1) * envelope_size;
13632
13633 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13635
13636 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
13641 self.target_name.as_ref().map(
13642 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
13643 ),
13644 encoder,
13645 offset + cur_offset,
13646 depth,
13647 )?;
13648
13649 _prev_end_offset = cur_offset + envelope_size;
13650 if 5 > max_ordinal {
13651 return Ok(());
13652 }
13653
13654 let cur_offset: usize = (5 - 1) * envelope_size;
13657
13658 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13660
13661 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
13666 self.availability
13667 .as_ref()
13668 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
13669 encoder,
13670 offset + cur_offset,
13671 depth,
13672 )?;
13673
13674 _prev_end_offset = cur_offset + envelope_size;
13675 if 6 > max_ordinal {
13676 return Ok(());
13677 }
13678
13679 let cur_offset: usize = (6 - 1) * envelope_size;
13682
13683 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
13685
13686 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
13691 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
13692 encoder, offset + cur_offset, depth
13693 )?;
13694
13695 _prev_end_offset = cur_offset + envelope_size;
13696
13697 Ok(())
13698 }
13699 }
13700
13701 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ExposeService {
13702 #[inline(always)]
13703 fn new_empty() -> Self {
13704 Self::default()
13705 }
13706
13707 unsafe fn decode(
13708 &mut self,
13709 decoder: &mut fidl::encoding::Decoder<'_, D>,
13710 offset: usize,
13711 mut depth: fidl::encoding::Depth,
13712 ) -> fidl::Result<()> {
13713 decoder.debug_check_bounds::<Self>(offset);
13714 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
13715 None => return Err(fidl::Error::NotNullable),
13716 Some(len) => len,
13717 };
13718 if len == 0 {
13720 return Ok(());
13721 };
13722 depth.increment()?;
13723 let envelope_size = 8;
13724 let bytes_len = len * envelope_size;
13725 let offset = decoder.out_of_line_offset(bytes_len)?;
13726 let mut _next_ordinal_to_read = 0;
13728 let mut next_offset = offset;
13729 let end_offset = offset + bytes_len;
13730 _next_ordinal_to_read += 1;
13731 if next_offset >= end_offset {
13732 return Ok(());
13733 }
13734
13735 while _next_ordinal_to_read < 1 {
13737 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13738 _next_ordinal_to_read += 1;
13739 next_offset += envelope_size;
13740 }
13741
13742 let next_out_of_line = decoder.next_out_of_line();
13743 let handles_before = decoder.remaining_handles();
13744 if let Some((inlined, num_bytes, num_handles)) =
13745 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13746 {
13747 let member_inline_size =
13748 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13749 if inlined != (member_inline_size <= 4) {
13750 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13751 }
13752 let inner_offset;
13753 let mut inner_depth = depth.clone();
13754 if inlined {
13755 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13756 inner_offset = next_offset;
13757 } else {
13758 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13759 inner_depth.increment()?;
13760 }
13761 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13762 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13763 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13764 {
13765 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13766 }
13767 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13768 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13769 }
13770 }
13771
13772 next_offset += envelope_size;
13773 _next_ordinal_to_read += 1;
13774 if next_offset >= end_offset {
13775 return Ok(());
13776 }
13777
13778 while _next_ordinal_to_read < 2 {
13780 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13781 _next_ordinal_to_read += 1;
13782 next_offset += envelope_size;
13783 }
13784
13785 let next_out_of_line = decoder.next_out_of_line();
13786 let handles_before = decoder.remaining_handles();
13787 if let Some((inlined, num_bytes, num_handles)) =
13788 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13789 {
13790 let member_inline_size =
13791 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13792 decoder.context,
13793 );
13794 if inlined != (member_inline_size <= 4) {
13795 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13796 }
13797 let inner_offset;
13798 let mut inner_depth = depth.clone();
13799 if inlined {
13800 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13801 inner_offset = next_offset;
13802 } else {
13803 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13804 inner_depth.increment()?;
13805 }
13806 let val_ref = self
13807 .source_name
13808 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13809 fidl::decode!(
13810 fidl::encoding::BoundedString<100>,
13811 D,
13812 val_ref,
13813 decoder,
13814 inner_offset,
13815 inner_depth
13816 )?;
13817 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13818 {
13819 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13820 }
13821 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13822 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13823 }
13824 }
13825
13826 next_offset += envelope_size;
13827 _next_ordinal_to_read += 1;
13828 if next_offset >= end_offset {
13829 return Ok(());
13830 }
13831
13832 while _next_ordinal_to_read < 3 {
13834 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13835 _next_ordinal_to_read += 1;
13836 next_offset += envelope_size;
13837 }
13838
13839 let next_out_of_line = decoder.next_out_of_line();
13840 let handles_before = decoder.remaining_handles();
13841 if let Some((inlined, num_bytes, num_handles)) =
13842 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13843 {
13844 let member_inline_size =
13845 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13846 if inlined != (member_inline_size <= 4) {
13847 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13848 }
13849 let inner_offset;
13850 let mut inner_depth = depth.clone();
13851 if inlined {
13852 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13853 inner_offset = next_offset;
13854 } else {
13855 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13856 inner_depth.increment()?;
13857 }
13858 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
13859 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
13860 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13861 {
13862 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13863 }
13864 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13865 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13866 }
13867 }
13868
13869 next_offset += envelope_size;
13870 _next_ordinal_to_read += 1;
13871 if next_offset >= end_offset {
13872 return Ok(());
13873 }
13874
13875 while _next_ordinal_to_read < 4 {
13877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13878 _next_ordinal_to_read += 1;
13879 next_offset += envelope_size;
13880 }
13881
13882 let next_out_of_line = decoder.next_out_of_line();
13883 let handles_before = decoder.remaining_handles();
13884 if let Some((inlined, num_bytes, num_handles)) =
13885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13886 {
13887 let member_inline_size =
13888 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
13889 decoder.context,
13890 );
13891 if inlined != (member_inline_size <= 4) {
13892 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13893 }
13894 let inner_offset;
13895 let mut inner_depth = depth.clone();
13896 if inlined {
13897 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13898 inner_offset = next_offset;
13899 } else {
13900 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13901 inner_depth.increment()?;
13902 }
13903 let val_ref = self
13904 .target_name
13905 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
13906 fidl::decode!(
13907 fidl::encoding::BoundedString<100>,
13908 D,
13909 val_ref,
13910 decoder,
13911 inner_offset,
13912 inner_depth
13913 )?;
13914 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13915 {
13916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13917 }
13918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13920 }
13921 }
13922
13923 next_offset += envelope_size;
13924 _next_ordinal_to_read += 1;
13925 if next_offset >= end_offset {
13926 return Ok(());
13927 }
13928
13929 while _next_ordinal_to_read < 5 {
13931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13932 _next_ordinal_to_read += 1;
13933 next_offset += envelope_size;
13934 }
13935
13936 let next_out_of_line = decoder.next_out_of_line();
13937 let handles_before = decoder.remaining_handles();
13938 if let Some((inlined, num_bytes, num_handles)) =
13939 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13940 {
13941 let member_inline_size =
13942 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13943 if inlined != (member_inline_size <= 4) {
13944 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13945 }
13946 let inner_offset;
13947 let mut inner_depth = depth.clone();
13948 if inlined {
13949 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13950 inner_offset = next_offset;
13951 } else {
13952 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13953 inner_depth.increment()?;
13954 }
13955 let val_ref =
13956 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
13957 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
13958 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
13959 {
13960 return Err(fidl::Error::InvalidNumBytesInEnvelope);
13961 }
13962 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
13963 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
13964 }
13965 }
13966
13967 next_offset += envelope_size;
13968 _next_ordinal_to_read += 1;
13969 if next_offset >= end_offset {
13970 return Ok(());
13971 }
13972
13973 while _next_ordinal_to_read < 6 {
13975 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
13976 _next_ordinal_to_read += 1;
13977 next_offset += envelope_size;
13978 }
13979
13980 let next_out_of_line = decoder.next_out_of_line();
13981 let handles_before = decoder.remaining_handles();
13982 if let Some((inlined, num_bytes, num_handles)) =
13983 fidl::encoding::decode_envelope_header(decoder, next_offset)?
13984 {
13985 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
13986 if inlined != (member_inline_size <= 4) {
13987 return Err(fidl::Error::InvalidInlineBitInEnvelope);
13988 }
13989 let inner_offset;
13990 let mut inner_depth = depth.clone();
13991 if inlined {
13992 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
13993 inner_offset = next_offset;
13994 } else {
13995 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
13996 inner_depth.increment()?;
13997 }
13998 let val_ref = self.source_dictionary.get_or_insert_with(|| {
13999 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
14000 });
14001 fidl::decode!(
14002 fidl::encoding::BoundedString<1024>,
14003 D,
14004 val_ref,
14005 decoder,
14006 inner_offset,
14007 inner_depth
14008 )?;
14009 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14010 {
14011 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14012 }
14013 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14014 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14015 }
14016 }
14017
14018 next_offset += envelope_size;
14019
14020 while next_offset < end_offset {
14022 _next_ordinal_to_read += 1;
14023 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14024 next_offset += envelope_size;
14025 }
14026
14027 Ok(())
14028 }
14029 }
14030
14031 impl OfferConfiguration {
14032 #[inline(always)]
14033 fn max_ordinal_present(&self) -> u64 {
14034 if let Some(_) = self.source_dictionary {
14035 return 6;
14036 }
14037 if let Some(_) = self.availability {
14038 return 5;
14039 }
14040 if let Some(_) = self.target_name {
14041 return 4;
14042 }
14043 if let Some(_) = self.target {
14044 return 3;
14045 }
14046 if let Some(_) = self.source_name {
14047 return 2;
14048 }
14049 if let Some(_) = self.source {
14050 return 1;
14051 }
14052 0
14053 }
14054 }
14055
14056 impl fidl::encoding::ValueTypeMarker for OfferConfiguration {
14057 type Borrowed<'a> = &'a Self;
14058 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14059 value
14060 }
14061 }
14062
14063 unsafe impl fidl::encoding::TypeMarker for OfferConfiguration {
14064 type Owned = Self;
14065
14066 #[inline(always)]
14067 fn inline_align(_context: fidl::encoding::Context) -> usize {
14068 8
14069 }
14070
14071 #[inline(always)]
14072 fn inline_size(_context: fidl::encoding::Context) -> usize {
14073 16
14074 }
14075 }
14076
14077 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferConfiguration, D>
14078 for &OfferConfiguration
14079 {
14080 unsafe fn encode(
14081 self,
14082 encoder: &mut fidl::encoding::Encoder<'_, D>,
14083 offset: usize,
14084 mut depth: fidl::encoding::Depth,
14085 ) -> fidl::Result<()> {
14086 encoder.debug_check_bounds::<OfferConfiguration>(offset);
14087 let max_ordinal: u64 = self.max_ordinal_present();
14089 encoder.write_num(max_ordinal, offset);
14090 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14091 if max_ordinal == 0 {
14093 return Ok(());
14094 }
14095 depth.increment()?;
14096 let envelope_size = 8;
14097 let bytes_len = max_ordinal as usize * envelope_size;
14098 #[allow(unused_variables)]
14099 let offset = encoder.out_of_line_offset(bytes_len);
14100 let mut _prev_end_offset: usize = 0;
14101 if 1 > max_ordinal {
14102 return Ok(());
14103 }
14104
14105 let cur_offset: usize = (1 - 1) * envelope_size;
14108
14109 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14111
14112 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14117 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14118 encoder,
14119 offset + cur_offset,
14120 depth,
14121 )?;
14122
14123 _prev_end_offset = cur_offset + envelope_size;
14124 if 2 > max_ordinal {
14125 return Ok(());
14126 }
14127
14128 let cur_offset: usize = (2 - 1) * envelope_size;
14131
14132 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14134
14135 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14140 self.source_name.as_ref().map(
14141 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14142 ),
14143 encoder,
14144 offset + cur_offset,
14145 depth,
14146 )?;
14147
14148 _prev_end_offset = cur_offset + envelope_size;
14149 if 3 > max_ordinal {
14150 return Ok(());
14151 }
14152
14153 let cur_offset: usize = (3 - 1) * envelope_size;
14156
14157 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14159
14160 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14165 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14166 encoder,
14167 offset + cur_offset,
14168 depth,
14169 )?;
14170
14171 _prev_end_offset = cur_offset + envelope_size;
14172 if 4 > max_ordinal {
14173 return Ok(());
14174 }
14175
14176 let cur_offset: usize = (4 - 1) * envelope_size;
14179
14180 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14182
14183 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14188 self.target_name.as_ref().map(
14189 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14190 ),
14191 encoder,
14192 offset + cur_offset,
14193 depth,
14194 )?;
14195
14196 _prev_end_offset = cur_offset + envelope_size;
14197 if 5 > max_ordinal {
14198 return Ok(());
14199 }
14200
14201 let cur_offset: usize = (5 - 1) * envelope_size;
14204
14205 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14207
14208 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
14213 self.availability
14214 .as_ref()
14215 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
14216 encoder,
14217 offset + cur_offset,
14218 depth,
14219 )?;
14220
14221 _prev_end_offset = cur_offset + envelope_size;
14222 if 6 > max_ordinal {
14223 return Ok(());
14224 }
14225
14226 let cur_offset: usize = (6 - 1) * envelope_size;
14229
14230 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14232
14233 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
14238 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
14239 encoder, offset + cur_offset, depth
14240 )?;
14241
14242 _prev_end_offset = cur_offset + envelope_size;
14243
14244 Ok(())
14245 }
14246 }
14247
14248 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferConfiguration {
14249 #[inline(always)]
14250 fn new_empty() -> Self {
14251 Self::default()
14252 }
14253
14254 unsafe fn decode(
14255 &mut self,
14256 decoder: &mut fidl::encoding::Decoder<'_, D>,
14257 offset: usize,
14258 mut depth: fidl::encoding::Depth,
14259 ) -> fidl::Result<()> {
14260 decoder.debug_check_bounds::<Self>(offset);
14261 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14262 None => return Err(fidl::Error::NotNullable),
14263 Some(len) => len,
14264 };
14265 if len == 0 {
14267 return Ok(());
14268 };
14269 depth.increment()?;
14270 let envelope_size = 8;
14271 let bytes_len = len * envelope_size;
14272 let offset = decoder.out_of_line_offset(bytes_len)?;
14273 let mut _next_ordinal_to_read = 0;
14275 let mut next_offset = offset;
14276 let end_offset = offset + bytes_len;
14277 _next_ordinal_to_read += 1;
14278 if next_offset >= end_offset {
14279 return Ok(());
14280 }
14281
14282 while _next_ordinal_to_read < 1 {
14284 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14285 _next_ordinal_to_read += 1;
14286 next_offset += envelope_size;
14287 }
14288
14289 let next_out_of_line = decoder.next_out_of_line();
14290 let handles_before = decoder.remaining_handles();
14291 if let Some((inlined, num_bytes, num_handles)) =
14292 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14293 {
14294 let member_inline_size =
14295 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14296 if inlined != (member_inline_size <= 4) {
14297 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14298 }
14299 let inner_offset;
14300 let mut inner_depth = depth.clone();
14301 if inlined {
14302 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14303 inner_offset = next_offset;
14304 } else {
14305 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14306 inner_depth.increment()?;
14307 }
14308 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14309 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14310 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14311 {
14312 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14313 }
14314 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14315 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14316 }
14317 }
14318
14319 next_offset += envelope_size;
14320 _next_ordinal_to_read += 1;
14321 if next_offset >= end_offset {
14322 return Ok(());
14323 }
14324
14325 while _next_ordinal_to_read < 2 {
14327 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14328 _next_ordinal_to_read += 1;
14329 next_offset += envelope_size;
14330 }
14331
14332 let next_out_of_line = decoder.next_out_of_line();
14333 let handles_before = decoder.remaining_handles();
14334 if let Some((inlined, num_bytes, num_handles)) =
14335 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14336 {
14337 let member_inline_size =
14338 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14339 decoder.context,
14340 );
14341 if inlined != (member_inline_size <= 4) {
14342 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14343 }
14344 let inner_offset;
14345 let mut inner_depth = depth.clone();
14346 if inlined {
14347 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14348 inner_offset = next_offset;
14349 } else {
14350 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14351 inner_depth.increment()?;
14352 }
14353 let val_ref = self
14354 .source_name
14355 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14356 fidl::decode!(
14357 fidl::encoding::BoundedString<100>,
14358 D,
14359 val_ref,
14360 decoder,
14361 inner_offset,
14362 inner_depth
14363 )?;
14364 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14365 {
14366 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14367 }
14368 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14369 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14370 }
14371 }
14372
14373 next_offset += envelope_size;
14374 _next_ordinal_to_read += 1;
14375 if next_offset >= end_offset {
14376 return Ok(());
14377 }
14378
14379 while _next_ordinal_to_read < 3 {
14381 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14382 _next_ordinal_to_read += 1;
14383 next_offset += envelope_size;
14384 }
14385
14386 let next_out_of_line = decoder.next_out_of_line();
14387 let handles_before = decoder.remaining_handles();
14388 if let Some((inlined, num_bytes, num_handles)) =
14389 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14390 {
14391 let member_inline_size =
14392 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14393 if inlined != (member_inline_size <= 4) {
14394 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14395 }
14396 let inner_offset;
14397 let mut inner_depth = depth.clone();
14398 if inlined {
14399 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14400 inner_offset = next_offset;
14401 } else {
14402 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14403 inner_depth.increment()?;
14404 }
14405 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14406 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14407 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14408 {
14409 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14410 }
14411 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14412 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14413 }
14414 }
14415
14416 next_offset += envelope_size;
14417 _next_ordinal_to_read += 1;
14418 if next_offset >= end_offset {
14419 return Ok(());
14420 }
14421
14422 while _next_ordinal_to_read < 4 {
14424 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14425 _next_ordinal_to_read += 1;
14426 next_offset += envelope_size;
14427 }
14428
14429 let next_out_of_line = decoder.next_out_of_line();
14430 let handles_before = decoder.remaining_handles();
14431 if let Some((inlined, num_bytes, num_handles)) =
14432 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14433 {
14434 let member_inline_size =
14435 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14436 decoder.context,
14437 );
14438 if inlined != (member_inline_size <= 4) {
14439 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14440 }
14441 let inner_offset;
14442 let mut inner_depth = depth.clone();
14443 if inlined {
14444 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14445 inner_offset = next_offset;
14446 } else {
14447 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14448 inner_depth.increment()?;
14449 }
14450 let val_ref = self
14451 .target_name
14452 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14453 fidl::decode!(
14454 fidl::encoding::BoundedString<100>,
14455 D,
14456 val_ref,
14457 decoder,
14458 inner_offset,
14459 inner_depth
14460 )?;
14461 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14462 {
14463 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14464 }
14465 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14466 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14467 }
14468 }
14469
14470 next_offset += envelope_size;
14471 _next_ordinal_to_read += 1;
14472 if next_offset >= end_offset {
14473 return Ok(());
14474 }
14475
14476 while _next_ordinal_to_read < 5 {
14478 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14479 _next_ordinal_to_read += 1;
14480 next_offset += envelope_size;
14481 }
14482
14483 let next_out_of_line = decoder.next_out_of_line();
14484 let handles_before = decoder.remaining_handles();
14485 if let Some((inlined, num_bytes, num_handles)) =
14486 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14487 {
14488 let member_inline_size =
14489 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14490 if inlined != (member_inline_size <= 4) {
14491 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14492 }
14493 let inner_offset;
14494 let mut inner_depth = depth.clone();
14495 if inlined {
14496 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14497 inner_offset = next_offset;
14498 } else {
14499 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14500 inner_depth.increment()?;
14501 }
14502 let val_ref =
14503 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
14504 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
14505 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14506 {
14507 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14508 }
14509 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14510 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14511 }
14512 }
14513
14514 next_offset += envelope_size;
14515 _next_ordinal_to_read += 1;
14516 if next_offset >= end_offset {
14517 return Ok(());
14518 }
14519
14520 while _next_ordinal_to_read < 6 {
14522 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14523 _next_ordinal_to_read += 1;
14524 next_offset += envelope_size;
14525 }
14526
14527 let next_out_of_line = decoder.next_out_of_line();
14528 let handles_before = decoder.remaining_handles();
14529 if let Some((inlined, num_bytes, num_handles)) =
14530 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14531 {
14532 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14533 if inlined != (member_inline_size <= 4) {
14534 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14535 }
14536 let inner_offset;
14537 let mut inner_depth = depth.clone();
14538 if inlined {
14539 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14540 inner_offset = next_offset;
14541 } else {
14542 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14543 inner_depth.increment()?;
14544 }
14545 let val_ref = self.source_dictionary.get_or_insert_with(|| {
14546 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
14547 });
14548 fidl::decode!(
14549 fidl::encoding::BoundedString<1024>,
14550 D,
14551 val_ref,
14552 decoder,
14553 inner_offset,
14554 inner_depth
14555 )?;
14556 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14557 {
14558 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14559 }
14560 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14561 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14562 }
14563 }
14564
14565 next_offset += envelope_size;
14566
14567 while next_offset < end_offset {
14569 _next_ordinal_to_read += 1;
14570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14571 next_offset += envelope_size;
14572 }
14573
14574 Ok(())
14575 }
14576 }
14577
14578 impl OfferDictionary {
14579 #[inline(always)]
14580 fn max_ordinal_present(&self) -> u64 {
14581 if let Some(_) = self.source_dictionary {
14582 return 7;
14583 }
14584 if let Some(_) = self.availability {
14585 return 6;
14586 }
14587 if let Some(_) = self.dependency_type {
14588 return 5;
14589 }
14590 if let Some(_) = self.target_name {
14591 return 4;
14592 }
14593 if let Some(_) = self.target {
14594 return 3;
14595 }
14596 if let Some(_) = self.source_name {
14597 return 2;
14598 }
14599 if let Some(_) = self.source {
14600 return 1;
14601 }
14602 0
14603 }
14604 }
14605
14606 impl fidl::encoding::ValueTypeMarker for OfferDictionary {
14607 type Borrowed<'a> = &'a Self;
14608 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14609 value
14610 }
14611 }
14612
14613 unsafe impl fidl::encoding::TypeMarker for OfferDictionary {
14614 type Owned = Self;
14615
14616 #[inline(always)]
14617 fn inline_align(_context: fidl::encoding::Context) -> usize {
14618 8
14619 }
14620
14621 #[inline(always)]
14622 fn inline_size(_context: fidl::encoding::Context) -> usize {
14623 16
14624 }
14625 }
14626
14627 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferDictionary, D>
14628 for &OfferDictionary
14629 {
14630 unsafe fn encode(
14631 self,
14632 encoder: &mut fidl::encoding::Encoder<'_, D>,
14633 offset: usize,
14634 mut depth: fidl::encoding::Depth,
14635 ) -> fidl::Result<()> {
14636 encoder.debug_check_bounds::<OfferDictionary>(offset);
14637 let max_ordinal: u64 = self.max_ordinal_present();
14639 encoder.write_num(max_ordinal, offset);
14640 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14641 if max_ordinal == 0 {
14643 return Ok(());
14644 }
14645 depth.increment()?;
14646 let envelope_size = 8;
14647 let bytes_len = max_ordinal as usize * envelope_size;
14648 #[allow(unused_variables)]
14649 let offset = encoder.out_of_line_offset(bytes_len);
14650 let mut _prev_end_offset: usize = 0;
14651 if 1 > max_ordinal {
14652 return Ok(());
14653 }
14654
14655 let cur_offset: usize = (1 - 1) * envelope_size;
14658
14659 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14661
14662 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14667 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14668 encoder,
14669 offset + cur_offset,
14670 depth,
14671 )?;
14672
14673 _prev_end_offset = cur_offset + envelope_size;
14674 if 2 > max_ordinal {
14675 return Ok(());
14676 }
14677
14678 let cur_offset: usize = (2 - 1) * envelope_size;
14681
14682 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14684
14685 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14690 self.source_name.as_ref().map(
14691 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14692 ),
14693 encoder,
14694 offset + cur_offset,
14695 depth,
14696 )?;
14697
14698 _prev_end_offset = cur_offset + envelope_size;
14699 if 3 > max_ordinal {
14700 return Ok(());
14701 }
14702
14703 let cur_offset: usize = (3 - 1) * envelope_size;
14706
14707 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14709
14710 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
14715 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
14716 encoder,
14717 offset + cur_offset,
14718 depth,
14719 )?;
14720
14721 _prev_end_offset = cur_offset + envelope_size;
14722 if 4 > max_ordinal {
14723 return Ok(());
14724 }
14725
14726 let cur_offset: usize = (4 - 1) * envelope_size;
14729
14730 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14732
14733 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
14738 self.target_name.as_ref().map(
14739 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
14740 ),
14741 encoder,
14742 offset + cur_offset,
14743 depth,
14744 )?;
14745
14746 _prev_end_offset = cur_offset + envelope_size;
14747 if 5 > max_ordinal {
14748 return Ok(());
14749 }
14750
14751 let cur_offset: usize = (5 - 1) * envelope_size;
14754
14755 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14757
14758 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
14763 self.dependency_type
14764 .as_ref()
14765 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
14766 encoder,
14767 offset + cur_offset,
14768 depth,
14769 )?;
14770
14771 _prev_end_offset = cur_offset + envelope_size;
14772 if 6 > max_ordinal {
14773 return Ok(());
14774 }
14775
14776 let cur_offset: usize = (6 - 1) * envelope_size;
14779
14780 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14782
14783 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
14788 self.availability
14789 .as_ref()
14790 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
14791 encoder,
14792 offset + cur_offset,
14793 depth,
14794 )?;
14795
14796 _prev_end_offset = cur_offset + envelope_size;
14797 if 7 > max_ordinal {
14798 return Ok(());
14799 }
14800
14801 let cur_offset: usize = (7 - 1) * envelope_size;
14804
14805 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
14807
14808 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
14813 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
14814 encoder, offset + cur_offset, depth
14815 )?;
14816
14817 _prev_end_offset = cur_offset + envelope_size;
14818
14819 Ok(())
14820 }
14821 }
14822
14823 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferDictionary {
14824 #[inline(always)]
14825 fn new_empty() -> Self {
14826 Self::default()
14827 }
14828
14829 unsafe fn decode(
14830 &mut self,
14831 decoder: &mut fidl::encoding::Decoder<'_, D>,
14832 offset: usize,
14833 mut depth: fidl::encoding::Depth,
14834 ) -> fidl::Result<()> {
14835 decoder.debug_check_bounds::<Self>(offset);
14836 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14837 None => return Err(fidl::Error::NotNullable),
14838 Some(len) => len,
14839 };
14840 if len == 0 {
14842 return Ok(());
14843 };
14844 depth.increment()?;
14845 let envelope_size = 8;
14846 let bytes_len = len * envelope_size;
14847 let offset = decoder.out_of_line_offset(bytes_len)?;
14848 let mut _next_ordinal_to_read = 0;
14850 let mut next_offset = offset;
14851 let end_offset = offset + bytes_len;
14852 _next_ordinal_to_read += 1;
14853 if next_offset >= end_offset {
14854 return Ok(());
14855 }
14856
14857 while _next_ordinal_to_read < 1 {
14859 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14860 _next_ordinal_to_read += 1;
14861 next_offset += envelope_size;
14862 }
14863
14864 let next_out_of_line = decoder.next_out_of_line();
14865 let handles_before = decoder.remaining_handles();
14866 if let Some((inlined, num_bytes, num_handles)) =
14867 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14868 {
14869 let member_inline_size =
14870 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14871 if inlined != (member_inline_size <= 4) {
14872 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14873 }
14874 let inner_offset;
14875 let mut inner_depth = depth.clone();
14876 if inlined {
14877 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14878 inner_offset = next_offset;
14879 } else {
14880 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14881 inner_depth.increment()?;
14882 }
14883 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14884 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14885 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14886 {
14887 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14888 }
14889 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14890 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14891 }
14892 }
14893
14894 next_offset += envelope_size;
14895 _next_ordinal_to_read += 1;
14896 if next_offset >= end_offset {
14897 return Ok(());
14898 }
14899
14900 while _next_ordinal_to_read < 2 {
14902 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14903 _next_ordinal_to_read += 1;
14904 next_offset += envelope_size;
14905 }
14906
14907 let next_out_of_line = decoder.next_out_of_line();
14908 let handles_before = decoder.remaining_handles();
14909 if let Some((inlined, num_bytes, num_handles)) =
14910 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14911 {
14912 let member_inline_size =
14913 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
14914 decoder.context,
14915 );
14916 if inlined != (member_inline_size <= 4) {
14917 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14918 }
14919 let inner_offset;
14920 let mut inner_depth = depth.clone();
14921 if inlined {
14922 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14923 inner_offset = next_offset;
14924 } else {
14925 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14926 inner_depth.increment()?;
14927 }
14928 let val_ref = self
14929 .source_name
14930 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
14931 fidl::decode!(
14932 fidl::encoding::BoundedString<100>,
14933 D,
14934 val_ref,
14935 decoder,
14936 inner_offset,
14937 inner_depth
14938 )?;
14939 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14940 {
14941 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14942 }
14943 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14944 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14945 }
14946 }
14947
14948 next_offset += envelope_size;
14949 _next_ordinal_to_read += 1;
14950 if next_offset >= end_offset {
14951 return Ok(());
14952 }
14953
14954 while _next_ordinal_to_read < 3 {
14956 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14957 _next_ordinal_to_read += 1;
14958 next_offset += envelope_size;
14959 }
14960
14961 let next_out_of_line = decoder.next_out_of_line();
14962 let handles_before = decoder.remaining_handles();
14963 if let Some((inlined, num_bytes, num_handles)) =
14964 fidl::encoding::decode_envelope_header(decoder, next_offset)?
14965 {
14966 let member_inline_size =
14967 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
14968 if inlined != (member_inline_size <= 4) {
14969 return Err(fidl::Error::InvalidInlineBitInEnvelope);
14970 }
14971 let inner_offset;
14972 let mut inner_depth = depth.clone();
14973 if inlined {
14974 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
14975 inner_offset = next_offset;
14976 } else {
14977 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
14978 inner_depth.increment()?;
14979 }
14980 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
14981 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
14982 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
14983 {
14984 return Err(fidl::Error::InvalidNumBytesInEnvelope);
14985 }
14986 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
14987 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
14988 }
14989 }
14990
14991 next_offset += envelope_size;
14992 _next_ordinal_to_read += 1;
14993 if next_offset >= end_offset {
14994 return Ok(());
14995 }
14996
14997 while _next_ordinal_to_read < 4 {
14999 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15000 _next_ordinal_to_read += 1;
15001 next_offset += envelope_size;
15002 }
15003
15004 let next_out_of_line = decoder.next_out_of_line();
15005 let handles_before = decoder.remaining_handles();
15006 if let Some((inlined, num_bytes, num_handles)) =
15007 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15008 {
15009 let member_inline_size =
15010 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15011 decoder.context,
15012 );
15013 if inlined != (member_inline_size <= 4) {
15014 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15015 }
15016 let inner_offset;
15017 let mut inner_depth = depth.clone();
15018 if inlined {
15019 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15020 inner_offset = next_offset;
15021 } else {
15022 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15023 inner_depth.increment()?;
15024 }
15025 let val_ref = self
15026 .target_name
15027 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15028 fidl::decode!(
15029 fidl::encoding::BoundedString<100>,
15030 D,
15031 val_ref,
15032 decoder,
15033 inner_offset,
15034 inner_depth
15035 )?;
15036 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15037 {
15038 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15039 }
15040 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15041 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15042 }
15043 }
15044
15045 next_offset += envelope_size;
15046 _next_ordinal_to_read += 1;
15047 if next_offset >= end_offset {
15048 return Ok(());
15049 }
15050
15051 while _next_ordinal_to_read < 5 {
15053 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15054 _next_ordinal_to_read += 1;
15055 next_offset += envelope_size;
15056 }
15057
15058 let next_out_of_line = decoder.next_out_of_line();
15059 let handles_before = decoder.remaining_handles();
15060 if let Some((inlined, num_bytes, num_handles)) =
15061 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15062 {
15063 let member_inline_size =
15064 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15065 if inlined != (member_inline_size <= 4) {
15066 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15067 }
15068 let inner_offset;
15069 let mut inner_depth = depth.clone();
15070 if inlined {
15071 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15072 inner_offset = next_offset;
15073 } else {
15074 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15075 inner_depth.increment()?;
15076 }
15077 let val_ref =
15078 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
15079 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
15080 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15081 {
15082 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15083 }
15084 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15085 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15086 }
15087 }
15088
15089 next_offset += envelope_size;
15090 _next_ordinal_to_read += 1;
15091 if next_offset >= end_offset {
15092 return Ok(());
15093 }
15094
15095 while _next_ordinal_to_read < 6 {
15097 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15098 _next_ordinal_to_read += 1;
15099 next_offset += envelope_size;
15100 }
15101
15102 let next_out_of_line = decoder.next_out_of_line();
15103 let handles_before = decoder.remaining_handles();
15104 if let Some((inlined, num_bytes, num_handles)) =
15105 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15106 {
15107 let member_inline_size =
15108 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15109 if inlined != (member_inline_size <= 4) {
15110 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15111 }
15112 let inner_offset;
15113 let mut inner_depth = depth.clone();
15114 if inlined {
15115 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15116 inner_offset = next_offset;
15117 } else {
15118 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15119 inner_depth.increment()?;
15120 }
15121 let val_ref =
15122 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
15123 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
15124 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15125 {
15126 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15127 }
15128 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15129 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15130 }
15131 }
15132
15133 next_offset += envelope_size;
15134 _next_ordinal_to_read += 1;
15135 if next_offset >= end_offset {
15136 return Ok(());
15137 }
15138
15139 while _next_ordinal_to_read < 7 {
15141 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15142 _next_ordinal_to_read += 1;
15143 next_offset += envelope_size;
15144 }
15145
15146 let next_out_of_line = decoder.next_out_of_line();
15147 let handles_before = decoder.remaining_handles();
15148 if let Some((inlined, num_bytes, num_handles)) =
15149 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15150 {
15151 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15152 if inlined != (member_inline_size <= 4) {
15153 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15154 }
15155 let inner_offset;
15156 let mut inner_depth = depth.clone();
15157 if inlined {
15158 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15159 inner_offset = next_offset;
15160 } else {
15161 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15162 inner_depth.increment()?;
15163 }
15164 let val_ref = self.source_dictionary.get_or_insert_with(|| {
15165 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
15166 });
15167 fidl::decode!(
15168 fidl::encoding::BoundedString<1024>,
15169 D,
15170 val_ref,
15171 decoder,
15172 inner_offset,
15173 inner_depth
15174 )?;
15175 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15176 {
15177 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15178 }
15179 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15180 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15181 }
15182 }
15183
15184 next_offset += envelope_size;
15185
15186 while next_offset < end_offset {
15188 _next_ordinal_to_read += 1;
15189 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15190 next_offset += envelope_size;
15191 }
15192
15193 Ok(())
15194 }
15195 }
15196
15197 impl OfferDirectory {
15198 #[inline(always)]
15199 fn max_ordinal_present(&self) -> u64 {
15200 if let Some(_) = self.source_dictionary {
15201 return 9;
15202 }
15203 if let Some(_) = self.availability {
15204 return 8;
15205 }
15206 if let Some(_) = self.dependency_type {
15207 return 7;
15208 }
15209 if let Some(_) = self.subdir {
15210 return 6;
15211 }
15212 if let Some(_) = self.rights {
15213 return 5;
15214 }
15215 if let Some(_) = self.target_name {
15216 return 4;
15217 }
15218 if let Some(_) = self.target {
15219 return 3;
15220 }
15221 if let Some(_) = self.source_name {
15222 return 2;
15223 }
15224 if let Some(_) = self.source {
15225 return 1;
15226 }
15227 0
15228 }
15229 }
15230
15231 impl fidl::encoding::ValueTypeMarker for OfferDirectory {
15232 type Borrowed<'a> = &'a Self;
15233 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15234 value
15235 }
15236 }
15237
15238 unsafe impl fidl::encoding::TypeMarker for OfferDirectory {
15239 type Owned = Self;
15240
15241 #[inline(always)]
15242 fn inline_align(_context: fidl::encoding::Context) -> usize {
15243 8
15244 }
15245
15246 #[inline(always)]
15247 fn inline_size(_context: fidl::encoding::Context) -> usize {
15248 16
15249 }
15250 }
15251
15252 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferDirectory, D>
15253 for &OfferDirectory
15254 {
15255 unsafe fn encode(
15256 self,
15257 encoder: &mut fidl::encoding::Encoder<'_, D>,
15258 offset: usize,
15259 mut depth: fidl::encoding::Depth,
15260 ) -> fidl::Result<()> {
15261 encoder.debug_check_bounds::<OfferDirectory>(offset);
15262 let max_ordinal: u64 = self.max_ordinal_present();
15264 encoder.write_num(max_ordinal, offset);
15265 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15266 if max_ordinal == 0 {
15268 return Ok(());
15269 }
15270 depth.increment()?;
15271 let envelope_size = 8;
15272 let bytes_len = max_ordinal as usize * envelope_size;
15273 #[allow(unused_variables)]
15274 let offset = encoder.out_of_line_offset(bytes_len);
15275 let mut _prev_end_offset: usize = 0;
15276 if 1 > max_ordinal {
15277 return Ok(());
15278 }
15279
15280 let cur_offset: usize = (1 - 1) * envelope_size;
15283
15284 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15286
15287 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
15292 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
15293 encoder,
15294 offset + cur_offset,
15295 depth,
15296 )?;
15297
15298 _prev_end_offset = cur_offset + envelope_size;
15299 if 2 > max_ordinal {
15300 return Ok(());
15301 }
15302
15303 let cur_offset: usize = (2 - 1) * envelope_size;
15306
15307 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15309
15310 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
15315 self.source_name.as_ref().map(
15316 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
15317 ),
15318 encoder,
15319 offset + cur_offset,
15320 depth,
15321 )?;
15322
15323 _prev_end_offset = cur_offset + envelope_size;
15324 if 3 > max_ordinal {
15325 return Ok(());
15326 }
15327
15328 let cur_offset: usize = (3 - 1) * envelope_size;
15331
15332 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15334
15335 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
15340 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
15341 encoder,
15342 offset + cur_offset,
15343 depth,
15344 )?;
15345
15346 _prev_end_offset = cur_offset + envelope_size;
15347 if 4 > max_ordinal {
15348 return Ok(());
15349 }
15350
15351 let cur_offset: usize = (4 - 1) * envelope_size;
15354
15355 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15357
15358 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
15363 self.target_name.as_ref().map(
15364 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
15365 ),
15366 encoder,
15367 offset + cur_offset,
15368 depth,
15369 )?;
15370
15371 _prev_end_offset = cur_offset + envelope_size;
15372 if 5 > max_ordinal {
15373 return Ok(());
15374 }
15375
15376 let cur_offset: usize = (5 - 1) * envelope_size;
15379
15380 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15382
15383 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io__common::Operations, D>(
15388 self.rights.as_ref().map(<fidl_fuchsia_io__common::Operations as fidl::encoding::ValueTypeMarker>::borrow),
15389 encoder, offset + cur_offset, depth
15390 )?;
15391
15392 _prev_end_offset = cur_offset + envelope_size;
15393 if 6 > max_ordinal {
15394 return Ok(());
15395 }
15396
15397 let cur_offset: usize = (6 - 1) * envelope_size;
15400
15401 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15403
15404 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
15409 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
15410 encoder, offset + cur_offset, depth
15411 )?;
15412
15413 _prev_end_offset = cur_offset + envelope_size;
15414 if 7 > max_ordinal {
15415 return Ok(());
15416 }
15417
15418 let cur_offset: usize = (7 - 1) * envelope_size;
15421
15422 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15424
15425 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
15430 self.dependency_type
15431 .as_ref()
15432 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
15433 encoder,
15434 offset + cur_offset,
15435 depth,
15436 )?;
15437
15438 _prev_end_offset = cur_offset + envelope_size;
15439 if 8 > max_ordinal {
15440 return Ok(());
15441 }
15442
15443 let cur_offset: usize = (8 - 1) * envelope_size;
15446
15447 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15449
15450 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
15455 self.availability
15456 .as_ref()
15457 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
15458 encoder,
15459 offset + cur_offset,
15460 depth,
15461 )?;
15462
15463 _prev_end_offset = cur_offset + envelope_size;
15464 if 9 > max_ordinal {
15465 return Ok(());
15466 }
15467
15468 let cur_offset: usize = (9 - 1) * envelope_size;
15471
15472 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15474
15475 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
15480 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
15481 encoder, offset + cur_offset, depth
15482 )?;
15483
15484 _prev_end_offset = cur_offset + envelope_size;
15485
15486 Ok(())
15487 }
15488 }
15489
15490 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferDirectory {
15491 #[inline(always)]
15492 fn new_empty() -> Self {
15493 Self::default()
15494 }
15495
15496 unsafe fn decode(
15497 &mut self,
15498 decoder: &mut fidl::encoding::Decoder<'_, D>,
15499 offset: usize,
15500 mut depth: fidl::encoding::Depth,
15501 ) -> fidl::Result<()> {
15502 decoder.debug_check_bounds::<Self>(offset);
15503 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15504 None => return Err(fidl::Error::NotNullable),
15505 Some(len) => len,
15506 };
15507 if len == 0 {
15509 return Ok(());
15510 };
15511 depth.increment()?;
15512 let envelope_size = 8;
15513 let bytes_len = len * envelope_size;
15514 let offset = decoder.out_of_line_offset(bytes_len)?;
15515 let mut _next_ordinal_to_read = 0;
15517 let mut next_offset = offset;
15518 let end_offset = offset + bytes_len;
15519 _next_ordinal_to_read += 1;
15520 if next_offset >= end_offset {
15521 return Ok(());
15522 }
15523
15524 while _next_ordinal_to_read < 1 {
15526 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15527 _next_ordinal_to_read += 1;
15528 next_offset += envelope_size;
15529 }
15530
15531 let next_out_of_line = decoder.next_out_of_line();
15532 let handles_before = decoder.remaining_handles();
15533 if let Some((inlined, num_bytes, num_handles)) =
15534 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15535 {
15536 let member_inline_size =
15537 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15538 if inlined != (member_inline_size <= 4) {
15539 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15540 }
15541 let inner_offset;
15542 let mut inner_depth = depth.clone();
15543 if inlined {
15544 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15545 inner_offset = next_offset;
15546 } else {
15547 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15548 inner_depth.increment()?;
15549 }
15550 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15551 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15552 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15553 {
15554 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15555 }
15556 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15557 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15558 }
15559 }
15560
15561 next_offset += envelope_size;
15562 _next_ordinal_to_read += 1;
15563 if next_offset >= end_offset {
15564 return Ok(());
15565 }
15566
15567 while _next_ordinal_to_read < 2 {
15569 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15570 _next_ordinal_to_read += 1;
15571 next_offset += envelope_size;
15572 }
15573
15574 let next_out_of_line = decoder.next_out_of_line();
15575 let handles_before = decoder.remaining_handles();
15576 if let Some((inlined, num_bytes, num_handles)) =
15577 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15578 {
15579 let member_inline_size =
15580 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15581 decoder.context,
15582 );
15583 if inlined != (member_inline_size <= 4) {
15584 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15585 }
15586 let inner_offset;
15587 let mut inner_depth = depth.clone();
15588 if inlined {
15589 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15590 inner_offset = next_offset;
15591 } else {
15592 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15593 inner_depth.increment()?;
15594 }
15595 let val_ref = self
15596 .source_name
15597 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15598 fidl::decode!(
15599 fidl::encoding::BoundedString<100>,
15600 D,
15601 val_ref,
15602 decoder,
15603 inner_offset,
15604 inner_depth
15605 )?;
15606 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15607 {
15608 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15609 }
15610 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15611 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15612 }
15613 }
15614
15615 next_offset += envelope_size;
15616 _next_ordinal_to_read += 1;
15617 if next_offset >= end_offset {
15618 return Ok(());
15619 }
15620
15621 while _next_ordinal_to_read < 3 {
15623 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15624 _next_ordinal_to_read += 1;
15625 next_offset += envelope_size;
15626 }
15627
15628 let next_out_of_line = decoder.next_out_of_line();
15629 let handles_before = decoder.remaining_handles();
15630 if let Some((inlined, num_bytes, num_handles)) =
15631 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15632 {
15633 let member_inline_size =
15634 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15635 if inlined != (member_inline_size <= 4) {
15636 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15637 }
15638 let inner_offset;
15639 let mut inner_depth = depth.clone();
15640 if inlined {
15641 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15642 inner_offset = next_offset;
15643 } else {
15644 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15645 inner_depth.increment()?;
15646 }
15647 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
15648 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
15649 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15650 {
15651 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15652 }
15653 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15654 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15655 }
15656 }
15657
15658 next_offset += envelope_size;
15659 _next_ordinal_to_read += 1;
15660 if next_offset >= end_offset {
15661 return Ok(());
15662 }
15663
15664 while _next_ordinal_to_read < 4 {
15666 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15667 _next_ordinal_to_read += 1;
15668 next_offset += envelope_size;
15669 }
15670
15671 let next_out_of_line = decoder.next_out_of_line();
15672 let handles_before = decoder.remaining_handles();
15673 if let Some((inlined, num_bytes, num_handles)) =
15674 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15675 {
15676 let member_inline_size =
15677 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
15678 decoder.context,
15679 );
15680 if inlined != (member_inline_size <= 4) {
15681 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15682 }
15683 let inner_offset;
15684 let mut inner_depth = depth.clone();
15685 if inlined {
15686 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15687 inner_offset = next_offset;
15688 } else {
15689 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15690 inner_depth.increment()?;
15691 }
15692 let val_ref = self
15693 .target_name
15694 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
15695 fidl::decode!(
15696 fidl::encoding::BoundedString<100>,
15697 D,
15698 val_ref,
15699 decoder,
15700 inner_offset,
15701 inner_depth
15702 )?;
15703 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15704 {
15705 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15706 }
15707 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15708 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15709 }
15710 }
15711
15712 next_offset += envelope_size;
15713 _next_ordinal_to_read += 1;
15714 if next_offset >= end_offset {
15715 return Ok(());
15716 }
15717
15718 while _next_ordinal_to_read < 5 {
15720 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15721 _next_ordinal_to_read += 1;
15722 next_offset += envelope_size;
15723 }
15724
15725 let next_out_of_line = decoder.next_out_of_line();
15726 let handles_before = decoder.remaining_handles();
15727 if let Some((inlined, num_bytes, num_handles)) =
15728 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15729 {
15730 let member_inline_size = <fidl_fuchsia_io__common::Operations as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15731 if inlined != (member_inline_size <= 4) {
15732 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15733 }
15734 let inner_offset;
15735 let mut inner_depth = depth.clone();
15736 if inlined {
15737 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15738 inner_offset = next_offset;
15739 } else {
15740 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15741 inner_depth.increment()?;
15742 }
15743 let val_ref = self.rights.get_or_insert_with(|| {
15744 fidl::new_empty!(fidl_fuchsia_io__common::Operations, D)
15745 });
15746 fidl::decode!(
15747 fidl_fuchsia_io__common::Operations,
15748 D,
15749 val_ref,
15750 decoder,
15751 inner_offset,
15752 inner_depth
15753 )?;
15754 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15755 {
15756 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15757 }
15758 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15759 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15760 }
15761 }
15762
15763 next_offset += envelope_size;
15764 _next_ordinal_to_read += 1;
15765 if next_offset >= end_offset {
15766 return Ok(());
15767 }
15768
15769 while _next_ordinal_to_read < 6 {
15771 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15772 _next_ordinal_to_read += 1;
15773 next_offset += envelope_size;
15774 }
15775
15776 let next_out_of_line = decoder.next_out_of_line();
15777 let handles_before = decoder.remaining_handles();
15778 if let Some((inlined, num_bytes, num_handles)) =
15779 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15780 {
15781 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15782 if inlined != (member_inline_size <= 4) {
15783 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15784 }
15785 let inner_offset;
15786 let mut inner_depth = depth.clone();
15787 if inlined {
15788 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15789 inner_offset = next_offset;
15790 } else {
15791 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15792 inner_depth.increment()?;
15793 }
15794 let val_ref = self.subdir.get_or_insert_with(|| {
15795 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
15796 });
15797 fidl::decode!(
15798 fidl::encoding::BoundedString<1024>,
15799 D,
15800 val_ref,
15801 decoder,
15802 inner_offset,
15803 inner_depth
15804 )?;
15805 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15806 {
15807 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15808 }
15809 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15810 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15811 }
15812 }
15813
15814 next_offset += envelope_size;
15815 _next_ordinal_to_read += 1;
15816 if next_offset >= end_offset {
15817 return Ok(());
15818 }
15819
15820 while _next_ordinal_to_read < 7 {
15822 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15823 _next_ordinal_to_read += 1;
15824 next_offset += envelope_size;
15825 }
15826
15827 let next_out_of_line = decoder.next_out_of_line();
15828 let handles_before = decoder.remaining_handles();
15829 if let Some((inlined, num_bytes, num_handles)) =
15830 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15831 {
15832 let member_inline_size =
15833 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15834 if inlined != (member_inline_size <= 4) {
15835 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15836 }
15837 let inner_offset;
15838 let mut inner_depth = depth.clone();
15839 if inlined {
15840 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15841 inner_offset = next_offset;
15842 } else {
15843 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15844 inner_depth.increment()?;
15845 }
15846 let val_ref =
15847 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
15848 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
15849 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15850 {
15851 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15852 }
15853 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15854 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15855 }
15856 }
15857
15858 next_offset += envelope_size;
15859 _next_ordinal_to_read += 1;
15860 if next_offset >= end_offset {
15861 return Ok(());
15862 }
15863
15864 while _next_ordinal_to_read < 8 {
15866 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15867 _next_ordinal_to_read += 1;
15868 next_offset += envelope_size;
15869 }
15870
15871 let next_out_of_line = decoder.next_out_of_line();
15872 let handles_before = decoder.remaining_handles();
15873 if let Some((inlined, num_bytes, num_handles)) =
15874 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15875 {
15876 let member_inline_size =
15877 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15878 if inlined != (member_inline_size <= 4) {
15879 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15880 }
15881 let inner_offset;
15882 let mut inner_depth = depth.clone();
15883 if inlined {
15884 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15885 inner_offset = next_offset;
15886 } else {
15887 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15888 inner_depth.increment()?;
15889 }
15890 let val_ref =
15891 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
15892 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
15893 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15894 {
15895 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15896 }
15897 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15898 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15899 }
15900 }
15901
15902 next_offset += envelope_size;
15903 _next_ordinal_to_read += 1;
15904 if next_offset >= end_offset {
15905 return Ok(());
15906 }
15907
15908 while _next_ordinal_to_read < 9 {
15910 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15911 _next_ordinal_to_read += 1;
15912 next_offset += envelope_size;
15913 }
15914
15915 let next_out_of_line = decoder.next_out_of_line();
15916 let handles_before = decoder.remaining_handles();
15917 if let Some((inlined, num_bytes, num_handles)) =
15918 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15919 {
15920 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15921 if inlined != (member_inline_size <= 4) {
15922 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15923 }
15924 let inner_offset;
15925 let mut inner_depth = depth.clone();
15926 if inlined {
15927 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15928 inner_offset = next_offset;
15929 } else {
15930 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15931 inner_depth.increment()?;
15932 }
15933 let val_ref = self.source_dictionary.get_or_insert_with(|| {
15934 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
15935 });
15936 fidl::decode!(
15937 fidl::encoding::BoundedString<1024>,
15938 D,
15939 val_ref,
15940 decoder,
15941 inner_offset,
15942 inner_depth
15943 )?;
15944 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15945 {
15946 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15947 }
15948 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15949 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15950 }
15951 }
15952
15953 next_offset += envelope_size;
15954
15955 while next_offset < end_offset {
15957 _next_ordinal_to_read += 1;
15958 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15959 next_offset += envelope_size;
15960 }
15961
15962 Ok(())
15963 }
15964 }
15965
15966 impl OfferEventStream {
15967 #[inline(always)]
15968 fn max_ordinal_present(&self) -> u64 {
15969 if let Some(_) = self.availability {
15970 return 7;
15971 }
15972 if let Some(_) = self.target_name {
15973 return 5;
15974 }
15975 if let Some(_) = self.target {
15976 return 4;
15977 }
15978 if let Some(_) = self.scope {
15979 return 3;
15980 }
15981 if let Some(_) = self.source_name {
15982 return 2;
15983 }
15984 if let Some(_) = self.source {
15985 return 1;
15986 }
15987 0
15988 }
15989 }
15990
15991 impl fidl::encoding::ValueTypeMarker for OfferEventStream {
15992 type Borrowed<'a> = &'a Self;
15993 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15994 value
15995 }
15996 }
15997
15998 unsafe impl fidl::encoding::TypeMarker for OfferEventStream {
15999 type Owned = Self;
16000
16001 #[inline(always)]
16002 fn inline_align(_context: fidl::encoding::Context) -> usize {
16003 8
16004 }
16005
16006 #[inline(always)]
16007 fn inline_size(_context: fidl::encoding::Context) -> usize {
16008 16
16009 }
16010 }
16011
16012 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferEventStream, D>
16013 for &OfferEventStream
16014 {
16015 unsafe fn encode(
16016 self,
16017 encoder: &mut fidl::encoding::Encoder<'_, D>,
16018 offset: usize,
16019 mut depth: fidl::encoding::Depth,
16020 ) -> fidl::Result<()> {
16021 encoder.debug_check_bounds::<OfferEventStream>(offset);
16022 let max_ordinal: u64 = self.max_ordinal_present();
16024 encoder.write_num(max_ordinal, offset);
16025 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16026 if max_ordinal == 0 {
16028 return Ok(());
16029 }
16030 depth.increment()?;
16031 let envelope_size = 8;
16032 let bytes_len = max_ordinal as usize * envelope_size;
16033 #[allow(unused_variables)]
16034 let offset = encoder.out_of_line_offset(bytes_len);
16035 let mut _prev_end_offset: usize = 0;
16036 if 1 > max_ordinal {
16037 return Ok(());
16038 }
16039
16040 let cur_offset: usize = (1 - 1) * envelope_size;
16043
16044 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16046
16047 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16052 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16053 encoder,
16054 offset + cur_offset,
16055 depth,
16056 )?;
16057
16058 _prev_end_offset = cur_offset + envelope_size;
16059 if 2 > max_ordinal {
16060 return Ok(());
16061 }
16062
16063 let cur_offset: usize = (2 - 1) * envelope_size;
16066
16067 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16069
16070 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16075 self.source_name.as_ref().map(
16076 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16077 ),
16078 encoder,
16079 offset + cur_offset,
16080 depth,
16081 )?;
16082
16083 _prev_end_offset = cur_offset + envelope_size;
16084 if 3 > max_ordinal {
16085 return Ok(());
16086 }
16087
16088 let cur_offset: usize = (3 - 1) * envelope_size;
16091
16092 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16094
16095 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Ref>, D>(
16100 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<Ref> as fidl::encoding::ValueTypeMarker>::borrow),
16101 encoder, offset + cur_offset, depth
16102 )?;
16103
16104 _prev_end_offset = cur_offset + envelope_size;
16105 if 4 > max_ordinal {
16106 return Ok(());
16107 }
16108
16109 let cur_offset: usize = (4 - 1) * envelope_size;
16112
16113 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16115
16116 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16121 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16122 encoder,
16123 offset + cur_offset,
16124 depth,
16125 )?;
16126
16127 _prev_end_offset = cur_offset + envelope_size;
16128 if 5 > max_ordinal {
16129 return Ok(());
16130 }
16131
16132 let cur_offset: usize = (5 - 1) * envelope_size;
16135
16136 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16138
16139 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16144 self.target_name.as_ref().map(
16145 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16146 ),
16147 encoder,
16148 offset + cur_offset,
16149 depth,
16150 )?;
16151
16152 _prev_end_offset = cur_offset + envelope_size;
16153 if 7 > max_ordinal {
16154 return Ok(());
16155 }
16156
16157 let cur_offset: usize = (7 - 1) * envelope_size;
16160
16161 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16163
16164 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
16169 self.availability
16170 .as_ref()
16171 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
16172 encoder,
16173 offset + cur_offset,
16174 depth,
16175 )?;
16176
16177 _prev_end_offset = cur_offset + envelope_size;
16178
16179 Ok(())
16180 }
16181 }
16182
16183 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferEventStream {
16184 #[inline(always)]
16185 fn new_empty() -> Self {
16186 Self::default()
16187 }
16188
16189 unsafe fn decode(
16190 &mut self,
16191 decoder: &mut fidl::encoding::Decoder<'_, D>,
16192 offset: usize,
16193 mut depth: fidl::encoding::Depth,
16194 ) -> fidl::Result<()> {
16195 decoder.debug_check_bounds::<Self>(offset);
16196 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16197 None => return Err(fidl::Error::NotNullable),
16198 Some(len) => len,
16199 };
16200 if len == 0 {
16202 return Ok(());
16203 };
16204 depth.increment()?;
16205 let envelope_size = 8;
16206 let bytes_len = len * envelope_size;
16207 let offset = decoder.out_of_line_offset(bytes_len)?;
16208 let mut _next_ordinal_to_read = 0;
16210 let mut next_offset = offset;
16211 let end_offset = offset + bytes_len;
16212 _next_ordinal_to_read += 1;
16213 if next_offset >= end_offset {
16214 return Ok(());
16215 }
16216
16217 while _next_ordinal_to_read < 1 {
16219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16220 _next_ordinal_to_read += 1;
16221 next_offset += envelope_size;
16222 }
16223
16224 let next_out_of_line = decoder.next_out_of_line();
16225 let handles_before = decoder.remaining_handles();
16226 if let Some((inlined, num_bytes, num_handles)) =
16227 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16228 {
16229 let member_inline_size =
16230 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16231 if inlined != (member_inline_size <= 4) {
16232 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16233 }
16234 let inner_offset;
16235 let mut inner_depth = depth.clone();
16236 if inlined {
16237 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16238 inner_offset = next_offset;
16239 } else {
16240 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16241 inner_depth.increment()?;
16242 }
16243 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
16244 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
16245 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16246 {
16247 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16248 }
16249 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16250 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16251 }
16252 }
16253
16254 next_offset += envelope_size;
16255 _next_ordinal_to_read += 1;
16256 if next_offset >= end_offset {
16257 return Ok(());
16258 }
16259
16260 while _next_ordinal_to_read < 2 {
16262 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16263 _next_ordinal_to_read += 1;
16264 next_offset += envelope_size;
16265 }
16266
16267 let next_out_of_line = decoder.next_out_of_line();
16268 let handles_before = decoder.remaining_handles();
16269 if let Some((inlined, num_bytes, num_handles)) =
16270 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16271 {
16272 let member_inline_size =
16273 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
16274 decoder.context,
16275 );
16276 if inlined != (member_inline_size <= 4) {
16277 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16278 }
16279 let inner_offset;
16280 let mut inner_depth = depth.clone();
16281 if inlined {
16282 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16283 inner_offset = next_offset;
16284 } else {
16285 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16286 inner_depth.increment()?;
16287 }
16288 let val_ref = self
16289 .source_name
16290 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
16291 fidl::decode!(
16292 fidl::encoding::BoundedString<100>,
16293 D,
16294 val_ref,
16295 decoder,
16296 inner_offset,
16297 inner_depth
16298 )?;
16299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16300 {
16301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16302 }
16303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16305 }
16306 }
16307
16308 next_offset += envelope_size;
16309 _next_ordinal_to_read += 1;
16310 if next_offset >= end_offset {
16311 return Ok(());
16312 }
16313
16314 while _next_ordinal_to_read < 3 {
16316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16317 _next_ordinal_to_read += 1;
16318 next_offset += envelope_size;
16319 }
16320
16321 let next_out_of_line = decoder.next_out_of_line();
16322 let handles_before = decoder.remaining_handles();
16323 if let Some((inlined, num_bytes, num_handles)) =
16324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16325 {
16326 let member_inline_size = <fidl::encoding::UnboundedVector<Ref> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16327 if inlined != (member_inline_size <= 4) {
16328 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16329 }
16330 let inner_offset;
16331 let mut inner_depth = depth.clone();
16332 if inlined {
16333 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16334 inner_offset = next_offset;
16335 } else {
16336 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16337 inner_depth.increment()?;
16338 }
16339 let val_ref = self.scope.get_or_insert_with(|| {
16340 fidl::new_empty!(fidl::encoding::UnboundedVector<Ref>, D)
16341 });
16342 fidl::decode!(
16343 fidl::encoding::UnboundedVector<Ref>,
16344 D,
16345 val_ref,
16346 decoder,
16347 inner_offset,
16348 inner_depth
16349 )?;
16350 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16351 {
16352 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16353 }
16354 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16355 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16356 }
16357 }
16358
16359 next_offset += envelope_size;
16360 _next_ordinal_to_read += 1;
16361 if next_offset >= end_offset {
16362 return Ok(());
16363 }
16364
16365 while _next_ordinal_to_read < 4 {
16367 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16368 _next_ordinal_to_read += 1;
16369 next_offset += envelope_size;
16370 }
16371
16372 let next_out_of_line = decoder.next_out_of_line();
16373 let handles_before = decoder.remaining_handles();
16374 if let Some((inlined, num_bytes, num_handles)) =
16375 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16376 {
16377 let member_inline_size =
16378 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16379 if inlined != (member_inline_size <= 4) {
16380 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16381 }
16382 let inner_offset;
16383 let mut inner_depth = depth.clone();
16384 if inlined {
16385 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16386 inner_offset = next_offset;
16387 } else {
16388 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16389 inner_depth.increment()?;
16390 }
16391 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
16392 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
16393 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16394 {
16395 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16396 }
16397 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16398 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16399 }
16400 }
16401
16402 next_offset += envelope_size;
16403 _next_ordinal_to_read += 1;
16404 if next_offset >= end_offset {
16405 return Ok(());
16406 }
16407
16408 while _next_ordinal_to_read < 5 {
16410 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16411 _next_ordinal_to_read += 1;
16412 next_offset += envelope_size;
16413 }
16414
16415 let next_out_of_line = decoder.next_out_of_line();
16416 let handles_before = decoder.remaining_handles();
16417 if let Some((inlined, num_bytes, num_handles)) =
16418 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16419 {
16420 let member_inline_size =
16421 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
16422 decoder.context,
16423 );
16424 if inlined != (member_inline_size <= 4) {
16425 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16426 }
16427 let inner_offset;
16428 let mut inner_depth = depth.clone();
16429 if inlined {
16430 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16431 inner_offset = next_offset;
16432 } else {
16433 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16434 inner_depth.increment()?;
16435 }
16436 let val_ref = self
16437 .target_name
16438 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
16439 fidl::decode!(
16440 fidl::encoding::BoundedString<100>,
16441 D,
16442 val_ref,
16443 decoder,
16444 inner_offset,
16445 inner_depth
16446 )?;
16447 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16448 {
16449 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16450 }
16451 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16452 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16453 }
16454 }
16455
16456 next_offset += envelope_size;
16457 _next_ordinal_to_read += 1;
16458 if next_offset >= end_offset {
16459 return Ok(());
16460 }
16461
16462 while _next_ordinal_to_read < 7 {
16464 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16465 _next_ordinal_to_read += 1;
16466 next_offset += envelope_size;
16467 }
16468
16469 let next_out_of_line = decoder.next_out_of_line();
16470 let handles_before = decoder.remaining_handles();
16471 if let Some((inlined, num_bytes, num_handles)) =
16472 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16473 {
16474 let member_inline_size =
16475 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16476 if inlined != (member_inline_size <= 4) {
16477 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16478 }
16479 let inner_offset;
16480 let mut inner_depth = depth.clone();
16481 if inlined {
16482 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16483 inner_offset = next_offset;
16484 } else {
16485 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16486 inner_depth.increment()?;
16487 }
16488 let val_ref =
16489 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
16490 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
16491 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16492 {
16493 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16494 }
16495 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16496 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16497 }
16498 }
16499
16500 next_offset += envelope_size;
16501
16502 while next_offset < end_offset {
16504 _next_ordinal_to_read += 1;
16505 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16506 next_offset += envelope_size;
16507 }
16508
16509 Ok(())
16510 }
16511 }
16512
16513 impl OfferProtocol {
16514 #[inline(always)]
16515 fn max_ordinal_present(&self) -> u64 {
16516 if let Some(_) = self.source_dictionary {
16517 return 7;
16518 }
16519 if let Some(_) = self.availability {
16520 return 6;
16521 }
16522 if let Some(_) = self.dependency_type {
16523 return 5;
16524 }
16525 if let Some(_) = self.target_name {
16526 return 4;
16527 }
16528 if let Some(_) = self.target {
16529 return 3;
16530 }
16531 if let Some(_) = self.source_name {
16532 return 2;
16533 }
16534 if let Some(_) = self.source {
16535 return 1;
16536 }
16537 0
16538 }
16539 }
16540
16541 impl fidl::encoding::ValueTypeMarker for OfferProtocol {
16542 type Borrowed<'a> = &'a Self;
16543 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16544 value
16545 }
16546 }
16547
16548 unsafe impl fidl::encoding::TypeMarker for OfferProtocol {
16549 type Owned = Self;
16550
16551 #[inline(always)]
16552 fn inline_align(_context: fidl::encoding::Context) -> usize {
16553 8
16554 }
16555
16556 #[inline(always)]
16557 fn inline_size(_context: fidl::encoding::Context) -> usize {
16558 16
16559 }
16560 }
16561
16562 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferProtocol, D>
16563 for &OfferProtocol
16564 {
16565 unsafe fn encode(
16566 self,
16567 encoder: &mut fidl::encoding::Encoder<'_, D>,
16568 offset: usize,
16569 mut depth: fidl::encoding::Depth,
16570 ) -> fidl::Result<()> {
16571 encoder.debug_check_bounds::<OfferProtocol>(offset);
16572 let max_ordinal: u64 = self.max_ordinal_present();
16574 encoder.write_num(max_ordinal, offset);
16575 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16576 if max_ordinal == 0 {
16578 return Ok(());
16579 }
16580 depth.increment()?;
16581 let envelope_size = 8;
16582 let bytes_len = max_ordinal as usize * envelope_size;
16583 #[allow(unused_variables)]
16584 let offset = encoder.out_of_line_offset(bytes_len);
16585 let mut _prev_end_offset: usize = 0;
16586 if 1 > max_ordinal {
16587 return Ok(());
16588 }
16589
16590 let cur_offset: usize = (1 - 1) * envelope_size;
16593
16594 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16596
16597 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16602 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16603 encoder,
16604 offset + cur_offset,
16605 depth,
16606 )?;
16607
16608 _prev_end_offset = cur_offset + envelope_size;
16609 if 2 > max_ordinal {
16610 return Ok(());
16611 }
16612
16613 let cur_offset: usize = (2 - 1) * envelope_size;
16616
16617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16619
16620 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16625 self.source_name.as_ref().map(
16626 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16627 ),
16628 encoder,
16629 offset + cur_offset,
16630 depth,
16631 )?;
16632
16633 _prev_end_offset = cur_offset + envelope_size;
16634 if 3 > max_ordinal {
16635 return Ok(());
16636 }
16637
16638 let cur_offset: usize = (3 - 1) * envelope_size;
16641
16642 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16644
16645 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
16650 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
16651 encoder,
16652 offset + cur_offset,
16653 depth,
16654 )?;
16655
16656 _prev_end_offset = cur_offset + envelope_size;
16657 if 4 > max_ordinal {
16658 return Ok(());
16659 }
16660
16661 let cur_offset: usize = (4 - 1) * envelope_size;
16664
16665 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16667
16668 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
16673 self.target_name.as_ref().map(
16674 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
16675 ),
16676 encoder,
16677 offset + cur_offset,
16678 depth,
16679 )?;
16680
16681 _prev_end_offset = cur_offset + envelope_size;
16682 if 5 > max_ordinal {
16683 return Ok(());
16684 }
16685
16686 let cur_offset: usize = (5 - 1) * envelope_size;
16689
16690 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16692
16693 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
16698 self.dependency_type
16699 .as_ref()
16700 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
16701 encoder,
16702 offset + cur_offset,
16703 depth,
16704 )?;
16705
16706 _prev_end_offset = cur_offset + envelope_size;
16707 if 6 > max_ordinal {
16708 return Ok(());
16709 }
16710
16711 let cur_offset: usize = (6 - 1) * envelope_size;
16714
16715 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16717
16718 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
16723 self.availability
16724 .as_ref()
16725 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
16726 encoder,
16727 offset + cur_offset,
16728 depth,
16729 )?;
16730
16731 _prev_end_offset = cur_offset + envelope_size;
16732 if 7 > max_ordinal {
16733 return Ok(());
16734 }
16735
16736 let cur_offset: usize = (7 - 1) * envelope_size;
16739
16740 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16742
16743 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
16748 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
16749 encoder, offset + cur_offset, depth
16750 )?;
16751
16752 _prev_end_offset = cur_offset + envelope_size;
16753
16754 Ok(())
16755 }
16756 }
16757
16758 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferProtocol {
16759 #[inline(always)]
16760 fn new_empty() -> Self {
16761 Self::default()
16762 }
16763
16764 unsafe fn decode(
16765 &mut self,
16766 decoder: &mut fidl::encoding::Decoder<'_, D>,
16767 offset: usize,
16768 mut depth: fidl::encoding::Depth,
16769 ) -> fidl::Result<()> {
16770 decoder.debug_check_bounds::<Self>(offset);
16771 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16772 None => return Err(fidl::Error::NotNullable),
16773 Some(len) => len,
16774 };
16775 if len == 0 {
16777 return Ok(());
16778 };
16779 depth.increment()?;
16780 let envelope_size = 8;
16781 let bytes_len = len * envelope_size;
16782 let offset = decoder.out_of_line_offset(bytes_len)?;
16783 let mut _next_ordinal_to_read = 0;
16785 let mut next_offset = offset;
16786 let end_offset = offset + bytes_len;
16787 _next_ordinal_to_read += 1;
16788 if next_offset >= end_offset {
16789 return Ok(());
16790 }
16791
16792 while _next_ordinal_to_read < 1 {
16794 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16795 _next_ordinal_to_read += 1;
16796 next_offset += envelope_size;
16797 }
16798
16799 let next_out_of_line = decoder.next_out_of_line();
16800 let handles_before = decoder.remaining_handles();
16801 if let Some((inlined, num_bytes, num_handles)) =
16802 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16803 {
16804 let member_inline_size =
16805 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16806 if inlined != (member_inline_size <= 4) {
16807 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16808 }
16809 let inner_offset;
16810 let mut inner_depth = depth.clone();
16811 if inlined {
16812 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16813 inner_offset = next_offset;
16814 } else {
16815 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16816 inner_depth.increment()?;
16817 }
16818 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
16819 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
16820 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16821 {
16822 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16823 }
16824 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16825 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16826 }
16827 }
16828
16829 next_offset += envelope_size;
16830 _next_ordinal_to_read += 1;
16831 if next_offset >= end_offset {
16832 return Ok(());
16833 }
16834
16835 while _next_ordinal_to_read < 2 {
16837 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16838 _next_ordinal_to_read += 1;
16839 next_offset += envelope_size;
16840 }
16841
16842 let next_out_of_line = decoder.next_out_of_line();
16843 let handles_before = decoder.remaining_handles();
16844 if let Some((inlined, num_bytes, num_handles)) =
16845 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16846 {
16847 let member_inline_size =
16848 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
16849 decoder.context,
16850 );
16851 if inlined != (member_inline_size <= 4) {
16852 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16853 }
16854 let inner_offset;
16855 let mut inner_depth = depth.clone();
16856 if inlined {
16857 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16858 inner_offset = next_offset;
16859 } else {
16860 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16861 inner_depth.increment()?;
16862 }
16863 let val_ref = self
16864 .source_name
16865 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
16866 fidl::decode!(
16867 fidl::encoding::BoundedString<100>,
16868 D,
16869 val_ref,
16870 decoder,
16871 inner_offset,
16872 inner_depth
16873 )?;
16874 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16875 {
16876 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16877 }
16878 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16879 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16880 }
16881 }
16882
16883 next_offset += envelope_size;
16884 _next_ordinal_to_read += 1;
16885 if next_offset >= end_offset {
16886 return Ok(());
16887 }
16888
16889 while _next_ordinal_to_read < 3 {
16891 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16892 _next_ordinal_to_read += 1;
16893 next_offset += envelope_size;
16894 }
16895
16896 let next_out_of_line = decoder.next_out_of_line();
16897 let handles_before = decoder.remaining_handles();
16898 if let Some((inlined, num_bytes, num_handles)) =
16899 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16900 {
16901 let member_inline_size =
16902 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16903 if inlined != (member_inline_size <= 4) {
16904 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16905 }
16906 let inner_offset;
16907 let mut inner_depth = depth.clone();
16908 if inlined {
16909 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16910 inner_offset = next_offset;
16911 } else {
16912 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16913 inner_depth.increment()?;
16914 }
16915 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
16916 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
16917 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16918 {
16919 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16920 }
16921 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16922 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16923 }
16924 }
16925
16926 next_offset += envelope_size;
16927 _next_ordinal_to_read += 1;
16928 if next_offset >= end_offset {
16929 return Ok(());
16930 }
16931
16932 while _next_ordinal_to_read < 4 {
16934 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16935 _next_ordinal_to_read += 1;
16936 next_offset += envelope_size;
16937 }
16938
16939 let next_out_of_line = decoder.next_out_of_line();
16940 let handles_before = decoder.remaining_handles();
16941 if let Some((inlined, num_bytes, num_handles)) =
16942 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16943 {
16944 let member_inline_size =
16945 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
16946 decoder.context,
16947 );
16948 if inlined != (member_inline_size <= 4) {
16949 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16950 }
16951 let inner_offset;
16952 let mut inner_depth = depth.clone();
16953 if inlined {
16954 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16955 inner_offset = next_offset;
16956 } else {
16957 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16958 inner_depth.increment()?;
16959 }
16960 let val_ref = self
16961 .target_name
16962 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
16963 fidl::decode!(
16964 fidl::encoding::BoundedString<100>,
16965 D,
16966 val_ref,
16967 decoder,
16968 inner_offset,
16969 inner_depth
16970 )?;
16971 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16972 {
16973 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16974 }
16975 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16976 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16977 }
16978 }
16979
16980 next_offset += envelope_size;
16981 _next_ordinal_to_read += 1;
16982 if next_offset >= end_offset {
16983 return Ok(());
16984 }
16985
16986 while _next_ordinal_to_read < 5 {
16988 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16989 _next_ordinal_to_read += 1;
16990 next_offset += envelope_size;
16991 }
16992
16993 let next_out_of_line = decoder.next_out_of_line();
16994 let handles_before = decoder.remaining_handles();
16995 if let Some((inlined, num_bytes, num_handles)) =
16996 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16997 {
16998 let member_inline_size =
16999 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17000 if inlined != (member_inline_size <= 4) {
17001 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17002 }
17003 let inner_offset;
17004 let mut inner_depth = depth.clone();
17005 if inlined {
17006 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17007 inner_offset = next_offset;
17008 } else {
17009 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17010 inner_depth.increment()?;
17011 }
17012 let val_ref =
17013 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
17014 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
17015 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17016 {
17017 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17018 }
17019 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17020 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17021 }
17022 }
17023
17024 next_offset += envelope_size;
17025 _next_ordinal_to_read += 1;
17026 if next_offset >= end_offset {
17027 return Ok(());
17028 }
17029
17030 while _next_ordinal_to_read < 6 {
17032 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17033 _next_ordinal_to_read += 1;
17034 next_offset += envelope_size;
17035 }
17036
17037 let next_out_of_line = decoder.next_out_of_line();
17038 let handles_before = decoder.remaining_handles();
17039 if let Some((inlined, num_bytes, num_handles)) =
17040 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17041 {
17042 let member_inline_size =
17043 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17044 if inlined != (member_inline_size <= 4) {
17045 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17046 }
17047 let inner_offset;
17048 let mut inner_depth = depth.clone();
17049 if inlined {
17050 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17051 inner_offset = next_offset;
17052 } else {
17053 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17054 inner_depth.increment()?;
17055 }
17056 let val_ref =
17057 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
17058 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
17059 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17060 {
17061 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17062 }
17063 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17064 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17065 }
17066 }
17067
17068 next_offset += envelope_size;
17069 _next_ordinal_to_read += 1;
17070 if next_offset >= end_offset {
17071 return Ok(());
17072 }
17073
17074 while _next_ordinal_to_read < 7 {
17076 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17077 _next_ordinal_to_read += 1;
17078 next_offset += envelope_size;
17079 }
17080
17081 let next_out_of_line = decoder.next_out_of_line();
17082 let handles_before = decoder.remaining_handles();
17083 if let Some((inlined, num_bytes, num_handles)) =
17084 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17085 {
17086 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17087 if inlined != (member_inline_size <= 4) {
17088 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17089 }
17090 let inner_offset;
17091 let mut inner_depth = depth.clone();
17092 if inlined {
17093 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17094 inner_offset = next_offset;
17095 } else {
17096 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17097 inner_depth.increment()?;
17098 }
17099 let val_ref = self.source_dictionary.get_or_insert_with(|| {
17100 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
17101 });
17102 fidl::decode!(
17103 fidl::encoding::BoundedString<1024>,
17104 D,
17105 val_ref,
17106 decoder,
17107 inner_offset,
17108 inner_depth
17109 )?;
17110 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17111 {
17112 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17113 }
17114 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17115 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17116 }
17117 }
17118
17119 next_offset += envelope_size;
17120
17121 while next_offset < end_offset {
17123 _next_ordinal_to_read += 1;
17124 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17125 next_offset += envelope_size;
17126 }
17127
17128 Ok(())
17129 }
17130 }
17131
17132 impl OfferResolver {
17133 #[inline(always)]
17134 fn max_ordinal_present(&self) -> u64 {
17135 if let Some(_) = self.source_dictionary {
17136 return 5;
17137 }
17138 if let Some(_) = self.target_name {
17139 return 4;
17140 }
17141 if let Some(_) = self.target {
17142 return 3;
17143 }
17144 if let Some(_) = self.source_name {
17145 return 2;
17146 }
17147 if let Some(_) = self.source {
17148 return 1;
17149 }
17150 0
17151 }
17152 }
17153
17154 impl fidl::encoding::ValueTypeMarker for OfferResolver {
17155 type Borrowed<'a> = &'a Self;
17156 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17157 value
17158 }
17159 }
17160
17161 unsafe impl fidl::encoding::TypeMarker for OfferResolver {
17162 type Owned = Self;
17163
17164 #[inline(always)]
17165 fn inline_align(_context: fidl::encoding::Context) -> usize {
17166 8
17167 }
17168
17169 #[inline(always)]
17170 fn inline_size(_context: fidl::encoding::Context) -> usize {
17171 16
17172 }
17173 }
17174
17175 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferResolver, D>
17176 for &OfferResolver
17177 {
17178 unsafe fn encode(
17179 self,
17180 encoder: &mut fidl::encoding::Encoder<'_, D>,
17181 offset: usize,
17182 mut depth: fidl::encoding::Depth,
17183 ) -> fidl::Result<()> {
17184 encoder.debug_check_bounds::<OfferResolver>(offset);
17185 let max_ordinal: u64 = self.max_ordinal_present();
17187 encoder.write_num(max_ordinal, offset);
17188 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17189 if max_ordinal == 0 {
17191 return Ok(());
17192 }
17193 depth.increment()?;
17194 let envelope_size = 8;
17195 let bytes_len = max_ordinal as usize * envelope_size;
17196 #[allow(unused_variables)]
17197 let offset = encoder.out_of_line_offset(bytes_len);
17198 let mut _prev_end_offset: usize = 0;
17199 if 1 > max_ordinal {
17200 return Ok(());
17201 }
17202
17203 let cur_offset: usize = (1 - 1) * envelope_size;
17206
17207 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17209
17210 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17215 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17216 encoder,
17217 offset + cur_offset,
17218 depth,
17219 )?;
17220
17221 _prev_end_offset = cur_offset + envelope_size;
17222 if 2 > max_ordinal {
17223 return Ok(());
17224 }
17225
17226 let cur_offset: usize = (2 - 1) * envelope_size;
17229
17230 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17232
17233 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17238 self.source_name.as_ref().map(
17239 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
17240 ),
17241 encoder,
17242 offset + cur_offset,
17243 depth,
17244 )?;
17245
17246 _prev_end_offset = cur_offset + envelope_size;
17247 if 3 > max_ordinal {
17248 return Ok(());
17249 }
17250
17251 let cur_offset: usize = (3 - 1) * envelope_size;
17254
17255 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17257
17258 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17263 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17264 encoder,
17265 offset + cur_offset,
17266 depth,
17267 )?;
17268
17269 _prev_end_offset = cur_offset + envelope_size;
17270 if 4 > max_ordinal {
17271 return Ok(());
17272 }
17273
17274 let cur_offset: usize = (4 - 1) * envelope_size;
17277
17278 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17280
17281 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17286 self.target_name.as_ref().map(
17287 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
17288 ),
17289 encoder,
17290 offset + cur_offset,
17291 depth,
17292 )?;
17293
17294 _prev_end_offset = cur_offset + envelope_size;
17295 if 5 > max_ordinal {
17296 return Ok(());
17297 }
17298
17299 let cur_offset: usize = (5 - 1) * envelope_size;
17302
17303 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17305
17306 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
17311 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
17312 encoder, offset + cur_offset, depth
17313 )?;
17314
17315 _prev_end_offset = cur_offset + envelope_size;
17316
17317 Ok(())
17318 }
17319 }
17320
17321 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferResolver {
17322 #[inline(always)]
17323 fn new_empty() -> Self {
17324 Self::default()
17325 }
17326
17327 unsafe fn decode(
17328 &mut self,
17329 decoder: &mut fidl::encoding::Decoder<'_, D>,
17330 offset: usize,
17331 mut depth: fidl::encoding::Depth,
17332 ) -> fidl::Result<()> {
17333 decoder.debug_check_bounds::<Self>(offset);
17334 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17335 None => return Err(fidl::Error::NotNullable),
17336 Some(len) => len,
17337 };
17338 if len == 0 {
17340 return Ok(());
17341 };
17342 depth.increment()?;
17343 let envelope_size = 8;
17344 let bytes_len = len * envelope_size;
17345 let offset = decoder.out_of_line_offset(bytes_len)?;
17346 let mut _next_ordinal_to_read = 0;
17348 let mut next_offset = offset;
17349 let end_offset = offset + bytes_len;
17350 _next_ordinal_to_read += 1;
17351 if next_offset >= end_offset {
17352 return Ok(());
17353 }
17354
17355 while _next_ordinal_to_read < 1 {
17357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17358 _next_ordinal_to_read += 1;
17359 next_offset += envelope_size;
17360 }
17361
17362 let next_out_of_line = decoder.next_out_of_line();
17363 let handles_before = decoder.remaining_handles();
17364 if let Some((inlined, num_bytes, num_handles)) =
17365 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17366 {
17367 let member_inline_size =
17368 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17369 if inlined != (member_inline_size <= 4) {
17370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17371 }
17372 let inner_offset;
17373 let mut inner_depth = depth.clone();
17374 if inlined {
17375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17376 inner_offset = next_offset;
17377 } else {
17378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17379 inner_depth.increment()?;
17380 }
17381 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17382 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17383 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17384 {
17385 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17386 }
17387 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17388 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17389 }
17390 }
17391
17392 next_offset += envelope_size;
17393 _next_ordinal_to_read += 1;
17394 if next_offset >= end_offset {
17395 return Ok(());
17396 }
17397
17398 while _next_ordinal_to_read < 2 {
17400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17401 _next_ordinal_to_read += 1;
17402 next_offset += envelope_size;
17403 }
17404
17405 let next_out_of_line = decoder.next_out_of_line();
17406 let handles_before = decoder.remaining_handles();
17407 if let Some((inlined, num_bytes, num_handles)) =
17408 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17409 {
17410 let member_inline_size =
17411 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17412 decoder.context,
17413 );
17414 if inlined != (member_inline_size <= 4) {
17415 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17416 }
17417 let inner_offset;
17418 let mut inner_depth = depth.clone();
17419 if inlined {
17420 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17421 inner_offset = next_offset;
17422 } else {
17423 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17424 inner_depth.increment()?;
17425 }
17426 let val_ref = self
17427 .source_name
17428 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17429 fidl::decode!(
17430 fidl::encoding::BoundedString<100>,
17431 D,
17432 val_ref,
17433 decoder,
17434 inner_offset,
17435 inner_depth
17436 )?;
17437 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17438 {
17439 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17440 }
17441 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17442 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17443 }
17444 }
17445
17446 next_offset += envelope_size;
17447 _next_ordinal_to_read += 1;
17448 if next_offset >= end_offset {
17449 return Ok(());
17450 }
17451
17452 while _next_ordinal_to_read < 3 {
17454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17455 _next_ordinal_to_read += 1;
17456 next_offset += envelope_size;
17457 }
17458
17459 let next_out_of_line = decoder.next_out_of_line();
17460 let handles_before = decoder.remaining_handles();
17461 if let Some((inlined, num_bytes, num_handles)) =
17462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17463 {
17464 let member_inline_size =
17465 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17466 if inlined != (member_inline_size <= 4) {
17467 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17468 }
17469 let inner_offset;
17470 let mut inner_depth = depth.clone();
17471 if inlined {
17472 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17473 inner_offset = next_offset;
17474 } else {
17475 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17476 inner_depth.increment()?;
17477 }
17478 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17479 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17480 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17481 {
17482 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17483 }
17484 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17485 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17486 }
17487 }
17488
17489 next_offset += envelope_size;
17490 _next_ordinal_to_read += 1;
17491 if next_offset >= end_offset {
17492 return Ok(());
17493 }
17494
17495 while _next_ordinal_to_read < 4 {
17497 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17498 _next_ordinal_to_read += 1;
17499 next_offset += envelope_size;
17500 }
17501
17502 let next_out_of_line = decoder.next_out_of_line();
17503 let handles_before = decoder.remaining_handles();
17504 if let Some((inlined, num_bytes, num_handles)) =
17505 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17506 {
17507 let member_inline_size =
17508 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17509 decoder.context,
17510 );
17511 if inlined != (member_inline_size <= 4) {
17512 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17513 }
17514 let inner_offset;
17515 let mut inner_depth = depth.clone();
17516 if inlined {
17517 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17518 inner_offset = next_offset;
17519 } else {
17520 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17521 inner_depth.increment()?;
17522 }
17523 let val_ref = self
17524 .target_name
17525 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17526 fidl::decode!(
17527 fidl::encoding::BoundedString<100>,
17528 D,
17529 val_ref,
17530 decoder,
17531 inner_offset,
17532 inner_depth
17533 )?;
17534 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17535 {
17536 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17537 }
17538 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17539 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17540 }
17541 }
17542
17543 next_offset += envelope_size;
17544 _next_ordinal_to_read += 1;
17545 if next_offset >= end_offset {
17546 return Ok(());
17547 }
17548
17549 while _next_ordinal_to_read < 5 {
17551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17552 _next_ordinal_to_read += 1;
17553 next_offset += envelope_size;
17554 }
17555
17556 let next_out_of_line = decoder.next_out_of_line();
17557 let handles_before = decoder.remaining_handles();
17558 if let Some((inlined, num_bytes, num_handles)) =
17559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17560 {
17561 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17562 if inlined != (member_inline_size <= 4) {
17563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17564 }
17565 let inner_offset;
17566 let mut inner_depth = depth.clone();
17567 if inlined {
17568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17569 inner_offset = next_offset;
17570 } else {
17571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17572 inner_depth.increment()?;
17573 }
17574 let val_ref = self.source_dictionary.get_or_insert_with(|| {
17575 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
17576 });
17577 fidl::decode!(
17578 fidl::encoding::BoundedString<1024>,
17579 D,
17580 val_ref,
17581 decoder,
17582 inner_offset,
17583 inner_depth
17584 )?;
17585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17586 {
17587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17588 }
17589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17591 }
17592 }
17593
17594 next_offset += envelope_size;
17595
17596 while next_offset < end_offset {
17598 _next_ordinal_to_read += 1;
17599 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17600 next_offset += envelope_size;
17601 }
17602
17603 Ok(())
17604 }
17605 }
17606
17607 impl OfferRunner {
17608 #[inline(always)]
17609 fn max_ordinal_present(&self) -> u64 {
17610 if let Some(_) = self.source_dictionary {
17611 return 5;
17612 }
17613 if let Some(_) = self.target_name {
17614 return 4;
17615 }
17616 if let Some(_) = self.target {
17617 return 3;
17618 }
17619 if let Some(_) = self.source_name {
17620 return 2;
17621 }
17622 if let Some(_) = self.source {
17623 return 1;
17624 }
17625 0
17626 }
17627 }
17628
17629 impl fidl::encoding::ValueTypeMarker for OfferRunner {
17630 type Borrowed<'a> = &'a Self;
17631 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17632 value
17633 }
17634 }
17635
17636 unsafe impl fidl::encoding::TypeMarker for OfferRunner {
17637 type Owned = Self;
17638
17639 #[inline(always)]
17640 fn inline_align(_context: fidl::encoding::Context) -> usize {
17641 8
17642 }
17643
17644 #[inline(always)]
17645 fn inline_size(_context: fidl::encoding::Context) -> usize {
17646 16
17647 }
17648 }
17649
17650 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferRunner, D>
17651 for &OfferRunner
17652 {
17653 unsafe fn encode(
17654 self,
17655 encoder: &mut fidl::encoding::Encoder<'_, D>,
17656 offset: usize,
17657 mut depth: fidl::encoding::Depth,
17658 ) -> fidl::Result<()> {
17659 encoder.debug_check_bounds::<OfferRunner>(offset);
17660 let max_ordinal: u64 = self.max_ordinal_present();
17662 encoder.write_num(max_ordinal, offset);
17663 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17664 if max_ordinal == 0 {
17666 return Ok(());
17667 }
17668 depth.increment()?;
17669 let envelope_size = 8;
17670 let bytes_len = max_ordinal as usize * envelope_size;
17671 #[allow(unused_variables)]
17672 let offset = encoder.out_of_line_offset(bytes_len);
17673 let mut _prev_end_offset: usize = 0;
17674 if 1 > max_ordinal {
17675 return Ok(());
17676 }
17677
17678 let cur_offset: usize = (1 - 1) * envelope_size;
17681
17682 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17684
17685 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17690 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17691 encoder,
17692 offset + cur_offset,
17693 depth,
17694 )?;
17695
17696 _prev_end_offset = cur_offset + envelope_size;
17697 if 2 > max_ordinal {
17698 return Ok(());
17699 }
17700
17701 let cur_offset: usize = (2 - 1) * envelope_size;
17704
17705 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17707
17708 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17713 self.source_name.as_ref().map(
17714 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
17715 ),
17716 encoder,
17717 offset + cur_offset,
17718 depth,
17719 )?;
17720
17721 _prev_end_offset = cur_offset + envelope_size;
17722 if 3 > max_ordinal {
17723 return Ok(());
17724 }
17725
17726 let cur_offset: usize = (3 - 1) * envelope_size;
17729
17730 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17732
17733 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
17738 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
17739 encoder,
17740 offset + cur_offset,
17741 depth,
17742 )?;
17743
17744 _prev_end_offset = cur_offset + envelope_size;
17745 if 4 > max_ordinal {
17746 return Ok(());
17747 }
17748
17749 let cur_offset: usize = (4 - 1) * envelope_size;
17752
17753 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17755
17756 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
17761 self.target_name.as_ref().map(
17762 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
17763 ),
17764 encoder,
17765 offset + cur_offset,
17766 depth,
17767 )?;
17768
17769 _prev_end_offset = cur_offset + envelope_size;
17770 if 5 > max_ordinal {
17771 return Ok(());
17772 }
17773
17774 let cur_offset: usize = (5 - 1) * envelope_size;
17777
17778 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17780
17781 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
17786 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
17787 encoder, offset + cur_offset, depth
17788 )?;
17789
17790 _prev_end_offset = cur_offset + envelope_size;
17791
17792 Ok(())
17793 }
17794 }
17795
17796 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferRunner {
17797 #[inline(always)]
17798 fn new_empty() -> Self {
17799 Self::default()
17800 }
17801
17802 unsafe fn decode(
17803 &mut self,
17804 decoder: &mut fidl::encoding::Decoder<'_, D>,
17805 offset: usize,
17806 mut depth: fidl::encoding::Depth,
17807 ) -> fidl::Result<()> {
17808 decoder.debug_check_bounds::<Self>(offset);
17809 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17810 None => return Err(fidl::Error::NotNullable),
17811 Some(len) => len,
17812 };
17813 if len == 0 {
17815 return Ok(());
17816 };
17817 depth.increment()?;
17818 let envelope_size = 8;
17819 let bytes_len = len * envelope_size;
17820 let offset = decoder.out_of_line_offset(bytes_len)?;
17821 let mut _next_ordinal_to_read = 0;
17823 let mut next_offset = offset;
17824 let end_offset = offset + bytes_len;
17825 _next_ordinal_to_read += 1;
17826 if next_offset >= end_offset {
17827 return Ok(());
17828 }
17829
17830 while _next_ordinal_to_read < 1 {
17832 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17833 _next_ordinal_to_read += 1;
17834 next_offset += envelope_size;
17835 }
17836
17837 let next_out_of_line = decoder.next_out_of_line();
17838 let handles_before = decoder.remaining_handles();
17839 if let Some((inlined, num_bytes, num_handles)) =
17840 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17841 {
17842 let member_inline_size =
17843 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17844 if inlined != (member_inline_size <= 4) {
17845 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17846 }
17847 let inner_offset;
17848 let mut inner_depth = depth.clone();
17849 if inlined {
17850 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17851 inner_offset = next_offset;
17852 } else {
17853 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17854 inner_depth.increment()?;
17855 }
17856 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17857 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17858 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17859 {
17860 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17861 }
17862 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17863 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17864 }
17865 }
17866
17867 next_offset += envelope_size;
17868 _next_ordinal_to_read += 1;
17869 if next_offset >= end_offset {
17870 return Ok(());
17871 }
17872
17873 while _next_ordinal_to_read < 2 {
17875 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17876 _next_ordinal_to_read += 1;
17877 next_offset += envelope_size;
17878 }
17879
17880 let next_out_of_line = decoder.next_out_of_line();
17881 let handles_before = decoder.remaining_handles();
17882 if let Some((inlined, num_bytes, num_handles)) =
17883 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17884 {
17885 let member_inline_size =
17886 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17887 decoder.context,
17888 );
17889 if inlined != (member_inline_size <= 4) {
17890 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17891 }
17892 let inner_offset;
17893 let mut inner_depth = depth.clone();
17894 if inlined {
17895 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17896 inner_offset = next_offset;
17897 } else {
17898 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17899 inner_depth.increment()?;
17900 }
17901 let val_ref = self
17902 .source_name
17903 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
17904 fidl::decode!(
17905 fidl::encoding::BoundedString<100>,
17906 D,
17907 val_ref,
17908 decoder,
17909 inner_offset,
17910 inner_depth
17911 )?;
17912 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17913 {
17914 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17915 }
17916 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17917 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17918 }
17919 }
17920
17921 next_offset += envelope_size;
17922 _next_ordinal_to_read += 1;
17923 if next_offset >= end_offset {
17924 return Ok(());
17925 }
17926
17927 while _next_ordinal_to_read < 3 {
17929 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17930 _next_ordinal_to_read += 1;
17931 next_offset += envelope_size;
17932 }
17933
17934 let next_out_of_line = decoder.next_out_of_line();
17935 let handles_before = decoder.remaining_handles();
17936 if let Some((inlined, num_bytes, num_handles)) =
17937 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17938 {
17939 let member_inline_size =
17940 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17941 if inlined != (member_inline_size <= 4) {
17942 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17943 }
17944 let inner_offset;
17945 let mut inner_depth = depth.clone();
17946 if inlined {
17947 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17948 inner_offset = next_offset;
17949 } else {
17950 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17951 inner_depth.increment()?;
17952 }
17953 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
17954 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
17955 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17956 {
17957 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17958 }
17959 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17960 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17961 }
17962 }
17963
17964 next_offset += envelope_size;
17965 _next_ordinal_to_read += 1;
17966 if next_offset >= end_offset {
17967 return Ok(());
17968 }
17969
17970 while _next_ordinal_to_read < 4 {
17972 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17973 _next_ordinal_to_read += 1;
17974 next_offset += envelope_size;
17975 }
17976
17977 let next_out_of_line = decoder.next_out_of_line();
17978 let handles_before = decoder.remaining_handles();
17979 if let Some((inlined, num_bytes, num_handles)) =
17980 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17981 {
17982 let member_inline_size =
17983 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
17984 decoder.context,
17985 );
17986 if inlined != (member_inline_size <= 4) {
17987 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17988 }
17989 let inner_offset;
17990 let mut inner_depth = depth.clone();
17991 if inlined {
17992 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17993 inner_offset = next_offset;
17994 } else {
17995 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17996 inner_depth.increment()?;
17997 }
17998 let val_ref = self
17999 .target_name
18000 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18001 fidl::decode!(
18002 fidl::encoding::BoundedString<100>,
18003 D,
18004 val_ref,
18005 decoder,
18006 inner_offset,
18007 inner_depth
18008 )?;
18009 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18010 {
18011 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18012 }
18013 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18014 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18015 }
18016 }
18017
18018 next_offset += envelope_size;
18019 _next_ordinal_to_read += 1;
18020 if next_offset >= end_offset {
18021 return Ok(());
18022 }
18023
18024 while _next_ordinal_to_read < 5 {
18026 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18027 _next_ordinal_to_read += 1;
18028 next_offset += envelope_size;
18029 }
18030
18031 let next_out_of_line = decoder.next_out_of_line();
18032 let handles_before = decoder.remaining_handles();
18033 if let Some((inlined, num_bytes, num_handles)) =
18034 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18035 {
18036 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18037 if inlined != (member_inline_size <= 4) {
18038 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18039 }
18040 let inner_offset;
18041 let mut inner_depth = depth.clone();
18042 if inlined {
18043 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18044 inner_offset = next_offset;
18045 } else {
18046 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18047 inner_depth.increment()?;
18048 }
18049 let val_ref = self.source_dictionary.get_or_insert_with(|| {
18050 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
18051 });
18052 fidl::decode!(
18053 fidl::encoding::BoundedString<1024>,
18054 D,
18055 val_ref,
18056 decoder,
18057 inner_offset,
18058 inner_depth
18059 )?;
18060 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18061 {
18062 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18063 }
18064 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18065 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18066 }
18067 }
18068
18069 next_offset += envelope_size;
18070
18071 while next_offset < end_offset {
18073 _next_ordinal_to_read += 1;
18074 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18075 next_offset += envelope_size;
18076 }
18077
18078 Ok(())
18079 }
18080 }
18081
18082 impl OfferService {
18083 #[inline(always)]
18084 fn max_ordinal_present(&self) -> u64 {
18085 if let Some(_) = self.dependency_type {
18086 return 9;
18087 }
18088 if let Some(_) = self.source_dictionary {
18089 return 8;
18090 }
18091 if let Some(_) = self.availability {
18092 return 7;
18093 }
18094 if let Some(_) = self.renamed_instances {
18095 return 6;
18096 }
18097 if let Some(_) = self.source_instance_filter {
18098 return 5;
18099 }
18100 if let Some(_) = self.target_name {
18101 return 4;
18102 }
18103 if let Some(_) = self.target {
18104 return 3;
18105 }
18106 if let Some(_) = self.source_name {
18107 return 2;
18108 }
18109 if let Some(_) = self.source {
18110 return 1;
18111 }
18112 0
18113 }
18114 }
18115
18116 impl fidl::encoding::ValueTypeMarker for OfferService {
18117 type Borrowed<'a> = &'a Self;
18118 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18119 value
18120 }
18121 }
18122
18123 unsafe impl fidl::encoding::TypeMarker for OfferService {
18124 type Owned = Self;
18125
18126 #[inline(always)]
18127 fn inline_align(_context: fidl::encoding::Context) -> usize {
18128 8
18129 }
18130
18131 #[inline(always)]
18132 fn inline_size(_context: fidl::encoding::Context) -> usize {
18133 16
18134 }
18135 }
18136
18137 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferService, D>
18138 for &OfferService
18139 {
18140 unsafe fn encode(
18141 self,
18142 encoder: &mut fidl::encoding::Encoder<'_, D>,
18143 offset: usize,
18144 mut depth: fidl::encoding::Depth,
18145 ) -> fidl::Result<()> {
18146 encoder.debug_check_bounds::<OfferService>(offset);
18147 let max_ordinal: u64 = self.max_ordinal_present();
18149 encoder.write_num(max_ordinal, offset);
18150 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18151 if max_ordinal == 0 {
18153 return Ok(());
18154 }
18155 depth.increment()?;
18156 let envelope_size = 8;
18157 let bytes_len = max_ordinal as usize * envelope_size;
18158 #[allow(unused_variables)]
18159 let offset = encoder.out_of_line_offset(bytes_len);
18160 let mut _prev_end_offset: usize = 0;
18161 if 1 > max_ordinal {
18162 return Ok(());
18163 }
18164
18165 let cur_offset: usize = (1 - 1) * envelope_size;
18168
18169 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18171
18172 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18177 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18178 encoder,
18179 offset + cur_offset,
18180 depth,
18181 )?;
18182
18183 _prev_end_offset = cur_offset + envelope_size;
18184 if 2 > max_ordinal {
18185 return Ok(());
18186 }
18187
18188 let cur_offset: usize = (2 - 1) * envelope_size;
18191
18192 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18194
18195 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
18200 self.source_name.as_ref().map(
18201 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18202 ),
18203 encoder,
18204 offset + cur_offset,
18205 depth,
18206 )?;
18207
18208 _prev_end_offset = cur_offset + envelope_size;
18209 if 3 > max_ordinal {
18210 return Ok(());
18211 }
18212
18213 let cur_offset: usize = (3 - 1) * envelope_size;
18216
18217 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18219
18220 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18225 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18226 encoder,
18227 offset + cur_offset,
18228 depth,
18229 )?;
18230
18231 _prev_end_offset = cur_offset + envelope_size;
18232 if 4 > max_ordinal {
18233 return Ok(());
18234 }
18235
18236 let cur_offset: usize = (4 - 1) * envelope_size;
18239
18240 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18242
18243 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
18248 self.target_name.as_ref().map(
18249 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18250 ),
18251 encoder,
18252 offset + cur_offset,
18253 depth,
18254 )?;
18255
18256 _prev_end_offset = cur_offset + envelope_size;
18257 if 5 > max_ordinal {
18258 return Ok(());
18259 }
18260
18261 let cur_offset: usize = (5 - 1) * envelope_size;
18264
18265 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18267
18268 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>>, D>(
18273 self.source_instance_filter.as_ref().map(<fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>> as fidl::encoding::ValueTypeMarker>::borrow),
18274 encoder, offset + cur_offset, depth
18275 )?;
18276
18277 _prev_end_offset = cur_offset + envelope_size;
18278 if 6 > max_ordinal {
18279 return Ok(());
18280 }
18281
18282 let cur_offset: usize = (6 - 1) * envelope_size;
18285
18286 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18288
18289 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<NameMapping>, D>(
18294 self.renamed_instances.as_ref().map(<fidl::encoding::UnboundedVector<NameMapping> as fidl::encoding::ValueTypeMarker>::borrow),
18295 encoder, offset + cur_offset, depth
18296 )?;
18297
18298 _prev_end_offset = cur_offset + envelope_size;
18299 if 7 > max_ordinal {
18300 return Ok(());
18301 }
18302
18303 let cur_offset: usize = (7 - 1) * envelope_size;
18306
18307 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18309
18310 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
18315 self.availability
18316 .as_ref()
18317 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
18318 encoder,
18319 offset + cur_offset,
18320 depth,
18321 )?;
18322
18323 _prev_end_offset = cur_offset + envelope_size;
18324 if 8 > max_ordinal {
18325 return Ok(());
18326 }
18327
18328 let cur_offset: usize = (8 - 1) * envelope_size;
18331
18332 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18334
18335 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
18340 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
18341 encoder, offset + cur_offset, depth
18342 )?;
18343
18344 _prev_end_offset = cur_offset + envelope_size;
18345 if 9 > max_ordinal {
18346 return Ok(());
18347 }
18348
18349 let cur_offset: usize = (9 - 1) * envelope_size;
18352
18353 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18355
18356 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
18361 self.dependency_type
18362 .as_ref()
18363 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
18364 encoder,
18365 offset + cur_offset,
18366 depth,
18367 )?;
18368
18369 _prev_end_offset = cur_offset + envelope_size;
18370
18371 Ok(())
18372 }
18373 }
18374
18375 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferService {
18376 #[inline(always)]
18377 fn new_empty() -> Self {
18378 Self::default()
18379 }
18380
18381 unsafe fn decode(
18382 &mut self,
18383 decoder: &mut fidl::encoding::Decoder<'_, D>,
18384 offset: usize,
18385 mut depth: fidl::encoding::Depth,
18386 ) -> fidl::Result<()> {
18387 decoder.debug_check_bounds::<Self>(offset);
18388 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18389 None => return Err(fidl::Error::NotNullable),
18390 Some(len) => len,
18391 };
18392 if len == 0 {
18394 return Ok(());
18395 };
18396 depth.increment()?;
18397 let envelope_size = 8;
18398 let bytes_len = len * envelope_size;
18399 let offset = decoder.out_of_line_offset(bytes_len)?;
18400 let mut _next_ordinal_to_read = 0;
18402 let mut next_offset = offset;
18403 let end_offset = offset + bytes_len;
18404 _next_ordinal_to_read += 1;
18405 if next_offset >= end_offset {
18406 return Ok(());
18407 }
18408
18409 while _next_ordinal_to_read < 1 {
18411 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18412 _next_ordinal_to_read += 1;
18413 next_offset += envelope_size;
18414 }
18415
18416 let next_out_of_line = decoder.next_out_of_line();
18417 let handles_before = decoder.remaining_handles();
18418 if let Some((inlined, num_bytes, num_handles)) =
18419 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18420 {
18421 let member_inline_size =
18422 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18423 if inlined != (member_inline_size <= 4) {
18424 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18425 }
18426 let inner_offset;
18427 let mut inner_depth = depth.clone();
18428 if inlined {
18429 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18430 inner_offset = next_offset;
18431 } else {
18432 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18433 inner_depth.increment()?;
18434 }
18435 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18436 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18437 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18438 {
18439 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18440 }
18441 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18442 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18443 }
18444 }
18445
18446 next_offset += envelope_size;
18447 _next_ordinal_to_read += 1;
18448 if next_offset >= end_offset {
18449 return Ok(());
18450 }
18451
18452 while _next_ordinal_to_read < 2 {
18454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18455 _next_ordinal_to_read += 1;
18456 next_offset += envelope_size;
18457 }
18458
18459 let next_out_of_line = decoder.next_out_of_line();
18460 let handles_before = decoder.remaining_handles();
18461 if let Some((inlined, num_bytes, num_handles)) =
18462 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18463 {
18464 let member_inline_size =
18465 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18466 decoder.context,
18467 );
18468 if inlined != (member_inline_size <= 4) {
18469 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18470 }
18471 let inner_offset;
18472 let mut inner_depth = depth.clone();
18473 if inlined {
18474 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18475 inner_offset = next_offset;
18476 } else {
18477 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18478 inner_depth.increment()?;
18479 }
18480 let val_ref = self
18481 .source_name
18482 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18483 fidl::decode!(
18484 fidl::encoding::BoundedString<100>,
18485 D,
18486 val_ref,
18487 decoder,
18488 inner_offset,
18489 inner_depth
18490 )?;
18491 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18492 {
18493 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18494 }
18495 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18496 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18497 }
18498 }
18499
18500 next_offset += envelope_size;
18501 _next_ordinal_to_read += 1;
18502 if next_offset >= end_offset {
18503 return Ok(());
18504 }
18505
18506 while _next_ordinal_to_read < 3 {
18508 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18509 _next_ordinal_to_read += 1;
18510 next_offset += envelope_size;
18511 }
18512
18513 let next_out_of_line = decoder.next_out_of_line();
18514 let handles_before = decoder.remaining_handles();
18515 if let Some((inlined, num_bytes, num_handles)) =
18516 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18517 {
18518 let member_inline_size =
18519 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18520 if inlined != (member_inline_size <= 4) {
18521 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18522 }
18523 let inner_offset;
18524 let mut inner_depth = depth.clone();
18525 if inlined {
18526 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18527 inner_offset = next_offset;
18528 } else {
18529 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18530 inner_depth.increment()?;
18531 }
18532 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
18533 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
18534 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18535 {
18536 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18537 }
18538 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18539 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18540 }
18541 }
18542
18543 next_offset += envelope_size;
18544 _next_ordinal_to_read += 1;
18545 if next_offset >= end_offset {
18546 return Ok(());
18547 }
18548
18549 while _next_ordinal_to_read < 4 {
18551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18552 _next_ordinal_to_read += 1;
18553 next_offset += envelope_size;
18554 }
18555
18556 let next_out_of_line = decoder.next_out_of_line();
18557 let handles_before = decoder.remaining_handles();
18558 if let Some((inlined, num_bytes, num_handles)) =
18559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18560 {
18561 let member_inline_size =
18562 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
18563 decoder.context,
18564 );
18565 if inlined != (member_inline_size <= 4) {
18566 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18567 }
18568 let inner_offset;
18569 let mut inner_depth = depth.clone();
18570 if inlined {
18571 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18572 inner_offset = next_offset;
18573 } else {
18574 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18575 inner_depth.increment()?;
18576 }
18577 let val_ref = self
18578 .target_name
18579 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
18580 fidl::decode!(
18581 fidl::encoding::BoundedString<100>,
18582 D,
18583 val_ref,
18584 decoder,
18585 inner_offset,
18586 inner_depth
18587 )?;
18588 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18589 {
18590 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18591 }
18592 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18593 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18594 }
18595 }
18596
18597 next_offset += envelope_size;
18598 _next_ordinal_to_read += 1;
18599 if next_offset >= end_offset {
18600 return Ok(());
18601 }
18602
18603 while _next_ordinal_to_read < 5 {
18605 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18606 _next_ordinal_to_read += 1;
18607 next_offset += envelope_size;
18608 }
18609
18610 let next_out_of_line = decoder.next_out_of_line();
18611 let handles_before = decoder.remaining_handles();
18612 if let Some((inlined, num_bytes, num_handles)) =
18613 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18614 {
18615 let member_inline_size = <fidl::encoding::UnboundedVector<
18616 fidl::encoding::BoundedString<100>,
18617 > as fidl::encoding::TypeMarker>::inline_size(
18618 decoder.context
18619 );
18620 if inlined != (member_inline_size <= 4) {
18621 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18622 }
18623 let inner_offset;
18624 let mut inner_depth = depth.clone();
18625 if inlined {
18626 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18627 inner_offset = next_offset;
18628 } else {
18629 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18630 inner_depth.increment()?;
18631 }
18632 let val_ref = self.source_instance_filter.get_or_insert_with(|| {
18633 fidl::new_empty!(
18634 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>>,
18635 D
18636 )
18637 });
18638 fidl::decode!(
18639 fidl::encoding::UnboundedVector<fidl::encoding::BoundedString<100>>,
18640 D,
18641 val_ref,
18642 decoder,
18643 inner_offset,
18644 inner_depth
18645 )?;
18646 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18647 {
18648 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18649 }
18650 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18651 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18652 }
18653 }
18654
18655 next_offset += envelope_size;
18656 _next_ordinal_to_read += 1;
18657 if next_offset >= end_offset {
18658 return Ok(());
18659 }
18660
18661 while _next_ordinal_to_read < 6 {
18663 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18664 _next_ordinal_to_read += 1;
18665 next_offset += envelope_size;
18666 }
18667
18668 let next_out_of_line = decoder.next_out_of_line();
18669 let handles_before = decoder.remaining_handles();
18670 if let Some((inlined, num_bytes, num_handles)) =
18671 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18672 {
18673 let member_inline_size = <fidl::encoding::UnboundedVector<NameMapping> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18674 if inlined != (member_inline_size <= 4) {
18675 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18676 }
18677 let inner_offset;
18678 let mut inner_depth = depth.clone();
18679 if inlined {
18680 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18681 inner_offset = next_offset;
18682 } else {
18683 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18684 inner_depth.increment()?;
18685 }
18686 let val_ref = self.renamed_instances.get_or_insert_with(|| {
18687 fidl::new_empty!(fidl::encoding::UnboundedVector<NameMapping>, D)
18688 });
18689 fidl::decode!(
18690 fidl::encoding::UnboundedVector<NameMapping>,
18691 D,
18692 val_ref,
18693 decoder,
18694 inner_offset,
18695 inner_depth
18696 )?;
18697 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18698 {
18699 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18700 }
18701 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18702 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18703 }
18704 }
18705
18706 next_offset += envelope_size;
18707 _next_ordinal_to_read += 1;
18708 if next_offset >= end_offset {
18709 return Ok(());
18710 }
18711
18712 while _next_ordinal_to_read < 7 {
18714 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18715 _next_ordinal_to_read += 1;
18716 next_offset += envelope_size;
18717 }
18718
18719 let next_out_of_line = decoder.next_out_of_line();
18720 let handles_before = decoder.remaining_handles();
18721 if let Some((inlined, num_bytes, num_handles)) =
18722 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18723 {
18724 let member_inline_size =
18725 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18726 if inlined != (member_inline_size <= 4) {
18727 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18728 }
18729 let inner_offset;
18730 let mut inner_depth = depth.clone();
18731 if inlined {
18732 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18733 inner_offset = next_offset;
18734 } else {
18735 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18736 inner_depth.increment()?;
18737 }
18738 let val_ref =
18739 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
18740 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
18741 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18742 {
18743 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18744 }
18745 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18746 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18747 }
18748 }
18749
18750 next_offset += envelope_size;
18751 _next_ordinal_to_read += 1;
18752 if next_offset >= end_offset {
18753 return Ok(());
18754 }
18755
18756 while _next_ordinal_to_read < 8 {
18758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18759 _next_ordinal_to_read += 1;
18760 next_offset += envelope_size;
18761 }
18762
18763 let next_out_of_line = decoder.next_out_of_line();
18764 let handles_before = decoder.remaining_handles();
18765 if let Some((inlined, num_bytes, num_handles)) =
18766 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18767 {
18768 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18769 if inlined != (member_inline_size <= 4) {
18770 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18771 }
18772 let inner_offset;
18773 let mut inner_depth = depth.clone();
18774 if inlined {
18775 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18776 inner_offset = next_offset;
18777 } else {
18778 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18779 inner_depth.increment()?;
18780 }
18781 let val_ref = self.source_dictionary.get_or_insert_with(|| {
18782 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
18783 });
18784 fidl::decode!(
18785 fidl::encoding::BoundedString<1024>,
18786 D,
18787 val_ref,
18788 decoder,
18789 inner_offset,
18790 inner_depth
18791 )?;
18792 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18793 {
18794 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18795 }
18796 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18797 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18798 }
18799 }
18800
18801 next_offset += envelope_size;
18802 _next_ordinal_to_read += 1;
18803 if next_offset >= end_offset {
18804 return Ok(());
18805 }
18806
18807 while _next_ordinal_to_read < 9 {
18809 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18810 _next_ordinal_to_read += 1;
18811 next_offset += envelope_size;
18812 }
18813
18814 let next_out_of_line = decoder.next_out_of_line();
18815 let handles_before = decoder.remaining_handles();
18816 if let Some((inlined, num_bytes, num_handles)) =
18817 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18818 {
18819 let member_inline_size =
18820 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18821 if inlined != (member_inline_size <= 4) {
18822 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18823 }
18824 let inner_offset;
18825 let mut inner_depth = depth.clone();
18826 if inlined {
18827 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18828 inner_offset = next_offset;
18829 } else {
18830 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18831 inner_depth.increment()?;
18832 }
18833 let val_ref =
18834 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
18835 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
18836 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18837 {
18838 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18839 }
18840 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18841 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18842 }
18843 }
18844
18845 next_offset += envelope_size;
18846
18847 while next_offset < end_offset {
18849 _next_ordinal_to_read += 1;
18850 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18851 next_offset += envelope_size;
18852 }
18853
18854 Ok(())
18855 }
18856 }
18857
18858 impl OfferStorage {
18859 #[inline(always)]
18860 fn max_ordinal_present(&self) -> u64 {
18861 if let Some(_) = self.availability {
18862 return 5;
18863 }
18864 if let Some(_) = self.target_name {
18865 return 4;
18866 }
18867 if let Some(_) = self.target {
18868 return 3;
18869 }
18870 if let Some(_) = self.source {
18871 return 2;
18872 }
18873 if let Some(_) = self.source_name {
18874 return 1;
18875 }
18876 0
18877 }
18878 }
18879
18880 impl fidl::encoding::ValueTypeMarker for OfferStorage {
18881 type Borrowed<'a> = &'a Self;
18882 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18883 value
18884 }
18885 }
18886
18887 unsafe impl fidl::encoding::TypeMarker for OfferStorage {
18888 type Owned = Self;
18889
18890 #[inline(always)]
18891 fn inline_align(_context: fidl::encoding::Context) -> usize {
18892 8
18893 }
18894
18895 #[inline(always)]
18896 fn inline_size(_context: fidl::encoding::Context) -> usize {
18897 16
18898 }
18899 }
18900
18901 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<OfferStorage, D>
18902 for &OfferStorage
18903 {
18904 unsafe fn encode(
18905 self,
18906 encoder: &mut fidl::encoding::Encoder<'_, D>,
18907 offset: usize,
18908 mut depth: fidl::encoding::Depth,
18909 ) -> fidl::Result<()> {
18910 encoder.debug_check_bounds::<OfferStorage>(offset);
18911 let max_ordinal: u64 = self.max_ordinal_present();
18913 encoder.write_num(max_ordinal, offset);
18914 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18915 if max_ordinal == 0 {
18917 return Ok(());
18918 }
18919 depth.increment()?;
18920 let envelope_size = 8;
18921 let bytes_len = max_ordinal as usize * envelope_size;
18922 #[allow(unused_variables)]
18923 let offset = encoder.out_of_line_offset(bytes_len);
18924 let mut _prev_end_offset: usize = 0;
18925 if 1 > max_ordinal {
18926 return Ok(());
18927 }
18928
18929 let cur_offset: usize = (1 - 1) * envelope_size;
18932
18933 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18935
18936 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
18941 self.source_name.as_ref().map(
18942 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
18943 ),
18944 encoder,
18945 offset + cur_offset,
18946 depth,
18947 )?;
18948
18949 _prev_end_offset = cur_offset + envelope_size;
18950 if 2 > max_ordinal {
18951 return Ok(());
18952 }
18953
18954 let cur_offset: usize = (2 - 1) * envelope_size;
18957
18958 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18960
18961 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18966 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18967 encoder,
18968 offset + cur_offset,
18969 depth,
18970 )?;
18971
18972 _prev_end_offset = cur_offset + envelope_size;
18973 if 3 > max_ordinal {
18974 return Ok(());
18975 }
18976
18977 let cur_offset: usize = (3 - 1) * envelope_size;
18980
18981 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18983
18984 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
18989 self.target.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
18990 encoder,
18991 offset + cur_offset,
18992 depth,
18993 )?;
18994
18995 _prev_end_offset = cur_offset + envelope_size;
18996 if 4 > max_ordinal {
18997 return Ok(());
18998 }
18999
19000 let cur_offset: usize = (4 - 1) * envelope_size;
19003
19004 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19006
19007 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19012 self.target_name.as_ref().map(
19013 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19014 ),
19015 encoder,
19016 offset + cur_offset,
19017 depth,
19018 )?;
19019
19020 _prev_end_offset = cur_offset + envelope_size;
19021 if 5 > max_ordinal {
19022 return Ok(());
19023 }
19024
19025 let cur_offset: usize = (5 - 1) * envelope_size;
19028
19029 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19031
19032 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
19037 self.availability
19038 .as_ref()
19039 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
19040 encoder,
19041 offset + cur_offset,
19042 depth,
19043 )?;
19044
19045 _prev_end_offset = cur_offset + envelope_size;
19046
19047 Ok(())
19048 }
19049 }
19050
19051 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for OfferStorage {
19052 #[inline(always)]
19053 fn new_empty() -> Self {
19054 Self::default()
19055 }
19056
19057 unsafe fn decode(
19058 &mut self,
19059 decoder: &mut fidl::encoding::Decoder<'_, D>,
19060 offset: usize,
19061 mut depth: fidl::encoding::Depth,
19062 ) -> fidl::Result<()> {
19063 decoder.debug_check_bounds::<Self>(offset);
19064 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19065 None => return Err(fidl::Error::NotNullable),
19066 Some(len) => len,
19067 };
19068 if len == 0 {
19070 return Ok(());
19071 };
19072 depth.increment()?;
19073 let envelope_size = 8;
19074 let bytes_len = len * envelope_size;
19075 let offset = decoder.out_of_line_offset(bytes_len)?;
19076 let mut _next_ordinal_to_read = 0;
19078 let mut next_offset = offset;
19079 let end_offset = offset + bytes_len;
19080 _next_ordinal_to_read += 1;
19081 if next_offset >= end_offset {
19082 return Ok(());
19083 }
19084
19085 while _next_ordinal_to_read < 1 {
19087 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19088 _next_ordinal_to_read += 1;
19089 next_offset += envelope_size;
19090 }
19091
19092 let next_out_of_line = decoder.next_out_of_line();
19093 let handles_before = decoder.remaining_handles();
19094 if let Some((inlined, num_bytes, num_handles)) =
19095 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19096 {
19097 let member_inline_size =
19098 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19099 decoder.context,
19100 );
19101 if inlined != (member_inline_size <= 4) {
19102 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19103 }
19104 let inner_offset;
19105 let mut inner_depth = depth.clone();
19106 if inlined {
19107 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19108 inner_offset = next_offset;
19109 } else {
19110 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19111 inner_depth.increment()?;
19112 }
19113 let val_ref = self
19114 .source_name
19115 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19116 fidl::decode!(
19117 fidl::encoding::BoundedString<100>,
19118 D,
19119 val_ref,
19120 decoder,
19121 inner_offset,
19122 inner_depth
19123 )?;
19124 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19125 {
19126 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19127 }
19128 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19129 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19130 }
19131 }
19132
19133 next_offset += envelope_size;
19134 _next_ordinal_to_read += 1;
19135 if next_offset >= end_offset {
19136 return Ok(());
19137 }
19138
19139 while _next_ordinal_to_read < 2 {
19141 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19142 _next_ordinal_to_read += 1;
19143 next_offset += envelope_size;
19144 }
19145
19146 let next_out_of_line = decoder.next_out_of_line();
19147 let handles_before = decoder.remaining_handles();
19148 if let Some((inlined, num_bytes, num_handles)) =
19149 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19150 {
19151 let member_inline_size =
19152 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19153 if inlined != (member_inline_size <= 4) {
19154 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19155 }
19156 let inner_offset;
19157 let mut inner_depth = depth.clone();
19158 if inlined {
19159 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19160 inner_offset = next_offset;
19161 } else {
19162 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19163 inner_depth.increment()?;
19164 }
19165 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
19166 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
19167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19168 {
19169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19170 }
19171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19173 }
19174 }
19175
19176 next_offset += envelope_size;
19177 _next_ordinal_to_read += 1;
19178 if next_offset >= end_offset {
19179 return Ok(());
19180 }
19181
19182 while _next_ordinal_to_read < 3 {
19184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19185 _next_ordinal_to_read += 1;
19186 next_offset += envelope_size;
19187 }
19188
19189 let next_out_of_line = decoder.next_out_of_line();
19190 let handles_before = decoder.remaining_handles();
19191 if let Some((inlined, num_bytes, num_handles)) =
19192 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19193 {
19194 let member_inline_size =
19195 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19196 if inlined != (member_inline_size <= 4) {
19197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19198 }
19199 let inner_offset;
19200 let mut inner_depth = depth.clone();
19201 if inlined {
19202 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19203 inner_offset = next_offset;
19204 } else {
19205 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19206 inner_depth.increment()?;
19207 }
19208 let val_ref = self.target.get_or_insert_with(|| fidl::new_empty!(Ref, D));
19209 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
19210 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19211 {
19212 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19213 }
19214 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19215 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19216 }
19217 }
19218
19219 next_offset += envelope_size;
19220 _next_ordinal_to_read += 1;
19221 if next_offset >= end_offset {
19222 return Ok(());
19223 }
19224
19225 while _next_ordinal_to_read < 4 {
19227 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19228 _next_ordinal_to_read += 1;
19229 next_offset += envelope_size;
19230 }
19231
19232 let next_out_of_line = decoder.next_out_of_line();
19233 let handles_before = decoder.remaining_handles();
19234 if let Some((inlined, num_bytes, num_handles)) =
19235 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19236 {
19237 let member_inline_size =
19238 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19239 decoder.context,
19240 );
19241 if inlined != (member_inline_size <= 4) {
19242 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19243 }
19244 let inner_offset;
19245 let mut inner_depth = depth.clone();
19246 if inlined {
19247 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19248 inner_offset = next_offset;
19249 } else {
19250 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19251 inner_depth.increment()?;
19252 }
19253 let val_ref = self
19254 .target_name
19255 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19256 fidl::decode!(
19257 fidl::encoding::BoundedString<100>,
19258 D,
19259 val_ref,
19260 decoder,
19261 inner_offset,
19262 inner_depth
19263 )?;
19264 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19265 {
19266 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19267 }
19268 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19269 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19270 }
19271 }
19272
19273 next_offset += envelope_size;
19274 _next_ordinal_to_read += 1;
19275 if next_offset >= end_offset {
19276 return Ok(());
19277 }
19278
19279 while _next_ordinal_to_read < 5 {
19281 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19282 _next_ordinal_to_read += 1;
19283 next_offset += envelope_size;
19284 }
19285
19286 let next_out_of_line = decoder.next_out_of_line();
19287 let handles_before = decoder.remaining_handles();
19288 if let Some((inlined, num_bytes, num_handles)) =
19289 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19290 {
19291 let member_inline_size =
19292 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19293 if inlined != (member_inline_size <= 4) {
19294 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19295 }
19296 let inner_offset;
19297 let mut inner_depth = depth.clone();
19298 if inlined {
19299 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19300 inner_offset = next_offset;
19301 } else {
19302 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19303 inner_depth.increment()?;
19304 }
19305 let val_ref =
19306 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
19307 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
19308 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19309 {
19310 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19311 }
19312 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19313 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19314 }
19315 }
19316
19317 next_offset += envelope_size;
19318
19319 while next_offset < end_offset {
19321 _next_ordinal_to_read += 1;
19322 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19323 next_offset += envelope_size;
19324 }
19325
19326 Ok(())
19327 }
19328 }
19329
19330 impl Program {
19331 #[inline(always)]
19332 fn max_ordinal_present(&self) -> u64 {
19333 if let Some(_) = self.info {
19334 return 2;
19335 }
19336 if let Some(_) = self.runner {
19337 return 1;
19338 }
19339 0
19340 }
19341 }
19342
19343 impl fidl::encoding::ValueTypeMarker for Program {
19344 type Borrowed<'a> = &'a Self;
19345 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19346 value
19347 }
19348 }
19349
19350 unsafe impl fidl::encoding::TypeMarker for Program {
19351 type Owned = Self;
19352
19353 #[inline(always)]
19354 fn inline_align(_context: fidl::encoding::Context) -> usize {
19355 8
19356 }
19357
19358 #[inline(always)]
19359 fn inline_size(_context: fidl::encoding::Context) -> usize {
19360 16
19361 }
19362 }
19363
19364 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Program, D> for &Program {
19365 unsafe fn encode(
19366 self,
19367 encoder: &mut fidl::encoding::Encoder<'_, D>,
19368 offset: usize,
19369 mut depth: fidl::encoding::Depth,
19370 ) -> fidl::Result<()> {
19371 encoder.debug_check_bounds::<Program>(offset);
19372 let max_ordinal: u64 = self.max_ordinal_present();
19374 encoder.write_num(max_ordinal, offset);
19375 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19376 if max_ordinal == 0 {
19378 return Ok(());
19379 }
19380 depth.increment()?;
19381 let envelope_size = 8;
19382 let bytes_len = max_ordinal as usize * envelope_size;
19383 #[allow(unused_variables)]
19384 let offset = encoder.out_of_line_offset(bytes_len);
19385 let mut _prev_end_offset: usize = 0;
19386 if 1 > max_ordinal {
19387 return Ok(());
19388 }
19389
19390 let cur_offset: usize = (1 - 1) * envelope_size;
19393
19394 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19396
19397 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19402 self.runner.as_ref().map(
19403 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19404 ),
19405 encoder,
19406 offset + cur_offset,
19407 depth,
19408 )?;
19409
19410 _prev_end_offset = cur_offset + envelope_size;
19411 if 2 > max_ordinal {
19412 return Ok(());
19413 }
19414
19415 let cur_offset: usize = (2 - 1) * envelope_size;
19418
19419 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19421
19422 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data__common::Dictionary, D>(
19427 self.info.as_ref().map(<fidl_fuchsia_data__common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
19428 encoder, offset + cur_offset, depth
19429 )?;
19430
19431 _prev_end_offset = cur_offset + envelope_size;
19432
19433 Ok(())
19434 }
19435 }
19436
19437 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Program {
19438 #[inline(always)]
19439 fn new_empty() -> Self {
19440 Self::default()
19441 }
19442
19443 unsafe fn decode(
19444 &mut self,
19445 decoder: &mut fidl::encoding::Decoder<'_, D>,
19446 offset: usize,
19447 mut depth: fidl::encoding::Depth,
19448 ) -> fidl::Result<()> {
19449 decoder.debug_check_bounds::<Self>(offset);
19450 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19451 None => return Err(fidl::Error::NotNullable),
19452 Some(len) => len,
19453 };
19454 if len == 0 {
19456 return Ok(());
19457 };
19458 depth.increment()?;
19459 let envelope_size = 8;
19460 let bytes_len = len * envelope_size;
19461 let offset = decoder.out_of_line_offset(bytes_len)?;
19462 let mut _next_ordinal_to_read = 0;
19464 let mut next_offset = offset;
19465 let end_offset = offset + bytes_len;
19466 _next_ordinal_to_read += 1;
19467 if next_offset >= end_offset {
19468 return Ok(());
19469 }
19470
19471 while _next_ordinal_to_read < 1 {
19473 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19474 _next_ordinal_to_read += 1;
19475 next_offset += envelope_size;
19476 }
19477
19478 let next_out_of_line = decoder.next_out_of_line();
19479 let handles_before = decoder.remaining_handles();
19480 if let Some((inlined, num_bytes, num_handles)) =
19481 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19482 {
19483 let member_inline_size =
19484 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19485 decoder.context,
19486 );
19487 if inlined != (member_inline_size <= 4) {
19488 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19489 }
19490 let inner_offset;
19491 let mut inner_depth = depth.clone();
19492 if inlined {
19493 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19494 inner_offset = next_offset;
19495 } else {
19496 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19497 inner_depth.increment()?;
19498 }
19499 let val_ref = self
19500 .runner
19501 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19502 fidl::decode!(
19503 fidl::encoding::BoundedString<100>,
19504 D,
19505 val_ref,
19506 decoder,
19507 inner_offset,
19508 inner_depth
19509 )?;
19510 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19511 {
19512 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19513 }
19514 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19515 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19516 }
19517 }
19518
19519 next_offset += envelope_size;
19520 _next_ordinal_to_read += 1;
19521 if next_offset >= end_offset {
19522 return Ok(());
19523 }
19524
19525 while _next_ordinal_to_read < 2 {
19527 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19528 _next_ordinal_to_read += 1;
19529 next_offset += envelope_size;
19530 }
19531
19532 let next_out_of_line = decoder.next_out_of_line();
19533 let handles_before = decoder.remaining_handles();
19534 if let Some((inlined, num_bytes, num_handles)) =
19535 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19536 {
19537 let member_inline_size = <fidl_fuchsia_data__common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19538 if inlined != (member_inline_size <= 4) {
19539 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19540 }
19541 let inner_offset;
19542 let mut inner_depth = depth.clone();
19543 if inlined {
19544 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19545 inner_offset = next_offset;
19546 } else {
19547 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19548 inner_depth.increment()?;
19549 }
19550 let val_ref = self.info.get_or_insert_with(|| {
19551 fidl::new_empty!(fidl_fuchsia_data__common::Dictionary, D)
19552 });
19553 fidl::decode!(
19554 fidl_fuchsia_data__common::Dictionary,
19555 D,
19556 val_ref,
19557 decoder,
19558 inner_offset,
19559 inner_depth
19560 )?;
19561 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19562 {
19563 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19564 }
19565 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19566 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19567 }
19568 }
19569
19570 next_offset += envelope_size;
19571
19572 while next_offset < end_offset {
19574 _next_ordinal_to_read += 1;
19575 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19576 next_offset += envelope_size;
19577 }
19578
19579 Ok(())
19580 }
19581 }
19582
19583 impl Protocol {
19584 #[inline(always)]
19585 fn max_ordinal_present(&self) -> u64 {
19586 if let Some(_) = self.delivery {
19587 return 3;
19588 }
19589 if let Some(_) = self.source_path {
19590 return 2;
19591 }
19592 if let Some(_) = self.name {
19593 return 1;
19594 }
19595 0
19596 }
19597 }
19598
19599 impl fidl::encoding::ValueTypeMarker for Protocol {
19600 type Borrowed<'a> = &'a Self;
19601 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19602 value
19603 }
19604 }
19605
19606 unsafe impl fidl::encoding::TypeMarker for Protocol {
19607 type Owned = Self;
19608
19609 #[inline(always)]
19610 fn inline_align(_context: fidl::encoding::Context) -> usize {
19611 8
19612 }
19613
19614 #[inline(always)]
19615 fn inline_size(_context: fidl::encoding::Context) -> usize {
19616 16
19617 }
19618 }
19619
19620 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Protocol, D> for &Protocol {
19621 unsafe fn encode(
19622 self,
19623 encoder: &mut fidl::encoding::Encoder<'_, D>,
19624 offset: usize,
19625 mut depth: fidl::encoding::Depth,
19626 ) -> fidl::Result<()> {
19627 encoder.debug_check_bounds::<Protocol>(offset);
19628 let max_ordinal: u64 = self.max_ordinal_present();
19630 encoder.write_num(max_ordinal, offset);
19631 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19632 if max_ordinal == 0 {
19634 return Ok(());
19635 }
19636 depth.increment()?;
19637 let envelope_size = 8;
19638 let bytes_len = max_ordinal as usize * envelope_size;
19639 #[allow(unused_variables)]
19640 let offset = encoder.out_of_line_offset(bytes_len);
19641 let mut _prev_end_offset: usize = 0;
19642 if 1 > max_ordinal {
19643 return Ok(());
19644 }
19645
19646 let cur_offset: usize = (1 - 1) * envelope_size;
19649
19650 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19652
19653 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19658 self.name.as_ref().map(
19659 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19660 ),
19661 encoder,
19662 offset + cur_offset,
19663 depth,
19664 )?;
19665
19666 _prev_end_offset = cur_offset + envelope_size;
19667 if 2 > max_ordinal {
19668 return Ok(());
19669 }
19670
19671 let cur_offset: usize = (2 - 1) * envelope_size;
19674
19675 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19677
19678 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
19683 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
19684 encoder, offset + cur_offset, depth
19685 )?;
19686
19687 _prev_end_offset = cur_offset + envelope_size;
19688 if 3 > max_ordinal {
19689 return Ok(());
19690 }
19691
19692 let cur_offset: usize = (3 - 1) * envelope_size;
19695
19696 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19698
19699 fidl::encoding::encode_in_envelope_optional::<DeliveryType, D>(
19704 self.delivery
19705 .as_ref()
19706 .map(<DeliveryType as fidl::encoding::ValueTypeMarker>::borrow),
19707 encoder,
19708 offset + cur_offset,
19709 depth,
19710 )?;
19711
19712 _prev_end_offset = cur_offset + envelope_size;
19713
19714 Ok(())
19715 }
19716 }
19717
19718 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Protocol {
19719 #[inline(always)]
19720 fn new_empty() -> Self {
19721 Self::default()
19722 }
19723
19724 unsafe fn decode(
19725 &mut self,
19726 decoder: &mut fidl::encoding::Decoder<'_, D>,
19727 offset: usize,
19728 mut depth: fidl::encoding::Depth,
19729 ) -> fidl::Result<()> {
19730 decoder.debug_check_bounds::<Self>(offset);
19731 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19732 None => return Err(fidl::Error::NotNullable),
19733 Some(len) => len,
19734 };
19735 if len == 0 {
19737 return Ok(());
19738 };
19739 depth.increment()?;
19740 let envelope_size = 8;
19741 let bytes_len = len * envelope_size;
19742 let offset = decoder.out_of_line_offset(bytes_len)?;
19743 let mut _next_ordinal_to_read = 0;
19745 let mut next_offset = offset;
19746 let end_offset = offset + bytes_len;
19747 _next_ordinal_to_read += 1;
19748 if next_offset >= end_offset {
19749 return Ok(());
19750 }
19751
19752 while _next_ordinal_to_read < 1 {
19754 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19755 _next_ordinal_to_read += 1;
19756 next_offset += envelope_size;
19757 }
19758
19759 let next_out_of_line = decoder.next_out_of_line();
19760 let handles_before = decoder.remaining_handles();
19761 if let Some((inlined, num_bytes, num_handles)) =
19762 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19763 {
19764 let member_inline_size =
19765 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
19766 decoder.context,
19767 );
19768 if inlined != (member_inline_size <= 4) {
19769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19770 }
19771 let inner_offset;
19772 let mut inner_depth = depth.clone();
19773 if inlined {
19774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19775 inner_offset = next_offset;
19776 } else {
19777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19778 inner_depth.increment()?;
19779 }
19780 let val_ref = self
19781 .name
19782 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
19783 fidl::decode!(
19784 fidl::encoding::BoundedString<100>,
19785 D,
19786 val_ref,
19787 decoder,
19788 inner_offset,
19789 inner_depth
19790 )?;
19791 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19792 {
19793 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19794 }
19795 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19796 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19797 }
19798 }
19799
19800 next_offset += envelope_size;
19801 _next_ordinal_to_read += 1;
19802 if next_offset >= end_offset {
19803 return Ok(());
19804 }
19805
19806 while _next_ordinal_to_read < 2 {
19808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19809 _next_ordinal_to_read += 1;
19810 next_offset += envelope_size;
19811 }
19812
19813 let next_out_of_line = decoder.next_out_of_line();
19814 let handles_before = decoder.remaining_handles();
19815 if let Some((inlined, num_bytes, num_handles)) =
19816 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19817 {
19818 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19819 if inlined != (member_inline_size <= 4) {
19820 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19821 }
19822 let inner_offset;
19823 let mut inner_depth = depth.clone();
19824 if inlined {
19825 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19826 inner_offset = next_offset;
19827 } else {
19828 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19829 inner_depth.increment()?;
19830 }
19831 let val_ref = self.source_path.get_or_insert_with(|| {
19832 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
19833 });
19834 fidl::decode!(
19835 fidl::encoding::BoundedString<1024>,
19836 D,
19837 val_ref,
19838 decoder,
19839 inner_offset,
19840 inner_depth
19841 )?;
19842 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19843 {
19844 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19845 }
19846 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19847 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19848 }
19849 }
19850
19851 next_offset += envelope_size;
19852 _next_ordinal_to_read += 1;
19853 if next_offset >= end_offset {
19854 return Ok(());
19855 }
19856
19857 while _next_ordinal_to_read < 3 {
19859 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19860 _next_ordinal_to_read += 1;
19861 next_offset += envelope_size;
19862 }
19863
19864 let next_out_of_line = decoder.next_out_of_line();
19865 let handles_before = decoder.remaining_handles();
19866 if let Some((inlined, num_bytes, num_handles)) =
19867 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19868 {
19869 let member_inline_size =
19870 <DeliveryType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19871 if inlined != (member_inline_size <= 4) {
19872 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19873 }
19874 let inner_offset;
19875 let mut inner_depth = depth.clone();
19876 if inlined {
19877 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19878 inner_offset = next_offset;
19879 } else {
19880 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19881 inner_depth.increment()?;
19882 }
19883 let val_ref =
19884 self.delivery.get_or_insert_with(|| fidl::new_empty!(DeliveryType, D));
19885 fidl::decode!(DeliveryType, D, val_ref, decoder, inner_offset, inner_depth)?;
19886 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19887 {
19888 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19889 }
19890 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19891 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19892 }
19893 }
19894
19895 next_offset += envelope_size;
19896
19897 while next_offset < end_offset {
19899 _next_ordinal_to_read += 1;
19900 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19901 next_offset += envelope_size;
19902 }
19903
19904 Ok(())
19905 }
19906 }
19907
19908 impl Resolver {
19909 #[inline(always)]
19910 fn max_ordinal_present(&self) -> u64 {
19911 if let Some(_) = self.source_path {
19912 return 2;
19913 }
19914 if let Some(_) = self.name {
19915 return 1;
19916 }
19917 0
19918 }
19919 }
19920
19921 impl fidl::encoding::ValueTypeMarker for Resolver {
19922 type Borrowed<'a> = &'a Self;
19923 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19924 value
19925 }
19926 }
19927
19928 unsafe impl fidl::encoding::TypeMarker for Resolver {
19929 type Owned = Self;
19930
19931 #[inline(always)]
19932 fn inline_align(_context: fidl::encoding::Context) -> usize {
19933 8
19934 }
19935
19936 #[inline(always)]
19937 fn inline_size(_context: fidl::encoding::Context) -> usize {
19938 16
19939 }
19940 }
19941
19942 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Resolver, D> for &Resolver {
19943 unsafe fn encode(
19944 self,
19945 encoder: &mut fidl::encoding::Encoder<'_, D>,
19946 offset: usize,
19947 mut depth: fidl::encoding::Depth,
19948 ) -> fidl::Result<()> {
19949 encoder.debug_check_bounds::<Resolver>(offset);
19950 let max_ordinal: u64 = self.max_ordinal_present();
19952 encoder.write_num(max_ordinal, offset);
19953 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19954 if max_ordinal == 0 {
19956 return Ok(());
19957 }
19958 depth.increment()?;
19959 let envelope_size = 8;
19960 let bytes_len = max_ordinal as usize * envelope_size;
19961 #[allow(unused_variables)]
19962 let offset = encoder.out_of_line_offset(bytes_len);
19963 let mut _prev_end_offset: usize = 0;
19964 if 1 > max_ordinal {
19965 return Ok(());
19966 }
19967
19968 let cur_offset: usize = (1 - 1) * envelope_size;
19971
19972 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19974
19975 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
19980 self.name.as_ref().map(
19981 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
19982 ),
19983 encoder,
19984 offset + cur_offset,
19985 depth,
19986 )?;
19987
19988 _prev_end_offset = cur_offset + envelope_size;
19989 if 2 > max_ordinal {
19990 return Ok(());
19991 }
19992
19993 let cur_offset: usize = (2 - 1) * envelope_size;
19996
19997 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19999
20000 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
20005 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
20006 encoder, offset + cur_offset, depth
20007 )?;
20008
20009 _prev_end_offset = cur_offset + envelope_size;
20010
20011 Ok(())
20012 }
20013 }
20014
20015 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Resolver {
20016 #[inline(always)]
20017 fn new_empty() -> Self {
20018 Self::default()
20019 }
20020
20021 unsafe fn decode(
20022 &mut self,
20023 decoder: &mut fidl::encoding::Decoder<'_, D>,
20024 offset: usize,
20025 mut depth: fidl::encoding::Depth,
20026 ) -> fidl::Result<()> {
20027 decoder.debug_check_bounds::<Self>(offset);
20028 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20029 None => return Err(fidl::Error::NotNullable),
20030 Some(len) => len,
20031 };
20032 if len == 0 {
20034 return Ok(());
20035 };
20036 depth.increment()?;
20037 let envelope_size = 8;
20038 let bytes_len = len * envelope_size;
20039 let offset = decoder.out_of_line_offset(bytes_len)?;
20040 let mut _next_ordinal_to_read = 0;
20042 let mut next_offset = offset;
20043 let end_offset = offset + bytes_len;
20044 _next_ordinal_to_read += 1;
20045 if next_offset >= end_offset {
20046 return Ok(());
20047 }
20048
20049 while _next_ordinal_to_read < 1 {
20051 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20052 _next_ordinal_to_read += 1;
20053 next_offset += envelope_size;
20054 }
20055
20056 let next_out_of_line = decoder.next_out_of_line();
20057 let handles_before = decoder.remaining_handles();
20058 if let Some((inlined, num_bytes, num_handles)) =
20059 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20060 {
20061 let member_inline_size =
20062 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20063 decoder.context,
20064 );
20065 if inlined != (member_inline_size <= 4) {
20066 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20067 }
20068 let inner_offset;
20069 let mut inner_depth = depth.clone();
20070 if inlined {
20071 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20072 inner_offset = next_offset;
20073 } else {
20074 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20075 inner_depth.increment()?;
20076 }
20077 let val_ref = self
20078 .name
20079 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20080 fidl::decode!(
20081 fidl::encoding::BoundedString<100>,
20082 D,
20083 val_ref,
20084 decoder,
20085 inner_offset,
20086 inner_depth
20087 )?;
20088 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20089 {
20090 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20091 }
20092 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20093 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20094 }
20095 }
20096
20097 next_offset += envelope_size;
20098 _next_ordinal_to_read += 1;
20099 if next_offset >= end_offset {
20100 return Ok(());
20101 }
20102
20103 while _next_ordinal_to_read < 2 {
20105 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20106 _next_ordinal_to_read += 1;
20107 next_offset += envelope_size;
20108 }
20109
20110 let next_out_of_line = decoder.next_out_of_line();
20111 let handles_before = decoder.remaining_handles();
20112 if let Some((inlined, num_bytes, num_handles)) =
20113 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20114 {
20115 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20116 if inlined != (member_inline_size <= 4) {
20117 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20118 }
20119 let inner_offset;
20120 let mut inner_depth = depth.clone();
20121 if inlined {
20122 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20123 inner_offset = next_offset;
20124 } else {
20125 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20126 inner_depth.increment()?;
20127 }
20128 let val_ref = self.source_path.get_or_insert_with(|| {
20129 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
20130 });
20131 fidl::decode!(
20132 fidl::encoding::BoundedString<1024>,
20133 D,
20134 val_ref,
20135 decoder,
20136 inner_offset,
20137 inner_depth
20138 )?;
20139 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20140 {
20141 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20142 }
20143 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20144 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20145 }
20146 }
20147
20148 next_offset += envelope_size;
20149
20150 while next_offset < end_offset {
20152 _next_ordinal_to_read += 1;
20153 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20154 next_offset += envelope_size;
20155 }
20156
20157 Ok(())
20158 }
20159 }
20160
20161 impl ResolverRegistration {
20162 #[inline(always)]
20163 fn max_ordinal_present(&self) -> u64 {
20164 if let Some(_) = self.scheme {
20165 return 3;
20166 }
20167 if let Some(_) = self.source {
20168 return 2;
20169 }
20170 if let Some(_) = self.resolver {
20171 return 1;
20172 }
20173 0
20174 }
20175 }
20176
20177 impl fidl::encoding::ValueTypeMarker for ResolverRegistration {
20178 type Borrowed<'a> = &'a Self;
20179 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20180 value
20181 }
20182 }
20183
20184 unsafe impl fidl::encoding::TypeMarker for ResolverRegistration {
20185 type Owned = Self;
20186
20187 #[inline(always)]
20188 fn inline_align(_context: fidl::encoding::Context) -> usize {
20189 8
20190 }
20191
20192 #[inline(always)]
20193 fn inline_size(_context: fidl::encoding::Context) -> usize {
20194 16
20195 }
20196 }
20197
20198 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ResolverRegistration, D>
20199 for &ResolverRegistration
20200 {
20201 unsafe fn encode(
20202 self,
20203 encoder: &mut fidl::encoding::Encoder<'_, D>,
20204 offset: usize,
20205 mut depth: fidl::encoding::Depth,
20206 ) -> fidl::Result<()> {
20207 encoder.debug_check_bounds::<ResolverRegistration>(offset);
20208 let max_ordinal: u64 = self.max_ordinal_present();
20210 encoder.write_num(max_ordinal, offset);
20211 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20212 if max_ordinal == 0 {
20214 return Ok(());
20215 }
20216 depth.increment()?;
20217 let envelope_size = 8;
20218 let bytes_len = max_ordinal as usize * envelope_size;
20219 #[allow(unused_variables)]
20220 let offset = encoder.out_of_line_offset(bytes_len);
20221 let mut _prev_end_offset: usize = 0;
20222 if 1 > max_ordinal {
20223 return Ok(());
20224 }
20225
20226 let cur_offset: usize = (1 - 1) * envelope_size;
20229
20230 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20232
20233 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20238 self.resolver.as_ref().map(
20239 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20240 ),
20241 encoder,
20242 offset + cur_offset,
20243 depth,
20244 )?;
20245
20246 _prev_end_offset = cur_offset + envelope_size;
20247 if 2 > max_ordinal {
20248 return Ok(());
20249 }
20250
20251 let cur_offset: usize = (2 - 1) * envelope_size;
20254
20255 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20257
20258 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
20263 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
20264 encoder,
20265 offset + cur_offset,
20266 depth,
20267 )?;
20268
20269 _prev_end_offset = cur_offset + envelope_size;
20270 if 3 > max_ordinal {
20271 return Ok(());
20272 }
20273
20274 let cur_offset: usize = (3 - 1) * envelope_size;
20277
20278 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20280
20281 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20286 self.scheme.as_ref().map(
20287 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20288 ),
20289 encoder,
20290 offset + cur_offset,
20291 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 ResolverRegistration {
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 .resolver
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 =
20401 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20402 if inlined != (member_inline_size <= 4) {
20403 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20404 }
20405 let inner_offset;
20406 let mut inner_depth = depth.clone();
20407 if inlined {
20408 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20409 inner_offset = next_offset;
20410 } else {
20411 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20412 inner_depth.increment()?;
20413 }
20414 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
20415 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
20416 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20417 {
20418 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20419 }
20420 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20421 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20422 }
20423 }
20424
20425 next_offset += envelope_size;
20426 _next_ordinal_to_read += 1;
20427 if next_offset >= end_offset {
20428 return Ok(());
20429 }
20430
20431 while _next_ordinal_to_read < 3 {
20433 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20434 _next_ordinal_to_read += 1;
20435 next_offset += envelope_size;
20436 }
20437
20438 let next_out_of_line = decoder.next_out_of_line();
20439 let handles_before = decoder.remaining_handles();
20440 if let Some((inlined, num_bytes, num_handles)) =
20441 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20442 {
20443 let member_inline_size =
20444 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20445 decoder.context,
20446 );
20447 if inlined != (member_inline_size <= 4) {
20448 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20449 }
20450 let inner_offset;
20451 let mut inner_depth = depth.clone();
20452 if inlined {
20453 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20454 inner_offset = next_offset;
20455 } else {
20456 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20457 inner_depth.increment()?;
20458 }
20459 let val_ref = self
20460 .scheme
20461 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20462 fidl::decode!(
20463 fidl::encoding::BoundedString<100>,
20464 D,
20465 val_ref,
20466 decoder,
20467 inner_offset,
20468 inner_depth
20469 )?;
20470 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20471 {
20472 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20473 }
20474 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20475 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20476 }
20477 }
20478
20479 next_offset += envelope_size;
20480
20481 while next_offset < end_offset {
20483 _next_ordinal_to_read += 1;
20484 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20485 next_offset += envelope_size;
20486 }
20487
20488 Ok(())
20489 }
20490 }
20491
20492 impl Runner {
20493 #[inline(always)]
20494 fn max_ordinal_present(&self) -> u64 {
20495 if let Some(_) = self.source_path {
20496 return 2;
20497 }
20498 if let Some(_) = self.name {
20499 return 1;
20500 }
20501 0
20502 }
20503 }
20504
20505 impl fidl::encoding::ValueTypeMarker for Runner {
20506 type Borrowed<'a> = &'a Self;
20507 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20508 value
20509 }
20510 }
20511
20512 unsafe impl fidl::encoding::TypeMarker for Runner {
20513 type Owned = Self;
20514
20515 #[inline(always)]
20516 fn inline_align(_context: fidl::encoding::Context) -> usize {
20517 8
20518 }
20519
20520 #[inline(always)]
20521 fn inline_size(_context: fidl::encoding::Context) -> usize {
20522 16
20523 }
20524 }
20525
20526 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Runner, D> for &Runner {
20527 unsafe fn encode(
20528 self,
20529 encoder: &mut fidl::encoding::Encoder<'_, D>,
20530 offset: usize,
20531 mut depth: fidl::encoding::Depth,
20532 ) -> fidl::Result<()> {
20533 encoder.debug_check_bounds::<Runner>(offset);
20534 let max_ordinal: u64 = self.max_ordinal_present();
20536 encoder.write_num(max_ordinal, offset);
20537 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20538 if max_ordinal == 0 {
20540 return Ok(());
20541 }
20542 depth.increment()?;
20543 let envelope_size = 8;
20544 let bytes_len = max_ordinal as usize * envelope_size;
20545 #[allow(unused_variables)]
20546 let offset = encoder.out_of_line_offset(bytes_len);
20547 let mut _prev_end_offset: usize = 0;
20548 if 1 > max_ordinal {
20549 return Ok(());
20550 }
20551
20552 let cur_offset: usize = (1 - 1) * envelope_size;
20555
20556 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20558
20559 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20564 self.name.as_ref().map(
20565 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20566 ),
20567 encoder,
20568 offset + cur_offset,
20569 depth,
20570 )?;
20571
20572 _prev_end_offset = cur_offset + envelope_size;
20573 if 2 > max_ordinal {
20574 return Ok(());
20575 }
20576
20577 let cur_offset: usize = (2 - 1) * envelope_size;
20580
20581 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20583
20584 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
20589 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
20590 encoder, offset + cur_offset, depth
20591 )?;
20592
20593 _prev_end_offset = cur_offset + envelope_size;
20594
20595 Ok(())
20596 }
20597 }
20598
20599 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Runner {
20600 #[inline(always)]
20601 fn new_empty() -> Self {
20602 Self::default()
20603 }
20604
20605 unsafe fn decode(
20606 &mut self,
20607 decoder: &mut fidl::encoding::Decoder<'_, D>,
20608 offset: usize,
20609 mut depth: fidl::encoding::Depth,
20610 ) -> fidl::Result<()> {
20611 decoder.debug_check_bounds::<Self>(offset);
20612 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20613 None => return Err(fidl::Error::NotNullable),
20614 Some(len) => len,
20615 };
20616 if len == 0 {
20618 return Ok(());
20619 };
20620 depth.increment()?;
20621 let envelope_size = 8;
20622 let bytes_len = len * envelope_size;
20623 let offset = decoder.out_of_line_offset(bytes_len)?;
20624 let mut _next_ordinal_to_read = 0;
20626 let mut next_offset = offset;
20627 let end_offset = offset + bytes_len;
20628 _next_ordinal_to_read += 1;
20629 if next_offset >= end_offset {
20630 return Ok(());
20631 }
20632
20633 while _next_ordinal_to_read < 1 {
20635 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20636 _next_ordinal_to_read += 1;
20637 next_offset += envelope_size;
20638 }
20639
20640 let next_out_of_line = decoder.next_out_of_line();
20641 let handles_before = decoder.remaining_handles();
20642 if let Some((inlined, num_bytes, num_handles)) =
20643 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20644 {
20645 let member_inline_size =
20646 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
20647 decoder.context,
20648 );
20649 if inlined != (member_inline_size <= 4) {
20650 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20651 }
20652 let inner_offset;
20653 let mut inner_depth = depth.clone();
20654 if inlined {
20655 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20656 inner_offset = next_offset;
20657 } else {
20658 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20659 inner_depth.increment()?;
20660 }
20661 let val_ref = self
20662 .name
20663 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
20664 fidl::decode!(
20665 fidl::encoding::BoundedString<100>,
20666 D,
20667 val_ref,
20668 decoder,
20669 inner_offset,
20670 inner_depth
20671 )?;
20672 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20673 {
20674 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20675 }
20676 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20677 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20678 }
20679 }
20680
20681 next_offset += envelope_size;
20682 _next_ordinal_to_read += 1;
20683 if next_offset >= end_offset {
20684 return Ok(());
20685 }
20686
20687 while _next_ordinal_to_read < 2 {
20689 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20690 _next_ordinal_to_read += 1;
20691 next_offset += envelope_size;
20692 }
20693
20694 let next_out_of_line = decoder.next_out_of_line();
20695 let handles_before = decoder.remaining_handles();
20696 if let Some((inlined, num_bytes, num_handles)) =
20697 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20698 {
20699 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20700 if inlined != (member_inline_size <= 4) {
20701 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20702 }
20703 let inner_offset;
20704 let mut inner_depth = depth.clone();
20705 if inlined {
20706 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20707 inner_offset = next_offset;
20708 } else {
20709 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20710 inner_depth.increment()?;
20711 }
20712 let val_ref = self.source_path.get_or_insert_with(|| {
20713 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
20714 });
20715 fidl::decode!(
20716 fidl::encoding::BoundedString<1024>,
20717 D,
20718 val_ref,
20719 decoder,
20720 inner_offset,
20721 inner_depth
20722 )?;
20723 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20724 {
20725 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20726 }
20727 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20728 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20729 }
20730 }
20731
20732 next_offset += envelope_size;
20733
20734 while next_offset < end_offset {
20736 _next_ordinal_to_read += 1;
20737 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20738 next_offset += envelope_size;
20739 }
20740
20741 Ok(())
20742 }
20743 }
20744
20745 impl RunnerRegistration {
20746 #[inline(always)]
20747 fn max_ordinal_present(&self) -> u64 {
20748 if let Some(_) = self.target_name {
20749 return 3;
20750 }
20751 if let Some(_) = self.source {
20752 return 2;
20753 }
20754 if let Some(_) = self.source_name {
20755 return 1;
20756 }
20757 0
20758 }
20759 }
20760
20761 impl fidl::encoding::ValueTypeMarker for RunnerRegistration {
20762 type Borrowed<'a> = &'a Self;
20763 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20764 value
20765 }
20766 }
20767
20768 unsafe impl fidl::encoding::TypeMarker for RunnerRegistration {
20769 type Owned = Self;
20770
20771 #[inline(always)]
20772 fn inline_align(_context: fidl::encoding::Context) -> usize {
20773 8
20774 }
20775
20776 #[inline(always)]
20777 fn inline_size(_context: fidl::encoding::Context) -> usize {
20778 16
20779 }
20780 }
20781
20782 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<RunnerRegistration, D>
20783 for &RunnerRegistration
20784 {
20785 unsafe fn encode(
20786 self,
20787 encoder: &mut fidl::encoding::Encoder<'_, D>,
20788 offset: usize,
20789 mut depth: fidl::encoding::Depth,
20790 ) -> fidl::Result<()> {
20791 encoder.debug_check_bounds::<RunnerRegistration>(offset);
20792 let max_ordinal: u64 = self.max_ordinal_present();
20794 encoder.write_num(max_ordinal, offset);
20795 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20796 if max_ordinal == 0 {
20798 return Ok(());
20799 }
20800 depth.increment()?;
20801 let envelope_size = 8;
20802 let bytes_len = max_ordinal as usize * envelope_size;
20803 #[allow(unused_variables)]
20804 let offset = encoder.out_of_line_offset(bytes_len);
20805 let mut _prev_end_offset: usize = 0;
20806 if 1 > max_ordinal {
20807 return Ok(());
20808 }
20809
20810 let cur_offset: usize = (1 - 1) * envelope_size;
20813
20814 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20816
20817 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20822 self.source_name.as_ref().map(
20823 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20824 ),
20825 encoder,
20826 offset + cur_offset,
20827 depth,
20828 )?;
20829
20830 _prev_end_offset = cur_offset + envelope_size;
20831 if 2 > max_ordinal {
20832 return Ok(());
20833 }
20834
20835 let cur_offset: usize = (2 - 1) * envelope_size;
20838
20839 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20841
20842 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
20847 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
20848 encoder,
20849 offset + cur_offset,
20850 depth,
20851 )?;
20852
20853 _prev_end_offset = cur_offset + envelope_size;
20854 if 3 > max_ordinal {
20855 return Ok(());
20856 }
20857
20858 let cur_offset: usize = (3 - 1) * envelope_size;
20861
20862 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20864
20865 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
20870 self.target_name.as_ref().map(
20871 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
20872 ),
20873 encoder,
20874 offset + cur_offset,
20875 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 RunnerRegistration {
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 .source_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 =
20985 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20986 if inlined != (member_inline_size <= 4) {
20987 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20988 }
20989 let inner_offset;
20990 let mut inner_depth = depth.clone();
20991 if inlined {
20992 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20993 inner_offset = next_offset;
20994 } else {
20995 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20996 inner_depth.increment()?;
20997 }
20998 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
20999 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
21000 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21001 {
21002 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21003 }
21004 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21005 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21006 }
21007 }
21008
21009 next_offset += envelope_size;
21010 _next_ordinal_to_read += 1;
21011 if next_offset >= end_offset {
21012 return Ok(());
21013 }
21014
21015 while _next_ordinal_to_read < 3 {
21017 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21018 _next_ordinal_to_read += 1;
21019 next_offset += envelope_size;
21020 }
21021
21022 let next_out_of_line = decoder.next_out_of_line();
21023 let handles_before = decoder.remaining_handles();
21024 if let Some((inlined, num_bytes, num_handles)) =
21025 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21026 {
21027 let member_inline_size =
21028 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21029 decoder.context,
21030 );
21031 if inlined != (member_inline_size <= 4) {
21032 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21033 }
21034 let inner_offset;
21035 let mut inner_depth = depth.clone();
21036 if inlined {
21037 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21038 inner_offset = next_offset;
21039 } else {
21040 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21041 inner_depth.increment()?;
21042 }
21043 let val_ref = self
21044 .target_name
21045 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21046 fidl::decode!(
21047 fidl::encoding::BoundedString<100>,
21048 D,
21049 val_ref,
21050 decoder,
21051 inner_offset,
21052 inner_depth
21053 )?;
21054 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21055 {
21056 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21057 }
21058 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21059 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21060 }
21061 }
21062
21063 next_offset += envelope_size;
21064
21065 while next_offset < end_offset {
21067 _next_ordinal_to_read += 1;
21068 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21069 next_offset += envelope_size;
21070 }
21071
21072 Ok(())
21073 }
21074 }
21075
21076 impl Service {
21077 #[inline(always)]
21078 fn max_ordinal_present(&self) -> u64 {
21079 if let Some(_) = self.source_path {
21080 return 2;
21081 }
21082 if let Some(_) = self.name {
21083 return 1;
21084 }
21085 0
21086 }
21087 }
21088
21089 impl fidl::encoding::ValueTypeMarker for Service {
21090 type Borrowed<'a> = &'a Self;
21091 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21092 value
21093 }
21094 }
21095
21096 unsafe impl fidl::encoding::TypeMarker for Service {
21097 type Owned = Self;
21098
21099 #[inline(always)]
21100 fn inline_align(_context: fidl::encoding::Context) -> usize {
21101 8
21102 }
21103
21104 #[inline(always)]
21105 fn inline_size(_context: fidl::encoding::Context) -> usize {
21106 16
21107 }
21108 }
21109
21110 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Service, D> for &Service {
21111 unsafe fn encode(
21112 self,
21113 encoder: &mut fidl::encoding::Encoder<'_, D>,
21114 offset: usize,
21115 mut depth: fidl::encoding::Depth,
21116 ) -> fidl::Result<()> {
21117 encoder.debug_check_bounds::<Service>(offset);
21118 let max_ordinal: u64 = self.max_ordinal_present();
21120 encoder.write_num(max_ordinal, offset);
21121 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21122 if max_ordinal == 0 {
21124 return Ok(());
21125 }
21126 depth.increment()?;
21127 let envelope_size = 8;
21128 let bytes_len = max_ordinal as usize * envelope_size;
21129 #[allow(unused_variables)]
21130 let offset = encoder.out_of_line_offset(bytes_len);
21131 let mut _prev_end_offset: usize = 0;
21132 if 1 > max_ordinal {
21133 return Ok(());
21134 }
21135
21136 let cur_offset: usize = (1 - 1) * envelope_size;
21139
21140 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21142
21143 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21148 self.name.as_ref().map(
21149 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21150 ),
21151 encoder,
21152 offset + cur_offset,
21153 depth,
21154 )?;
21155
21156 _prev_end_offset = cur_offset + envelope_size;
21157 if 2 > max_ordinal {
21158 return Ok(());
21159 }
21160
21161 let cur_offset: usize = (2 - 1) * envelope_size;
21164
21165 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21167
21168 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
21173 self.source_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
21174 encoder, offset + cur_offset, depth
21175 )?;
21176
21177 _prev_end_offset = cur_offset + envelope_size;
21178
21179 Ok(())
21180 }
21181 }
21182
21183 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Service {
21184 #[inline(always)]
21185 fn new_empty() -> Self {
21186 Self::default()
21187 }
21188
21189 unsafe fn decode(
21190 &mut self,
21191 decoder: &mut fidl::encoding::Decoder<'_, D>,
21192 offset: usize,
21193 mut depth: fidl::encoding::Depth,
21194 ) -> fidl::Result<()> {
21195 decoder.debug_check_bounds::<Self>(offset);
21196 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21197 None => return Err(fidl::Error::NotNullable),
21198 Some(len) => len,
21199 };
21200 if len == 0 {
21202 return Ok(());
21203 };
21204 depth.increment()?;
21205 let envelope_size = 8;
21206 let bytes_len = len * envelope_size;
21207 let offset = decoder.out_of_line_offset(bytes_len)?;
21208 let mut _next_ordinal_to_read = 0;
21210 let mut next_offset = offset;
21211 let end_offset = offset + bytes_len;
21212 _next_ordinal_to_read += 1;
21213 if next_offset >= end_offset {
21214 return Ok(());
21215 }
21216
21217 while _next_ordinal_to_read < 1 {
21219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21220 _next_ordinal_to_read += 1;
21221 next_offset += envelope_size;
21222 }
21223
21224 let next_out_of_line = decoder.next_out_of_line();
21225 let handles_before = decoder.remaining_handles();
21226 if let Some((inlined, num_bytes, num_handles)) =
21227 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21228 {
21229 let member_inline_size =
21230 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21231 decoder.context,
21232 );
21233 if inlined != (member_inline_size <= 4) {
21234 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21235 }
21236 let inner_offset;
21237 let mut inner_depth = depth.clone();
21238 if inlined {
21239 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21240 inner_offset = next_offset;
21241 } else {
21242 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21243 inner_depth.increment()?;
21244 }
21245 let val_ref = self
21246 .name
21247 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21248 fidl::decode!(
21249 fidl::encoding::BoundedString<100>,
21250 D,
21251 val_ref,
21252 decoder,
21253 inner_offset,
21254 inner_depth
21255 )?;
21256 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21257 {
21258 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21259 }
21260 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21261 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21262 }
21263 }
21264
21265 next_offset += envelope_size;
21266 _next_ordinal_to_read += 1;
21267 if next_offset >= end_offset {
21268 return Ok(());
21269 }
21270
21271 while _next_ordinal_to_read < 2 {
21273 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21274 _next_ordinal_to_read += 1;
21275 next_offset += envelope_size;
21276 }
21277
21278 let next_out_of_line = decoder.next_out_of_line();
21279 let handles_before = decoder.remaining_handles();
21280 if let Some((inlined, num_bytes, num_handles)) =
21281 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21282 {
21283 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21284 if inlined != (member_inline_size <= 4) {
21285 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21286 }
21287 let inner_offset;
21288 let mut inner_depth = depth.clone();
21289 if inlined {
21290 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21291 inner_offset = next_offset;
21292 } else {
21293 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21294 inner_depth.increment()?;
21295 }
21296 let val_ref = self.source_path.get_or_insert_with(|| {
21297 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
21298 });
21299 fidl::decode!(
21300 fidl::encoding::BoundedString<1024>,
21301 D,
21302 val_ref,
21303 decoder,
21304 inner_offset,
21305 inner_depth
21306 )?;
21307 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21308 {
21309 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21310 }
21311 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21312 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21313 }
21314 }
21315
21316 next_offset += envelope_size;
21317
21318 while next_offset < end_offset {
21320 _next_ordinal_to_read += 1;
21321 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21322 next_offset += envelope_size;
21323 }
21324
21325 Ok(())
21326 }
21327 }
21328
21329 impl Storage {
21330 #[inline(always)]
21331 fn max_ordinal_present(&self) -> u64 {
21332 if let Some(_) = self.storage_id {
21333 return 5;
21334 }
21335 if let Some(_) = self.subdir {
21336 return 4;
21337 }
21338 if let Some(_) = self.backing_dir {
21339 return 3;
21340 }
21341 if let Some(_) = self.source {
21342 return 2;
21343 }
21344 if let Some(_) = self.name {
21345 return 1;
21346 }
21347 0
21348 }
21349 }
21350
21351 impl fidl::encoding::ValueTypeMarker for Storage {
21352 type Borrowed<'a> = &'a Self;
21353 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21354 value
21355 }
21356 }
21357
21358 unsafe impl fidl::encoding::TypeMarker for Storage {
21359 type Owned = Self;
21360
21361 #[inline(always)]
21362 fn inline_align(_context: fidl::encoding::Context) -> usize {
21363 8
21364 }
21365
21366 #[inline(always)]
21367 fn inline_size(_context: fidl::encoding::Context) -> usize {
21368 16
21369 }
21370 }
21371
21372 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Storage, D> for &Storage {
21373 unsafe fn encode(
21374 self,
21375 encoder: &mut fidl::encoding::Encoder<'_, D>,
21376 offset: usize,
21377 mut depth: fidl::encoding::Depth,
21378 ) -> fidl::Result<()> {
21379 encoder.debug_check_bounds::<Storage>(offset);
21380 let max_ordinal: u64 = self.max_ordinal_present();
21382 encoder.write_num(max_ordinal, offset);
21383 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21384 if max_ordinal == 0 {
21386 return Ok(());
21387 }
21388 depth.increment()?;
21389 let envelope_size = 8;
21390 let bytes_len = max_ordinal as usize * envelope_size;
21391 #[allow(unused_variables)]
21392 let offset = encoder.out_of_line_offset(bytes_len);
21393 let mut _prev_end_offset: usize = 0;
21394 if 1 > max_ordinal {
21395 return Ok(());
21396 }
21397
21398 let cur_offset: usize = (1 - 1) * envelope_size;
21401
21402 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21404
21405 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21410 self.name.as_ref().map(
21411 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21412 ),
21413 encoder,
21414 offset + cur_offset,
21415 depth,
21416 )?;
21417
21418 _prev_end_offset = cur_offset + envelope_size;
21419 if 2 > max_ordinal {
21420 return Ok(());
21421 }
21422
21423 let cur_offset: usize = (2 - 1) * envelope_size;
21426
21427 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21429
21430 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
21435 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
21436 encoder,
21437 offset + cur_offset,
21438 depth,
21439 )?;
21440
21441 _prev_end_offset = cur_offset + envelope_size;
21442 if 3 > max_ordinal {
21443 return Ok(());
21444 }
21445
21446 let cur_offset: usize = (3 - 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<100>, D>(
21458 self.backing_dir.as_ref().map(
21459 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21460 ),
21461 encoder,
21462 offset + cur_offset,
21463 depth,
21464 )?;
21465
21466 _prev_end_offset = cur_offset + envelope_size;
21467 if 4 > max_ordinal {
21468 return Ok(());
21469 }
21470
21471 let cur_offset: usize = (4 - 1) * envelope_size;
21474
21475 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21477
21478 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
21483 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
21484 encoder, offset + cur_offset, depth
21485 )?;
21486
21487 _prev_end_offset = cur_offset + envelope_size;
21488 if 5 > max_ordinal {
21489 return Ok(());
21490 }
21491
21492 let cur_offset: usize = (5 - 1) * envelope_size;
21495
21496 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21498
21499 fidl::encoding::encode_in_envelope_optional::<StorageId, D>(
21504 self.storage_id
21505 .as_ref()
21506 .map(<StorageId as fidl::encoding::ValueTypeMarker>::borrow),
21507 encoder,
21508 offset + cur_offset,
21509 depth,
21510 )?;
21511
21512 _prev_end_offset = cur_offset + envelope_size;
21513
21514 Ok(())
21515 }
21516 }
21517
21518 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Storage {
21519 #[inline(always)]
21520 fn new_empty() -> Self {
21521 Self::default()
21522 }
21523
21524 unsafe fn decode(
21525 &mut self,
21526 decoder: &mut fidl::encoding::Decoder<'_, D>,
21527 offset: usize,
21528 mut depth: fidl::encoding::Depth,
21529 ) -> fidl::Result<()> {
21530 decoder.debug_check_bounds::<Self>(offset);
21531 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21532 None => return Err(fidl::Error::NotNullable),
21533 Some(len) => len,
21534 };
21535 if len == 0 {
21537 return Ok(());
21538 };
21539 depth.increment()?;
21540 let envelope_size = 8;
21541 let bytes_len = len * envelope_size;
21542 let offset = decoder.out_of_line_offset(bytes_len)?;
21543 let mut _next_ordinal_to_read = 0;
21545 let mut next_offset = offset;
21546 let end_offset = offset + bytes_len;
21547 _next_ordinal_to_read += 1;
21548 if next_offset >= end_offset {
21549 return Ok(());
21550 }
21551
21552 while _next_ordinal_to_read < 1 {
21554 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21555 _next_ordinal_to_read += 1;
21556 next_offset += envelope_size;
21557 }
21558
21559 let next_out_of_line = decoder.next_out_of_line();
21560 let handles_before = decoder.remaining_handles();
21561 if let Some((inlined, num_bytes, num_handles)) =
21562 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21563 {
21564 let member_inline_size =
21565 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21566 decoder.context,
21567 );
21568 if inlined != (member_inline_size <= 4) {
21569 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21570 }
21571 let inner_offset;
21572 let mut inner_depth = depth.clone();
21573 if inlined {
21574 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21575 inner_offset = next_offset;
21576 } else {
21577 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21578 inner_depth.increment()?;
21579 }
21580 let val_ref = self
21581 .name
21582 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21583 fidl::decode!(
21584 fidl::encoding::BoundedString<100>,
21585 D,
21586 val_ref,
21587 decoder,
21588 inner_offset,
21589 inner_depth
21590 )?;
21591 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21592 {
21593 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21594 }
21595 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21596 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21597 }
21598 }
21599
21600 next_offset += envelope_size;
21601 _next_ordinal_to_read += 1;
21602 if next_offset >= end_offset {
21603 return Ok(());
21604 }
21605
21606 while _next_ordinal_to_read < 2 {
21608 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21609 _next_ordinal_to_read += 1;
21610 next_offset += envelope_size;
21611 }
21612
21613 let next_out_of_line = decoder.next_out_of_line();
21614 let handles_before = decoder.remaining_handles();
21615 if let Some((inlined, num_bytes, num_handles)) =
21616 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21617 {
21618 let member_inline_size =
21619 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21620 if inlined != (member_inline_size <= 4) {
21621 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21622 }
21623 let inner_offset;
21624 let mut inner_depth = depth.clone();
21625 if inlined {
21626 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21627 inner_offset = next_offset;
21628 } else {
21629 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21630 inner_depth.increment()?;
21631 }
21632 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
21633 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
21634 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21635 {
21636 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21637 }
21638 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21639 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21640 }
21641 }
21642
21643 next_offset += envelope_size;
21644 _next_ordinal_to_read += 1;
21645 if next_offset >= end_offset {
21646 return Ok(());
21647 }
21648
21649 while _next_ordinal_to_read < 3 {
21651 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21652 _next_ordinal_to_read += 1;
21653 next_offset += envelope_size;
21654 }
21655
21656 let next_out_of_line = decoder.next_out_of_line();
21657 let handles_before = decoder.remaining_handles();
21658 if let Some((inlined, num_bytes, num_handles)) =
21659 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21660 {
21661 let member_inline_size =
21662 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
21663 decoder.context,
21664 );
21665 if inlined != (member_inline_size <= 4) {
21666 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21667 }
21668 let inner_offset;
21669 let mut inner_depth = depth.clone();
21670 if inlined {
21671 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21672 inner_offset = next_offset;
21673 } else {
21674 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21675 inner_depth.increment()?;
21676 }
21677 let val_ref = self
21678 .backing_dir
21679 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
21680 fidl::decode!(
21681 fidl::encoding::BoundedString<100>,
21682 D,
21683 val_ref,
21684 decoder,
21685 inner_offset,
21686 inner_depth
21687 )?;
21688 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21689 {
21690 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21691 }
21692 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21693 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21694 }
21695 }
21696
21697 next_offset += envelope_size;
21698 _next_ordinal_to_read += 1;
21699 if next_offset >= end_offset {
21700 return Ok(());
21701 }
21702
21703 while _next_ordinal_to_read < 4 {
21705 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21706 _next_ordinal_to_read += 1;
21707 next_offset += envelope_size;
21708 }
21709
21710 let next_out_of_line = decoder.next_out_of_line();
21711 let handles_before = decoder.remaining_handles();
21712 if let Some((inlined, num_bytes, num_handles)) =
21713 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21714 {
21715 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21716 if inlined != (member_inline_size <= 4) {
21717 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21718 }
21719 let inner_offset;
21720 let mut inner_depth = depth.clone();
21721 if inlined {
21722 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21723 inner_offset = next_offset;
21724 } else {
21725 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21726 inner_depth.increment()?;
21727 }
21728 let val_ref = self.subdir.get_or_insert_with(|| {
21729 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
21730 });
21731 fidl::decode!(
21732 fidl::encoding::BoundedString<1024>,
21733 D,
21734 val_ref,
21735 decoder,
21736 inner_offset,
21737 inner_depth
21738 )?;
21739 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21740 {
21741 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21742 }
21743 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21744 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21745 }
21746 }
21747
21748 next_offset += envelope_size;
21749 _next_ordinal_to_read += 1;
21750 if next_offset >= end_offset {
21751 return Ok(());
21752 }
21753
21754 while _next_ordinal_to_read < 5 {
21756 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21757 _next_ordinal_to_read += 1;
21758 next_offset += envelope_size;
21759 }
21760
21761 let next_out_of_line = decoder.next_out_of_line();
21762 let handles_before = decoder.remaining_handles();
21763 if let Some((inlined, num_bytes, num_handles)) =
21764 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21765 {
21766 let member_inline_size =
21767 <StorageId as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21768 if inlined != (member_inline_size <= 4) {
21769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21770 }
21771 let inner_offset;
21772 let mut inner_depth = depth.clone();
21773 if inlined {
21774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21775 inner_offset = next_offset;
21776 } else {
21777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21778 inner_depth.increment()?;
21779 }
21780 let val_ref = self.storage_id.get_or_insert_with(|| fidl::new_empty!(StorageId, D));
21781 fidl::decode!(StorageId, D, val_ref, decoder, inner_offset, inner_depth)?;
21782 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21783 {
21784 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21785 }
21786 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21787 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21788 }
21789 }
21790
21791 next_offset += envelope_size;
21792
21793 while next_offset < end_offset {
21795 _next_ordinal_to_read += 1;
21796 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21797 next_offset += envelope_size;
21798 }
21799
21800 Ok(())
21801 }
21802 }
21803
21804 impl UseConfiguration {
21805 #[inline(always)]
21806 fn max_ordinal_present(&self) -> u64 {
21807 if let Some(_) = self.source_dictionary {
21808 return 7;
21809 }
21810 if let Some(_) = self.default {
21811 return 6;
21812 }
21813 if let Some(_) = self.type_ {
21814 return 5;
21815 }
21816 if let Some(_) = self.availability {
21817 return 4;
21818 }
21819 if let Some(_) = self.target_name {
21820 return 3;
21821 }
21822 if let Some(_) = self.source_name {
21823 return 2;
21824 }
21825 if let Some(_) = self.source {
21826 return 1;
21827 }
21828 0
21829 }
21830 }
21831
21832 impl fidl::encoding::ValueTypeMarker for UseConfiguration {
21833 type Borrowed<'a> = &'a Self;
21834 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21835 value
21836 }
21837 }
21838
21839 unsafe impl fidl::encoding::TypeMarker for UseConfiguration {
21840 type Owned = Self;
21841
21842 #[inline(always)]
21843 fn inline_align(_context: fidl::encoding::Context) -> usize {
21844 8
21845 }
21846
21847 #[inline(always)]
21848 fn inline_size(_context: fidl::encoding::Context) -> usize {
21849 16
21850 }
21851 }
21852
21853 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseConfiguration, D>
21854 for &UseConfiguration
21855 {
21856 unsafe fn encode(
21857 self,
21858 encoder: &mut fidl::encoding::Encoder<'_, D>,
21859 offset: usize,
21860 mut depth: fidl::encoding::Depth,
21861 ) -> fidl::Result<()> {
21862 encoder.debug_check_bounds::<UseConfiguration>(offset);
21863 let max_ordinal: u64 = self.max_ordinal_present();
21865 encoder.write_num(max_ordinal, offset);
21866 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21867 if max_ordinal == 0 {
21869 return Ok(());
21870 }
21871 depth.increment()?;
21872 let envelope_size = 8;
21873 let bytes_len = max_ordinal as usize * envelope_size;
21874 #[allow(unused_variables)]
21875 let offset = encoder.out_of_line_offset(bytes_len);
21876 let mut _prev_end_offset: usize = 0;
21877 if 1 > max_ordinal {
21878 return Ok(());
21879 }
21880
21881 let cur_offset: usize = (1 - 1) * envelope_size;
21884
21885 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21887
21888 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
21893 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
21894 encoder,
21895 offset + cur_offset,
21896 depth,
21897 )?;
21898
21899 _prev_end_offset = cur_offset + envelope_size;
21900 if 2 > max_ordinal {
21901 return Ok(());
21902 }
21903
21904 let cur_offset: usize = (2 - 1) * envelope_size;
21907
21908 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21910
21911 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21916 self.source_name.as_ref().map(
21917 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21918 ),
21919 encoder,
21920 offset + cur_offset,
21921 depth,
21922 )?;
21923
21924 _prev_end_offset = cur_offset + envelope_size;
21925 if 3 > max_ordinal {
21926 return Ok(());
21927 }
21928
21929 let cur_offset: usize = (3 - 1) * envelope_size;
21932
21933 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21935
21936 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
21941 self.target_name.as_ref().map(
21942 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
21943 ),
21944 encoder,
21945 offset + cur_offset,
21946 depth,
21947 )?;
21948
21949 _prev_end_offset = cur_offset + envelope_size;
21950 if 4 > max_ordinal {
21951 return Ok(());
21952 }
21953
21954 let cur_offset: usize = (4 - 1) * envelope_size;
21957
21958 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21960
21961 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
21966 self.availability
21967 .as_ref()
21968 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
21969 encoder,
21970 offset + cur_offset,
21971 depth,
21972 )?;
21973
21974 _prev_end_offset = cur_offset + envelope_size;
21975 if 5 > max_ordinal {
21976 return Ok(());
21977 }
21978
21979 let cur_offset: usize = (5 - 1) * envelope_size;
21982
21983 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21985
21986 fidl::encoding::encode_in_envelope_optional::<ConfigType, D>(
21991 self.type_.as_ref().map(<ConfigType as fidl::encoding::ValueTypeMarker>::borrow),
21992 encoder,
21993 offset + cur_offset,
21994 depth,
21995 )?;
21996
21997 _prev_end_offset = cur_offset + envelope_size;
21998 if 6 > max_ordinal {
21999 return Ok(());
22000 }
22001
22002 let cur_offset: usize = (6 - 1) * envelope_size;
22005
22006 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22008
22009 fidl::encoding::encode_in_envelope_optional::<ConfigValue, D>(
22014 self.default.as_ref().map(<ConfigValue as fidl::encoding::ValueTypeMarker>::borrow),
22015 encoder,
22016 offset + cur_offset,
22017 depth,
22018 )?;
22019
22020 _prev_end_offset = cur_offset + envelope_size;
22021 if 7 > max_ordinal {
22022 return Ok(());
22023 }
22024
22025 let cur_offset: usize = (7 - 1) * envelope_size;
22028
22029 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22031
22032 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
22037 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
22038 encoder, offset + cur_offset, depth
22039 )?;
22040
22041 _prev_end_offset = cur_offset + envelope_size;
22042
22043 Ok(())
22044 }
22045 }
22046
22047 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseConfiguration {
22048 #[inline(always)]
22049 fn new_empty() -> Self {
22050 Self::default()
22051 }
22052
22053 unsafe fn decode(
22054 &mut self,
22055 decoder: &mut fidl::encoding::Decoder<'_, D>,
22056 offset: usize,
22057 mut depth: fidl::encoding::Depth,
22058 ) -> fidl::Result<()> {
22059 decoder.debug_check_bounds::<Self>(offset);
22060 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22061 None => return Err(fidl::Error::NotNullable),
22062 Some(len) => len,
22063 };
22064 if len == 0 {
22066 return Ok(());
22067 };
22068 depth.increment()?;
22069 let envelope_size = 8;
22070 let bytes_len = len * envelope_size;
22071 let offset = decoder.out_of_line_offset(bytes_len)?;
22072 let mut _next_ordinal_to_read = 0;
22074 let mut next_offset = offset;
22075 let end_offset = offset + bytes_len;
22076 _next_ordinal_to_read += 1;
22077 if next_offset >= end_offset {
22078 return Ok(());
22079 }
22080
22081 while _next_ordinal_to_read < 1 {
22083 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22084 _next_ordinal_to_read += 1;
22085 next_offset += envelope_size;
22086 }
22087
22088 let next_out_of_line = decoder.next_out_of_line();
22089 let handles_before = decoder.remaining_handles();
22090 if let Some((inlined, num_bytes, num_handles)) =
22091 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22092 {
22093 let member_inline_size =
22094 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22095 if inlined != (member_inline_size <= 4) {
22096 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22097 }
22098 let inner_offset;
22099 let mut inner_depth = depth.clone();
22100 if inlined {
22101 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22102 inner_offset = next_offset;
22103 } else {
22104 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22105 inner_depth.increment()?;
22106 }
22107 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
22108 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
22109 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22110 {
22111 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22112 }
22113 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22114 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22115 }
22116 }
22117
22118 next_offset += envelope_size;
22119 _next_ordinal_to_read += 1;
22120 if next_offset >= end_offset {
22121 return Ok(());
22122 }
22123
22124 while _next_ordinal_to_read < 2 {
22126 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22127 _next_ordinal_to_read += 1;
22128 next_offset += envelope_size;
22129 }
22130
22131 let next_out_of_line = decoder.next_out_of_line();
22132 let handles_before = decoder.remaining_handles();
22133 if let Some((inlined, num_bytes, num_handles)) =
22134 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22135 {
22136 let member_inline_size =
22137 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
22138 decoder.context,
22139 );
22140 if inlined != (member_inline_size <= 4) {
22141 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22142 }
22143 let inner_offset;
22144 let mut inner_depth = depth.clone();
22145 if inlined {
22146 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22147 inner_offset = next_offset;
22148 } else {
22149 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22150 inner_depth.increment()?;
22151 }
22152 let val_ref = self
22153 .source_name
22154 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
22155 fidl::decode!(
22156 fidl::encoding::BoundedString<100>,
22157 D,
22158 val_ref,
22159 decoder,
22160 inner_offset,
22161 inner_depth
22162 )?;
22163 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22164 {
22165 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22166 }
22167 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22168 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22169 }
22170 }
22171
22172 next_offset += envelope_size;
22173 _next_ordinal_to_read += 1;
22174 if next_offset >= end_offset {
22175 return Ok(());
22176 }
22177
22178 while _next_ordinal_to_read < 3 {
22180 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22181 _next_ordinal_to_read += 1;
22182 next_offset += envelope_size;
22183 }
22184
22185 let next_out_of_line = decoder.next_out_of_line();
22186 let handles_before = decoder.remaining_handles();
22187 if let Some((inlined, num_bytes, num_handles)) =
22188 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22189 {
22190 let member_inline_size =
22191 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
22192 decoder.context,
22193 );
22194 if inlined != (member_inline_size <= 4) {
22195 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22196 }
22197 let inner_offset;
22198 let mut inner_depth = depth.clone();
22199 if inlined {
22200 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22201 inner_offset = next_offset;
22202 } else {
22203 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22204 inner_depth.increment()?;
22205 }
22206 let val_ref = self
22207 .target_name
22208 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
22209 fidl::decode!(
22210 fidl::encoding::BoundedString<100>,
22211 D,
22212 val_ref,
22213 decoder,
22214 inner_offset,
22215 inner_depth
22216 )?;
22217 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22218 {
22219 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22220 }
22221 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22222 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22223 }
22224 }
22225
22226 next_offset += envelope_size;
22227 _next_ordinal_to_read += 1;
22228 if next_offset >= end_offset {
22229 return Ok(());
22230 }
22231
22232 while _next_ordinal_to_read < 4 {
22234 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22235 _next_ordinal_to_read += 1;
22236 next_offset += envelope_size;
22237 }
22238
22239 let next_out_of_line = decoder.next_out_of_line();
22240 let handles_before = decoder.remaining_handles();
22241 if let Some((inlined, num_bytes, num_handles)) =
22242 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22243 {
22244 let member_inline_size =
22245 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22246 if inlined != (member_inline_size <= 4) {
22247 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22248 }
22249 let inner_offset;
22250 let mut inner_depth = depth.clone();
22251 if inlined {
22252 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22253 inner_offset = next_offset;
22254 } else {
22255 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22256 inner_depth.increment()?;
22257 }
22258 let val_ref =
22259 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
22260 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
22261 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22262 {
22263 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22264 }
22265 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22266 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22267 }
22268 }
22269
22270 next_offset += envelope_size;
22271 _next_ordinal_to_read += 1;
22272 if next_offset >= end_offset {
22273 return Ok(());
22274 }
22275
22276 while _next_ordinal_to_read < 5 {
22278 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22279 _next_ordinal_to_read += 1;
22280 next_offset += envelope_size;
22281 }
22282
22283 let next_out_of_line = decoder.next_out_of_line();
22284 let handles_before = decoder.remaining_handles();
22285 if let Some((inlined, num_bytes, num_handles)) =
22286 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22287 {
22288 let member_inline_size =
22289 <ConfigType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22290 if inlined != (member_inline_size <= 4) {
22291 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22292 }
22293 let inner_offset;
22294 let mut inner_depth = depth.clone();
22295 if inlined {
22296 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22297 inner_offset = next_offset;
22298 } else {
22299 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22300 inner_depth.increment()?;
22301 }
22302 let val_ref = self.type_.get_or_insert_with(|| fidl::new_empty!(ConfigType, D));
22303 fidl::decode!(ConfigType, D, val_ref, decoder, inner_offset, inner_depth)?;
22304 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22305 {
22306 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22307 }
22308 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22309 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22310 }
22311 }
22312
22313 next_offset += envelope_size;
22314 _next_ordinal_to_read += 1;
22315 if next_offset >= end_offset {
22316 return Ok(());
22317 }
22318
22319 while _next_ordinal_to_read < 6 {
22321 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22322 _next_ordinal_to_read += 1;
22323 next_offset += envelope_size;
22324 }
22325
22326 let next_out_of_line = decoder.next_out_of_line();
22327 let handles_before = decoder.remaining_handles();
22328 if let Some((inlined, num_bytes, num_handles)) =
22329 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22330 {
22331 let member_inline_size =
22332 <ConfigValue as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22333 if inlined != (member_inline_size <= 4) {
22334 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22335 }
22336 let inner_offset;
22337 let mut inner_depth = depth.clone();
22338 if inlined {
22339 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22340 inner_offset = next_offset;
22341 } else {
22342 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22343 inner_depth.increment()?;
22344 }
22345 let val_ref = self.default.get_or_insert_with(|| fidl::new_empty!(ConfigValue, D));
22346 fidl::decode!(ConfigValue, D, val_ref, decoder, inner_offset, inner_depth)?;
22347 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22348 {
22349 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22350 }
22351 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22352 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22353 }
22354 }
22355
22356 next_offset += envelope_size;
22357 _next_ordinal_to_read += 1;
22358 if next_offset >= end_offset {
22359 return Ok(());
22360 }
22361
22362 while _next_ordinal_to_read < 7 {
22364 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22365 _next_ordinal_to_read += 1;
22366 next_offset += envelope_size;
22367 }
22368
22369 let next_out_of_line = decoder.next_out_of_line();
22370 let handles_before = decoder.remaining_handles();
22371 if let Some((inlined, num_bytes, num_handles)) =
22372 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22373 {
22374 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22375 if inlined != (member_inline_size <= 4) {
22376 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22377 }
22378 let inner_offset;
22379 let mut inner_depth = depth.clone();
22380 if inlined {
22381 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22382 inner_offset = next_offset;
22383 } else {
22384 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22385 inner_depth.increment()?;
22386 }
22387 let val_ref = self.source_dictionary.get_or_insert_with(|| {
22388 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
22389 });
22390 fidl::decode!(
22391 fidl::encoding::BoundedString<1024>,
22392 D,
22393 val_ref,
22394 decoder,
22395 inner_offset,
22396 inner_depth
22397 )?;
22398 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22399 {
22400 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22401 }
22402 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22403 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22404 }
22405 }
22406
22407 next_offset += envelope_size;
22408
22409 while next_offset < end_offset {
22411 _next_ordinal_to_read += 1;
22412 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22413 next_offset += envelope_size;
22414 }
22415
22416 Ok(())
22417 }
22418 }
22419
22420 impl UseDictionary {
22421 #[inline(always)]
22422 fn max_ordinal_present(&self) -> u64 {
22423 if let Some(_) = self.source_dictionary {
22424 return 8;
22425 }
22426 if let Some(_) = self.availability {
22427 return 7;
22428 }
22429 if let Some(_) = self.dependency_type {
22430 return 6;
22431 }
22432 if let Some(_) = self.target_path {
22433 return 3;
22434 }
22435 if let Some(_) = self.source_name {
22436 return 2;
22437 }
22438 if let Some(_) = self.source {
22439 return 1;
22440 }
22441 0
22442 }
22443 }
22444
22445 impl fidl::encoding::ValueTypeMarker for UseDictionary {
22446 type Borrowed<'a> = &'a Self;
22447 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22448 value
22449 }
22450 }
22451
22452 unsafe impl fidl::encoding::TypeMarker for UseDictionary {
22453 type Owned = Self;
22454
22455 #[inline(always)]
22456 fn inline_align(_context: fidl::encoding::Context) -> usize {
22457 8
22458 }
22459
22460 #[inline(always)]
22461 fn inline_size(_context: fidl::encoding::Context) -> usize {
22462 16
22463 }
22464 }
22465
22466 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseDictionary, D>
22467 for &UseDictionary
22468 {
22469 unsafe fn encode(
22470 self,
22471 encoder: &mut fidl::encoding::Encoder<'_, D>,
22472 offset: usize,
22473 mut depth: fidl::encoding::Depth,
22474 ) -> fidl::Result<()> {
22475 encoder.debug_check_bounds::<UseDictionary>(offset);
22476 let max_ordinal: u64 = self.max_ordinal_present();
22478 encoder.write_num(max_ordinal, offset);
22479 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22480 if max_ordinal == 0 {
22482 return Ok(());
22483 }
22484 depth.increment()?;
22485 let envelope_size = 8;
22486 let bytes_len = max_ordinal as usize * envelope_size;
22487 #[allow(unused_variables)]
22488 let offset = encoder.out_of_line_offset(bytes_len);
22489 let mut _prev_end_offset: usize = 0;
22490 if 1 > max_ordinal {
22491 return Ok(());
22492 }
22493
22494 let cur_offset: usize = (1 - 1) * envelope_size;
22497
22498 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22500
22501 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
22506 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
22507 encoder,
22508 offset + cur_offset,
22509 depth,
22510 )?;
22511
22512 _prev_end_offset = cur_offset + envelope_size;
22513 if 2 > max_ordinal {
22514 return Ok(());
22515 }
22516
22517 let cur_offset: usize = (2 - 1) * envelope_size;
22520
22521 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22523
22524 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
22529 self.source_name.as_ref().map(
22530 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
22531 ),
22532 encoder,
22533 offset + cur_offset,
22534 depth,
22535 )?;
22536
22537 _prev_end_offset = cur_offset + envelope_size;
22538 if 3 > max_ordinal {
22539 return Ok(());
22540 }
22541
22542 let cur_offset: usize = (3 - 1) * envelope_size;
22545
22546 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22548
22549 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
22554 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
22555 encoder, offset + cur_offset, depth
22556 )?;
22557
22558 _prev_end_offset = cur_offset + envelope_size;
22559 if 6 > max_ordinal {
22560 return Ok(());
22561 }
22562
22563 let cur_offset: usize = (6 - 1) * envelope_size;
22566
22567 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22569
22570 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
22575 self.dependency_type
22576 .as_ref()
22577 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
22578 encoder,
22579 offset + cur_offset,
22580 depth,
22581 )?;
22582
22583 _prev_end_offset = cur_offset + envelope_size;
22584 if 7 > max_ordinal {
22585 return Ok(());
22586 }
22587
22588 let cur_offset: usize = (7 - 1) * envelope_size;
22591
22592 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22594
22595 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
22600 self.availability
22601 .as_ref()
22602 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
22603 encoder,
22604 offset + cur_offset,
22605 depth,
22606 )?;
22607
22608 _prev_end_offset = cur_offset + envelope_size;
22609 if 8 > max_ordinal {
22610 return Ok(());
22611 }
22612
22613 let cur_offset: usize = (8 - 1) * envelope_size;
22616
22617 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
22619
22620 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
22625 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
22626 encoder, offset + cur_offset, depth
22627 )?;
22628
22629 _prev_end_offset = cur_offset + envelope_size;
22630
22631 Ok(())
22632 }
22633 }
22634
22635 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseDictionary {
22636 #[inline(always)]
22637 fn new_empty() -> Self {
22638 Self::default()
22639 }
22640
22641 unsafe fn decode(
22642 &mut self,
22643 decoder: &mut fidl::encoding::Decoder<'_, D>,
22644 offset: usize,
22645 mut depth: fidl::encoding::Depth,
22646 ) -> fidl::Result<()> {
22647 decoder.debug_check_bounds::<Self>(offset);
22648 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22649 None => return Err(fidl::Error::NotNullable),
22650 Some(len) => len,
22651 };
22652 if len == 0 {
22654 return Ok(());
22655 };
22656 depth.increment()?;
22657 let envelope_size = 8;
22658 let bytes_len = len * envelope_size;
22659 let offset = decoder.out_of_line_offset(bytes_len)?;
22660 let mut _next_ordinal_to_read = 0;
22662 let mut next_offset = offset;
22663 let end_offset = offset + bytes_len;
22664 _next_ordinal_to_read += 1;
22665 if next_offset >= end_offset {
22666 return Ok(());
22667 }
22668
22669 while _next_ordinal_to_read < 1 {
22671 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22672 _next_ordinal_to_read += 1;
22673 next_offset += envelope_size;
22674 }
22675
22676 let next_out_of_line = decoder.next_out_of_line();
22677 let handles_before = decoder.remaining_handles();
22678 if let Some((inlined, num_bytes, num_handles)) =
22679 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22680 {
22681 let member_inline_size =
22682 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22683 if inlined != (member_inline_size <= 4) {
22684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22685 }
22686 let inner_offset;
22687 let mut inner_depth = depth.clone();
22688 if inlined {
22689 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22690 inner_offset = next_offset;
22691 } else {
22692 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22693 inner_depth.increment()?;
22694 }
22695 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
22696 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
22697 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22698 {
22699 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22700 }
22701 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22702 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22703 }
22704 }
22705
22706 next_offset += envelope_size;
22707 _next_ordinal_to_read += 1;
22708 if next_offset >= end_offset {
22709 return Ok(());
22710 }
22711
22712 while _next_ordinal_to_read < 2 {
22714 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22715 _next_ordinal_to_read += 1;
22716 next_offset += envelope_size;
22717 }
22718
22719 let next_out_of_line = decoder.next_out_of_line();
22720 let handles_before = decoder.remaining_handles();
22721 if let Some((inlined, num_bytes, num_handles)) =
22722 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22723 {
22724 let member_inline_size =
22725 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
22726 decoder.context,
22727 );
22728 if inlined != (member_inline_size <= 4) {
22729 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22730 }
22731 let inner_offset;
22732 let mut inner_depth = depth.clone();
22733 if inlined {
22734 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22735 inner_offset = next_offset;
22736 } else {
22737 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22738 inner_depth.increment()?;
22739 }
22740 let val_ref = self
22741 .source_name
22742 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
22743 fidl::decode!(
22744 fidl::encoding::BoundedString<100>,
22745 D,
22746 val_ref,
22747 decoder,
22748 inner_offset,
22749 inner_depth
22750 )?;
22751 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22752 {
22753 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22754 }
22755 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22756 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22757 }
22758 }
22759
22760 next_offset += envelope_size;
22761 _next_ordinal_to_read += 1;
22762 if next_offset >= end_offset {
22763 return Ok(());
22764 }
22765
22766 while _next_ordinal_to_read < 3 {
22768 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22769 _next_ordinal_to_read += 1;
22770 next_offset += envelope_size;
22771 }
22772
22773 let next_out_of_line = decoder.next_out_of_line();
22774 let handles_before = decoder.remaining_handles();
22775 if let Some((inlined, num_bytes, num_handles)) =
22776 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22777 {
22778 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22779 if inlined != (member_inline_size <= 4) {
22780 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22781 }
22782 let inner_offset;
22783 let mut inner_depth = depth.clone();
22784 if inlined {
22785 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22786 inner_offset = next_offset;
22787 } else {
22788 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22789 inner_depth.increment()?;
22790 }
22791 let val_ref = self.target_path.get_or_insert_with(|| {
22792 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
22793 });
22794 fidl::decode!(
22795 fidl::encoding::BoundedString<1024>,
22796 D,
22797 val_ref,
22798 decoder,
22799 inner_offset,
22800 inner_depth
22801 )?;
22802 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22803 {
22804 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22805 }
22806 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22807 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22808 }
22809 }
22810
22811 next_offset += envelope_size;
22812 _next_ordinal_to_read += 1;
22813 if next_offset >= end_offset {
22814 return Ok(());
22815 }
22816
22817 while _next_ordinal_to_read < 6 {
22819 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22820 _next_ordinal_to_read += 1;
22821 next_offset += envelope_size;
22822 }
22823
22824 let next_out_of_line = decoder.next_out_of_line();
22825 let handles_before = decoder.remaining_handles();
22826 if let Some((inlined, num_bytes, num_handles)) =
22827 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22828 {
22829 let member_inline_size =
22830 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22831 if inlined != (member_inline_size <= 4) {
22832 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22833 }
22834 let inner_offset;
22835 let mut inner_depth = depth.clone();
22836 if inlined {
22837 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22838 inner_offset = next_offset;
22839 } else {
22840 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22841 inner_depth.increment()?;
22842 }
22843 let val_ref =
22844 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
22845 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
22846 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22847 {
22848 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22849 }
22850 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22851 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22852 }
22853 }
22854
22855 next_offset += envelope_size;
22856 _next_ordinal_to_read += 1;
22857 if next_offset >= end_offset {
22858 return Ok(());
22859 }
22860
22861 while _next_ordinal_to_read < 7 {
22863 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22864 _next_ordinal_to_read += 1;
22865 next_offset += envelope_size;
22866 }
22867
22868 let next_out_of_line = decoder.next_out_of_line();
22869 let handles_before = decoder.remaining_handles();
22870 if let Some((inlined, num_bytes, num_handles)) =
22871 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22872 {
22873 let member_inline_size =
22874 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22875 if inlined != (member_inline_size <= 4) {
22876 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22877 }
22878 let inner_offset;
22879 let mut inner_depth = depth.clone();
22880 if inlined {
22881 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22882 inner_offset = next_offset;
22883 } else {
22884 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22885 inner_depth.increment()?;
22886 }
22887 let val_ref =
22888 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
22889 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
22890 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22891 {
22892 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22893 }
22894 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22895 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22896 }
22897 }
22898
22899 next_offset += envelope_size;
22900 _next_ordinal_to_read += 1;
22901 if next_offset >= end_offset {
22902 return Ok(());
22903 }
22904
22905 while _next_ordinal_to_read < 8 {
22907 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22908 _next_ordinal_to_read += 1;
22909 next_offset += envelope_size;
22910 }
22911
22912 let next_out_of_line = decoder.next_out_of_line();
22913 let handles_before = decoder.remaining_handles();
22914 if let Some((inlined, num_bytes, num_handles)) =
22915 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22916 {
22917 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22918 if inlined != (member_inline_size <= 4) {
22919 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22920 }
22921 let inner_offset;
22922 let mut inner_depth = depth.clone();
22923 if inlined {
22924 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22925 inner_offset = next_offset;
22926 } else {
22927 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22928 inner_depth.increment()?;
22929 }
22930 let val_ref = self.source_dictionary.get_or_insert_with(|| {
22931 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
22932 });
22933 fidl::decode!(
22934 fidl::encoding::BoundedString<1024>,
22935 D,
22936 val_ref,
22937 decoder,
22938 inner_offset,
22939 inner_depth
22940 )?;
22941 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22942 {
22943 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22944 }
22945 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22946 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22947 }
22948 }
22949
22950 next_offset += envelope_size;
22951
22952 while next_offset < end_offset {
22954 _next_ordinal_to_read += 1;
22955 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22956 next_offset += envelope_size;
22957 }
22958
22959 Ok(())
22960 }
22961 }
22962
22963 impl UseDirectory {
22964 #[inline(always)]
22965 fn max_ordinal_present(&self) -> u64 {
22966 if let Some(_) = self.source_dictionary {
22967 return 8;
22968 }
22969 if let Some(_) = self.availability {
22970 return 7;
22971 }
22972 if let Some(_) = self.dependency_type {
22973 return 6;
22974 }
22975 if let Some(_) = self.subdir {
22976 return 5;
22977 }
22978 if let Some(_) = self.rights {
22979 return 4;
22980 }
22981 if let Some(_) = self.target_path {
22982 return 3;
22983 }
22984 if let Some(_) = self.source_name {
22985 return 2;
22986 }
22987 if let Some(_) = self.source {
22988 return 1;
22989 }
22990 0
22991 }
22992 }
22993
22994 impl fidl::encoding::ValueTypeMarker for UseDirectory {
22995 type Borrowed<'a> = &'a Self;
22996 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22997 value
22998 }
22999 }
23000
23001 unsafe impl fidl::encoding::TypeMarker for UseDirectory {
23002 type Owned = Self;
23003
23004 #[inline(always)]
23005 fn inline_align(_context: fidl::encoding::Context) -> usize {
23006 8
23007 }
23008
23009 #[inline(always)]
23010 fn inline_size(_context: fidl::encoding::Context) -> usize {
23011 16
23012 }
23013 }
23014
23015 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseDirectory, D>
23016 for &UseDirectory
23017 {
23018 unsafe fn encode(
23019 self,
23020 encoder: &mut fidl::encoding::Encoder<'_, D>,
23021 offset: usize,
23022 mut depth: fidl::encoding::Depth,
23023 ) -> fidl::Result<()> {
23024 encoder.debug_check_bounds::<UseDirectory>(offset);
23025 let max_ordinal: u64 = self.max_ordinal_present();
23027 encoder.write_num(max_ordinal, offset);
23028 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
23029 if max_ordinal == 0 {
23031 return Ok(());
23032 }
23033 depth.increment()?;
23034 let envelope_size = 8;
23035 let bytes_len = max_ordinal as usize * envelope_size;
23036 #[allow(unused_variables)]
23037 let offset = encoder.out_of_line_offset(bytes_len);
23038 let mut _prev_end_offset: usize = 0;
23039 if 1 > max_ordinal {
23040 return Ok(());
23041 }
23042
23043 let cur_offset: usize = (1 - 1) * envelope_size;
23046
23047 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23049
23050 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
23055 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
23056 encoder,
23057 offset + cur_offset,
23058 depth,
23059 )?;
23060
23061 _prev_end_offset = cur_offset + envelope_size;
23062 if 2 > max_ordinal {
23063 return Ok(());
23064 }
23065
23066 let cur_offset: usize = (2 - 1) * envelope_size;
23069
23070 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23072
23073 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
23078 self.source_name.as_ref().map(
23079 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
23080 ),
23081 encoder,
23082 offset + cur_offset,
23083 depth,
23084 )?;
23085
23086 _prev_end_offset = cur_offset + envelope_size;
23087 if 3 > max_ordinal {
23088 return Ok(());
23089 }
23090
23091 let cur_offset: usize = (3 - 1) * envelope_size;
23094
23095 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23097
23098 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
23103 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
23104 encoder, offset + cur_offset, depth
23105 )?;
23106
23107 _prev_end_offset = cur_offset + envelope_size;
23108 if 4 > max_ordinal {
23109 return Ok(());
23110 }
23111
23112 let cur_offset: usize = (4 - 1) * envelope_size;
23115
23116 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23118
23119 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_io__common::Operations, D>(
23124 self.rights.as_ref().map(<fidl_fuchsia_io__common::Operations as fidl::encoding::ValueTypeMarker>::borrow),
23125 encoder, offset + cur_offset, depth
23126 )?;
23127
23128 _prev_end_offset = cur_offset + envelope_size;
23129 if 5 > max_ordinal {
23130 return Ok(());
23131 }
23132
23133 let cur_offset: usize = (5 - 1) * envelope_size;
23136
23137 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23139
23140 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
23145 self.subdir.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
23146 encoder, offset + cur_offset, depth
23147 )?;
23148
23149 _prev_end_offset = cur_offset + envelope_size;
23150 if 6 > max_ordinal {
23151 return Ok(());
23152 }
23153
23154 let cur_offset: usize = (6 - 1) * envelope_size;
23157
23158 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23160
23161 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
23166 self.dependency_type
23167 .as_ref()
23168 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
23169 encoder,
23170 offset + cur_offset,
23171 depth,
23172 )?;
23173
23174 _prev_end_offset = cur_offset + envelope_size;
23175 if 7 > max_ordinal {
23176 return Ok(());
23177 }
23178
23179 let cur_offset: usize = (7 - 1) * envelope_size;
23182
23183 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23185
23186 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
23191 self.availability
23192 .as_ref()
23193 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
23194 encoder,
23195 offset + cur_offset,
23196 depth,
23197 )?;
23198
23199 _prev_end_offset = cur_offset + envelope_size;
23200 if 8 > max_ordinal {
23201 return Ok(());
23202 }
23203
23204 let cur_offset: usize = (8 - 1) * envelope_size;
23207
23208 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23210
23211 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
23216 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
23217 encoder, offset + cur_offset, depth
23218 )?;
23219
23220 _prev_end_offset = cur_offset + envelope_size;
23221
23222 Ok(())
23223 }
23224 }
23225
23226 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseDirectory {
23227 #[inline(always)]
23228 fn new_empty() -> Self {
23229 Self::default()
23230 }
23231
23232 unsafe fn decode(
23233 &mut self,
23234 decoder: &mut fidl::encoding::Decoder<'_, D>,
23235 offset: usize,
23236 mut depth: fidl::encoding::Depth,
23237 ) -> fidl::Result<()> {
23238 decoder.debug_check_bounds::<Self>(offset);
23239 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
23240 None => return Err(fidl::Error::NotNullable),
23241 Some(len) => len,
23242 };
23243 if len == 0 {
23245 return Ok(());
23246 };
23247 depth.increment()?;
23248 let envelope_size = 8;
23249 let bytes_len = len * envelope_size;
23250 let offset = decoder.out_of_line_offset(bytes_len)?;
23251 let mut _next_ordinal_to_read = 0;
23253 let mut next_offset = offset;
23254 let end_offset = offset + bytes_len;
23255 _next_ordinal_to_read += 1;
23256 if next_offset >= end_offset {
23257 return Ok(());
23258 }
23259
23260 while _next_ordinal_to_read < 1 {
23262 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23263 _next_ordinal_to_read += 1;
23264 next_offset += envelope_size;
23265 }
23266
23267 let next_out_of_line = decoder.next_out_of_line();
23268 let handles_before = decoder.remaining_handles();
23269 if let Some((inlined, num_bytes, num_handles)) =
23270 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23271 {
23272 let member_inline_size =
23273 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23274 if inlined != (member_inline_size <= 4) {
23275 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23276 }
23277 let inner_offset;
23278 let mut inner_depth = depth.clone();
23279 if inlined {
23280 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23281 inner_offset = next_offset;
23282 } else {
23283 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23284 inner_depth.increment()?;
23285 }
23286 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
23287 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
23288 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23289 {
23290 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23291 }
23292 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23293 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23294 }
23295 }
23296
23297 next_offset += envelope_size;
23298 _next_ordinal_to_read += 1;
23299 if next_offset >= end_offset {
23300 return Ok(());
23301 }
23302
23303 while _next_ordinal_to_read < 2 {
23305 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23306 _next_ordinal_to_read += 1;
23307 next_offset += envelope_size;
23308 }
23309
23310 let next_out_of_line = decoder.next_out_of_line();
23311 let handles_before = decoder.remaining_handles();
23312 if let Some((inlined, num_bytes, num_handles)) =
23313 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23314 {
23315 let member_inline_size =
23316 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
23317 decoder.context,
23318 );
23319 if inlined != (member_inline_size <= 4) {
23320 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23321 }
23322 let inner_offset;
23323 let mut inner_depth = depth.clone();
23324 if inlined {
23325 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23326 inner_offset = next_offset;
23327 } else {
23328 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23329 inner_depth.increment()?;
23330 }
23331 let val_ref = self
23332 .source_name
23333 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
23334 fidl::decode!(
23335 fidl::encoding::BoundedString<100>,
23336 D,
23337 val_ref,
23338 decoder,
23339 inner_offset,
23340 inner_depth
23341 )?;
23342 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23343 {
23344 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23345 }
23346 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23347 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23348 }
23349 }
23350
23351 next_offset += envelope_size;
23352 _next_ordinal_to_read += 1;
23353 if next_offset >= end_offset {
23354 return Ok(());
23355 }
23356
23357 while _next_ordinal_to_read < 3 {
23359 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23360 _next_ordinal_to_read += 1;
23361 next_offset += envelope_size;
23362 }
23363
23364 let next_out_of_line = decoder.next_out_of_line();
23365 let handles_before = decoder.remaining_handles();
23366 if let Some((inlined, num_bytes, num_handles)) =
23367 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23368 {
23369 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23370 if inlined != (member_inline_size <= 4) {
23371 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23372 }
23373 let inner_offset;
23374 let mut inner_depth = depth.clone();
23375 if inlined {
23376 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23377 inner_offset = next_offset;
23378 } else {
23379 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23380 inner_depth.increment()?;
23381 }
23382 let val_ref = self.target_path.get_or_insert_with(|| {
23383 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23384 });
23385 fidl::decode!(
23386 fidl::encoding::BoundedString<1024>,
23387 D,
23388 val_ref,
23389 decoder,
23390 inner_offset,
23391 inner_depth
23392 )?;
23393 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23394 {
23395 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23396 }
23397 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23398 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23399 }
23400 }
23401
23402 next_offset += envelope_size;
23403 _next_ordinal_to_read += 1;
23404 if next_offset >= end_offset {
23405 return Ok(());
23406 }
23407
23408 while _next_ordinal_to_read < 4 {
23410 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23411 _next_ordinal_to_read += 1;
23412 next_offset += envelope_size;
23413 }
23414
23415 let next_out_of_line = decoder.next_out_of_line();
23416 let handles_before = decoder.remaining_handles();
23417 if let Some((inlined, num_bytes, num_handles)) =
23418 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23419 {
23420 let member_inline_size = <fidl_fuchsia_io__common::Operations as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23421 if inlined != (member_inline_size <= 4) {
23422 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23423 }
23424 let inner_offset;
23425 let mut inner_depth = depth.clone();
23426 if inlined {
23427 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23428 inner_offset = next_offset;
23429 } else {
23430 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23431 inner_depth.increment()?;
23432 }
23433 let val_ref = self.rights.get_or_insert_with(|| {
23434 fidl::new_empty!(fidl_fuchsia_io__common::Operations, D)
23435 });
23436 fidl::decode!(
23437 fidl_fuchsia_io__common::Operations,
23438 D,
23439 val_ref,
23440 decoder,
23441 inner_offset,
23442 inner_depth
23443 )?;
23444 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23445 {
23446 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23447 }
23448 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23449 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23450 }
23451 }
23452
23453 next_offset += envelope_size;
23454 _next_ordinal_to_read += 1;
23455 if next_offset >= end_offset {
23456 return Ok(());
23457 }
23458
23459 while _next_ordinal_to_read < 5 {
23461 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23462 _next_ordinal_to_read += 1;
23463 next_offset += envelope_size;
23464 }
23465
23466 let next_out_of_line = decoder.next_out_of_line();
23467 let handles_before = decoder.remaining_handles();
23468 if let Some((inlined, num_bytes, num_handles)) =
23469 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23470 {
23471 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23472 if inlined != (member_inline_size <= 4) {
23473 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23474 }
23475 let inner_offset;
23476 let mut inner_depth = depth.clone();
23477 if inlined {
23478 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23479 inner_offset = next_offset;
23480 } else {
23481 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23482 inner_depth.increment()?;
23483 }
23484 let val_ref = self.subdir.get_or_insert_with(|| {
23485 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23486 });
23487 fidl::decode!(
23488 fidl::encoding::BoundedString<1024>,
23489 D,
23490 val_ref,
23491 decoder,
23492 inner_offset,
23493 inner_depth
23494 )?;
23495 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23496 {
23497 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23498 }
23499 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23500 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23501 }
23502 }
23503
23504 next_offset += envelope_size;
23505 _next_ordinal_to_read += 1;
23506 if next_offset >= end_offset {
23507 return Ok(());
23508 }
23509
23510 while _next_ordinal_to_read < 6 {
23512 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23513 _next_ordinal_to_read += 1;
23514 next_offset += envelope_size;
23515 }
23516
23517 let next_out_of_line = decoder.next_out_of_line();
23518 let handles_before = decoder.remaining_handles();
23519 if let Some((inlined, num_bytes, num_handles)) =
23520 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23521 {
23522 let member_inline_size =
23523 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23524 if inlined != (member_inline_size <= 4) {
23525 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23526 }
23527 let inner_offset;
23528 let mut inner_depth = depth.clone();
23529 if inlined {
23530 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23531 inner_offset = next_offset;
23532 } else {
23533 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23534 inner_depth.increment()?;
23535 }
23536 let val_ref =
23537 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
23538 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
23539 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23540 {
23541 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23542 }
23543 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23544 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23545 }
23546 }
23547
23548 next_offset += envelope_size;
23549 _next_ordinal_to_read += 1;
23550 if next_offset >= end_offset {
23551 return Ok(());
23552 }
23553
23554 while _next_ordinal_to_read < 7 {
23556 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23557 _next_ordinal_to_read += 1;
23558 next_offset += envelope_size;
23559 }
23560
23561 let next_out_of_line = decoder.next_out_of_line();
23562 let handles_before = decoder.remaining_handles();
23563 if let Some((inlined, num_bytes, num_handles)) =
23564 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23565 {
23566 let member_inline_size =
23567 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23568 if inlined != (member_inline_size <= 4) {
23569 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23570 }
23571 let inner_offset;
23572 let mut inner_depth = depth.clone();
23573 if inlined {
23574 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23575 inner_offset = next_offset;
23576 } else {
23577 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23578 inner_depth.increment()?;
23579 }
23580 let val_ref =
23581 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
23582 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
23583 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23584 {
23585 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23586 }
23587 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23588 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23589 }
23590 }
23591
23592 next_offset += envelope_size;
23593 _next_ordinal_to_read += 1;
23594 if next_offset >= end_offset {
23595 return Ok(());
23596 }
23597
23598 while _next_ordinal_to_read < 8 {
23600 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23601 _next_ordinal_to_read += 1;
23602 next_offset += envelope_size;
23603 }
23604
23605 let next_out_of_line = decoder.next_out_of_line();
23606 let handles_before = decoder.remaining_handles();
23607 if let Some((inlined, num_bytes, num_handles)) =
23608 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23609 {
23610 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23611 if inlined != (member_inline_size <= 4) {
23612 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23613 }
23614 let inner_offset;
23615 let mut inner_depth = depth.clone();
23616 if inlined {
23617 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23618 inner_offset = next_offset;
23619 } else {
23620 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23621 inner_depth.increment()?;
23622 }
23623 let val_ref = self.source_dictionary.get_or_insert_with(|| {
23624 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
23625 });
23626 fidl::decode!(
23627 fidl::encoding::BoundedString<1024>,
23628 D,
23629 val_ref,
23630 decoder,
23631 inner_offset,
23632 inner_depth
23633 )?;
23634 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23635 {
23636 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23637 }
23638 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23639 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23640 }
23641 }
23642
23643 next_offset += envelope_size;
23644
23645 while next_offset < end_offset {
23647 _next_ordinal_to_read += 1;
23648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23649 next_offset += envelope_size;
23650 }
23651
23652 Ok(())
23653 }
23654 }
23655
23656 impl UseEventStream {
23657 #[inline(always)]
23658 fn max_ordinal_present(&self) -> u64 {
23659 if let Some(_) = self.filter {
23660 return 6;
23661 }
23662 if let Some(_) = self.availability {
23663 return 5;
23664 }
23665 if let Some(_) = self.target_path {
23666 return 4;
23667 }
23668 if let Some(_) = self.scope {
23669 return 3;
23670 }
23671 if let Some(_) = self.source {
23672 return 2;
23673 }
23674 if let Some(_) = self.source_name {
23675 return 1;
23676 }
23677 0
23678 }
23679 }
23680
23681 impl fidl::encoding::ValueTypeMarker for UseEventStream {
23682 type Borrowed<'a> = &'a Self;
23683 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23684 value
23685 }
23686 }
23687
23688 unsafe impl fidl::encoding::TypeMarker for UseEventStream {
23689 type Owned = Self;
23690
23691 #[inline(always)]
23692 fn inline_align(_context: fidl::encoding::Context) -> usize {
23693 8
23694 }
23695
23696 #[inline(always)]
23697 fn inline_size(_context: fidl::encoding::Context) -> usize {
23698 16
23699 }
23700 }
23701
23702 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseEventStream, D>
23703 for &UseEventStream
23704 {
23705 unsafe fn encode(
23706 self,
23707 encoder: &mut fidl::encoding::Encoder<'_, D>,
23708 offset: usize,
23709 mut depth: fidl::encoding::Depth,
23710 ) -> fidl::Result<()> {
23711 encoder.debug_check_bounds::<UseEventStream>(offset);
23712 let max_ordinal: u64 = self.max_ordinal_present();
23714 encoder.write_num(max_ordinal, offset);
23715 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
23716 if max_ordinal == 0 {
23718 return Ok(());
23719 }
23720 depth.increment()?;
23721 let envelope_size = 8;
23722 let bytes_len = max_ordinal as usize * envelope_size;
23723 #[allow(unused_variables)]
23724 let offset = encoder.out_of_line_offset(bytes_len);
23725 let mut _prev_end_offset: usize = 0;
23726 if 1 > max_ordinal {
23727 return Ok(());
23728 }
23729
23730 let cur_offset: usize = (1 - 1) * envelope_size;
23733
23734 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23736
23737 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
23742 self.source_name.as_ref().map(
23743 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
23744 ),
23745 encoder,
23746 offset + cur_offset,
23747 depth,
23748 )?;
23749
23750 _prev_end_offset = cur_offset + envelope_size;
23751 if 2 > max_ordinal {
23752 return Ok(());
23753 }
23754
23755 let cur_offset: usize = (2 - 1) * envelope_size;
23758
23759 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23761
23762 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
23767 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
23768 encoder,
23769 offset + cur_offset,
23770 depth,
23771 )?;
23772
23773 _prev_end_offset = cur_offset + envelope_size;
23774 if 3 > max_ordinal {
23775 return Ok(());
23776 }
23777
23778 let cur_offset: usize = (3 - 1) * envelope_size;
23781
23782 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23784
23785 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Ref>, D>(
23790 self.scope.as_ref().map(<fidl::encoding::UnboundedVector<Ref> as fidl::encoding::ValueTypeMarker>::borrow),
23791 encoder, offset + cur_offset, depth
23792 )?;
23793
23794 _prev_end_offset = cur_offset + envelope_size;
23795 if 4 > max_ordinal {
23796 return Ok(());
23797 }
23798
23799 let cur_offset: usize = (4 - 1) * envelope_size;
23802
23803 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23805
23806 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
23811 self.target_path.as_ref().map(
23812 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
23813 ),
23814 encoder,
23815 offset + cur_offset,
23816 depth,
23817 )?;
23818
23819 _prev_end_offset = cur_offset + envelope_size;
23820 if 5 > max_ordinal {
23821 return Ok(());
23822 }
23823
23824 let cur_offset: usize = (5 - 1) * envelope_size;
23827
23828 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23830
23831 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
23836 self.availability
23837 .as_ref()
23838 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
23839 encoder,
23840 offset + cur_offset,
23841 depth,
23842 )?;
23843
23844 _prev_end_offset = cur_offset + envelope_size;
23845 if 6 > max_ordinal {
23846 return Ok(());
23847 }
23848
23849 let cur_offset: usize = (6 - 1) * envelope_size;
23852
23853 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
23855
23856 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_data__common::Dictionary, D>(
23861 self.filter.as_ref().map(<fidl_fuchsia_data__common::Dictionary as fidl::encoding::ValueTypeMarker>::borrow),
23862 encoder, offset + cur_offset, depth
23863 )?;
23864
23865 _prev_end_offset = cur_offset + envelope_size;
23866
23867 Ok(())
23868 }
23869 }
23870
23871 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseEventStream {
23872 #[inline(always)]
23873 fn new_empty() -> Self {
23874 Self::default()
23875 }
23876
23877 unsafe fn decode(
23878 &mut self,
23879 decoder: &mut fidl::encoding::Decoder<'_, D>,
23880 offset: usize,
23881 mut depth: fidl::encoding::Depth,
23882 ) -> fidl::Result<()> {
23883 decoder.debug_check_bounds::<Self>(offset);
23884 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
23885 None => return Err(fidl::Error::NotNullable),
23886 Some(len) => len,
23887 };
23888 if len == 0 {
23890 return Ok(());
23891 };
23892 depth.increment()?;
23893 let envelope_size = 8;
23894 let bytes_len = len * envelope_size;
23895 let offset = decoder.out_of_line_offset(bytes_len)?;
23896 let mut _next_ordinal_to_read = 0;
23898 let mut next_offset = offset;
23899 let end_offset = offset + bytes_len;
23900 _next_ordinal_to_read += 1;
23901 if next_offset >= end_offset {
23902 return Ok(());
23903 }
23904
23905 while _next_ordinal_to_read < 1 {
23907 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23908 _next_ordinal_to_read += 1;
23909 next_offset += envelope_size;
23910 }
23911
23912 let next_out_of_line = decoder.next_out_of_line();
23913 let handles_before = decoder.remaining_handles();
23914 if let Some((inlined, num_bytes, num_handles)) =
23915 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23916 {
23917 let member_inline_size =
23918 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
23919 decoder.context,
23920 );
23921 if inlined != (member_inline_size <= 4) {
23922 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23923 }
23924 let inner_offset;
23925 let mut inner_depth = depth.clone();
23926 if inlined {
23927 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23928 inner_offset = next_offset;
23929 } else {
23930 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23931 inner_depth.increment()?;
23932 }
23933 let val_ref = self
23934 .source_name
23935 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
23936 fidl::decode!(
23937 fidl::encoding::BoundedString<100>,
23938 D,
23939 val_ref,
23940 decoder,
23941 inner_offset,
23942 inner_depth
23943 )?;
23944 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23945 {
23946 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23947 }
23948 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23949 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23950 }
23951 }
23952
23953 next_offset += envelope_size;
23954 _next_ordinal_to_read += 1;
23955 if next_offset >= end_offset {
23956 return Ok(());
23957 }
23958
23959 while _next_ordinal_to_read < 2 {
23961 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
23962 _next_ordinal_to_read += 1;
23963 next_offset += envelope_size;
23964 }
23965
23966 let next_out_of_line = decoder.next_out_of_line();
23967 let handles_before = decoder.remaining_handles();
23968 if let Some((inlined, num_bytes, num_handles)) =
23969 fidl::encoding::decode_envelope_header(decoder, next_offset)?
23970 {
23971 let member_inline_size =
23972 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
23973 if inlined != (member_inline_size <= 4) {
23974 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23975 }
23976 let inner_offset;
23977 let mut inner_depth = depth.clone();
23978 if inlined {
23979 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
23980 inner_offset = next_offset;
23981 } else {
23982 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23983 inner_depth.increment()?;
23984 }
23985 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
23986 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
23987 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
23988 {
23989 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23990 }
23991 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23992 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23993 }
23994 }
23995
23996 next_offset += envelope_size;
23997 _next_ordinal_to_read += 1;
23998 if next_offset >= end_offset {
23999 return Ok(());
24000 }
24001
24002 while _next_ordinal_to_read < 3 {
24004 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24005 _next_ordinal_to_read += 1;
24006 next_offset += envelope_size;
24007 }
24008
24009 let next_out_of_line = decoder.next_out_of_line();
24010 let handles_before = decoder.remaining_handles();
24011 if let Some((inlined, num_bytes, num_handles)) =
24012 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24013 {
24014 let member_inline_size = <fidl::encoding::UnboundedVector<Ref> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24015 if inlined != (member_inline_size <= 4) {
24016 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24017 }
24018 let inner_offset;
24019 let mut inner_depth = depth.clone();
24020 if inlined {
24021 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24022 inner_offset = next_offset;
24023 } else {
24024 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24025 inner_depth.increment()?;
24026 }
24027 let val_ref = self.scope.get_or_insert_with(|| {
24028 fidl::new_empty!(fidl::encoding::UnboundedVector<Ref>, D)
24029 });
24030 fidl::decode!(
24031 fidl::encoding::UnboundedVector<Ref>,
24032 D,
24033 val_ref,
24034 decoder,
24035 inner_offset,
24036 inner_depth
24037 )?;
24038 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24039 {
24040 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24041 }
24042 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24043 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24044 }
24045 }
24046
24047 next_offset += envelope_size;
24048 _next_ordinal_to_read += 1;
24049 if next_offset >= end_offset {
24050 return Ok(());
24051 }
24052
24053 while _next_ordinal_to_read < 4 {
24055 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24056 _next_ordinal_to_read += 1;
24057 next_offset += envelope_size;
24058 }
24059
24060 let next_out_of_line = decoder.next_out_of_line();
24061 let handles_before = decoder.remaining_handles();
24062 if let Some((inlined, num_bytes, num_handles)) =
24063 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24064 {
24065 let member_inline_size =
24066 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
24067 decoder.context,
24068 );
24069 if inlined != (member_inline_size <= 4) {
24070 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24071 }
24072 let inner_offset;
24073 let mut inner_depth = depth.clone();
24074 if inlined {
24075 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24076 inner_offset = next_offset;
24077 } else {
24078 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24079 inner_depth.increment()?;
24080 }
24081 let val_ref = self
24082 .target_path
24083 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
24084 fidl::decode!(
24085 fidl::encoding::BoundedString<100>,
24086 D,
24087 val_ref,
24088 decoder,
24089 inner_offset,
24090 inner_depth
24091 )?;
24092 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24093 {
24094 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24095 }
24096 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24097 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24098 }
24099 }
24100
24101 next_offset += envelope_size;
24102 _next_ordinal_to_read += 1;
24103 if next_offset >= end_offset {
24104 return Ok(());
24105 }
24106
24107 while _next_ordinal_to_read < 5 {
24109 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24110 _next_ordinal_to_read += 1;
24111 next_offset += envelope_size;
24112 }
24113
24114 let next_out_of_line = decoder.next_out_of_line();
24115 let handles_before = decoder.remaining_handles();
24116 if let Some((inlined, num_bytes, num_handles)) =
24117 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24118 {
24119 let member_inline_size =
24120 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24121 if inlined != (member_inline_size <= 4) {
24122 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24123 }
24124 let inner_offset;
24125 let mut inner_depth = depth.clone();
24126 if inlined {
24127 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24128 inner_offset = next_offset;
24129 } else {
24130 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24131 inner_depth.increment()?;
24132 }
24133 let val_ref =
24134 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
24135 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
24136 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24137 {
24138 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24139 }
24140 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24141 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24142 }
24143 }
24144
24145 next_offset += envelope_size;
24146 _next_ordinal_to_read += 1;
24147 if next_offset >= end_offset {
24148 return Ok(());
24149 }
24150
24151 while _next_ordinal_to_read < 6 {
24153 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24154 _next_ordinal_to_read += 1;
24155 next_offset += envelope_size;
24156 }
24157
24158 let next_out_of_line = decoder.next_out_of_line();
24159 let handles_before = decoder.remaining_handles();
24160 if let Some((inlined, num_bytes, num_handles)) =
24161 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24162 {
24163 let member_inline_size = <fidl_fuchsia_data__common::Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24164 if inlined != (member_inline_size <= 4) {
24165 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24166 }
24167 let inner_offset;
24168 let mut inner_depth = depth.clone();
24169 if inlined {
24170 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24171 inner_offset = next_offset;
24172 } else {
24173 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24174 inner_depth.increment()?;
24175 }
24176 let val_ref = self.filter.get_or_insert_with(|| {
24177 fidl::new_empty!(fidl_fuchsia_data__common::Dictionary, D)
24178 });
24179 fidl::decode!(
24180 fidl_fuchsia_data__common::Dictionary,
24181 D,
24182 val_ref,
24183 decoder,
24184 inner_offset,
24185 inner_depth
24186 )?;
24187 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24188 {
24189 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24190 }
24191 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24192 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24193 }
24194 }
24195
24196 next_offset += envelope_size;
24197
24198 while next_offset < end_offset {
24200 _next_ordinal_to_read += 1;
24201 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24202 next_offset += envelope_size;
24203 }
24204
24205 Ok(())
24206 }
24207 }
24208
24209 impl UseProtocol {
24210 #[inline(always)]
24211 fn max_ordinal_present(&self) -> u64 {
24212 if let Some(_) = self.numbered_handle {
24213 return 7;
24214 }
24215 if let Some(_) = self.source_dictionary {
24216 return 6;
24217 }
24218 if let Some(_) = self.availability {
24219 return 5;
24220 }
24221 if let Some(_) = self.dependency_type {
24222 return 4;
24223 }
24224 if let Some(_) = self.target_path {
24225 return 3;
24226 }
24227 if let Some(_) = self.source_name {
24228 return 2;
24229 }
24230 if let Some(_) = self.source {
24231 return 1;
24232 }
24233 0
24234 }
24235 }
24236
24237 impl fidl::encoding::ValueTypeMarker for UseProtocol {
24238 type Borrowed<'a> = &'a Self;
24239 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24240 value
24241 }
24242 }
24243
24244 unsafe impl fidl::encoding::TypeMarker for UseProtocol {
24245 type Owned = Self;
24246
24247 #[inline(always)]
24248 fn inline_align(_context: fidl::encoding::Context) -> usize {
24249 8
24250 }
24251
24252 #[inline(always)]
24253 fn inline_size(_context: fidl::encoding::Context) -> usize {
24254 16
24255 }
24256 }
24257
24258 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseProtocol, D>
24259 for &UseProtocol
24260 {
24261 unsafe fn encode(
24262 self,
24263 encoder: &mut fidl::encoding::Encoder<'_, D>,
24264 offset: usize,
24265 mut depth: fidl::encoding::Depth,
24266 ) -> fidl::Result<()> {
24267 encoder.debug_check_bounds::<UseProtocol>(offset);
24268 let max_ordinal: u64 = self.max_ordinal_present();
24270 encoder.write_num(max_ordinal, offset);
24271 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
24272 if max_ordinal == 0 {
24274 return Ok(());
24275 }
24276 depth.increment()?;
24277 let envelope_size = 8;
24278 let bytes_len = max_ordinal as usize * envelope_size;
24279 #[allow(unused_variables)]
24280 let offset = encoder.out_of_line_offset(bytes_len);
24281 let mut _prev_end_offset: usize = 0;
24282 if 1 > max_ordinal {
24283 return Ok(());
24284 }
24285
24286 let cur_offset: usize = (1 - 1) * envelope_size;
24289
24290 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24292
24293 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
24298 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
24299 encoder,
24300 offset + cur_offset,
24301 depth,
24302 )?;
24303
24304 _prev_end_offset = cur_offset + envelope_size;
24305 if 2 > max_ordinal {
24306 return Ok(());
24307 }
24308
24309 let cur_offset: usize = (2 - 1) * envelope_size;
24312
24313 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24315
24316 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
24321 self.source_name.as_ref().map(
24322 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
24323 ),
24324 encoder,
24325 offset + cur_offset,
24326 depth,
24327 )?;
24328
24329 _prev_end_offset = cur_offset + envelope_size;
24330 if 3 > max_ordinal {
24331 return Ok(());
24332 }
24333
24334 let cur_offset: usize = (3 - 1) * envelope_size;
24337
24338 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24340
24341 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
24346 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
24347 encoder, offset + cur_offset, depth
24348 )?;
24349
24350 _prev_end_offset = cur_offset + envelope_size;
24351 if 4 > max_ordinal {
24352 return Ok(());
24353 }
24354
24355 let cur_offset: usize = (4 - 1) * envelope_size;
24358
24359 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24361
24362 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
24367 self.dependency_type
24368 .as_ref()
24369 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
24370 encoder,
24371 offset + cur_offset,
24372 depth,
24373 )?;
24374
24375 _prev_end_offset = cur_offset + envelope_size;
24376 if 5 > max_ordinal {
24377 return Ok(());
24378 }
24379
24380 let cur_offset: usize = (5 - 1) * envelope_size;
24383
24384 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24386
24387 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
24392 self.availability
24393 .as_ref()
24394 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
24395 encoder,
24396 offset + cur_offset,
24397 depth,
24398 )?;
24399
24400 _prev_end_offset = cur_offset + envelope_size;
24401 if 6 > max_ordinal {
24402 return Ok(());
24403 }
24404
24405 let cur_offset: usize = (6 - 1) * envelope_size;
24408
24409 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24411
24412 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
24417 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
24418 encoder, offset + cur_offset, depth
24419 )?;
24420
24421 _prev_end_offset = cur_offset + envelope_size;
24422 if 7 > max_ordinal {
24423 return Ok(());
24424 }
24425
24426 let cur_offset: usize = (7 - 1) * envelope_size;
24429
24430 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24432
24433 fidl::encoding::encode_in_envelope_optional::<u8, D>(
24438 self.numbered_handle.as_ref().map(<u8 as fidl::encoding::ValueTypeMarker>::borrow),
24439 encoder,
24440 offset + cur_offset,
24441 depth,
24442 )?;
24443
24444 _prev_end_offset = cur_offset + envelope_size;
24445
24446 Ok(())
24447 }
24448 }
24449
24450 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseProtocol {
24451 #[inline(always)]
24452 fn new_empty() -> Self {
24453 Self::default()
24454 }
24455
24456 unsafe fn decode(
24457 &mut self,
24458 decoder: &mut fidl::encoding::Decoder<'_, D>,
24459 offset: usize,
24460 mut depth: fidl::encoding::Depth,
24461 ) -> fidl::Result<()> {
24462 decoder.debug_check_bounds::<Self>(offset);
24463 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
24464 None => return Err(fidl::Error::NotNullable),
24465 Some(len) => len,
24466 };
24467 if len == 0 {
24469 return Ok(());
24470 };
24471 depth.increment()?;
24472 let envelope_size = 8;
24473 let bytes_len = len * envelope_size;
24474 let offset = decoder.out_of_line_offset(bytes_len)?;
24475 let mut _next_ordinal_to_read = 0;
24477 let mut next_offset = offset;
24478 let end_offset = offset + bytes_len;
24479 _next_ordinal_to_read += 1;
24480 if next_offset >= end_offset {
24481 return Ok(());
24482 }
24483
24484 while _next_ordinal_to_read < 1 {
24486 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24487 _next_ordinal_to_read += 1;
24488 next_offset += envelope_size;
24489 }
24490
24491 let next_out_of_line = decoder.next_out_of_line();
24492 let handles_before = decoder.remaining_handles();
24493 if let Some((inlined, num_bytes, num_handles)) =
24494 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24495 {
24496 let member_inline_size =
24497 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24498 if inlined != (member_inline_size <= 4) {
24499 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24500 }
24501 let inner_offset;
24502 let mut inner_depth = depth.clone();
24503 if inlined {
24504 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24505 inner_offset = next_offset;
24506 } else {
24507 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24508 inner_depth.increment()?;
24509 }
24510 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
24511 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
24512 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24513 {
24514 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24515 }
24516 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24517 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24518 }
24519 }
24520
24521 next_offset += envelope_size;
24522 _next_ordinal_to_read += 1;
24523 if next_offset >= end_offset {
24524 return Ok(());
24525 }
24526
24527 while _next_ordinal_to_read < 2 {
24529 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24530 _next_ordinal_to_read += 1;
24531 next_offset += envelope_size;
24532 }
24533
24534 let next_out_of_line = decoder.next_out_of_line();
24535 let handles_before = decoder.remaining_handles();
24536 if let Some((inlined, num_bytes, num_handles)) =
24537 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24538 {
24539 let member_inline_size =
24540 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
24541 decoder.context,
24542 );
24543 if inlined != (member_inline_size <= 4) {
24544 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24545 }
24546 let inner_offset;
24547 let mut inner_depth = depth.clone();
24548 if inlined {
24549 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24550 inner_offset = next_offset;
24551 } else {
24552 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24553 inner_depth.increment()?;
24554 }
24555 let val_ref = self
24556 .source_name
24557 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
24558 fidl::decode!(
24559 fidl::encoding::BoundedString<100>,
24560 D,
24561 val_ref,
24562 decoder,
24563 inner_offset,
24564 inner_depth
24565 )?;
24566 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24567 {
24568 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24569 }
24570 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24571 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24572 }
24573 }
24574
24575 next_offset += envelope_size;
24576 _next_ordinal_to_read += 1;
24577 if next_offset >= end_offset {
24578 return Ok(());
24579 }
24580
24581 while _next_ordinal_to_read < 3 {
24583 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24584 _next_ordinal_to_read += 1;
24585 next_offset += envelope_size;
24586 }
24587
24588 let next_out_of_line = decoder.next_out_of_line();
24589 let handles_before = decoder.remaining_handles();
24590 if let Some((inlined, num_bytes, num_handles)) =
24591 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24592 {
24593 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24594 if inlined != (member_inline_size <= 4) {
24595 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24596 }
24597 let inner_offset;
24598 let mut inner_depth = depth.clone();
24599 if inlined {
24600 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24601 inner_offset = next_offset;
24602 } else {
24603 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24604 inner_depth.increment()?;
24605 }
24606 let val_ref = self.target_path.get_or_insert_with(|| {
24607 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
24608 });
24609 fidl::decode!(
24610 fidl::encoding::BoundedString<1024>,
24611 D,
24612 val_ref,
24613 decoder,
24614 inner_offset,
24615 inner_depth
24616 )?;
24617 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24618 {
24619 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24620 }
24621 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24622 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24623 }
24624 }
24625
24626 next_offset += envelope_size;
24627 _next_ordinal_to_read += 1;
24628 if next_offset >= end_offset {
24629 return Ok(());
24630 }
24631
24632 while _next_ordinal_to_read < 4 {
24634 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24635 _next_ordinal_to_read += 1;
24636 next_offset += envelope_size;
24637 }
24638
24639 let next_out_of_line = decoder.next_out_of_line();
24640 let handles_before = decoder.remaining_handles();
24641 if let Some((inlined, num_bytes, num_handles)) =
24642 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24643 {
24644 let member_inline_size =
24645 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24646 if inlined != (member_inline_size <= 4) {
24647 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24648 }
24649 let inner_offset;
24650 let mut inner_depth = depth.clone();
24651 if inlined {
24652 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24653 inner_offset = next_offset;
24654 } else {
24655 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24656 inner_depth.increment()?;
24657 }
24658 let val_ref =
24659 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
24660 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
24661 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24662 {
24663 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24664 }
24665 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24666 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24667 }
24668 }
24669
24670 next_offset += envelope_size;
24671 _next_ordinal_to_read += 1;
24672 if next_offset >= end_offset {
24673 return Ok(());
24674 }
24675
24676 while _next_ordinal_to_read < 5 {
24678 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24679 _next_ordinal_to_read += 1;
24680 next_offset += envelope_size;
24681 }
24682
24683 let next_out_of_line = decoder.next_out_of_line();
24684 let handles_before = decoder.remaining_handles();
24685 if let Some((inlined, num_bytes, num_handles)) =
24686 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24687 {
24688 let member_inline_size =
24689 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24690 if inlined != (member_inline_size <= 4) {
24691 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24692 }
24693 let inner_offset;
24694 let mut inner_depth = depth.clone();
24695 if inlined {
24696 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24697 inner_offset = next_offset;
24698 } else {
24699 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24700 inner_depth.increment()?;
24701 }
24702 let val_ref =
24703 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
24704 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
24705 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24706 {
24707 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24708 }
24709 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24710 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24711 }
24712 }
24713
24714 next_offset += envelope_size;
24715 _next_ordinal_to_read += 1;
24716 if next_offset >= end_offset {
24717 return Ok(());
24718 }
24719
24720 while _next_ordinal_to_read < 6 {
24722 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24723 _next_ordinal_to_read += 1;
24724 next_offset += envelope_size;
24725 }
24726
24727 let next_out_of_line = decoder.next_out_of_line();
24728 let handles_before = decoder.remaining_handles();
24729 if let Some((inlined, num_bytes, num_handles)) =
24730 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24731 {
24732 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24733 if inlined != (member_inline_size <= 4) {
24734 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24735 }
24736 let inner_offset;
24737 let mut inner_depth = depth.clone();
24738 if inlined {
24739 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24740 inner_offset = next_offset;
24741 } else {
24742 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24743 inner_depth.increment()?;
24744 }
24745 let val_ref = self.source_dictionary.get_or_insert_with(|| {
24746 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
24747 });
24748 fidl::decode!(
24749 fidl::encoding::BoundedString<1024>,
24750 D,
24751 val_ref,
24752 decoder,
24753 inner_offset,
24754 inner_depth
24755 )?;
24756 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24757 {
24758 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24759 }
24760 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24761 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24762 }
24763 }
24764
24765 next_offset += envelope_size;
24766 _next_ordinal_to_read += 1;
24767 if next_offset >= end_offset {
24768 return Ok(());
24769 }
24770
24771 while _next_ordinal_to_read < 7 {
24773 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24774 _next_ordinal_to_read += 1;
24775 next_offset += envelope_size;
24776 }
24777
24778 let next_out_of_line = decoder.next_out_of_line();
24779 let handles_before = decoder.remaining_handles();
24780 if let Some((inlined, num_bytes, num_handles)) =
24781 fidl::encoding::decode_envelope_header(decoder, next_offset)?
24782 {
24783 let member_inline_size =
24784 <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
24785 if inlined != (member_inline_size <= 4) {
24786 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24787 }
24788 let inner_offset;
24789 let mut inner_depth = depth.clone();
24790 if inlined {
24791 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
24792 inner_offset = next_offset;
24793 } else {
24794 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24795 inner_depth.increment()?;
24796 }
24797 let val_ref = self.numbered_handle.get_or_insert_with(|| fidl::new_empty!(u8, D));
24798 fidl::decode!(u8, D, val_ref, decoder, inner_offset, inner_depth)?;
24799 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
24800 {
24801 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24802 }
24803 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24804 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24805 }
24806 }
24807
24808 next_offset += envelope_size;
24809
24810 while next_offset < end_offset {
24812 _next_ordinal_to_read += 1;
24813 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24814 next_offset += envelope_size;
24815 }
24816
24817 Ok(())
24818 }
24819 }
24820
24821 impl UseRunner {
24822 #[inline(always)]
24823 fn max_ordinal_present(&self) -> u64 {
24824 if let Some(_) = self.source_dictionary {
24825 return 3;
24826 }
24827 if let Some(_) = self.source_name {
24828 return 2;
24829 }
24830 if let Some(_) = self.source {
24831 return 1;
24832 }
24833 0
24834 }
24835 }
24836
24837 impl fidl::encoding::ValueTypeMarker for UseRunner {
24838 type Borrowed<'a> = &'a Self;
24839 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24840 value
24841 }
24842 }
24843
24844 unsafe impl fidl::encoding::TypeMarker for UseRunner {
24845 type Owned = Self;
24846
24847 #[inline(always)]
24848 fn inline_align(_context: fidl::encoding::Context) -> usize {
24849 8
24850 }
24851
24852 #[inline(always)]
24853 fn inline_size(_context: fidl::encoding::Context) -> usize {
24854 16
24855 }
24856 }
24857
24858 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseRunner, D>
24859 for &UseRunner
24860 {
24861 unsafe fn encode(
24862 self,
24863 encoder: &mut fidl::encoding::Encoder<'_, D>,
24864 offset: usize,
24865 mut depth: fidl::encoding::Depth,
24866 ) -> fidl::Result<()> {
24867 encoder.debug_check_bounds::<UseRunner>(offset);
24868 let max_ordinal: u64 = self.max_ordinal_present();
24870 encoder.write_num(max_ordinal, offset);
24871 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
24872 if max_ordinal == 0 {
24874 return Ok(());
24875 }
24876 depth.increment()?;
24877 let envelope_size = 8;
24878 let bytes_len = max_ordinal as usize * envelope_size;
24879 #[allow(unused_variables)]
24880 let offset = encoder.out_of_line_offset(bytes_len);
24881 let mut _prev_end_offset: usize = 0;
24882 if 1 > max_ordinal {
24883 return Ok(());
24884 }
24885
24886 let cur_offset: usize = (1 - 1) * envelope_size;
24889
24890 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24892
24893 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
24898 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
24899 encoder,
24900 offset + cur_offset,
24901 depth,
24902 )?;
24903
24904 _prev_end_offset = cur_offset + envelope_size;
24905 if 2 > max_ordinal {
24906 return Ok(());
24907 }
24908
24909 let cur_offset: usize = (2 - 1) * envelope_size;
24912
24913 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24915
24916 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
24921 self.source_name.as_ref().map(
24922 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
24923 ),
24924 encoder,
24925 offset + cur_offset,
24926 depth,
24927 )?;
24928
24929 _prev_end_offset = cur_offset + envelope_size;
24930 if 3 > max_ordinal {
24931 return Ok(());
24932 }
24933
24934 let cur_offset: usize = (3 - 1) * envelope_size;
24937
24938 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
24940
24941 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
24946 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
24947 encoder, offset + cur_offset, depth
24948 )?;
24949
24950 _prev_end_offset = cur_offset + envelope_size;
24951
24952 Ok(())
24953 }
24954 }
24955
24956 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseRunner {
24957 #[inline(always)]
24958 fn new_empty() -> Self {
24959 Self::default()
24960 }
24961
24962 unsafe fn decode(
24963 &mut self,
24964 decoder: &mut fidl::encoding::Decoder<'_, D>,
24965 offset: usize,
24966 mut depth: fidl::encoding::Depth,
24967 ) -> fidl::Result<()> {
24968 decoder.debug_check_bounds::<Self>(offset);
24969 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
24970 None => return Err(fidl::Error::NotNullable),
24971 Some(len) => len,
24972 };
24973 if len == 0 {
24975 return Ok(());
24976 };
24977 depth.increment()?;
24978 let envelope_size = 8;
24979 let bytes_len = len * envelope_size;
24980 let offset = decoder.out_of_line_offset(bytes_len)?;
24981 let mut _next_ordinal_to_read = 0;
24983 let mut next_offset = offset;
24984 let end_offset = offset + bytes_len;
24985 _next_ordinal_to_read += 1;
24986 if next_offset >= end_offset {
24987 return Ok(());
24988 }
24989
24990 while _next_ordinal_to_read < 1 {
24992 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
24993 _next_ordinal_to_read += 1;
24994 next_offset += envelope_size;
24995 }
24996
24997 let next_out_of_line = decoder.next_out_of_line();
24998 let handles_before = decoder.remaining_handles();
24999 if let Some((inlined, num_bytes, num_handles)) =
25000 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25001 {
25002 let member_inline_size =
25003 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25004 if inlined != (member_inline_size <= 4) {
25005 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25006 }
25007 let inner_offset;
25008 let mut inner_depth = depth.clone();
25009 if inlined {
25010 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25011 inner_offset = next_offset;
25012 } else {
25013 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25014 inner_depth.increment()?;
25015 }
25016 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
25017 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
25018 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25019 {
25020 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25021 }
25022 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25023 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25024 }
25025 }
25026
25027 next_offset += envelope_size;
25028 _next_ordinal_to_read += 1;
25029 if next_offset >= end_offset {
25030 return Ok(());
25031 }
25032
25033 while _next_ordinal_to_read < 2 {
25035 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25036 _next_ordinal_to_read += 1;
25037 next_offset += envelope_size;
25038 }
25039
25040 let next_out_of_line = decoder.next_out_of_line();
25041 let handles_before = decoder.remaining_handles();
25042 if let Some((inlined, num_bytes, num_handles)) =
25043 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25044 {
25045 let member_inline_size =
25046 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
25047 decoder.context,
25048 );
25049 if inlined != (member_inline_size <= 4) {
25050 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25051 }
25052 let inner_offset;
25053 let mut inner_depth = depth.clone();
25054 if inlined {
25055 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25056 inner_offset = next_offset;
25057 } else {
25058 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25059 inner_depth.increment()?;
25060 }
25061 let val_ref = self
25062 .source_name
25063 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
25064 fidl::decode!(
25065 fidl::encoding::BoundedString<100>,
25066 D,
25067 val_ref,
25068 decoder,
25069 inner_offset,
25070 inner_depth
25071 )?;
25072 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25073 {
25074 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25075 }
25076 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25077 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25078 }
25079 }
25080
25081 next_offset += envelope_size;
25082 _next_ordinal_to_read += 1;
25083 if next_offset >= end_offset {
25084 return Ok(());
25085 }
25086
25087 while _next_ordinal_to_read < 3 {
25089 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25090 _next_ordinal_to_read += 1;
25091 next_offset += envelope_size;
25092 }
25093
25094 let next_out_of_line = decoder.next_out_of_line();
25095 let handles_before = decoder.remaining_handles();
25096 if let Some((inlined, num_bytes, num_handles)) =
25097 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25098 {
25099 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25100 if inlined != (member_inline_size <= 4) {
25101 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25102 }
25103 let inner_offset;
25104 let mut inner_depth = depth.clone();
25105 if inlined {
25106 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25107 inner_offset = next_offset;
25108 } else {
25109 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25110 inner_depth.increment()?;
25111 }
25112 let val_ref = self.source_dictionary.get_or_insert_with(|| {
25113 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25114 });
25115 fidl::decode!(
25116 fidl::encoding::BoundedString<1024>,
25117 D,
25118 val_ref,
25119 decoder,
25120 inner_offset,
25121 inner_depth
25122 )?;
25123 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25124 {
25125 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25126 }
25127 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25128 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25129 }
25130 }
25131
25132 next_offset += envelope_size;
25133
25134 while next_offset < end_offset {
25136 _next_ordinal_to_read += 1;
25137 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25138 next_offset += envelope_size;
25139 }
25140
25141 Ok(())
25142 }
25143 }
25144
25145 impl UseService {
25146 #[inline(always)]
25147 fn max_ordinal_present(&self) -> u64 {
25148 if let Some(_) = self.source_dictionary {
25149 return 6;
25150 }
25151 if let Some(_) = self.availability {
25152 return 5;
25153 }
25154 if let Some(_) = self.dependency_type {
25155 return 4;
25156 }
25157 if let Some(_) = self.target_path {
25158 return 3;
25159 }
25160 if let Some(_) = self.source_name {
25161 return 2;
25162 }
25163 if let Some(_) = self.source {
25164 return 1;
25165 }
25166 0
25167 }
25168 }
25169
25170 impl fidl::encoding::ValueTypeMarker for UseService {
25171 type Borrowed<'a> = &'a Self;
25172 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
25173 value
25174 }
25175 }
25176
25177 unsafe impl fidl::encoding::TypeMarker for UseService {
25178 type Owned = Self;
25179
25180 #[inline(always)]
25181 fn inline_align(_context: fidl::encoding::Context) -> usize {
25182 8
25183 }
25184
25185 #[inline(always)]
25186 fn inline_size(_context: fidl::encoding::Context) -> usize {
25187 16
25188 }
25189 }
25190
25191 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseService, D>
25192 for &UseService
25193 {
25194 unsafe fn encode(
25195 self,
25196 encoder: &mut fidl::encoding::Encoder<'_, D>,
25197 offset: usize,
25198 mut depth: fidl::encoding::Depth,
25199 ) -> fidl::Result<()> {
25200 encoder.debug_check_bounds::<UseService>(offset);
25201 let max_ordinal: u64 = self.max_ordinal_present();
25203 encoder.write_num(max_ordinal, offset);
25204 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
25205 if max_ordinal == 0 {
25207 return Ok(());
25208 }
25209 depth.increment()?;
25210 let envelope_size = 8;
25211 let bytes_len = max_ordinal as usize * envelope_size;
25212 #[allow(unused_variables)]
25213 let offset = encoder.out_of_line_offset(bytes_len);
25214 let mut _prev_end_offset: usize = 0;
25215 if 1 > max_ordinal {
25216 return Ok(());
25217 }
25218
25219 let cur_offset: usize = (1 - 1) * envelope_size;
25222
25223 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25225
25226 fidl::encoding::encode_in_envelope_optional::<Ref, D>(
25231 self.source.as_ref().map(<Ref as fidl::encoding::ValueTypeMarker>::borrow),
25232 encoder,
25233 offset + cur_offset,
25234 depth,
25235 )?;
25236
25237 _prev_end_offset = cur_offset + envelope_size;
25238 if 2 > max_ordinal {
25239 return Ok(());
25240 }
25241
25242 let cur_offset: usize = (2 - 1) * envelope_size;
25245
25246 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25248
25249 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
25254 self.source_name.as_ref().map(
25255 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
25256 ),
25257 encoder,
25258 offset + cur_offset,
25259 depth,
25260 )?;
25261
25262 _prev_end_offset = cur_offset + envelope_size;
25263 if 3 > max_ordinal {
25264 return Ok(());
25265 }
25266
25267 let cur_offset: usize = (3 - 1) * envelope_size;
25270
25271 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25273
25274 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
25279 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
25280 encoder, offset + cur_offset, depth
25281 )?;
25282
25283 _prev_end_offset = cur_offset + envelope_size;
25284 if 4 > max_ordinal {
25285 return Ok(());
25286 }
25287
25288 let cur_offset: usize = (4 - 1) * envelope_size;
25291
25292 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25294
25295 fidl::encoding::encode_in_envelope_optional::<DependencyType, D>(
25300 self.dependency_type
25301 .as_ref()
25302 .map(<DependencyType as fidl::encoding::ValueTypeMarker>::borrow),
25303 encoder,
25304 offset + cur_offset,
25305 depth,
25306 )?;
25307
25308 _prev_end_offset = cur_offset + envelope_size;
25309 if 5 > max_ordinal {
25310 return Ok(());
25311 }
25312
25313 let cur_offset: usize = (5 - 1) * envelope_size;
25316
25317 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25319
25320 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
25325 self.availability
25326 .as_ref()
25327 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
25328 encoder,
25329 offset + cur_offset,
25330 depth,
25331 )?;
25332
25333 _prev_end_offset = cur_offset + envelope_size;
25334 if 6 > max_ordinal {
25335 return Ok(());
25336 }
25337
25338 let cur_offset: usize = (6 - 1) * envelope_size;
25341
25342 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25344
25345 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
25350 self.source_dictionary.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
25351 encoder, offset + cur_offset, depth
25352 )?;
25353
25354 _prev_end_offset = cur_offset + envelope_size;
25355
25356 Ok(())
25357 }
25358 }
25359
25360 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseService {
25361 #[inline(always)]
25362 fn new_empty() -> Self {
25363 Self::default()
25364 }
25365
25366 unsafe fn decode(
25367 &mut self,
25368 decoder: &mut fidl::encoding::Decoder<'_, D>,
25369 offset: usize,
25370 mut depth: fidl::encoding::Depth,
25371 ) -> fidl::Result<()> {
25372 decoder.debug_check_bounds::<Self>(offset);
25373 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
25374 None => return Err(fidl::Error::NotNullable),
25375 Some(len) => len,
25376 };
25377 if len == 0 {
25379 return Ok(());
25380 };
25381 depth.increment()?;
25382 let envelope_size = 8;
25383 let bytes_len = len * envelope_size;
25384 let offset = decoder.out_of_line_offset(bytes_len)?;
25385 let mut _next_ordinal_to_read = 0;
25387 let mut next_offset = offset;
25388 let end_offset = offset + bytes_len;
25389 _next_ordinal_to_read += 1;
25390 if next_offset >= end_offset {
25391 return Ok(());
25392 }
25393
25394 while _next_ordinal_to_read < 1 {
25396 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25397 _next_ordinal_to_read += 1;
25398 next_offset += envelope_size;
25399 }
25400
25401 let next_out_of_line = decoder.next_out_of_line();
25402 let handles_before = decoder.remaining_handles();
25403 if let Some((inlined, num_bytes, num_handles)) =
25404 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25405 {
25406 let member_inline_size =
25407 <Ref as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25408 if inlined != (member_inline_size <= 4) {
25409 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25410 }
25411 let inner_offset;
25412 let mut inner_depth = depth.clone();
25413 if inlined {
25414 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25415 inner_offset = next_offset;
25416 } else {
25417 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25418 inner_depth.increment()?;
25419 }
25420 let val_ref = self.source.get_or_insert_with(|| fidl::new_empty!(Ref, D));
25421 fidl::decode!(Ref, D, val_ref, decoder, inner_offset, inner_depth)?;
25422 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25423 {
25424 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25425 }
25426 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25427 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25428 }
25429 }
25430
25431 next_offset += envelope_size;
25432 _next_ordinal_to_read += 1;
25433 if next_offset >= end_offset {
25434 return Ok(());
25435 }
25436
25437 while _next_ordinal_to_read < 2 {
25439 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25440 _next_ordinal_to_read += 1;
25441 next_offset += envelope_size;
25442 }
25443
25444 let next_out_of_line = decoder.next_out_of_line();
25445 let handles_before = decoder.remaining_handles();
25446 if let Some((inlined, num_bytes, num_handles)) =
25447 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25448 {
25449 let member_inline_size =
25450 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
25451 decoder.context,
25452 );
25453 if inlined != (member_inline_size <= 4) {
25454 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25455 }
25456 let inner_offset;
25457 let mut inner_depth = depth.clone();
25458 if inlined {
25459 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25460 inner_offset = next_offset;
25461 } else {
25462 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25463 inner_depth.increment()?;
25464 }
25465 let val_ref = self
25466 .source_name
25467 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
25468 fidl::decode!(
25469 fidl::encoding::BoundedString<100>,
25470 D,
25471 val_ref,
25472 decoder,
25473 inner_offset,
25474 inner_depth
25475 )?;
25476 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25477 {
25478 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25479 }
25480 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25481 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25482 }
25483 }
25484
25485 next_offset += envelope_size;
25486 _next_ordinal_to_read += 1;
25487 if next_offset >= end_offset {
25488 return Ok(());
25489 }
25490
25491 while _next_ordinal_to_read < 3 {
25493 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25494 _next_ordinal_to_read += 1;
25495 next_offset += envelope_size;
25496 }
25497
25498 let next_out_of_line = decoder.next_out_of_line();
25499 let handles_before = decoder.remaining_handles();
25500 if let Some((inlined, num_bytes, num_handles)) =
25501 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25502 {
25503 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25504 if inlined != (member_inline_size <= 4) {
25505 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25506 }
25507 let inner_offset;
25508 let mut inner_depth = depth.clone();
25509 if inlined {
25510 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25511 inner_offset = next_offset;
25512 } else {
25513 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25514 inner_depth.increment()?;
25515 }
25516 let val_ref = self.target_path.get_or_insert_with(|| {
25517 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25518 });
25519 fidl::decode!(
25520 fidl::encoding::BoundedString<1024>,
25521 D,
25522 val_ref,
25523 decoder,
25524 inner_offset,
25525 inner_depth
25526 )?;
25527 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25528 {
25529 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25530 }
25531 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25532 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25533 }
25534 }
25535
25536 next_offset += envelope_size;
25537 _next_ordinal_to_read += 1;
25538 if next_offset >= end_offset {
25539 return Ok(());
25540 }
25541
25542 while _next_ordinal_to_read < 4 {
25544 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25545 _next_ordinal_to_read += 1;
25546 next_offset += envelope_size;
25547 }
25548
25549 let next_out_of_line = decoder.next_out_of_line();
25550 let handles_before = decoder.remaining_handles();
25551 if let Some((inlined, num_bytes, num_handles)) =
25552 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25553 {
25554 let member_inline_size =
25555 <DependencyType as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25556 if inlined != (member_inline_size <= 4) {
25557 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25558 }
25559 let inner_offset;
25560 let mut inner_depth = depth.clone();
25561 if inlined {
25562 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25563 inner_offset = next_offset;
25564 } else {
25565 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25566 inner_depth.increment()?;
25567 }
25568 let val_ref =
25569 self.dependency_type.get_or_insert_with(|| fidl::new_empty!(DependencyType, D));
25570 fidl::decode!(DependencyType, D, val_ref, decoder, inner_offset, inner_depth)?;
25571 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25572 {
25573 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25574 }
25575 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25576 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25577 }
25578 }
25579
25580 next_offset += envelope_size;
25581 _next_ordinal_to_read += 1;
25582 if next_offset >= end_offset {
25583 return Ok(());
25584 }
25585
25586 while _next_ordinal_to_read < 5 {
25588 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25589 _next_ordinal_to_read += 1;
25590 next_offset += envelope_size;
25591 }
25592
25593 let next_out_of_line = decoder.next_out_of_line();
25594 let handles_before = decoder.remaining_handles();
25595 if let Some((inlined, num_bytes, num_handles)) =
25596 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25597 {
25598 let member_inline_size =
25599 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25600 if inlined != (member_inline_size <= 4) {
25601 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25602 }
25603 let inner_offset;
25604 let mut inner_depth = depth.clone();
25605 if inlined {
25606 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25607 inner_offset = next_offset;
25608 } else {
25609 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25610 inner_depth.increment()?;
25611 }
25612 let val_ref =
25613 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
25614 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
25615 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25616 {
25617 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25618 }
25619 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25620 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25621 }
25622 }
25623
25624 next_offset += envelope_size;
25625 _next_ordinal_to_read += 1;
25626 if next_offset >= end_offset {
25627 return Ok(());
25628 }
25629
25630 while _next_ordinal_to_read < 6 {
25632 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25633 _next_ordinal_to_read += 1;
25634 next_offset += envelope_size;
25635 }
25636
25637 let next_out_of_line = decoder.next_out_of_line();
25638 let handles_before = decoder.remaining_handles();
25639 if let Some((inlined, num_bytes, num_handles)) =
25640 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25641 {
25642 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25643 if inlined != (member_inline_size <= 4) {
25644 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25645 }
25646 let inner_offset;
25647 let mut inner_depth = depth.clone();
25648 if inlined {
25649 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25650 inner_offset = next_offset;
25651 } else {
25652 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25653 inner_depth.increment()?;
25654 }
25655 let val_ref = self.source_dictionary.get_or_insert_with(|| {
25656 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25657 });
25658 fidl::decode!(
25659 fidl::encoding::BoundedString<1024>,
25660 D,
25661 val_ref,
25662 decoder,
25663 inner_offset,
25664 inner_depth
25665 )?;
25666 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25667 {
25668 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25669 }
25670 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25671 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25672 }
25673 }
25674
25675 next_offset += envelope_size;
25676
25677 while next_offset < end_offset {
25679 _next_ordinal_to_read += 1;
25680 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25681 next_offset += envelope_size;
25682 }
25683
25684 Ok(())
25685 }
25686 }
25687
25688 impl UseStorage {
25689 #[inline(always)]
25690 fn max_ordinal_present(&self) -> u64 {
25691 if let Some(_) = self.availability {
25692 return 3;
25693 }
25694 if let Some(_) = self.target_path {
25695 return 2;
25696 }
25697 if let Some(_) = self.source_name {
25698 return 1;
25699 }
25700 0
25701 }
25702 }
25703
25704 impl fidl::encoding::ValueTypeMarker for UseStorage {
25705 type Borrowed<'a> = &'a Self;
25706 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
25707 value
25708 }
25709 }
25710
25711 unsafe impl fidl::encoding::TypeMarker for UseStorage {
25712 type Owned = Self;
25713
25714 #[inline(always)]
25715 fn inline_align(_context: fidl::encoding::Context) -> usize {
25716 8
25717 }
25718
25719 #[inline(always)]
25720 fn inline_size(_context: fidl::encoding::Context) -> usize {
25721 16
25722 }
25723 }
25724
25725 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UseStorage, D>
25726 for &UseStorage
25727 {
25728 unsafe fn encode(
25729 self,
25730 encoder: &mut fidl::encoding::Encoder<'_, D>,
25731 offset: usize,
25732 mut depth: fidl::encoding::Depth,
25733 ) -> fidl::Result<()> {
25734 encoder.debug_check_bounds::<UseStorage>(offset);
25735 let max_ordinal: u64 = self.max_ordinal_present();
25737 encoder.write_num(max_ordinal, offset);
25738 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
25739 if max_ordinal == 0 {
25741 return Ok(());
25742 }
25743 depth.increment()?;
25744 let envelope_size = 8;
25745 let bytes_len = max_ordinal as usize * envelope_size;
25746 #[allow(unused_variables)]
25747 let offset = encoder.out_of_line_offset(bytes_len);
25748 let mut _prev_end_offset: usize = 0;
25749 if 1 > max_ordinal {
25750 return Ok(());
25751 }
25752
25753 let cur_offset: usize = (1 - 1) * envelope_size;
25756
25757 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25759
25760 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<100>, D>(
25765 self.source_name.as_ref().map(
25766 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow,
25767 ),
25768 encoder,
25769 offset + cur_offset,
25770 depth,
25771 )?;
25772
25773 _prev_end_offset = cur_offset + envelope_size;
25774 if 2 > max_ordinal {
25775 return Ok(());
25776 }
25777
25778 let cur_offset: usize = (2 - 1) * envelope_size;
25781
25782 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25784
25785 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<1024>, D>(
25790 self.target_path.as_ref().map(<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow),
25791 encoder, offset + cur_offset, depth
25792 )?;
25793
25794 _prev_end_offset = cur_offset + envelope_size;
25795 if 3 > max_ordinal {
25796 return Ok(());
25797 }
25798
25799 let cur_offset: usize = (3 - 1) * envelope_size;
25802
25803 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
25805
25806 fidl::encoding::encode_in_envelope_optional::<Availability, D>(
25811 self.availability
25812 .as_ref()
25813 .map(<Availability as fidl::encoding::ValueTypeMarker>::borrow),
25814 encoder,
25815 offset + cur_offset,
25816 depth,
25817 )?;
25818
25819 _prev_end_offset = cur_offset + envelope_size;
25820
25821 Ok(())
25822 }
25823 }
25824
25825 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UseStorage {
25826 #[inline(always)]
25827 fn new_empty() -> Self {
25828 Self::default()
25829 }
25830
25831 unsafe fn decode(
25832 &mut self,
25833 decoder: &mut fidl::encoding::Decoder<'_, D>,
25834 offset: usize,
25835 mut depth: fidl::encoding::Depth,
25836 ) -> fidl::Result<()> {
25837 decoder.debug_check_bounds::<Self>(offset);
25838 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
25839 None => return Err(fidl::Error::NotNullable),
25840 Some(len) => len,
25841 };
25842 if len == 0 {
25844 return Ok(());
25845 };
25846 depth.increment()?;
25847 let envelope_size = 8;
25848 let bytes_len = len * envelope_size;
25849 let offset = decoder.out_of_line_offset(bytes_len)?;
25850 let mut _next_ordinal_to_read = 0;
25852 let mut next_offset = offset;
25853 let end_offset = offset + bytes_len;
25854 _next_ordinal_to_read += 1;
25855 if next_offset >= end_offset {
25856 return Ok(());
25857 }
25858
25859 while _next_ordinal_to_read < 1 {
25861 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25862 _next_ordinal_to_read += 1;
25863 next_offset += envelope_size;
25864 }
25865
25866 let next_out_of_line = decoder.next_out_of_line();
25867 let handles_before = decoder.remaining_handles();
25868 if let Some((inlined, num_bytes, num_handles)) =
25869 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25870 {
25871 let member_inline_size =
25872 <fidl::encoding::BoundedString<100> as fidl::encoding::TypeMarker>::inline_size(
25873 decoder.context,
25874 );
25875 if inlined != (member_inline_size <= 4) {
25876 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25877 }
25878 let inner_offset;
25879 let mut inner_depth = depth.clone();
25880 if inlined {
25881 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25882 inner_offset = next_offset;
25883 } else {
25884 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25885 inner_depth.increment()?;
25886 }
25887 let val_ref = self
25888 .source_name
25889 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<100>, D));
25890 fidl::decode!(
25891 fidl::encoding::BoundedString<100>,
25892 D,
25893 val_ref,
25894 decoder,
25895 inner_offset,
25896 inner_depth
25897 )?;
25898 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25899 {
25900 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25901 }
25902 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25903 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25904 }
25905 }
25906
25907 next_offset += envelope_size;
25908 _next_ordinal_to_read += 1;
25909 if next_offset >= end_offset {
25910 return Ok(());
25911 }
25912
25913 while _next_ordinal_to_read < 2 {
25915 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25916 _next_ordinal_to_read += 1;
25917 next_offset += envelope_size;
25918 }
25919
25920 let next_out_of_line = decoder.next_out_of_line();
25921 let handles_before = decoder.remaining_handles();
25922 if let Some((inlined, num_bytes, num_handles)) =
25923 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25924 {
25925 let member_inline_size = <fidl::encoding::BoundedString<1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25926 if inlined != (member_inline_size <= 4) {
25927 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25928 }
25929 let inner_offset;
25930 let mut inner_depth = depth.clone();
25931 if inlined {
25932 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25933 inner_offset = next_offset;
25934 } else {
25935 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25936 inner_depth.increment()?;
25937 }
25938 let val_ref = self.target_path.get_or_insert_with(|| {
25939 fidl::new_empty!(fidl::encoding::BoundedString<1024>, D)
25940 });
25941 fidl::decode!(
25942 fidl::encoding::BoundedString<1024>,
25943 D,
25944 val_ref,
25945 decoder,
25946 inner_offset,
25947 inner_depth
25948 )?;
25949 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25950 {
25951 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25952 }
25953 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25954 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25955 }
25956 }
25957
25958 next_offset += envelope_size;
25959 _next_ordinal_to_read += 1;
25960 if next_offset >= end_offset {
25961 return Ok(());
25962 }
25963
25964 while _next_ordinal_to_read < 3 {
25966 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
25967 _next_ordinal_to_read += 1;
25968 next_offset += envelope_size;
25969 }
25970
25971 let next_out_of_line = decoder.next_out_of_line();
25972 let handles_before = decoder.remaining_handles();
25973 if let Some((inlined, num_bytes, num_handles)) =
25974 fidl::encoding::decode_envelope_header(decoder, next_offset)?
25975 {
25976 let member_inline_size =
25977 <Availability as fidl::encoding::TypeMarker>::inline_size(decoder.context);
25978 if inlined != (member_inline_size <= 4) {
25979 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25980 }
25981 let inner_offset;
25982 let mut inner_depth = depth.clone();
25983 if inlined {
25984 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
25985 inner_offset = next_offset;
25986 } else {
25987 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25988 inner_depth.increment()?;
25989 }
25990 let val_ref =
25991 self.availability.get_or_insert_with(|| fidl::new_empty!(Availability, D));
25992 fidl::decode!(Availability, D, val_ref, decoder, inner_offset, inner_depth)?;
25993 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
25994 {
25995 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25996 }
25997 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25998 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25999 }
26000 }
26001
26002 next_offset += envelope_size;
26003
26004 while next_offset < end_offset {
26006 _next_ordinal_to_read += 1;
26007 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
26008 next_offset += envelope_size;
26009 }
26010
26011 Ok(())
26012 }
26013 }
26014
26015 impl fidl::encoding::ValueTypeMarker for Capability {
26016 type Borrowed<'a> = &'a Self;
26017 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26018 value
26019 }
26020 }
26021
26022 unsafe impl fidl::encoding::TypeMarker for Capability {
26023 type Owned = Self;
26024
26025 #[inline(always)]
26026 fn inline_align(_context: fidl::encoding::Context) -> usize {
26027 8
26028 }
26029
26030 #[inline(always)]
26031 fn inline_size(_context: fidl::encoding::Context) -> usize {
26032 16
26033 }
26034 }
26035
26036 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Capability, D>
26037 for &Capability
26038 {
26039 #[inline]
26040 unsafe fn encode(
26041 self,
26042 encoder: &mut fidl::encoding::Encoder<'_, D>,
26043 offset: usize,
26044 _depth: fidl::encoding::Depth,
26045 ) -> fidl::Result<()> {
26046 encoder.debug_check_bounds::<Capability>(offset);
26047 encoder.write_num::<u64>(self.ordinal(), offset);
26048 match self {
26049 Capability::Service(ref val) => fidl::encoding::encode_in_envelope::<Service, D>(
26050 <Service as fidl::encoding::ValueTypeMarker>::borrow(val),
26051 encoder,
26052 offset + 8,
26053 _depth,
26054 ),
26055 Capability::Protocol(ref val) => fidl::encoding::encode_in_envelope::<Protocol, D>(
26056 <Protocol as fidl::encoding::ValueTypeMarker>::borrow(val),
26057 encoder,
26058 offset + 8,
26059 _depth,
26060 ),
26061 Capability::Directory(ref val) => {
26062 fidl::encoding::encode_in_envelope::<Directory, D>(
26063 <Directory as fidl::encoding::ValueTypeMarker>::borrow(val),
26064 encoder,
26065 offset + 8,
26066 _depth,
26067 )
26068 }
26069 Capability::Storage(ref val) => fidl::encoding::encode_in_envelope::<Storage, D>(
26070 <Storage as fidl::encoding::ValueTypeMarker>::borrow(val),
26071 encoder,
26072 offset + 8,
26073 _depth,
26074 ),
26075 Capability::Runner(ref val) => fidl::encoding::encode_in_envelope::<Runner, D>(
26076 <Runner as fidl::encoding::ValueTypeMarker>::borrow(val),
26077 encoder,
26078 offset + 8,
26079 _depth,
26080 ),
26081 Capability::Resolver(ref val) => fidl::encoding::encode_in_envelope::<Resolver, D>(
26082 <Resolver as fidl::encoding::ValueTypeMarker>::borrow(val),
26083 encoder,
26084 offset + 8,
26085 _depth,
26086 ),
26087 Capability::EventStream(ref val) => {
26088 fidl::encoding::encode_in_envelope::<EventStream, D>(
26089 <EventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
26090 encoder,
26091 offset + 8,
26092 _depth,
26093 )
26094 }
26095 Capability::Dictionary(ref val) => {
26096 fidl::encoding::encode_in_envelope::<Dictionary, D>(
26097 <Dictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
26098 encoder,
26099 offset + 8,
26100 _depth,
26101 )
26102 }
26103 Capability::Config(ref val) => {
26104 fidl::encoding::encode_in_envelope::<Configuration, D>(
26105 <Configuration as fidl::encoding::ValueTypeMarker>::borrow(val),
26106 encoder,
26107 offset + 8,
26108 _depth,
26109 )
26110 }
26111 Capability::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26112 }
26113 }
26114 }
26115
26116 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Capability {
26117 #[inline(always)]
26118 fn new_empty() -> Self {
26119 Self::__SourceBreaking { unknown_ordinal: 0 }
26120 }
26121
26122 #[inline]
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 #[allow(unused_variables)]
26131 let next_out_of_line = decoder.next_out_of_line();
26132 let handles_before = decoder.remaining_handles();
26133 let (ordinal, inlined, num_bytes, num_handles) =
26134 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26135
26136 let member_inline_size = match ordinal {
26137 1 => <Service as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26138 2 => <Protocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26139 3 => <Directory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26140 4 => <Storage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26141 5 => <Runner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26142 6 => <Resolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26143 8 => <EventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26144 9 => <Dictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26145 10 => <Configuration as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26146 0 => return Err(fidl::Error::UnknownUnionTag),
26147 _ => num_bytes as usize,
26148 };
26149
26150 if inlined != (member_inline_size <= 4) {
26151 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26152 }
26153 let _inner_offset;
26154 if inlined {
26155 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26156 _inner_offset = offset + 8;
26157 } else {
26158 depth.increment()?;
26159 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26160 }
26161 match ordinal {
26162 1 => {
26163 #[allow(irrefutable_let_patterns)]
26164 if let Capability::Service(_) = self {
26165 } else {
26167 *self = Capability::Service(fidl::new_empty!(Service, D));
26169 }
26170 #[allow(irrefutable_let_patterns)]
26171 if let Capability::Service(ref mut val) = self {
26172 fidl::decode!(Service, D, val, decoder, _inner_offset, depth)?;
26173 } else {
26174 unreachable!()
26175 }
26176 }
26177 2 => {
26178 #[allow(irrefutable_let_patterns)]
26179 if let Capability::Protocol(_) = self {
26180 } else {
26182 *self = Capability::Protocol(fidl::new_empty!(Protocol, D));
26184 }
26185 #[allow(irrefutable_let_patterns)]
26186 if let Capability::Protocol(ref mut val) = self {
26187 fidl::decode!(Protocol, D, val, decoder, _inner_offset, depth)?;
26188 } else {
26189 unreachable!()
26190 }
26191 }
26192 3 => {
26193 #[allow(irrefutable_let_patterns)]
26194 if let Capability::Directory(_) = self {
26195 } else {
26197 *self = Capability::Directory(fidl::new_empty!(Directory, D));
26199 }
26200 #[allow(irrefutable_let_patterns)]
26201 if let Capability::Directory(ref mut val) = self {
26202 fidl::decode!(Directory, D, val, decoder, _inner_offset, depth)?;
26203 } else {
26204 unreachable!()
26205 }
26206 }
26207 4 => {
26208 #[allow(irrefutable_let_patterns)]
26209 if let Capability::Storage(_) = self {
26210 } else {
26212 *self = Capability::Storage(fidl::new_empty!(Storage, D));
26214 }
26215 #[allow(irrefutable_let_patterns)]
26216 if let Capability::Storage(ref mut val) = self {
26217 fidl::decode!(Storage, D, val, decoder, _inner_offset, depth)?;
26218 } else {
26219 unreachable!()
26220 }
26221 }
26222 5 => {
26223 #[allow(irrefutable_let_patterns)]
26224 if let Capability::Runner(_) = self {
26225 } else {
26227 *self = Capability::Runner(fidl::new_empty!(Runner, D));
26229 }
26230 #[allow(irrefutable_let_patterns)]
26231 if let Capability::Runner(ref mut val) = self {
26232 fidl::decode!(Runner, D, val, decoder, _inner_offset, depth)?;
26233 } else {
26234 unreachable!()
26235 }
26236 }
26237 6 => {
26238 #[allow(irrefutable_let_patterns)]
26239 if let Capability::Resolver(_) = self {
26240 } else {
26242 *self = Capability::Resolver(fidl::new_empty!(Resolver, D));
26244 }
26245 #[allow(irrefutable_let_patterns)]
26246 if let Capability::Resolver(ref mut val) = self {
26247 fidl::decode!(Resolver, D, val, decoder, _inner_offset, depth)?;
26248 } else {
26249 unreachable!()
26250 }
26251 }
26252 8 => {
26253 #[allow(irrefutable_let_patterns)]
26254 if let Capability::EventStream(_) = self {
26255 } else {
26257 *self = Capability::EventStream(fidl::new_empty!(EventStream, D));
26259 }
26260 #[allow(irrefutable_let_patterns)]
26261 if let Capability::EventStream(ref mut val) = self {
26262 fidl::decode!(EventStream, D, val, decoder, _inner_offset, depth)?;
26263 } else {
26264 unreachable!()
26265 }
26266 }
26267 9 => {
26268 #[allow(irrefutable_let_patterns)]
26269 if let Capability::Dictionary(_) = self {
26270 } else {
26272 *self = Capability::Dictionary(fidl::new_empty!(Dictionary, D));
26274 }
26275 #[allow(irrefutable_let_patterns)]
26276 if let Capability::Dictionary(ref mut val) = self {
26277 fidl::decode!(Dictionary, D, val, decoder, _inner_offset, depth)?;
26278 } else {
26279 unreachable!()
26280 }
26281 }
26282 10 => {
26283 #[allow(irrefutable_let_patterns)]
26284 if let Capability::Config(_) = self {
26285 } else {
26287 *self = Capability::Config(fidl::new_empty!(Configuration, D));
26289 }
26290 #[allow(irrefutable_let_patterns)]
26291 if let Capability::Config(ref mut val) = self {
26292 fidl::decode!(Configuration, D, val, decoder, _inner_offset, depth)?;
26293 } else {
26294 unreachable!()
26295 }
26296 }
26297 #[allow(deprecated)]
26298 ordinal => {
26299 for _ in 0..num_handles {
26300 decoder.drop_next_handle()?;
26301 }
26302 *self = Capability::__SourceBreaking { unknown_ordinal: ordinal };
26303 }
26304 }
26305 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
26306 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26307 }
26308 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26309 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26310 }
26311 Ok(())
26312 }
26313 }
26314
26315 impl fidl::encoding::ValueTypeMarker for ConfigChecksum {
26316 type Borrowed<'a> = &'a Self;
26317 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26318 value
26319 }
26320 }
26321
26322 unsafe impl fidl::encoding::TypeMarker for ConfigChecksum {
26323 type Owned = Self;
26324
26325 #[inline(always)]
26326 fn inline_align(_context: fidl::encoding::Context) -> usize {
26327 8
26328 }
26329
26330 #[inline(always)]
26331 fn inline_size(_context: fidl::encoding::Context) -> usize {
26332 16
26333 }
26334 }
26335
26336 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigChecksum, D>
26337 for &ConfigChecksum
26338 {
26339 #[inline]
26340 unsafe fn encode(
26341 self,
26342 encoder: &mut fidl::encoding::Encoder<'_, D>,
26343 offset: usize,
26344 _depth: fidl::encoding::Depth,
26345 ) -> fidl::Result<()> {
26346 encoder.debug_check_bounds::<ConfigChecksum>(offset);
26347 encoder.write_num::<u64>(self.ordinal(), offset);
26348 match self {
26349 ConfigChecksum::Sha256(ref val) => fidl::encoding::encode_in_envelope::<
26350 fidl::encoding::Array<u8, 32>,
26351 D,
26352 >(
26353 <fidl::encoding::Array<u8, 32> as fidl::encoding::ValueTypeMarker>::borrow(val),
26354 encoder,
26355 offset + 8,
26356 _depth,
26357 ),
26358 ConfigChecksum::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26359 }
26360 }
26361 }
26362
26363 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigChecksum {
26364 #[inline(always)]
26365 fn new_empty() -> Self {
26366 Self::__SourceBreaking { unknown_ordinal: 0 }
26367 }
26368
26369 #[inline]
26370 unsafe fn decode(
26371 &mut self,
26372 decoder: &mut fidl::encoding::Decoder<'_, D>,
26373 offset: usize,
26374 mut depth: fidl::encoding::Depth,
26375 ) -> fidl::Result<()> {
26376 decoder.debug_check_bounds::<Self>(offset);
26377 #[allow(unused_variables)]
26378 let next_out_of_line = decoder.next_out_of_line();
26379 let handles_before = decoder.remaining_handles();
26380 let (ordinal, inlined, num_bytes, num_handles) =
26381 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26382
26383 let member_inline_size = match ordinal {
26384 1 => <fidl::encoding::Array<u8, 32> as fidl::encoding::TypeMarker>::inline_size(
26385 decoder.context,
26386 ),
26387 0 => return Err(fidl::Error::UnknownUnionTag),
26388 _ => num_bytes as usize,
26389 };
26390
26391 if inlined != (member_inline_size <= 4) {
26392 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26393 }
26394 let _inner_offset;
26395 if inlined {
26396 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26397 _inner_offset = offset + 8;
26398 } else {
26399 depth.increment()?;
26400 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26401 }
26402 match ordinal {
26403 1 => {
26404 #[allow(irrefutable_let_patterns)]
26405 if let ConfigChecksum::Sha256(_) = self {
26406 } else {
26408 *self = ConfigChecksum::Sha256(
26410 fidl::new_empty!(fidl::encoding::Array<u8, 32>, D),
26411 );
26412 }
26413 #[allow(irrefutable_let_patterns)]
26414 if let ConfigChecksum::Sha256(ref mut val) = self {
26415 fidl::decode!(fidl::encoding::Array<u8, 32>, D, val, decoder, _inner_offset, depth)?;
26416 } else {
26417 unreachable!()
26418 }
26419 }
26420 #[allow(deprecated)]
26421 ordinal => {
26422 for _ in 0..num_handles {
26423 decoder.drop_next_handle()?;
26424 }
26425 *self = ConfigChecksum::__SourceBreaking { unknown_ordinal: ordinal };
26426 }
26427 }
26428 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
26429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26430 }
26431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26433 }
26434 Ok(())
26435 }
26436 }
26437
26438 impl fidl::encoding::ValueTypeMarker for ConfigSingleValue {
26439 type Borrowed<'a> = &'a Self;
26440 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26441 value
26442 }
26443 }
26444
26445 unsafe impl fidl::encoding::TypeMarker for ConfigSingleValue {
26446 type Owned = Self;
26447
26448 #[inline(always)]
26449 fn inline_align(_context: fidl::encoding::Context) -> usize {
26450 8
26451 }
26452
26453 #[inline(always)]
26454 fn inline_size(_context: fidl::encoding::Context) -> usize {
26455 16
26456 }
26457 }
26458
26459 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigSingleValue, D>
26460 for &ConfigSingleValue
26461 {
26462 #[inline]
26463 unsafe fn encode(
26464 self,
26465 encoder: &mut fidl::encoding::Encoder<'_, D>,
26466 offset: usize,
26467 _depth: fidl::encoding::Depth,
26468 ) -> fidl::Result<()> {
26469 encoder.debug_check_bounds::<ConfigSingleValue>(offset);
26470 encoder.write_num::<u64>(self.ordinal(), offset);
26471 match self {
26472 ConfigSingleValue::Bool(ref val) => fidl::encoding::encode_in_envelope::<bool, D>(
26473 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
26474 encoder,
26475 offset + 8,
26476 _depth,
26477 ),
26478 ConfigSingleValue::Uint8(ref val) => fidl::encoding::encode_in_envelope::<u8, D>(
26479 <u8 as fidl::encoding::ValueTypeMarker>::borrow(val),
26480 encoder,
26481 offset + 8,
26482 _depth,
26483 ),
26484 ConfigSingleValue::Uint16(ref val) => fidl::encoding::encode_in_envelope::<u16, D>(
26485 <u16 as fidl::encoding::ValueTypeMarker>::borrow(val),
26486 encoder,
26487 offset + 8,
26488 _depth,
26489 ),
26490 ConfigSingleValue::Uint32(ref val) => fidl::encoding::encode_in_envelope::<u32, D>(
26491 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
26492 encoder,
26493 offset + 8,
26494 _depth,
26495 ),
26496 ConfigSingleValue::Uint64(ref val) => fidl::encoding::encode_in_envelope::<u64, D>(
26497 <u64 as fidl::encoding::ValueTypeMarker>::borrow(val),
26498 encoder,
26499 offset + 8,
26500 _depth,
26501 ),
26502 ConfigSingleValue::Int8(ref val) => fidl::encoding::encode_in_envelope::<i8, D>(
26503 <i8 as fidl::encoding::ValueTypeMarker>::borrow(val),
26504 encoder,
26505 offset + 8,
26506 _depth,
26507 ),
26508 ConfigSingleValue::Int16(ref val) => fidl::encoding::encode_in_envelope::<i16, D>(
26509 <i16 as fidl::encoding::ValueTypeMarker>::borrow(val),
26510 encoder,
26511 offset + 8,
26512 _depth,
26513 ),
26514 ConfigSingleValue::Int32(ref val) => fidl::encoding::encode_in_envelope::<i32, D>(
26515 <i32 as fidl::encoding::ValueTypeMarker>::borrow(val),
26516 encoder,
26517 offset + 8,
26518 _depth,
26519 ),
26520 ConfigSingleValue::Int64(ref val) => fidl::encoding::encode_in_envelope::<i64, D>(
26521 <i64 as fidl::encoding::ValueTypeMarker>::borrow(val),
26522 encoder,
26523 offset + 8,
26524 _depth,
26525 ),
26526 ConfigSingleValue::String(ref val) => fidl::encoding::encode_in_envelope::<
26527 fidl::encoding::UnboundedString,
26528 D,
26529 >(
26530 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
26531 val,
26532 ),
26533 encoder,
26534 offset + 8,
26535 _depth,
26536 ),
26537 ConfigSingleValue::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26538 }
26539 }
26540 }
26541
26542 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigSingleValue {
26543 #[inline(always)]
26544 fn new_empty() -> Self {
26545 Self::__SourceBreaking { unknown_ordinal: 0 }
26546 }
26547
26548 #[inline]
26549 unsafe fn decode(
26550 &mut self,
26551 decoder: &mut fidl::encoding::Decoder<'_, D>,
26552 offset: usize,
26553 mut depth: fidl::encoding::Depth,
26554 ) -> fidl::Result<()> {
26555 decoder.debug_check_bounds::<Self>(offset);
26556 #[allow(unused_variables)]
26557 let next_out_of_line = decoder.next_out_of_line();
26558 let handles_before = decoder.remaining_handles();
26559 let (ordinal, inlined, num_bytes, num_handles) =
26560 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26561
26562 let member_inline_size = match ordinal {
26563 1 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26564 2 => <u8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26565 3 => <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26566 4 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26567 5 => <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26568 6 => <i8 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26569 7 => <i16 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26570 8 => <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26571 9 => <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
26572 10 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
26573 decoder.context,
26574 ),
26575 0 => return Err(fidl::Error::UnknownUnionTag),
26576 _ => num_bytes as usize,
26577 };
26578
26579 if inlined != (member_inline_size <= 4) {
26580 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26581 }
26582 let _inner_offset;
26583 if inlined {
26584 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26585 _inner_offset = offset + 8;
26586 } else {
26587 depth.increment()?;
26588 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26589 }
26590 match ordinal {
26591 1 => {
26592 #[allow(irrefutable_let_patterns)]
26593 if let ConfigSingleValue::Bool(_) = self {
26594 } else {
26596 *self = ConfigSingleValue::Bool(fidl::new_empty!(bool, D));
26598 }
26599 #[allow(irrefutable_let_patterns)]
26600 if let ConfigSingleValue::Bool(ref mut val) = self {
26601 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
26602 } else {
26603 unreachable!()
26604 }
26605 }
26606 2 => {
26607 #[allow(irrefutable_let_patterns)]
26608 if let ConfigSingleValue::Uint8(_) = self {
26609 } else {
26611 *self = ConfigSingleValue::Uint8(fidl::new_empty!(u8, D));
26613 }
26614 #[allow(irrefutable_let_patterns)]
26615 if let ConfigSingleValue::Uint8(ref mut val) = self {
26616 fidl::decode!(u8, D, val, decoder, _inner_offset, depth)?;
26617 } else {
26618 unreachable!()
26619 }
26620 }
26621 3 => {
26622 #[allow(irrefutable_let_patterns)]
26623 if let ConfigSingleValue::Uint16(_) = self {
26624 } else {
26626 *self = ConfigSingleValue::Uint16(fidl::new_empty!(u16, D));
26628 }
26629 #[allow(irrefutable_let_patterns)]
26630 if let ConfigSingleValue::Uint16(ref mut val) = self {
26631 fidl::decode!(u16, D, val, decoder, _inner_offset, depth)?;
26632 } else {
26633 unreachable!()
26634 }
26635 }
26636 4 => {
26637 #[allow(irrefutable_let_patterns)]
26638 if let ConfigSingleValue::Uint32(_) = self {
26639 } else {
26641 *self = ConfigSingleValue::Uint32(fidl::new_empty!(u32, D));
26643 }
26644 #[allow(irrefutable_let_patterns)]
26645 if let ConfigSingleValue::Uint32(ref mut val) = self {
26646 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
26647 } else {
26648 unreachable!()
26649 }
26650 }
26651 5 => {
26652 #[allow(irrefutable_let_patterns)]
26653 if let ConfigSingleValue::Uint64(_) = self {
26654 } else {
26656 *self = ConfigSingleValue::Uint64(fidl::new_empty!(u64, D));
26658 }
26659 #[allow(irrefutable_let_patterns)]
26660 if let ConfigSingleValue::Uint64(ref mut val) = self {
26661 fidl::decode!(u64, D, val, decoder, _inner_offset, depth)?;
26662 } else {
26663 unreachable!()
26664 }
26665 }
26666 6 => {
26667 #[allow(irrefutable_let_patterns)]
26668 if let ConfigSingleValue::Int8(_) = self {
26669 } else {
26671 *self = ConfigSingleValue::Int8(fidl::new_empty!(i8, D));
26673 }
26674 #[allow(irrefutable_let_patterns)]
26675 if let ConfigSingleValue::Int8(ref mut val) = self {
26676 fidl::decode!(i8, D, val, decoder, _inner_offset, depth)?;
26677 } else {
26678 unreachable!()
26679 }
26680 }
26681 7 => {
26682 #[allow(irrefutable_let_patterns)]
26683 if let ConfigSingleValue::Int16(_) = self {
26684 } else {
26686 *self = ConfigSingleValue::Int16(fidl::new_empty!(i16, D));
26688 }
26689 #[allow(irrefutable_let_patterns)]
26690 if let ConfigSingleValue::Int16(ref mut val) = self {
26691 fidl::decode!(i16, D, val, decoder, _inner_offset, depth)?;
26692 } else {
26693 unreachable!()
26694 }
26695 }
26696 8 => {
26697 #[allow(irrefutable_let_patterns)]
26698 if let ConfigSingleValue::Int32(_) = self {
26699 } else {
26701 *self = ConfigSingleValue::Int32(fidl::new_empty!(i32, D));
26703 }
26704 #[allow(irrefutable_let_patterns)]
26705 if let ConfigSingleValue::Int32(ref mut val) = self {
26706 fidl::decode!(i32, D, val, decoder, _inner_offset, depth)?;
26707 } else {
26708 unreachable!()
26709 }
26710 }
26711 9 => {
26712 #[allow(irrefutable_let_patterns)]
26713 if let ConfigSingleValue::Int64(_) = self {
26714 } else {
26716 *self = ConfigSingleValue::Int64(fidl::new_empty!(i64, D));
26718 }
26719 #[allow(irrefutable_let_patterns)]
26720 if let ConfigSingleValue::Int64(ref mut val) = self {
26721 fidl::decode!(i64, D, val, decoder, _inner_offset, depth)?;
26722 } else {
26723 unreachable!()
26724 }
26725 }
26726 10 => {
26727 #[allow(irrefutable_let_patterns)]
26728 if let ConfigSingleValue::String(_) = self {
26729 } else {
26731 *self = ConfigSingleValue::String(fidl::new_empty!(
26733 fidl::encoding::UnboundedString,
26734 D
26735 ));
26736 }
26737 #[allow(irrefutable_let_patterns)]
26738 if let ConfigSingleValue::String(ref mut val) = self {
26739 fidl::decode!(
26740 fidl::encoding::UnboundedString,
26741 D,
26742 val,
26743 decoder,
26744 _inner_offset,
26745 depth
26746 )?;
26747 } else {
26748 unreachable!()
26749 }
26750 }
26751 #[allow(deprecated)]
26752 ordinal => {
26753 for _ in 0..num_handles {
26754 decoder.drop_next_handle()?;
26755 }
26756 *self = ConfigSingleValue::__SourceBreaking { unknown_ordinal: ordinal };
26757 }
26758 }
26759 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
26760 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26761 }
26762 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26763 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26764 }
26765 Ok(())
26766 }
26767 }
26768
26769 impl fidl::encoding::ValueTypeMarker for ConfigValue {
26770 type Borrowed<'a> = &'a Self;
26771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26772 value
26773 }
26774 }
26775
26776 unsafe impl fidl::encoding::TypeMarker for ConfigValue {
26777 type Owned = Self;
26778
26779 #[inline(always)]
26780 fn inline_align(_context: fidl::encoding::Context) -> usize {
26781 8
26782 }
26783
26784 #[inline(always)]
26785 fn inline_size(_context: fidl::encoding::Context) -> usize {
26786 16
26787 }
26788 }
26789
26790 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValue, D>
26791 for &ConfigValue
26792 {
26793 #[inline]
26794 unsafe fn encode(
26795 self,
26796 encoder: &mut fidl::encoding::Encoder<'_, D>,
26797 offset: usize,
26798 _depth: fidl::encoding::Depth,
26799 ) -> fidl::Result<()> {
26800 encoder.debug_check_bounds::<ConfigValue>(offset);
26801 encoder.write_num::<u64>(self.ordinal(), offset);
26802 match self {
26803 ConfigValue::Single(ref val) => {
26804 fidl::encoding::encode_in_envelope::<ConfigSingleValue, D>(
26805 <ConfigSingleValue as fidl::encoding::ValueTypeMarker>::borrow(val),
26806 encoder,
26807 offset + 8,
26808 _depth,
26809 )
26810 }
26811 ConfigValue::Vector(ref val) => {
26812 fidl::encoding::encode_in_envelope::<ConfigVectorValue, D>(
26813 <ConfigVectorValue as fidl::encoding::ValueTypeMarker>::borrow(val),
26814 encoder,
26815 offset + 8,
26816 _depth,
26817 )
26818 }
26819 ConfigValue::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26820 }
26821 }
26822 }
26823
26824 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValue {
26825 #[inline(always)]
26826 fn new_empty() -> Self {
26827 Self::__SourceBreaking { unknown_ordinal: 0 }
26828 }
26829
26830 #[inline]
26831 unsafe fn decode(
26832 &mut self,
26833 decoder: &mut fidl::encoding::Decoder<'_, D>,
26834 offset: usize,
26835 mut depth: fidl::encoding::Depth,
26836 ) -> fidl::Result<()> {
26837 decoder.debug_check_bounds::<Self>(offset);
26838 #[allow(unused_variables)]
26839 let next_out_of_line = decoder.next_out_of_line();
26840 let handles_before = decoder.remaining_handles();
26841 let (ordinal, inlined, num_bytes, num_handles) =
26842 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26843
26844 let member_inline_size = match ordinal {
26845 1 => {
26846 <ConfigSingleValue as fidl::encoding::TypeMarker>::inline_size(decoder.context)
26847 }
26848 2 => {
26849 <ConfigVectorValue as fidl::encoding::TypeMarker>::inline_size(decoder.context)
26850 }
26851 0 => return Err(fidl::Error::UnknownUnionTag),
26852 _ => num_bytes as usize,
26853 };
26854
26855 if inlined != (member_inline_size <= 4) {
26856 return Err(fidl::Error::InvalidInlineBitInEnvelope);
26857 }
26858 let _inner_offset;
26859 if inlined {
26860 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
26861 _inner_offset = offset + 8;
26862 } else {
26863 depth.increment()?;
26864 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
26865 }
26866 match ordinal {
26867 1 => {
26868 #[allow(irrefutable_let_patterns)]
26869 if let ConfigValue::Single(_) = self {
26870 } else {
26872 *self = ConfigValue::Single(fidl::new_empty!(ConfigSingleValue, D));
26874 }
26875 #[allow(irrefutable_let_patterns)]
26876 if let ConfigValue::Single(ref mut val) = self {
26877 fidl::decode!(ConfigSingleValue, D, val, decoder, _inner_offset, depth)?;
26878 } else {
26879 unreachable!()
26880 }
26881 }
26882 2 => {
26883 #[allow(irrefutable_let_patterns)]
26884 if let ConfigValue::Vector(_) = self {
26885 } else {
26887 *self = ConfigValue::Vector(fidl::new_empty!(ConfigVectorValue, D));
26889 }
26890 #[allow(irrefutable_let_patterns)]
26891 if let ConfigValue::Vector(ref mut val) = self {
26892 fidl::decode!(ConfigVectorValue, D, val, decoder, _inner_offset, depth)?;
26893 } else {
26894 unreachable!()
26895 }
26896 }
26897 #[allow(deprecated)]
26898 ordinal => {
26899 for _ in 0..num_handles {
26900 decoder.drop_next_handle()?;
26901 }
26902 *self = ConfigValue::__SourceBreaking { unknown_ordinal: ordinal };
26903 }
26904 }
26905 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
26906 return Err(fidl::Error::InvalidNumBytesInEnvelope);
26907 }
26908 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
26909 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
26910 }
26911 Ok(())
26912 }
26913 }
26914
26915 impl fidl::encoding::ValueTypeMarker for ConfigValueSource {
26916 type Borrowed<'a> = &'a Self;
26917 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
26918 value
26919 }
26920 }
26921
26922 unsafe impl fidl::encoding::TypeMarker for ConfigValueSource {
26923 type Owned = Self;
26924
26925 #[inline(always)]
26926 fn inline_align(_context: fidl::encoding::Context) -> usize {
26927 8
26928 }
26929
26930 #[inline(always)]
26931 fn inline_size(_context: fidl::encoding::Context) -> usize {
26932 16
26933 }
26934 }
26935
26936 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigValueSource, D>
26937 for &ConfigValueSource
26938 {
26939 #[inline]
26940 unsafe fn encode(
26941 self,
26942 encoder: &mut fidl::encoding::Encoder<'_, D>,
26943 offset: usize,
26944 _depth: fidl::encoding::Depth,
26945 ) -> fidl::Result<()> {
26946 encoder.debug_check_bounds::<ConfigValueSource>(offset);
26947 encoder.write_num::<u64>(self.ordinal(), offset);
26948 match self {
26949 ConfigValueSource::PackagePath(ref val) => fidl::encoding::encode_in_envelope::<
26950 fidl::encoding::UnboundedString,
26951 D,
26952 >(
26953 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
26954 val,
26955 ),
26956 encoder,
26957 offset + 8,
26958 _depth,
26959 ),
26960 ConfigValueSource::Capabilities(ref val) => {
26961 fidl::encoding::encode_in_envelope::<ConfigSourceCapabilities, D>(
26962 <ConfigSourceCapabilities as fidl::encoding::ValueTypeMarker>::borrow(val),
26963 encoder,
26964 offset + 8,
26965 _depth,
26966 )
26967 }
26968 ConfigValueSource::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
26969 }
26970 }
26971 }
26972
26973 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigValueSource {
26974 #[inline(always)]
26975 fn new_empty() -> Self {
26976 Self::__SourceBreaking { unknown_ordinal: 0 }
26977 }
26978
26979 #[inline]
26980 unsafe fn decode(
26981 &mut self,
26982 decoder: &mut fidl::encoding::Decoder<'_, D>,
26983 offset: usize,
26984 mut depth: fidl::encoding::Depth,
26985 ) -> fidl::Result<()> {
26986 decoder.debug_check_bounds::<Self>(offset);
26987 #[allow(unused_variables)]
26988 let next_out_of_line = decoder.next_out_of_line();
26989 let handles_before = decoder.remaining_handles();
26990 let (ordinal, inlined, num_bytes, num_handles) =
26991 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
26992
26993 let member_inline_size = match ordinal {
26994 1 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
26995 decoder.context,
26996 ),
26997 2 => <ConfigSourceCapabilities as fidl::encoding::TypeMarker>::inline_size(
26998 decoder.context,
26999 ),
27000 0 => return Err(fidl::Error::UnknownUnionTag),
27001 _ => num_bytes as usize,
27002 };
27003
27004 if inlined != (member_inline_size <= 4) {
27005 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27006 }
27007 let _inner_offset;
27008 if inlined {
27009 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27010 _inner_offset = offset + 8;
27011 } else {
27012 depth.increment()?;
27013 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27014 }
27015 match ordinal {
27016 1 => {
27017 #[allow(irrefutable_let_patterns)]
27018 if let ConfigValueSource::PackagePath(_) = self {
27019 } else {
27021 *self = ConfigValueSource::PackagePath(fidl::new_empty!(
27023 fidl::encoding::UnboundedString,
27024 D
27025 ));
27026 }
27027 #[allow(irrefutable_let_patterns)]
27028 if let ConfigValueSource::PackagePath(ref mut val) = self {
27029 fidl::decode!(
27030 fidl::encoding::UnboundedString,
27031 D,
27032 val,
27033 decoder,
27034 _inner_offset,
27035 depth
27036 )?;
27037 } else {
27038 unreachable!()
27039 }
27040 }
27041 2 => {
27042 #[allow(irrefutable_let_patterns)]
27043 if let ConfigValueSource::Capabilities(_) = self {
27044 } else {
27046 *self = ConfigValueSource::Capabilities(fidl::new_empty!(
27048 ConfigSourceCapabilities,
27049 D
27050 ));
27051 }
27052 #[allow(irrefutable_let_patterns)]
27053 if let ConfigValueSource::Capabilities(ref mut val) = self {
27054 fidl::decode!(
27055 ConfigSourceCapabilities,
27056 D,
27057 val,
27058 decoder,
27059 _inner_offset,
27060 depth
27061 )?;
27062 } else {
27063 unreachable!()
27064 }
27065 }
27066 #[allow(deprecated)]
27067 ordinal => {
27068 for _ in 0..num_handles {
27069 decoder.drop_next_handle()?;
27070 }
27071 *self = ConfigValueSource::__SourceBreaking { unknown_ordinal: ordinal };
27072 }
27073 }
27074 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27076 }
27077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27079 }
27080 Ok(())
27081 }
27082 }
27083
27084 impl fidl::encoding::ValueTypeMarker for ConfigVectorValue {
27085 type Borrowed<'a> = &'a Self;
27086 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27087 value
27088 }
27089 }
27090
27091 unsafe impl fidl::encoding::TypeMarker for ConfigVectorValue {
27092 type Owned = Self;
27093
27094 #[inline(always)]
27095 fn inline_align(_context: fidl::encoding::Context) -> usize {
27096 8
27097 }
27098
27099 #[inline(always)]
27100 fn inline_size(_context: fidl::encoding::Context) -> usize {
27101 16
27102 }
27103 }
27104
27105 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConfigVectorValue, D>
27106 for &ConfigVectorValue
27107 {
27108 #[inline]
27109 unsafe fn encode(
27110 self,
27111 encoder: &mut fidl::encoding::Encoder<'_, D>,
27112 offset: usize,
27113 _depth: fidl::encoding::Depth,
27114 ) -> fidl::Result<()> {
27115 encoder.debug_check_bounds::<ConfigVectorValue>(offset);
27116 encoder.write_num::<u64>(self.ordinal(), offset);
27117 match self {
27118 ConfigVectorValue::BoolVector(ref val) => {
27119 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<bool>, D>(
27120 <fidl::encoding::UnboundedVector<bool> as fidl::encoding::ValueTypeMarker>::borrow(val),
27121 encoder, offset + 8, _depth
27122 )
27123 }
27124 ConfigVectorValue::Uint8Vector(ref val) => {
27125 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u8>, D>(
27126 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(val),
27127 encoder, offset + 8, _depth
27128 )
27129 }
27130 ConfigVectorValue::Uint16Vector(ref val) => {
27131 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u16>, D>(
27132 <fidl::encoding::UnboundedVector<u16> as fidl::encoding::ValueTypeMarker>::borrow(val),
27133 encoder, offset + 8, _depth
27134 )
27135 }
27136 ConfigVectorValue::Uint32Vector(ref val) => {
27137 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u32>, D>(
27138 <fidl::encoding::UnboundedVector<u32> as fidl::encoding::ValueTypeMarker>::borrow(val),
27139 encoder, offset + 8, _depth
27140 )
27141 }
27142 ConfigVectorValue::Uint64Vector(ref val) => {
27143 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u64>, D>(
27144 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(val),
27145 encoder, offset + 8, _depth
27146 )
27147 }
27148 ConfigVectorValue::Int8Vector(ref val) => {
27149 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i8>, D>(
27150 <fidl::encoding::UnboundedVector<i8> as fidl::encoding::ValueTypeMarker>::borrow(val),
27151 encoder, offset + 8, _depth
27152 )
27153 }
27154 ConfigVectorValue::Int16Vector(ref val) => {
27155 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i16>, D>(
27156 <fidl::encoding::UnboundedVector<i16> as fidl::encoding::ValueTypeMarker>::borrow(val),
27157 encoder, offset + 8, _depth
27158 )
27159 }
27160 ConfigVectorValue::Int32Vector(ref val) => {
27161 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i32>, D>(
27162 <fidl::encoding::UnboundedVector<i32> as fidl::encoding::ValueTypeMarker>::borrow(val),
27163 encoder, offset + 8, _depth
27164 )
27165 }
27166 ConfigVectorValue::Int64Vector(ref val) => {
27167 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<i64>, D>(
27168 <fidl::encoding::UnboundedVector<i64> as fidl::encoding::ValueTypeMarker>::borrow(val),
27169 encoder, offset + 8, _depth
27170 )
27171 }
27172 ConfigVectorValue::StringVector(ref val) => {
27173 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>, D>(
27174 <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(val),
27175 encoder, offset + 8, _depth
27176 )
27177 }
27178 ConfigVectorValue::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27179 }
27180 }
27181 }
27182
27183 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConfigVectorValue {
27184 #[inline(always)]
27185 fn new_empty() -> Self {
27186 Self::__SourceBreaking { unknown_ordinal: 0 }
27187 }
27188
27189 #[inline]
27190 unsafe fn decode(
27191 &mut self,
27192 decoder: &mut fidl::encoding::Decoder<'_, D>,
27193 offset: usize,
27194 mut depth: fidl::encoding::Depth,
27195 ) -> fidl::Result<()> {
27196 decoder.debug_check_bounds::<Self>(offset);
27197 #[allow(unused_variables)]
27198 let next_out_of_line = decoder.next_out_of_line();
27199 let handles_before = decoder.remaining_handles();
27200 let (ordinal, inlined, num_bytes, num_handles) =
27201 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27202
27203 let member_inline_size = match ordinal {
27204 1 => <fidl::encoding::UnboundedVector<bool> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27205 2 => <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27206 3 => <fidl::encoding::UnboundedVector<u16> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27207 4 => <fidl::encoding::UnboundedVector<u32> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27208 5 => <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27209 6 => <fidl::encoding::UnboundedVector<i8> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27210 7 => <fidl::encoding::UnboundedVector<i16> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27211 8 => <fidl::encoding::UnboundedVector<i32> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27212 9 => <fidl::encoding::UnboundedVector<i64> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27213 10 => <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString> as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27214 0 => return Err(fidl::Error::UnknownUnionTag),
27215 _ => num_bytes as usize,
27216 };
27217
27218 if inlined != (member_inline_size <= 4) {
27219 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27220 }
27221 let _inner_offset;
27222 if inlined {
27223 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27224 _inner_offset = offset + 8;
27225 } else {
27226 depth.increment()?;
27227 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27228 }
27229 match ordinal {
27230 1 => {
27231 #[allow(irrefutable_let_patterns)]
27232 if let ConfigVectorValue::BoolVector(_) = self {
27233 } else {
27235 *self = ConfigVectorValue::BoolVector(fidl::new_empty!(
27237 fidl::encoding::UnboundedVector<bool>,
27238 D
27239 ));
27240 }
27241 #[allow(irrefutable_let_patterns)]
27242 if let ConfigVectorValue::BoolVector(ref mut val) = self {
27243 fidl::decode!(
27244 fidl::encoding::UnboundedVector<bool>,
27245 D,
27246 val,
27247 decoder,
27248 _inner_offset,
27249 depth
27250 )?;
27251 } else {
27252 unreachable!()
27253 }
27254 }
27255 2 => {
27256 #[allow(irrefutable_let_patterns)]
27257 if let ConfigVectorValue::Uint8Vector(_) = self {
27258 } else {
27260 *self = ConfigVectorValue::Uint8Vector(fidl::new_empty!(
27262 fidl::encoding::UnboundedVector<u8>,
27263 D
27264 ));
27265 }
27266 #[allow(irrefutable_let_patterns)]
27267 if let ConfigVectorValue::Uint8Vector(ref mut val) = self {
27268 fidl::decode!(
27269 fidl::encoding::UnboundedVector<u8>,
27270 D,
27271 val,
27272 decoder,
27273 _inner_offset,
27274 depth
27275 )?;
27276 } else {
27277 unreachable!()
27278 }
27279 }
27280 3 => {
27281 #[allow(irrefutable_let_patterns)]
27282 if let ConfigVectorValue::Uint16Vector(_) = self {
27283 } else {
27285 *self = ConfigVectorValue::Uint16Vector(fidl::new_empty!(
27287 fidl::encoding::UnboundedVector<u16>,
27288 D
27289 ));
27290 }
27291 #[allow(irrefutable_let_patterns)]
27292 if let ConfigVectorValue::Uint16Vector(ref mut val) = self {
27293 fidl::decode!(
27294 fidl::encoding::UnboundedVector<u16>,
27295 D,
27296 val,
27297 decoder,
27298 _inner_offset,
27299 depth
27300 )?;
27301 } else {
27302 unreachable!()
27303 }
27304 }
27305 4 => {
27306 #[allow(irrefutable_let_patterns)]
27307 if let ConfigVectorValue::Uint32Vector(_) = self {
27308 } else {
27310 *self = ConfigVectorValue::Uint32Vector(fidl::new_empty!(
27312 fidl::encoding::UnboundedVector<u32>,
27313 D
27314 ));
27315 }
27316 #[allow(irrefutable_let_patterns)]
27317 if let ConfigVectorValue::Uint32Vector(ref mut val) = self {
27318 fidl::decode!(
27319 fidl::encoding::UnboundedVector<u32>,
27320 D,
27321 val,
27322 decoder,
27323 _inner_offset,
27324 depth
27325 )?;
27326 } else {
27327 unreachable!()
27328 }
27329 }
27330 5 => {
27331 #[allow(irrefutable_let_patterns)]
27332 if let ConfigVectorValue::Uint64Vector(_) = self {
27333 } else {
27335 *self = ConfigVectorValue::Uint64Vector(fidl::new_empty!(
27337 fidl::encoding::UnboundedVector<u64>,
27338 D
27339 ));
27340 }
27341 #[allow(irrefutable_let_patterns)]
27342 if let ConfigVectorValue::Uint64Vector(ref mut val) = self {
27343 fidl::decode!(
27344 fidl::encoding::UnboundedVector<u64>,
27345 D,
27346 val,
27347 decoder,
27348 _inner_offset,
27349 depth
27350 )?;
27351 } else {
27352 unreachable!()
27353 }
27354 }
27355 6 => {
27356 #[allow(irrefutable_let_patterns)]
27357 if let ConfigVectorValue::Int8Vector(_) = self {
27358 } else {
27360 *self = ConfigVectorValue::Int8Vector(fidl::new_empty!(
27362 fidl::encoding::UnboundedVector<i8>,
27363 D
27364 ));
27365 }
27366 #[allow(irrefutable_let_patterns)]
27367 if let ConfigVectorValue::Int8Vector(ref mut val) = self {
27368 fidl::decode!(
27369 fidl::encoding::UnboundedVector<i8>,
27370 D,
27371 val,
27372 decoder,
27373 _inner_offset,
27374 depth
27375 )?;
27376 } else {
27377 unreachable!()
27378 }
27379 }
27380 7 => {
27381 #[allow(irrefutable_let_patterns)]
27382 if let ConfigVectorValue::Int16Vector(_) = self {
27383 } else {
27385 *self = ConfigVectorValue::Int16Vector(fidl::new_empty!(
27387 fidl::encoding::UnboundedVector<i16>,
27388 D
27389 ));
27390 }
27391 #[allow(irrefutable_let_patterns)]
27392 if let ConfigVectorValue::Int16Vector(ref mut val) = self {
27393 fidl::decode!(
27394 fidl::encoding::UnboundedVector<i16>,
27395 D,
27396 val,
27397 decoder,
27398 _inner_offset,
27399 depth
27400 )?;
27401 } else {
27402 unreachable!()
27403 }
27404 }
27405 8 => {
27406 #[allow(irrefutable_let_patterns)]
27407 if let ConfigVectorValue::Int32Vector(_) = self {
27408 } else {
27410 *self = ConfigVectorValue::Int32Vector(fidl::new_empty!(
27412 fidl::encoding::UnboundedVector<i32>,
27413 D
27414 ));
27415 }
27416 #[allow(irrefutable_let_patterns)]
27417 if let ConfigVectorValue::Int32Vector(ref mut val) = self {
27418 fidl::decode!(
27419 fidl::encoding::UnboundedVector<i32>,
27420 D,
27421 val,
27422 decoder,
27423 _inner_offset,
27424 depth
27425 )?;
27426 } else {
27427 unreachable!()
27428 }
27429 }
27430 9 => {
27431 #[allow(irrefutable_let_patterns)]
27432 if let ConfigVectorValue::Int64Vector(_) = self {
27433 } else {
27435 *self = ConfigVectorValue::Int64Vector(fidl::new_empty!(
27437 fidl::encoding::UnboundedVector<i64>,
27438 D
27439 ));
27440 }
27441 #[allow(irrefutable_let_patterns)]
27442 if let ConfigVectorValue::Int64Vector(ref mut val) = self {
27443 fidl::decode!(
27444 fidl::encoding::UnboundedVector<i64>,
27445 D,
27446 val,
27447 decoder,
27448 _inner_offset,
27449 depth
27450 )?;
27451 } else {
27452 unreachable!()
27453 }
27454 }
27455 10 => {
27456 #[allow(irrefutable_let_patterns)]
27457 if let ConfigVectorValue::StringVector(_) = self {
27458 } else {
27460 *self = ConfigVectorValue::StringVector(fidl::new_empty!(
27462 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
27463 D
27464 ));
27465 }
27466 #[allow(irrefutable_let_patterns)]
27467 if let ConfigVectorValue::StringVector(ref mut val) = self {
27468 fidl::decode!(
27469 fidl::encoding::UnboundedVector<fidl::encoding::UnboundedString>,
27470 D,
27471 val,
27472 decoder,
27473 _inner_offset,
27474 depth
27475 )?;
27476 } else {
27477 unreachable!()
27478 }
27479 }
27480 #[allow(deprecated)]
27481 ordinal => {
27482 for _ in 0..num_handles {
27483 decoder.drop_next_handle()?;
27484 }
27485 *self = ConfigVectorValue::__SourceBreaking { unknown_ordinal: ordinal };
27486 }
27487 }
27488 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27489 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27490 }
27491 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27492 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27493 }
27494 Ok(())
27495 }
27496 }
27497
27498 impl fidl::encoding::ValueTypeMarker for DebugRegistration {
27499 type Borrowed<'a> = &'a Self;
27500 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27501 value
27502 }
27503 }
27504
27505 unsafe impl fidl::encoding::TypeMarker for DebugRegistration {
27506 type Owned = Self;
27507
27508 #[inline(always)]
27509 fn inline_align(_context: fidl::encoding::Context) -> usize {
27510 8
27511 }
27512
27513 #[inline(always)]
27514 fn inline_size(_context: fidl::encoding::Context) -> usize {
27515 16
27516 }
27517 }
27518
27519 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DebugRegistration, D>
27520 for &DebugRegistration
27521 {
27522 #[inline]
27523 unsafe fn encode(
27524 self,
27525 encoder: &mut fidl::encoding::Encoder<'_, D>,
27526 offset: usize,
27527 _depth: fidl::encoding::Depth,
27528 ) -> fidl::Result<()> {
27529 encoder.debug_check_bounds::<DebugRegistration>(offset);
27530 encoder.write_num::<u64>(self.ordinal(), offset);
27531 match self {
27532 DebugRegistration::Protocol(ref val) => {
27533 fidl::encoding::encode_in_envelope::<DebugProtocolRegistration, D>(
27534 <DebugProtocolRegistration as fidl::encoding::ValueTypeMarker>::borrow(val),
27535 encoder,
27536 offset + 8,
27537 _depth,
27538 )
27539 }
27540 DebugRegistration::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27541 }
27542 }
27543 }
27544
27545 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DebugRegistration {
27546 #[inline(always)]
27547 fn new_empty() -> Self {
27548 Self::__SourceBreaking { unknown_ordinal: 0 }
27549 }
27550
27551 #[inline]
27552 unsafe fn decode(
27553 &mut self,
27554 decoder: &mut fidl::encoding::Decoder<'_, D>,
27555 offset: usize,
27556 mut depth: fidl::encoding::Depth,
27557 ) -> fidl::Result<()> {
27558 decoder.debug_check_bounds::<Self>(offset);
27559 #[allow(unused_variables)]
27560 let next_out_of_line = decoder.next_out_of_line();
27561 let handles_before = decoder.remaining_handles();
27562 let (ordinal, inlined, num_bytes, num_handles) =
27563 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27564
27565 let member_inline_size = match ordinal {
27566 1 => <DebugProtocolRegistration as fidl::encoding::TypeMarker>::inline_size(
27567 decoder.context,
27568 ),
27569 0 => return Err(fidl::Error::UnknownUnionTag),
27570 _ => num_bytes as usize,
27571 };
27572
27573 if inlined != (member_inline_size <= 4) {
27574 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27575 }
27576 let _inner_offset;
27577 if inlined {
27578 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27579 _inner_offset = offset + 8;
27580 } else {
27581 depth.increment()?;
27582 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27583 }
27584 match ordinal {
27585 1 => {
27586 #[allow(irrefutable_let_patterns)]
27587 if let DebugRegistration::Protocol(_) = self {
27588 } else {
27590 *self = DebugRegistration::Protocol(fidl::new_empty!(
27592 DebugProtocolRegistration,
27593 D
27594 ));
27595 }
27596 #[allow(irrefutable_let_patterns)]
27597 if let DebugRegistration::Protocol(ref mut val) = self {
27598 fidl::decode!(
27599 DebugProtocolRegistration,
27600 D,
27601 val,
27602 decoder,
27603 _inner_offset,
27604 depth
27605 )?;
27606 } else {
27607 unreachable!()
27608 }
27609 }
27610 #[allow(deprecated)]
27611 ordinal => {
27612 for _ in 0..num_handles {
27613 decoder.drop_next_handle()?;
27614 }
27615 *self = DebugRegistration::__SourceBreaking { unknown_ordinal: ordinal };
27616 }
27617 }
27618 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27619 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27620 }
27621 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27622 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27623 }
27624 Ok(())
27625 }
27626 }
27627
27628 impl fidl::encoding::ValueTypeMarker for Expose {
27629 type Borrowed<'a> = &'a Self;
27630 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27631 value
27632 }
27633 }
27634
27635 unsafe impl fidl::encoding::TypeMarker for Expose {
27636 type Owned = Self;
27637
27638 #[inline(always)]
27639 fn inline_align(_context: fidl::encoding::Context) -> usize {
27640 8
27641 }
27642
27643 #[inline(always)]
27644 fn inline_size(_context: fidl::encoding::Context) -> usize {
27645 16
27646 }
27647 }
27648
27649 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Expose, D> for &Expose {
27650 #[inline]
27651 unsafe fn encode(
27652 self,
27653 encoder: &mut fidl::encoding::Encoder<'_, D>,
27654 offset: usize,
27655 _depth: fidl::encoding::Depth,
27656 ) -> fidl::Result<()> {
27657 encoder.debug_check_bounds::<Expose>(offset);
27658 encoder.write_num::<u64>(self.ordinal(), offset);
27659 match self {
27660 Expose::Service(ref val) => fidl::encoding::encode_in_envelope::<ExposeService, D>(
27661 <ExposeService as fidl::encoding::ValueTypeMarker>::borrow(val),
27662 encoder,
27663 offset + 8,
27664 _depth,
27665 ),
27666 Expose::Protocol(ref val) => {
27667 fidl::encoding::encode_in_envelope::<ExposeProtocol, D>(
27668 <ExposeProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
27669 encoder,
27670 offset + 8,
27671 _depth,
27672 )
27673 }
27674 Expose::Directory(ref val) => {
27675 fidl::encoding::encode_in_envelope::<ExposeDirectory, D>(
27676 <ExposeDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
27677 encoder,
27678 offset + 8,
27679 _depth,
27680 )
27681 }
27682 Expose::Runner(ref val) => fidl::encoding::encode_in_envelope::<ExposeRunner, D>(
27683 <ExposeRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
27684 encoder,
27685 offset + 8,
27686 _depth,
27687 ),
27688 Expose::Resolver(ref val) => {
27689 fidl::encoding::encode_in_envelope::<ExposeResolver, D>(
27690 <ExposeResolver as fidl::encoding::ValueTypeMarker>::borrow(val),
27691 encoder,
27692 offset + 8,
27693 _depth,
27694 )
27695 }
27696 Expose::Dictionary(ref val) => {
27697 fidl::encoding::encode_in_envelope::<ExposeDictionary, D>(
27698 <ExposeDictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
27699 encoder,
27700 offset + 8,
27701 _depth,
27702 )
27703 }
27704 Expose::Config(ref val) => {
27705 fidl::encoding::encode_in_envelope::<ExposeConfiguration, D>(
27706 <ExposeConfiguration as fidl::encoding::ValueTypeMarker>::borrow(val),
27707 encoder,
27708 offset + 8,
27709 _depth,
27710 )
27711 }
27712 Expose::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27713 }
27714 }
27715 }
27716
27717 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Expose {
27718 #[inline(always)]
27719 fn new_empty() -> Self {
27720 Self::__SourceBreaking { unknown_ordinal: 0 }
27721 }
27722
27723 #[inline]
27724 unsafe fn decode(
27725 &mut self,
27726 decoder: &mut fidl::encoding::Decoder<'_, D>,
27727 offset: usize,
27728 mut depth: fidl::encoding::Depth,
27729 ) -> fidl::Result<()> {
27730 decoder.debug_check_bounds::<Self>(offset);
27731 #[allow(unused_variables)]
27732 let next_out_of_line = decoder.next_out_of_line();
27733 let handles_before = decoder.remaining_handles();
27734 let (ordinal, inlined, num_bytes, num_handles) =
27735 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27736
27737 let member_inline_size = match ordinal {
27738 1 => <ExposeService as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27739 2 => <ExposeProtocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27740 3 => <ExposeDirectory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27741 4 => <ExposeRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27742 5 => <ExposeResolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27743 7 => <ExposeDictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27744 8 => <ExposeConfiguration as fidl::encoding::TypeMarker>::inline_size(
27745 decoder.context,
27746 ),
27747 0 => return Err(fidl::Error::UnknownUnionTag),
27748 _ => num_bytes as usize,
27749 };
27750
27751 if inlined != (member_inline_size <= 4) {
27752 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27753 }
27754 let _inner_offset;
27755 if inlined {
27756 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27757 _inner_offset = offset + 8;
27758 } else {
27759 depth.increment()?;
27760 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27761 }
27762 match ordinal {
27763 1 => {
27764 #[allow(irrefutable_let_patterns)]
27765 if let Expose::Service(_) = self {
27766 } else {
27768 *self = Expose::Service(fidl::new_empty!(ExposeService, D));
27770 }
27771 #[allow(irrefutable_let_patterns)]
27772 if let Expose::Service(ref mut val) = self {
27773 fidl::decode!(ExposeService, D, val, decoder, _inner_offset, depth)?;
27774 } else {
27775 unreachable!()
27776 }
27777 }
27778 2 => {
27779 #[allow(irrefutable_let_patterns)]
27780 if let Expose::Protocol(_) = self {
27781 } else {
27783 *self = Expose::Protocol(fidl::new_empty!(ExposeProtocol, D));
27785 }
27786 #[allow(irrefutable_let_patterns)]
27787 if let Expose::Protocol(ref mut val) = self {
27788 fidl::decode!(ExposeProtocol, D, val, decoder, _inner_offset, depth)?;
27789 } else {
27790 unreachable!()
27791 }
27792 }
27793 3 => {
27794 #[allow(irrefutable_let_patterns)]
27795 if let Expose::Directory(_) = self {
27796 } else {
27798 *self = Expose::Directory(fidl::new_empty!(ExposeDirectory, D));
27800 }
27801 #[allow(irrefutable_let_patterns)]
27802 if let Expose::Directory(ref mut val) = self {
27803 fidl::decode!(ExposeDirectory, D, val, decoder, _inner_offset, depth)?;
27804 } else {
27805 unreachable!()
27806 }
27807 }
27808 4 => {
27809 #[allow(irrefutable_let_patterns)]
27810 if let Expose::Runner(_) = self {
27811 } else {
27813 *self = Expose::Runner(fidl::new_empty!(ExposeRunner, D));
27815 }
27816 #[allow(irrefutable_let_patterns)]
27817 if let Expose::Runner(ref mut val) = self {
27818 fidl::decode!(ExposeRunner, D, val, decoder, _inner_offset, depth)?;
27819 } else {
27820 unreachable!()
27821 }
27822 }
27823 5 => {
27824 #[allow(irrefutable_let_patterns)]
27825 if let Expose::Resolver(_) = self {
27826 } else {
27828 *self = Expose::Resolver(fidl::new_empty!(ExposeResolver, D));
27830 }
27831 #[allow(irrefutable_let_patterns)]
27832 if let Expose::Resolver(ref mut val) = self {
27833 fidl::decode!(ExposeResolver, D, val, decoder, _inner_offset, depth)?;
27834 } else {
27835 unreachable!()
27836 }
27837 }
27838 7 => {
27839 #[allow(irrefutable_let_patterns)]
27840 if let Expose::Dictionary(_) = self {
27841 } else {
27843 *self = Expose::Dictionary(fidl::new_empty!(ExposeDictionary, D));
27845 }
27846 #[allow(irrefutable_let_patterns)]
27847 if let Expose::Dictionary(ref mut val) = self {
27848 fidl::decode!(ExposeDictionary, D, val, decoder, _inner_offset, depth)?;
27849 } else {
27850 unreachable!()
27851 }
27852 }
27853 8 => {
27854 #[allow(irrefutable_let_patterns)]
27855 if let Expose::Config(_) = self {
27856 } else {
27858 *self = Expose::Config(fidl::new_empty!(ExposeConfiguration, D));
27860 }
27861 #[allow(irrefutable_let_patterns)]
27862 if let Expose::Config(ref mut val) = self {
27863 fidl::decode!(ExposeConfiguration, D, val, decoder, _inner_offset, depth)?;
27864 } else {
27865 unreachable!()
27866 }
27867 }
27868 #[allow(deprecated)]
27869 ordinal => {
27870 for _ in 0..num_handles {
27871 decoder.drop_next_handle()?;
27872 }
27873 *self = Expose::__SourceBreaking { unknown_ordinal: ordinal };
27874 }
27875 }
27876 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27877 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27878 }
27879 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27880 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27881 }
27882 Ok(())
27883 }
27884 }
27885
27886 impl fidl::encoding::ValueTypeMarker for LayoutConstraint {
27887 type Borrowed<'a> = &'a Self;
27888 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
27889 value
27890 }
27891 }
27892
27893 unsafe impl fidl::encoding::TypeMarker for LayoutConstraint {
27894 type Owned = Self;
27895
27896 #[inline(always)]
27897 fn inline_align(_context: fidl::encoding::Context) -> usize {
27898 8
27899 }
27900
27901 #[inline(always)]
27902 fn inline_size(_context: fidl::encoding::Context) -> usize {
27903 16
27904 }
27905 }
27906
27907 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LayoutConstraint, D>
27908 for &LayoutConstraint
27909 {
27910 #[inline]
27911 unsafe fn encode(
27912 self,
27913 encoder: &mut fidl::encoding::Encoder<'_, D>,
27914 offset: usize,
27915 _depth: fidl::encoding::Depth,
27916 ) -> fidl::Result<()> {
27917 encoder.debug_check_bounds::<LayoutConstraint>(offset);
27918 encoder.write_num::<u64>(self.ordinal(), offset);
27919 match self {
27920 LayoutConstraint::MaxSize(ref val) => fidl::encoding::encode_in_envelope::<u32, D>(
27921 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
27922 encoder,
27923 offset + 8,
27924 _depth,
27925 ),
27926 LayoutConstraint::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
27927 }
27928 }
27929 }
27930
27931 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LayoutConstraint {
27932 #[inline(always)]
27933 fn new_empty() -> Self {
27934 Self::__SourceBreaking { unknown_ordinal: 0 }
27935 }
27936
27937 #[inline]
27938 unsafe fn decode(
27939 &mut self,
27940 decoder: &mut fidl::encoding::Decoder<'_, D>,
27941 offset: usize,
27942 mut depth: fidl::encoding::Depth,
27943 ) -> fidl::Result<()> {
27944 decoder.debug_check_bounds::<Self>(offset);
27945 #[allow(unused_variables)]
27946 let next_out_of_line = decoder.next_out_of_line();
27947 let handles_before = decoder.remaining_handles();
27948 let (ordinal, inlined, num_bytes, num_handles) =
27949 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
27950
27951 let member_inline_size = match ordinal {
27952 1 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
27953 0 => return Err(fidl::Error::UnknownUnionTag),
27954 _ => num_bytes as usize,
27955 };
27956
27957 if inlined != (member_inline_size <= 4) {
27958 return Err(fidl::Error::InvalidInlineBitInEnvelope);
27959 }
27960 let _inner_offset;
27961 if inlined {
27962 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
27963 _inner_offset = offset + 8;
27964 } else {
27965 depth.increment()?;
27966 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
27967 }
27968 match ordinal {
27969 1 => {
27970 #[allow(irrefutable_let_patterns)]
27971 if let LayoutConstraint::MaxSize(_) = self {
27972 } else {
27974 *self = LayoutConstraint::MaxSize(fidl::new_empty!(u32, D));
27976 }
27977 #[allow(irrefutable_let_patterns)]
27978 if let LayoutConstraint::MaxSize(ref mut val) = self {
27979 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
27980 } else {
27981 unreachable!()
27982 }
27983 }
27984 #[allow(deprecated)]
27985 ordinal => {
27986 for _ in 0..num_handles {
27987 decoder.drop_next_handle()?;
27988 }
27989 *self = LayoutConstraint::__SourceBreaking { unknown_ordinal: ordinal };
27990 }
27991 }
27992 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
27993 return Err(fidl::Error::InvalidNumBytesInEnvelope);
27994 }
27995 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
27996 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
27997 }
27998 Ok(())
27999 }
28000 }
28001
28002 impl fidl::encoding::ValueTypeMarker for LayoutParameter {
28003 type Borrowed<'a> = &'a Self;
28004 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28005 value
28006 }
28007 }
28008
28009 unsafe impl fidl::encoding::TypeMarker for LayoutParameter {
28010 type Owned = Self;
28011
28012 #[inline(always)]
28013 fn inline_align(_context: fidl::encoding::Context) -> usize {
28014 8
28015 }
28016
28017 #[inline(always)]
28018 fn inline_size(_context: fidl::encoding::Context) -> usize {
28019 16
28020 }
28021 }
28022
28023 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<LayoutParameter, D>
28024 for &LayoutParameter
28025 {
28026 #[inline]
28027 unsafe fn encode(
28028 self,
28029 encoder: &mut fidl::encoding::Encoder<'_, D>,
28030 offset: usize,
28031 _depth: fidl::encoding::Depth,
28032 ) -> fidl::Result<()> {
28033 encoder.debug_check_bounds::<LayoutParameter>(offset);
28034 encoder.write_num::<u64>(self.ordinal(), offset);
28035 match self {
28036 LayoutParameter::NestedType(ref val) => {
28037 fidl::encoding::encode_in_envelope::<ConfigType, D>(
28038 <ConfigType as fidl::encoding::ValueTypeMarker>::borrow(val),
28039 encoder,
28040 offset + 8,
28041 _depth,
28042 )
28043 }
28044 LayoutParameter::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28045 }
28046 }
28047 }
28048
28049 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for LayoutParameter {
28050 #[inline(always)]
28051 fn new_empty() -> Self {
28052 Self::__SourceBreaking { unknown_ordinal: 0 }
28053 }
28054
28055 #[inline]
28056 unsafe fn decode(
28057 &mut self,
28058 decoder: &mut fidl::encoding::Decoder<'_, D>,
28059 offset: usize,
28060 mut depth: fidl::encoding::Depth,
28061 ) -> fidl::Result<()> {
28062 decoder.debug_check_bounds::<Self>(offset);
28063 #[allow(unused_variables)]
28064 let next_out_of_line = decoder.next_out_of_line();
28065 let handles_before = decoder.remaining_handles();
28066 let (ordinal, inlined, num_bytes, num_handles) =
28067 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28068
28069 let member_inline_size = match ordinal {
28070 1 => <ConfigType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28071 0 => return Err(fidl::Error::UnknownUnionTag),
28072 _ => num_bytes as usize,
28073 };
28074
28075 if inlined != (member_inline_size <= 4) {
28076 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28077 }
28078 let _inner_offset;
28079 if inlined {
28080 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28081 _inner_offset = offset + 8;
28082 } else {
28083 depth.increment()?;
28084 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28085 }
28086 match ordinal {
28087 1 => {
28088 #[allow(irrefutable_let_patterns)]
28089 if let LayoutParameter::NestedType(_) = self {
28090 } else {
28092 *self = LayoutParameter::NestedType(fidl::new_empty!(ConfigType, D));
28094 }
28095 #[allow(irrefutable_let_patterns)]
28096 if let LayoutParameter::NestedType(ref mut val) = self {
28097 fidl::decode!(ConfigType, D, val, decoder, _inner_offset, depth)?;
28098 } else {
28099 unreachable!()
28100 }
28101 }
28102 #[allow(deprecated)]
28103 ordinal => {
28104 for _ in 0..num_handles {
28105 decoder.drop_next_handle()?;
28106 }
28107 *self = LayoutParameter::__SourceBreaking { unknown_ordinal: ordinal };
28108 }
28109 }
28110 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28111 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28112 }
28113 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28114 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28115 }
28116 Ok(())
28117 }
28118 }
28119
28120 impl fidl::encoding::ValueTypeMarker for Offer {
28121 type Borrowed<'a> = &'a Self;
28122 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28123 value
28124 }
28125 }
28126
28127 unsafe impl fidl::encoding::TypeMarker for Offer {
28128 type Owned = Self;
28129
28130 #[inline(always)]
28131 fn inline_align(_context: fidl::encoding::Context) -> usize {
28132 8
28133 }
28134
28135 #[inline(always)]
28136 fn inline_size(_context: fidl::encoding::Context) -> usize {
28137 16
28138 }
28139 }
28140
28141 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Offer, D> for &Offer {
28142 #[inline]
28143 unsafe fn encode(
28144 self,
28145 encoder: &mut fidl::encoding::Encoder<'_, D>,
28146 offset: usize,
28147 _depth: fidl::encoding::Depth,
28148 ) -> fidl::Result<()> {
28149 encoder.debug_check_bounds::<Offer>(offset);
28150 encoder.write_num::<u64>(self.ordinal(), offset);
28151 match self {
28152 Offer::Service(ref val) => fidl::encoding::encode_in_envelope::<OfferService, D>(
28153 <OfferService as fidl::encoding::ValueTypeMarker>::borrow(val),
28154 encoder,
28155 offset + 8,
28156 _depth,
28157 ),
28158 Offer::Protocol(ref val) => fidl::encoding::encode_in_envelope::<OfferProtocol, D>(
28159 <OfferProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
28160 encoder,
28161 offset + 8,
28162 _depth,
28163 ),
28164 Offer::Directory(ref val) => {
28165 fidl::encoding::encode_in_envelope::<OfferDirectory, D>(
28166 <OfferDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
28167 encoder,
28168 offset + 8,
28169 _depth,
28170 )
28171 }
28172 Offer::Storage(ref val) => fidl::encoding::encode_in_envelope::<OfferStorage, D>(
28173 <OfferStorage as fidl::encoding::ValueTypeMarker>::borrow(val),
28174 encoder,
28175 offset + 8,
28176 _depth,
28177 ),
28178 Offer::Runner(ref val) => fidl::encoding::encode_in_envelope::<OfferRunner, D>(
28179 <OfferRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
28180 encoder,
28181 offset + 8,
28182 _depth,
28183 ),
28184 Offer::Resolver(ref val) => fidl::encoding::encode_in_envelope::<OfferResolver, D>(
28185 <OfferResolver as fidl::encoding::ValueTypeMarker>::borrow(val),
28186 encoder,
28187 offset + 8,
28188 _depth,
28189 ),
28190 Offer::EventStream(ref val) => {
28191 fidl::encoding::encode_in_envelope::<OfferEventStream, D>(
28192 <OfferEventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
28193 encoder,
28194 offset + 8,
28195 _depth,
28196 )
28197 }
28198 Offer::Dictionary(ref val) => {
28199 fidl::encoding::encode_in_envelope::<OfferDictionary, D>(
28200 <OfferDictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
28201 encoder,
28202 offset + 8,
28203 _depth,
28204 )
28205 }
28206 Offer::Config(ref val) => {
28207 fidl::encoding::encode_in_envelope::<OfferConfiguration, D>(
28208 <OfferConfiguration as fidl::encoding::ValueTypeMarker>::borrow(val),
28209 encoder,
28210 offset + 8,
28211 _depth,
28212 )
28213 }
28214 Offer::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28215 }
28216 }
28217 }
28218
28219 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Offer {
28220 #[inline(always)]
28221 fn new_empty() -> Self {
28222 Self::__SourceBreaking { unknown_ordinal: 0 }
28223 }
28224
28225 #[inline]
28226 unsafe fn decode(
28227 &mut self,
28228 decoder: &mut fidl::encoding::Decoder<'_, D>,
28229 offset: usize,
28230 mut depth: fidl::encoding::Depth,
28231 ) -> fidl::Result<()> {
28232 decoder.debug_check_bounds::<Self>(offset);
28233 #[allow(unused_variables)]
28234 let next_out_of_line = decoder.next_out_of_line();
28235 let handles_before = decoder.remaining_handles();
28236 let (ordinal, inlined, num_bytes, num_handles) =
28237 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28238
28239 let member_inline_size = match ordinal {
28240 1 => <OfferService as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28241 2 => <OfferProtocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28242 3 => <OfferDirectory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28243 4 => <OfferStorage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28244 5 => <OfferRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28245 6 => <OfferResolver as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28246 8 => <OfferEventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28247 9 => <OfferDictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28248 10 => {
28249 <OfferConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context)
28250 }
28251 0 => return Err(fidl::Error::UnknownUnionTag),
28252 _ => num_bytes as usize,
28253 };
28254
28255 if inlined != (member_inline_size <= 4) {
28256 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28257 }
28258 let _inner_offset;
28259 if inlined {
28260 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28261 _inner_offset = offset + 8;
28262 } else {
28263 depth.increment()?;
28264 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28265 }
28266 match ordinal {
28267 1 => {
28268 #[allow(irrefutable_let_patterns)]
28269 if let Offer::Service(_) = self {
28270 } else {
28272 *self = Offer::Service(fidl::new_empty!(OfferService, D));
28274 }
28275 #[allow(irrefutable_let_patterns)]
28276 if let Offer::Service(ref mut val) = self {
28277 fidl::decode!(OfferService, D, val, decoder, _inner_offset, depth)?;
28278 } else {
28279 unreachable!()
28280 }
28281 }
28282 2 => {
28283 #[allow(irrefutable_let_patterns)]
28284 if let Offer::Protocol(_) = self {
28285 } else {
28287 *self = Offer::Protocol(fidl::new_empty!(OfferProtocol, D));
28289 }
28290 #[allow(irrefutable_let_patterns)]
28291 if let Offer::Protocol(ref mut val) = self {
28292 fidl::decode!(OfferProtocol, D, val, decoder, _inner_offset, depth)?;
28293 } else {
28294 unreachable!()
28295 }
28296 }
28297 3 => {
28298 #[allow(irrefutable_let_patterns)]
28299 if let Offer::Directory(_) = self {
28300 } else {
28302 *self = Offer::Directory(fidl::new_empty!(OfferDirectory, D));
28304 }
28305 #[allow(irrefutable_let_patterns)]
28306 if let Offer::Directory(ref mut val) = self {
28307 fidl::decode!(OfferDirectory, D, val, decoder, _inner_offset, depth)?;
28308 } else {
28309 unreachable!()
28310 }
28311 }
28312 4 => {
28313 #[allow(irrefutable_let_patterns)]
28314 if let Offer::Storage(_) = self {
28315 } else {
28317 *self = Offer::Storage(fidl::new_empty!(OfferStorage, D));
28319 }
28320 #[allow(irrefutable_let_patterns)]
28321 if let Offer::Storage(ref mut val) = self {
28322 fidl::decode!(OfferStorage, D, val, decoder, _inner_offset, depth)?;
28323 } else {
28324 unreachable!()
28325 }
28326 }
28327 5 => {
28328 #[allow(irrefutable_let_patterns)]
28329 if let Offer::Runner(_) = self {
28330 } else {
28332 *self = Offer::Runner(fidl::new_empty!(OfferRunner, D));
28334 }
28335 #[allow(irrefutable_let_patterns)]
28336 if let Offer::Runner(ref mut val) = self {
28337 fidl::decode!(OfferRunner, D, val, decoder, _inner_offset, depth)?;
28338 } else {
28339 unreachable!()
28340 }
28341 }
28342 6 => {
28343 #[allow(irrefutable_let_patterns)]
28344 if let Offer::Resolver(_) = self {
28345 } else {
28347 *self = Offer::Resolver(fidl::new_empty!(OfferResolver, D));
28349 }
28350 #[allow(irrefutable_let_patterns)]
28351 if let Offer::Resolver(ref mut val) = self {
28352 fidl::decode!(OfferResolver, D, val, decoder, _inner_offset, depth)?;
28353 } else {
28354 unreachable!()
28355 }
28356 }
28357 8 => {
28358 #[allow(irrefutable_let_patterns)]
28359 if let Offer::EventStream(_) = self {
28360 } else {
28362 *self = Offer::EventStream(fidl::new_empty!(OfferEventStream, D));
28364 }
28365 #[allow(irrefutable_let_patterns)]
28366 if let Offer::EventStream(ref mut val) = self {
28367 fidl::decode!(OfferEventStream, D, val, decoder, _inner_offset, depth)?;
28368 } else {
28369 unreachable!()
28370 }
28371 }
28372 9 => {
28373 #[allow(irrefutable_let_patterns)]
28374 if let Offer::Dictionary(_) = self {
28375 } else {
28377 *self = Offer::Dictionary(fidl::new_empty!(OfferDictionary, D));
28379 }
28380 #[allow(irrefutable_let_patterns)]
28381 if let Offer::Dictionary(ref mut val) = self {
28382 fidl::decode!(OfferDictionary, D, val, decoder, _inner_offset, depth)?;
28383 } else {
28384 unreachable!()
28385 }
28386 }
28387 10 => {
28388 #[allow(irrefutable_let_patterns)]
28389 if let Offer::Config(_) = self {
28390 } else {
28392 *self = Offer::Config(fidl::new_empty!(OfferConfiguration, D));
28394 }
28395 #[allow(irrefutable_let_patterns)]
28396 if let Offer::Config(ref mut val) = self {
28397 fidl::decode!(OfferConfiguration, D, val, decoder, _inner_offset, depth)?;
28398 } else {
28399 unreachable!()
28400 }
28401 }
28402 #[allow(deprecated)]
28403 ordinal => {
28404 for _ in 0..num_handles {
28405 decoder.drop_next_handle()?;
28406 }
28407 *self = Offer::__SourceBreaking { unknown_ordinal: ordinal };
28408 }
28409 }
28410 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28411 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28412 }
28413 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28414 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28415 }
28416 Ok(())
28417 }
28418 }
28419
28420 impl fidl::encoding::ValueTypeMarker for Ref {
28421 type Borrowed<'a> = &'a Self;
28422 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
28423 value
28424 }
28425 }
28426
28427 unsafe impl fidl::encoding::TypeMarker for Ref {
28428 type Owned = Self;
28429
28430 #[inline(always)]
28431 fn inline_align(_context: fidl::encoding::Context) -> usize {
28432 8
28433 }
28434
28435 #[inline(always)]
28436 fn inline_size(_context: fidl::encoding::Context) -> usize {
28437 16
28438 }
28439 }
28440
28441 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Ref, D> for &Ref {
28442 #[inline]
28443 unsafe fn encode(
28444 self,
28445 encoder: &mut fidl::encoding::Encoder<'_, D>,
28446 offset: usize,
28447 _depth: fidl::encoding::Depth,
28448 ) -> fidl::Result<()> {
28449 encoder.debug_check_bounds::<Ref>(offset);
28450 encoder.write_num::<u64>(self.ordinal(), offset);
28451 match self {
28452 Ref::Parent(ref val) => fidl::encoding::encode_in_envelope::<ParentRef, D>(
28453 <ParentRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28454 encoder,
28455 offset + 8,
28456 _depth,
28457 ),
28458 Ref::Self_(ref val) => fidl::encoding::encode_in_envelope::<SelfRef, D>(
28459 <SelfRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28460 encoder,
28461 offset + 8,
28462 _depth,
28463 ),
28464 Ref::Child(ref val) => fidl::encoding::encode_in_envelope::<ChildRef, D>(
28465 <ChildRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28466 encoder,
28467 offset + 8,
28468 _depth,
28469 ),
28470 Ref::Collection(ref val) => fidl::encoding::encode_in_envelope::<CollectionRef, D>(
28471 <CollectionRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28472 encoder,
28473 offset + 8,
28474 _depth,
28475 ),
28476 Ref::Framework(ref val) => fidl::encoding::encode_in_envelope::<FrameworkRef, D>(
28477 <FrameworkRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28478 encoder,
28479 offset + 8,
28480 _depth,
28481 ),
28482 Ref::Capability(ref val) => fidl::encoding::encode_in_envelope::<CapabilityRef, D>(
28483 <CapabilityRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28484 encoder,
28485 offset + 8,
28486 _depth,
28487 ),
28488 Ref::Debug(ref val) => fidl::encoding::encode_in_envelope::<DebugRef, D>(
28489 <DebugRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28490 encoder,
28491 offset + 8,
28492 _depth,
28493 ),
28494 Ref::VoidType(ref val) => fidl::encoding::encode_in_envelope::<VoidRef, D>(
28495 <VoidRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28496 encoder,
28497 offset + 8,
28498 _depth,
28499 ),
28500 Ref::Environment(ref val) => {
28501 fidl::encoding::encode_in_envelope::<EnvironmentRef, D>(
28502 <EnvironmentRef as fidl::encoding::ValueTypeMarker>::borrow(val),
28503 encoder,
28504 offset + 8,
28505 _depth,
28506 )
28507 }
28508 Ref::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28509 }
28510 }
28511 }
28512
28513 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Ref {
28514 #[inline(always)]
28515 fn new_empty() -> Self {
28516 Self::__SourceBreaking { unknown_ordinal: 0 }
28517 }
28518
28519 #[inline]
28520 unsafe fn decode(
28521 &mut self,
28522 decoder: &mut fidl::encoding::Decoder<'_, D>,
28523 offset: usize,
28524 mut depth: fidl::encoding::Depth,
28525 ) -> fidl::Result<()> {
28526 decoder.debug_check_bounds::<Self>(offset);
28527 #[allow(unused_variables)]
28528 let next_out_of_line = decoder.next_out_of_line();
28529 let handles_before = decoder.remaining_handles();
28530 let (ordinal, inlined, num_bytes, num_handles) =
28531 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28532
28533 let member_inline_size = match ordinal {
28534 1 => <ParentRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28535 2 => <SelfRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28536 3 => <ChildRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28537 4 => <CollectionRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28538 5 => <FrameworkRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28539 6 => <CapabilityRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28540 7 => <DebugRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28541 8 => <VoidRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28542 9 => <EnvironmentRef as fidl::encoding::TypeMarker>::inline_size(decoder.context),
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 Ref::Parent(_) = self {
28562 } else {
28564 *self = Ref::Parent(fidl::new_empty!(ParentRef, D));
28566 }
28567 #[allow(irrefutable_let_patterns)]
28568 if let Ref::Parent(ref mut val) = self {
28569 fidl::decode!(ParentRef, D, val, decoder, _inner_offset, depth)?;
28570 } else {
28571 unreachable!()
28572 }
28573 }
28574 2 => {
28575 #[allow(irrefutable_let_patterns)]
28576 if let Ref::Self_(_) = self {
28577 } else {
28579 *self = Ref::Self_(fidl::new_empty!(SelfRef, D));
28581 }
28582 #[allow(irrefutable_let_patterns)]
28583 if let Ref::Self_(ref mut val) = self {
28584 fidl::decode!(SelfRef, D, val, decoder, _inner_offset, depth)?;
28585 } else {
28586 unreachable!()
28587 }
28588 }
28589 3 => {
28590 #[allow(irrefutable_let_patterns)]
28591 if let Ref::Child(_) = self {
28592 } else {
28594 *self = Ref::Child(fidl::new_empty!(ChildRef, D));
28596 }
28597 #[allow(irrefutable_let_patterns)]
28598 if let Ref::Child(ref mut val) = self {
28599 fidl::decode!(ChildRef, D, val, decoder, _inner_offset, depth)?;
28600 } else {
28601 unreachable!()
28602 }
28603 }
28604 4 => {
28605 #[allow(irrefutable_let_patterns)]
28606 if let Ref::Collection(_) = self {
28607 } else {
28609 *self = Ref::Collection(fidl::new_empty!(CollectionRef, D));
28611 }
28612 #[allow(irrefutable_let_patterns)]
28613 if let Ref::Collection(ref mut val) = self {
28614 fidl::decode!(CollectionRef, D, val, decoder, _inner_offset, depth)?;
28615 } else {
28616 unreachable!()
28617 }
28618 }
28619 5 => {
28620 #[allow(irrefutable_let_patterns)]
28621 if let Ref::Framework(_) = self {
28622 } else {
28624 *self = Ref::Framework(fidl::new_empty!(FrameworkRef, D));
28626 }
28627 #[allow(irrefutable_let_patterns)]
28628 if let Ref::Framework(ref mut val) = self {
28629 fidl::decode!(FrameworkRef, D, val, decoder, _inner_offset, depth)?;
28630 } else {
28631 unreachable!()
28632 }
28633 }
28634 6 => {
28635 #[allow(irrefutable_let_patterns)]
28636 if let Ref::Capability(_) = self {
28637 } else {
28639 *self = Ref::Capability(fidl::new_empty!(CapabilityRef, D));
28641 }
28642 #[allow(irrefutable_let_patterns)]
28643 if let Ref::Capability(ref mut val) = self {
28644 fidl::decode!(CapabilityRef, D, val, decoder, _inner_offset, depth)?;
28645 } else {
28646 unreachable!()
28647 }
28648 }
28649 7 => {
28650 #[allow(irrefutable_let_patterns)]
28651 if let Ref::Debug(_) = self {
28652 } else {
28654 *self = Ref::Debug(fidl::new_empty!(DebugRef, D));
28656 }
28657 #[allow(irrefutable_let_patterns)]
28658 if let Ref::Debug(ref mut val) = self {
28659 fidl::decode!(DebugRef, D, val, decoder, _inner_offset, depth)?;
28660 } else {
28661 unreachable!()
28662 }
28663 }
28664 8 => {
28665 #[allow(irrefutable_let_patterns)]
28666 if let Ref::VoidType(_) = self {
28667 } else {
28669 *self = Ref::VoidType(fidl::new_empty!(VoidRef, D));
28671 }
28672 #[allow(irrefutable_let_patterns)]
28673 if let Ref::VoidType(ref mut val) = self {
28674 fidl::decode!(VoidRef, D, val, decoder, _inner_offset, depth)?;
28675 } else {
28676 unreachable!()
28677 }
28678 }
28679 9 => {
28680 #[allow(irrefutable_let_patterns)]
28681 if let Ref::Environment(_) = self {
28682 } else {
28684 *self = Ref::Environment(fidl::new_empty!(EnvironmentRef, D));
28686 }
28687 #[allow(irrefutable_let_patterns)]
28688 if let Ref::Environment(ref mut val) = self {
28689 fidl::decode!(EnvironmentRef, 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 = Ref::__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 Use {
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 Use {
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<Use, D> for &Use {
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::<Use>(offset);
28742 encoder.write_num::<u64>(self.ordinal(), offset);
28743 match self {
28744 Use::Service(ref val) => fidl::encoding::encode_in_envelope::<UseService, D>(
28745 <UseService as fidl::encoding::ValueTypeMarker>::borrow(val),
28746 encoder,
28747 offset + 8,
28748 _depth,
28749 ),
28750 Use::Protocol(ref val) => fidl::encoding::encode_in_envelope::<UseProtocol, D>(
28751 <UseProtocol as fidl::encoding::ValueTypeMarker>::borrow(val),
28752 encoder,
28753 offset + 8,
28754 _depth,
28755 ),
28756 Use::Directory(ref val) => fidl::encoding::encode_in_envelope::<UseDirectory, D>(
28757 <UseDirectory as fidl::encoding::ValueTypeMarker>::borrow(val),
28758 encoder,
28759 offset + 8,
28760 _depth,
28761 ),
28762 Use::Storage(ref val) => fidl::encoding::encode_in_envelope::<UseStorage, D>(
28763 <UseStorage as fidl::encoding::ValueTypeMarker>::borrow(val),
28764 encoder,
28765 offset + 8,
28766 _depth,
28767 ),
28768 Use::EventStream(ref val) => {
28769 fidl::encoding::encode_in_envelope::<UseEventStream, D>(
28770 <UseEventStream as fidl::encoding::ValueTypeMarker>::borrow(val),
28771 encoder,
28772 offset + 8,
28773 _depth,
28774 )
28775 }
28776 Use::Runner(ref val) => fidl::encoding::encode_in_envelope::<UseRunner, D>(
28777 <UseRunner as fidl::encoding::ValueTypeMarker>::borrow(val),
28778 encoder,
28779 offset + 8,
28780 _depth,
28781 ),
28782 Use::Config(ref val) => fidl::encoding::encode_in_envelope::<UseConfiguration, D>(
28783 <UseConfiguration as fidl::encoding::ValueTypeMarker>::borrow(val),
28784 encoder,
28785 offset + 8,
28786 _depth,
28787 ),
28788 Use::Dictionary(ref val) => fidl::encoding::encode_in_envelope::<UseDictionary, D>(
28789 <UseDictionary as fidl::encoding::ValueTypeMarker>::borrow(val),
28790 encoder,
28791 offset + 8,
28792 _depth,
28793 ),
28794 Use::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
28795 }
28796 }
28797 }
28798
28799 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Use {
28800 #[inline(always)]
28801 fn new_empty() -> Self {
28802 Self::__SourceBreaking { unknown_ordinal: 0 }
28803 }
28804
28805 #[inline]
28806 unsafe fn decode(
28807 &mut self,
28808 decoder: &mut fidl::encoding::Decoder<'_, D>,
28809 offset: usize,
28810 mut depth: fidl::encoding::Depth,
28811 ) -> fidl::Result<()> {
28812 decoder.debug_check_bounds::<Self>(offset);
28813 #[allow(unused_variables)]
28814 let next_out_of_line = decoder.next_out_of_line();
28815 let handles_before = decoder.remaining_handles();
28816 let (ordinal, inlined, num_bytes, num_handles) =
28817 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
28818
28819 let member_inline_size = match ordinal {
28820 1 => <UseService as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28821 2 => <UseProtocol as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28822 3 => <UseDirectory as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28823 4 => <UseStorage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28824 7 => <UseEventStream as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28825 8 => <UseRunner as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28826 9 => <UseConfiguration as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28827 10 => <UseDictionary as fidl::encoding::TypeMarker>::inline_size(decoder.context),
28828 0 => return Err(fidl::Error::UnknownUnionTag),
28829 _ => num_bytes as usize,
28830 };
28831
28832 if inlined != (member_inline_size <= 4) {
28833 return Err(fidl::Error::InvalidInlineBitInEnvelope);
28834 }
28835 let _inner_offset;
28836 if inlined {
28837 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
28838 _inner_offset = offset + 8;
28839 } else {
28840 depth.increment()?;
28841 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
28842 }
28843 match ordinal {
28844 1 => {
28845 #[allow(irrefutable_let_patterns)]
28846 if let Use::Service(_) = self {
28847 } else {
28849 *self = Use::Service(fidl::new_empty!(UseService, D));
28851 }
28852 #[allow(irrefutable_let_patterns)]
28853 if let Use::Service(ref mut val) = self {
28854 fidl::decode!(UseService, D, val, decoder, _inner_offset, depth)?;
28855 } else {
28856 unreachable!()
28857 }
28858 }
28859 2 => {
28860 #[allow(irrefutable_let_patterns)]
28861 if let Use::Protocol(_) = self {
28862 } else {
28864 *self = Use::Protocol(fidl::new_empty!(UseProtocol, D));
28866 }
28867 #[allow(irrefutable_let_patterns)]
28868 if let Use::Protocol(ref mut val) = self {
28869 fidl::decode!(UseProtocol, D, val, decoder, _inner_offset, depth)?;
28870 } else {
28871 unreachable!()
28872 }
28873 }
28874 3 => {
28875 #[allow(irrefutable_let_patterns)]
28876 if let Use::Directory(_) = self {
28877 } else {
28879 *self = Use::Directory(fidl::new_empty!(UseDirectory, D));
28881 }
28882 #[allow(irrefutable_let_patterns)]
28883 if let Use::Directory(ref mut val) = self {
28884 fidl::decode!(UseDirectory, D, val, decoder, _inner_offset, depth)?;
28885 } else {
28886 unreachable!()
28887 }
28888 }
28889 4 => {
28890 #[allow(irrefutable_let_patterns)]
28891 if let Use::Storage(_) = self {
28892 } else {
28894 *self = Use::Storage(fidl::new_empty!(UseStorage, D));
28896 }
28897 #[allow(irrefutable_let_patterns)]
28898 if let Use::Storage(ref mut val) = self {
28899 fidl::decode!(UseStorage, D, val, decoder, _inner_offset, depth)?;
28900 } else {
28901 unreachable!()
28902 }
28903 }
28904 7 => {
28905 #[allow(irrefutable_let_patterns)]
28906 if let Use::EventStream(_) = self {
28907 } else {
28909 *self = Use::EventStream(fidl::new_empty!(UseEventStream, D));
28911 }
28912 #[allow(irrefutable_let_patterns)]
28913 if let Use::EventStream(ref mut val) = self {
28914 fidl::decode!(UseEventStream, D, val, decoder, _inner_offset, depth)?;
28915 } else {
28916 unreachable!()
28917 }
28918 }
28919 8 => {
28920 #[allow(irrefutable_let_patterns)]
28921 if let Use::Runner(_) = self {
28922 } else {
28924 *self = Use::Runner(fidl::new_empty!(UseRunner, D));
28926 }
28927 #[allow(irrefutable_let_patterns)]
28928 if let Use::Runner(ref mut val) = self {
28929 fidl::decode!(UseRunner, D, val, decoder, _inner_offset, depth)?;
28930 } else {
28931 unreachable!()
28932 }
28933 }
28934 9 => {
28935 #[allow(irrefutable_let_patterns)]
28936 if let Use::Config(_) = self {
28937 } else {
28939 *self = Use::Config(fidl::new_empty!(UseConfiguration, D));
28941 }
28942 #[allow(irrefutable_let_patterns)]
28943 if let Use::Config(ref mut val) = self {
28944 fidl::decode!(UseConfiguration, D, val, decoder, _inner_offset, depth)?;
28945 } else {
28946 unreachable!()
28947 }
28948 }
28949 10 => {
28950 #[allow(irrefutable_let_patterns)]
28951 if let Use::Dictionary(_) = self {
28952 } else {
28954 *self = Use::Dictionary(fidl::new_empty!(UseDictionary, D));
28956 }
28957 #[allow(irrefutable_let_patterns)]
28958 if let Use::Dictionary(ref mut val) = self {
28959 fidl::decode!(UseDictionary, D, val, decoder, _inner_offset, depth)?;
28960 } else {
28961 unreachable!()
28962 }
28963 }
28964 #[allow(deprecated)]
28965 ordinal => {
28966 for _ in 0..num_handles {
28967 decoder.drop_next_handle()?;
28968 }
28969 *self = Use::__SourceBreaking { unknown_ordinal: ordinal };
28970 }
28971 }
28972 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
28973 return Err(fidl::Error::InvalidNumBytesInEnvelope);
28974 }
28975 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
28976 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
28977 }
28978 Ok(())
28979 }
28980 }
28981}