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