1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_ebpf__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
16pub struct ProgramHandle {
17 pub handle: fidl::EventPair,
18}
19
20impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ProgramHandle {}
21
22#[derive(Debug, Default, PartialEq)]
24pub struct Map {
25 pub schema: Option<MapSchema>,
27 pub vmo: Option<fidl::Vmo>,
30 #[doc(hidden)]
31 pub __source_breaking: fidl::marker::SourceBreaking,
32}
33
34impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for Map {}
35
36#[derive(Debug, Default, PartialEq)]
38pub struct VerifiedProgram {
39 pub code: Option<Vec<u64>>,
41 pub struct_access_instructions: Option<Vec<StructAccess>>,
43 pub maps: Option<Vec<Map>>,
46 #[doc(hidden)]
47 pub __source_breaking: fidl::marker::SourceBreaking,
48}
49
50impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for VerifiedProgram {}
51
52mod internal {
53 use super::*;
54
55 impl fidl::encoding::ResourceTypeMarker for ProgramHandle {
56 type Borrowed<'a> = &'a mut Self;
57 fn take_or_borrow<'a>(
58 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
59 ) -> Self::Borrowed<'a> {
60 value
61 }
62 }
63
64 unsafe impl fidl::encoding::TypeMarker for ProgramHandle {
65 type Owned = Self;
66
67 #[inline(always)]
68 fn inline_align(_context: fidl::encoding::Context) -> usize {
69 4
70 }
71
72 #[inline(always)]
73 fn inline_size(_context: fidl::encoding::Context) -> usize {
74 4
75 }
76 }
77
78 unsafe impl fidl::encoding::Encode<ProgramHandle, fidl::encoding::DefaultFuchsiaResourceDialect>
79 for &mut ProgramHandle
80 {
81 #[inline]
82 unsafe fn encode(
83 self,
84 encoder: &mut fidl::encoding::Encoder<
85 '_,
86 fidl::encoding::DefaultFuchsiaResourceDialect,
87 >,
88 offset: usize,
89 _depth: fidl::encoding::Depth,
90 ) -> fidl::Result<()> {
91 encoder.debug_check_bounds::<ProgramHandle>(offset);
92 fidl::encoding::Encode::<ProgramHandle, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
94 (
95 <fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 20482> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.handle),
96 ),
97 encoder, offset, _depth
98 )
99 }
100 }
101 unsafe impl<
102 T0: fidl::encoding::Encode<
103 fidl::encoding::HandleType<
104 fidl::EventPair,
105 { fidl::ObjectType::EVENTPAIR.into_raw() },
106 20482,
107 >,
108 fidl::encoding::DefaultFuchsiaResourceDialect,
109 >,
110 > fidl::encoding::Encode<ProgramHandle, fidl::encoding::DefaultFuchsiaResourceDialect>
111 for (T0,)
112 {
113 #[inline]
114 unsafe fn encode(
115 self,
116 encoder: &mut fidl::encoding::Encoder<
117 '_,
118 fidl::encoding::DefaultFuchsiaResourceDialect,
119 >,
120 offset: usize,
121 depth: fidl::encoding::Depth,
122 ) -> fidl::Result<()> {
123 encoder.debug_check_bounds::<ProgramHandle>(offset);
124 self.0.encode(encoder, offset + 0, depth)?;
128 Ok(())
129 }
130 }
131
132 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for ProgramHandle {
133 #[inline(always)]
134 fn new_empty() -> Self {
135 Self {
136 handle: fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 20482>, fidl::encoding::DefaultFuchsiaResourceDialect),
137 }
138 }
139
140 #[inline]
141 unsafe fn decode(
142 &mut self,
143 decoder: &mut fidl::encoding::Decoder<
144 '_,
145 fidl::encoding::DefaultFuchsiaResourceDialect,
146 >,
147 offset: usize,
148 _depth: fidl::encoding::Depth,
149 ) -> fidl::Result<()> {
150 decoder.debug_check_bounds::<Self>(offset);
151 fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 20482>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.handle, decoder, offset + 0, _depth)?;
153 Ok(())
154 }
155 }
156
157 impl Map {
158 #[inline(always)]
159 fn max_ordinal_present(&self) -> u64 {
160 if let Some(_) = self.vmo {
161 return 2;
162 }
163 if let Some(_) = self.schema {
164 return 1;
165 }
166 0
167 }
168 }
169
170 impl fidl::encoding::ResourceTypeMarker for Map {
171 type Borrowed<'a> = &'a mut Self;
172 fn take_or_borrow<'a>(
173 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
174 ) -> Self::Borrowed<'a> {
175 value
176 }
177 }
178
179 unsafe impl fidl::encoding::TypeMarker for Map {
180 type Owned = Self;
181
182 #[inline(always)]
183 fn inline_align(_context: fidl::encoding::Context) -> usize {
184 8
185 }
186
187 #[inline(always)]
188 fn inline_size(_context: fidl::encoding::Context) -> usize {
189 16
190 }
191 }
192
193 unsafe impl fidl::encoding::Encode<Map, fidl::encoding::DefaultFuchsiaResourceDialect>
194 for &mut Map
195 {
196 unsafe fn encode(
197 self,
198 encoder: &mut fidl::encoding::Encoder<
199 '_,
200 fidl::encoding::DefaultFuchsiaResourceDialect,
201 >,
202 offset: usize,
203 mut depth: fidl::encoding::Depth,
204 ) -> fidl::Result<()> {
205 encoder.debug_check_bounds::<Map>(offset);
206 let max_ordinal: u64 = self.max_ordinal_present();
208 encoder.write_num(max_ordinal, offset);
209 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
210 if max_ordinal == 0 {
212 return Ok(());
213 }
214 depth.increment()?;
215 let envelope_size = 8;
216 let bytes_len = max_ordinal as usize * envelope_size;
217 #[allow(unused_variables)]
218 let offset = encoder.out_of_line_offset(bytes_len);
219 let mut _prev_end_offset: usize = 0;
220 if 1 > max_ordinal {
221 return Ok(());
222 }
223
224 let cur_offset: usize = (1 - 1) * envelope_size;
227
228 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
230
231 fidl::encoding::encode_in_envelope_optional::<
236 MapSchema,
237 fidl::encoding::DefaultFuchsiaResourceDialect,
238 >(
239 self.schema.as_ref().map(<MapSchema as fidl::encoding::ValueTypeMarker>::borrow),
240 encoder,
241 offset + cur_offset,
242 depth,
243 )?;
244
245 _prev_end_offset = cur_offset + envelope_size;
246 if 2 > max_ordinal {
247 return Ok(());
248 }
249
250 let cur_offset: usize = (2 - 1) * envelope_size;
253
254 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
256
257 fidl::encoding::encode_in_envelope_optional::<
262 fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 20524>,
263 fidl::encoding::DefaultFuchsiaResourceDialect,
264 >(
265 self.vmo.as_mut().map(
266 <fidl::encoding::HandleType<
267 fidl::Vmo,
268 { fidl::ObjectType::VMO.into_raw() },
269 20524,
270 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
271 ),
272 encoder,
273 offset + cur_offset,
274 depth,
275 )?;
276
277 _prev_end_offset = cur_offset + envelope_size;
278
279 Ok(())
280 }
281 }
282
283 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for Map {
284 #[inline(always)]
285 fn new_empty() -> Self {
286 Self::default()
287 }
288
289 unsafe fn decode(
290 &mut self,
291 decoder: &mut fidl::encoding::Decoder<
292 '_,
293 fidl::encoding::DefaultFuchsiaResourceDialect,
294 >,
295 offset: usize,
296 mut depth: fidl::encoding::Depth,
297 ) -> fidl::Result<()> {
298 decoder.debug_check_bounds::<Self>(offset);
299 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
300 None => return Err(fidl::Error::NotNullable),
301 Some(len) => len,
302 };
303 if len == 0 {
305 return Ok(());
306 };
307 depth.increment()?;
308 let envelope_size = 8;
309 let bytes_len = len * envelope_size;
310 let offset = decoder.out_of_line_offset(bytes_len)?;
311 let mut _next_ordinal_to_read = 0;
313 let mut next_offset = offset;
314 let end_offset = offset + bytes_len;
315 _next_ordinal_to_read += 1;
316 if next_offset >= end_offset {
317 return Ok(());
318 }
319
320 while _next_ordinal_to_read < 1 {
322 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
323 _next_ordinal_to_read += 1;
324 next_offset += envelope_size;
325 }
326
327 let next_out_of_line = decoder.next_out_of_line();
328 let handles_before = decoder.remaining_handles();
329 if let Some((inlined, num_bytes, num_handles)) =
330 fidl::encoding::decode_envelope_header(decoder, next_offset)?
331 {
332 let member_inline_size =
333 <MapSchema as fidl::encoding::TypeMarker>::inline_size(decoder.context);
334 if inlined != (member_inline_size <= 4) {
335 return Err(fidl::Error::InvalidInlineBitInEnvelope);
336 }
337 let inner_offset;
338 let mut inner_depth = depth.clone();
339 if inlined {
340 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
341 inner_offset = next_offset;
342 } else {
343 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
344 inner_depth.increment()?;
345 }
346 let val_ref = self.schema.get_or_insert_with(|| {
347 fidl::new_empty!(MapSchema, fidl::encoding::DefaultFuchsiaResourceDialect)
348 });
349 fidl::decode!(
350 MapSchema,
351 fidl::encoding::DefaultFuchsiaResourceDialect,
352 val_ref,
353 decoder,
354 inner_offset,
355 inner_depth
356 )?;
357 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
358 {
359 return Err(fidl::Error::InvalidNumBytesInEnvelope);
360 }
361 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
362 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
363 }
364 }
365
366 next_offset += envelope_size;
367 _next_ordinal_to_read += 1;
368 if next_offset >= end_offset {
369 return Ok(());
370 }
371
372 while _next_ordinal_to_read < 2 {
374 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
375 _next_ordinal_to_read += 1;
376 next_offset += envelope_size;
377 }
378
379 let next_out_of_line = decoder.next_out_of_line();
380 let handles_before = decoder.remaining_handles();
381 if let Some((inlined, num_bytes, num_handles)) =
382 fidl::encoding::decode_envelope_header(decoder, next_offset)?
383 {
384 let member_inline_size = <fidl::encoding::HandleType<
385 fidl::Vmo,
386 { fidl::ObjectType::VMO.into_raw() },
387 20524,
388 > as fidl::encoding::TypeMarker>::inline_size(
389 decoder.context
390 );
391 if inlined != (member_inline_size <= 4) {
392 return Err(fidl::Error::InvalidInlineBitInEnvelope);
393 }
394 let inner_offset;
395 let mut inner_depth = depth.clone();
396 if inlined {
397 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
398 inner_offset = next_offset;
399 } else {
400 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
401 inner_depth.increment()?;
402 }
403 let val_ref =
404 self.vmo.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 20524>, fidl::encoding::DefaultFuchsiaResourceDialect));
405 fidl::decode!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 20524>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
406 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
407 {
408 return Err(fidl::Error::InvalidNumBytesInEnvelope);
409 }
410 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
411 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
412 }
413 }
414
415 next_offset += envelope_size;
416
417 while next_offset < end_offset {
419 _next_ordinal_to_read += 1;
420 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
421 next_offset += envelope_size;
422 }
423
424 Ok(())
425 }
426 }
427
428 impl VerifiedProgram {
429 #[inline(always)]
430 fn max_ordinal_present(&self) -> u64 {
431 if let Some(_) = self.maps {
432 return 3;
433 }
434 if let Some(_) = self.struct_access_instructions {
435 return 2;
436 }
437 if let Some(_) = self.code {
438 return 1;
439 }
440 0
441 }
442 }
443
444 impl fidl::encoding::ResourceTypeMarker for VerifiedProgram {
445 type Borrowed<'a> = &'a mut Self;
446 fn take_or_borrow<'a>(
447 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
448 ) -> Self::Borrowed<'a> {
449 value
450 }
451 }
452
453 unsafe impl fidl::encoding::TypeMarker for VerifiedProgram {
454 type Owned = Self;
455
456 #[inline(always)]
457 fn inline_align(_context: fidl::encoding::Context) -> usize {
458 8
459 }
460
461 #[inline(always)]
462 fn inline_size(_context: fidl::encoding::Context) -> usize {
463 16
464 }
465 }
466
467 unsafe impl
468 fidl::encoding::Encode<VerifiedProgram, fidl::encoding::DefaultFuchsiaResourceDialect>
469 for &mut VerifiedProgram
470 {
471 unsafe fn encode(
472 self,
473 encoder: &mut fidl::encoding::Encoder<
474 '_,
475 fidl::encoding::DefaultFuchsiaResourceDialect,
476 >,
477 offset: usize,
478 mut depth: fidl::encoding::Depth,
479 ) -> fidl::Result<()> {
480 encoder.debug_check_bounds::<VerifiedProgram>(offset);
481 let max_ordinal: u64 = self.max_ordinal_present();
483 encoder.write_num(max_ordinal, offset);
484 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
485 if max_ordinal == 0 {
487 return Ok(());
488 }
489 depth.increment()?;
490 let envelope_size = 8;
491 let bytes_len = max_ordinal as usize * envelope_size;
492 #[allow(unused_variables)]
493 let offset = encoder.out_of_line_offset(bytes_len);
494 let mut _prev_end_offset: usize = 0;
495 if 1 > max_ordinal {
496 return Ok(());
497 }
498
499 let cur_offset: usize = (1 - 1) * envelope_size;
502
503 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
505
506 fidl::encoding::encode_in_envelope_optional::<
511 fidl::encoding::Vector<u64, 4096>,
512 fidl::encoding::DefaultFuchsiaResourceDialect,
513 >(
514 self.code.as_ref().map(
515 <fidl::encoding::Vector<u64, 4096> as fidl::encoding::ValueTypeMarker>::borrow,
516 ),
517 encoder,
518 offset + cur_offset,
519 depth,
520 )?;
521
522 _prev_end_offset = cur_offset + envelope_size;
523 if 2 > max_ordinal {
524 return Ok(());
525 }
526
527 let cur_offset: usize = (2 - 1) * envelope_size;
530
531 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
533
534 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<StructAccess, 4096>, fidl::encoding::DefaultFuchsiaResourceDialect>(
539 self.struct_access_instructions.as_ref().map(<fidl::encoding::Vector<StructAccess, 4096> as fidl::encoding::ValueTypeMarker>::borrow),
540 encoder, offset + cur_offset, depth
541 )?;
542
543 _prev_end_offset = cur_offset + envelope_size;
544 if 3 > max_ordinal {
545 return Ok(());
546 }
547
548 let cur_offset: usize = (3 - 1) * envelope_size;
551
552 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
554
555 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<Map, 4096>, fidl::encoding::DefaultFuchsiaResourceDialect>(
560 self.maps.as_mut().map(<fidl::encoding::Vector<Map, 4096> as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
561 encoder, offset + cur_offset, depth
562 )?;
563
564 _prev_end_offset = cur_offset + envelope_size;
565
566 Ok(())
567 }
568 }
569
570 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
571 for VerifiedProgram
572 {
573 #[inline(always)]
574 fn new_empty() -> Self {
575 Self::default()
576 }
577
578 unsafe fn decode(
579 &mut self,
580 decoder: &mut fidl::encoding::Decoder<
581 '_,
582 fidl::encoding::DefaultFuchsiaResourceDialect,
583 >,
584 offset: usize,
585 mut depth: fidl::encoding::Depth,
586 ) -> fidl::Result<()> {
587 decoder.debug_check_bounds::<Self>(offset);
588 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
589 None => return Err(fidl::Error::NotNullable),
590 Some(len) => len,
591 };
592 if len == 0 {
594 return Ok(());
595 };
596 depth.increment()?;
597 let envelope_size = 8;
598 let bytes_len = len * envelope_size;
599 let offset = decoder.out_of_line_offset(bytes_len)?;
600 let mut _next_ordinal_to_read = 0;
602 let mut next_offset = offset;
603 let end_offset = offset + bytes_len;
604 _next_ordinal_to_read += 1;
605 if next_offset >= end_offset {
606 return Ok(());
607 }
608
609 while _next_ordinal_to_read < 1 {
611 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
612 _next_ordinal_to_read += 1;
613 next_offset += envelope_size;
614 }
615
616 let next_out_of_line = decoder.next_out_of_line();
617 let handles_before = decoder.remaining_handles();
618 if let Some((inlined, num_bytes, num_handles)) =
619 fidl::encoding::decode_envelope_header(decoder, next_offset)?
620 {
621 let member_inline_size =
622 <fidl::encoding::Vector<u64, 4096> as fidl::encoding::TypeMarker>::inline_size(
623 decoder.context,
624 );
625 if inlined != (member_inline_size <= 4) {
626 return Err(fidl::Error::InvalidInlineBitInEnvelope);
627 }
628 let inner_offset;
629 let mut inner_depth = depth.clone();
630 if inlined {
631 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
632 inner_offset = next_offset;
633 } else {
634 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
635 inner_depth.increment()?;
636 }
637 let val_ref =
638 self.code.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u64, 4096>, fidl::encoding::DefaultFuchsiaResourceDialect));
639 fidl::decode!(fidl::encoding::Vector<u64, 4096>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
641 {
642 return Err(fidl::Error::InvalidNumBytesInEnvelope);
643 }
644 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
645 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
646 }
647 }
648
649 next_offset += envelope_size;
650 _next_ordinal_to_read += 1;
651 if next_offset >= end_offset {
652 return Ok(());
653 }
654
655 while _next_ordinal_to_read < 2 {
657 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
658 _next_ordinal_to_read += 1;
659 next_offset += envelope_size;
660 }
661
662 let next_out_of_line = decoder.next_out_of_line();
663 let handles_before = decoder.remaining_handles();
664 if let Some((inlined, num_bytes, num_handles)) =
665 fidl::encoding::decode_envelope_header(decoder, next_offset)?
666 {
667 let member_inline_size = <fidl::encoding::Vector<StructAccess, 4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
668 if inlined != (member_inline_size <= 4) {
669 return Err(fidl::Error::InvalidInlineBitInEnvelope);
670 }
671 let inner_offset;
672 let mut inner_depth = depth.clone();
673 if inlined {
674 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
675 inner_offset = next_offset;
676 } else {
677 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
678 inner_depth.increment()?;
679 }
680 let val_ref =
681 self.struct_access_instructions.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<StructAccess, 4096>, fidl::encoding::DefaultFuchsiaResourceDialect));
682 fidl::decode!(fidl::encoding::Vector<StructAccess, 4096>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
683 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
684 {
685 return Err(fidl::Error::InvalidNumBytesInEnvelope);
686 }
687 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
688 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
689 }
690 }
691
692 next_offset += envelope_size;
693 _next_ordinal_to_read += 1;
694 if next_offset >= end_offset {
695 return Ok(());
696 }
697
698 while _next_ordinal_to_read < 3 {
700 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
701 _next_ordinal_to_read += 1;
702 next_offset += envelope_size;
703 }
704
705 let next_out_of_line = decoder.next_out_of_line();
706 let handles_before = decoder.remaining_handles();
707 if let Some((inlined, num_bytes, num_handles)) =
708 fidl::encoding::decode_envelope_header(decoder, next_offset)?
709 {
710 let member_inline_size =
711 <fidl::encoding::Vector<Map, 4096> as fidl::encoding::TypeMarker>::inline_size(
712 decoder.context,
713 );
714 if inlined != (member_inline_size <= 4) {
715 return Err(fidl::Error::InvalidInlineBitInEnvelope);
716 }
717 let inner_offset;
718 let mut inner_depth = depth.clone();
719 if inlined {
720 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
721 inner_offset = next_offset;
722 } else {
723 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
724 inner_depth.increment()?;
725 }
726 let val_ref =
727 self.maps.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<Map, 4096>, fidl::encoding::DefaultFuchsiaResourceDialect));
728 fidl::decode!(fidl::encoding::Vector<Map, 4096>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
729 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
730 {
731 return Err(fidl::Error::InvalidNumBytesInEnvelope);
732 }
733 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
734 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
735 }
736 }
737
738 next_offset += envelope_size;
739
740 while next_offset < end_offset {
742 _next_ordinal_to_read += 1;
743 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
744 next_offset += envelope_size;
745 }
746
747 Ok(())
748 }
749 }
750}