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 const ADC_NAME_MAX_LENGTH: u32 = 64;
12
13#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
14#[repr(C)]
15pub struct DeviceGetSampleRequest {
16 pub channel_id: u32,
17}
18
19impl fidl::Persistable for DeviceGetSampleRequest {}
20
21#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
22#[repr(C)]
23pub struct DeviceGetResolutionResponse {
24 pub resolution: u8,
25}
26
27impl fidl::Persistable for DeviceGetResolutionResponse {}
28
29#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
30#[repr(C)]
31pub struct DeviceGetSampleResponse {
32 pub value: u32,
33}
34
35impl fidl::Persistable for DeviceGetSampleResponse {}
36
37#[derive(Clone, Debug, Default, PartialEq)]
38pub struct AdcChannel {
39 pub idx: Option<u32>,
41 pub name: Option<String>,
43 #[doc(hidden)]
44 pub __source_breaking: fidl::marker::SourceBreaking,
45}
46
47impl fidl::Persistable for AdcChannel {}
48
49#[derive(Clone, Debug, Default, PartialEq)]
50pub struct Metadata {
51 pub channels: Option<Vec<AdcChannel>>,
53 #[doc(hidden)]
54 pub __source_breaking: fidl::marker::SourceBreaking,
55}
56
57impl fidl::Persistable for Metadata {}
58impl fidl::Serializable for Metadata {
59 const SERIALIZABLE_NAME: &'static str = "fuchsia.hardware.adcimpl.Metadata";
60}
61
62pub mod device_ordinals {
63 pub const GET_RESOLUTION: u64 = 0x3829cb3201b4a463;
64 pub const GET_SAMPLE: u64 = 0x2e22cd7261f5b6e6;
65}
66
67mod internal {
68 use super::*;
69
70 impl fidl::encoding::ValueTypeMarker for DeviceGetSampleRequest {
71 type Borrowed<'a> = &'a Self;
72 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
73 value
74 }
75 }
76
77 unsafe impl fidl::encoding::TypeMarker for DeviceGetSampleRequest {
78 type Owned = Self;
79
80 #[inline(always)]
81 fn inline_align(_context: fidl::encoding::Context) -> usize {
82 4
83 }
84
85 #[inline(always)]
86 fn inline_size(_context: fidl::encoding::Context) -> usize {
87 4
88 }
89 #[inline(always)]
90 fn encode_is_copy() -> bool {
91 true
92 }
93
94 #[inline(always)]
95 fn decode_is_copy() -> bool {
96 true
97 }
98 }
99
100 unsafe impl<D: fidl::encoding::ResourceDialect>
101 fidl::encoding::Encode<DeviceGetSampleRequest, D> for &DeviceGetSampleRequest
102 {
103 #[inline]
104 unsafe fn encode(
105 self,
106 encoder: &mut fidl::encoding::Encoder<'_, D>,
107 offset: usize,
108 _depth: fidl::encoding::Depth,
109 ) -> fidl::Result<()> {
110 encoder.debug_check_bounds::<DeviceGetSampleRequest>(offset);
111 unsafe {
112 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
114 (buf_ptr as *mut DeviceGetSampleRequest)
115 .write_unaligned((self as *const DeviceGetSampleRequest).read());
116 }
119 Ok(())
120 }
121 }
122 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
123 fidl::encoding::Encode<DeviceGetSampleRequest, D> for (T0,)
124 {
125 #[inline]
126 unsafe fn encode(
127 self,
128 encoder: &mut fidl::encoding::Encoder<'_, D>,
129 offset: usize,
130 depth: fidl::encoding::Depth,
131 ) -> fidl::Result<()> {
132 encoder.debug_check_bounds::<DeviceGetSampleRequest>(offset);
133 self.0.encode(encoder, offset + 0, depth)?;
137 Ok(())
138 }
139 }
140
141 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
142 for DeviceGetSampleRequest
143 {
144 #[inline(always)]
145 fn new_empty() -> Self {
146 Self { channel_id: fidl::new_empty!(u32, D) }
147 }
148
149 #[inline]
150 unsafe fn decode(
151 &mut self,
152 decoder: &mut fidl::encoding::Decoder<'_, D>,
153 offset: usize,
154 _depth: fidl::encoding::Depth,
155 ) -> fidl::Result<()> {
156 decoder.debug_check_bounds::<Self>(offset);
157 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
158 unsafe {
161 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
162 }
163 Ok(())
164 }
165 }
166
167 impl fidl::encoding::ValueTypeMarker for DeviceGetResolutionResponse {
168 type Borrowed<'a> = &'a Self;
169 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
170 value
171 }
172 }
173
174 unsafe impl fidl::encoding::TypeMarker for DeviceGetResolutionResponse {
175 type Owned = Self;
176
177 #[inline(always)]
178 fn inline_align(_context: fidl::encoding::Context) -> usize {
179 1
180 }
181
182 #[inline(always)]
183 fn inline_size(_context: fidl::encoding::Context) -> usize {
184 1
185 }
186 #[inline(always)]
187 fn encode_is_copy() -> bool {
188 true
189 }
190
191 #[inline(always)]
192 fn decode_is_copy() -> bool {
193 true
194 }
195 }
196
197 unsafe impl<D: fidl::encoding::ResourceDialect>
198 fidl::encoding::Encode<DeviceGetResolutionResponse, D> for &DeviceGetResolutionResponse
199 {
200 #[inline]
201 unsafe fn encode(
202 self,
203 encoder: &mut fidl::encoding::Encoder<'_, D>,
204 offset: usize,
205 _depth: fidl::encoding::Depth,
206 ) -> fidl::Result<()> {
207 encoder.debug_check_bounds::<DeviceGetResolutionResponse>(offset);
208 unsafe {
209 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
211 (buf_ptr as *mut DeviceGetResolutionResponse)
212 .write_unaligned((self as *const DeviceGetResolutionResponse).read());
213 }
216 Ok(())
217 }
218 }
219 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
220 fidl::encoding::Encode<DeviceGetResolutionResponse, D> for (T0,)
221 {
222 #[inline]
223 unsafe fn encode(
224 self,
225 encoder: &mut fidl::encoding::Encoder<'_, D>,
226 offset: usize,
227 depth: fidl::encoding::Depth,
228 ) -> fidl::Result<()> {
229 encoder.debug_check_bounds::<DeviceGetResolutionResponse>(offset);
230 self.0.encode(encoder, offset + 0, depth)?;
234 Ok(())
235 }
236 }
237
238 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
239 for DeviceGetResolutionResponse
240 {
241 #[inline(always)]
242 fn new_empty() -> Self {
243 Self { resolution: fidl::new_empty!(u8, D) }
244 }
245
246 #[inline]
247 unsafe fn decode(
248 &mut self,
249 decoder: &mut fidl::encoding::Decoder<'_, D>,
250 offset: usize,
251 _depth: fidl::encoding::Depth,
252 ) -> fidl::Result<()> {
253 decoder.debug_check_bounds::<Self>(offset);
254 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
255 unsafe {
258 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
259 }
260 Ok(())
261 }
262 }
263
264 impl fidl::encoding::ValueTypeMarker for DeviceGetSampleResponse {
265 type Borrowed<'a> = &'a Self;
266 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
267 value
268 }
269 }
270
271 unsafe impl fidl::encoding::TypeMarker for DeviceGetSampleResponse {
272 type Owned = Self;
273
274 #[inline(always)]
275 fn inline_align(_context: fidl::encoding::Context) -> usize {
276 4
277 }
278
279 #[inline(always)]
280 fn inline_size(_context: fidl::encoding::Context) -> usize {
281 4
282 }
283 #[inline(always)]
284 fn encode_is_copy() -> bool {
285 true
286 }
287
288 #[inline(always)]
289 fn decode_is_copy() -> bool {
290 true
291 }
292 }
293
294 unsafe impl<D: fidl::encoding::ResourceDialect>
295 fidl::encoding::Encode<DeviceGetSampleResponse, D> for &DeviceGetSampleResponse
296 {
297 #[inline]
298 unsafe fn encode(
299 self,
300 encoder: &mut fidl::encoding::Encoder<'_, D>,
301 offset: usize,
302 _depth: fidl::encoding::Depth,
303 ) -> fidl::Result<()> {
304 encoder.debug_check_bounds::<DeviceGetSampleResponse>(offset);
305 unsafe {
306 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
308 (buf_ptr as *mut DeviceGetSampleResponse)
309 .write_unaligned((self as *const DeviceGetSampleResponse).read());
310 }
313 Ok(())
314 }
315 }
316 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
317 fidl::encoding::Encode<DeviceGetSampleResponse, D> for (T0,)
318 {
319 #[inline]
320 unsafe fn encode(
321 self,
322 encoder: &mut fidl::encoding::Encoder<'_, D>,
323 offset: usize,
324 depth: fidl::encoding::Depth,
325 ) -> fidl::Result<()> {
326 encoder.debug_check_bounds::<DeviceGetSampleResponse>(offset);
327 self.0.encode(encoder, offset + 0, depth)?;
331 Ok(())
332 }
333 }
334
335 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
336 for DeviceGetSampleResponse
337 {
338 #[inline(always)]
339 fn new_empty() -> Self {
340 Self { value: fidl::new_empty!(u32, D) }
341 }
342
343 #[inline]
344 unsafe fn decode(
345 &mut self,
346 decoder: &mut fidl::encoding::Decoder<'_, D>,
347 offset: usize,
348 _depth: fidl::encoding::Depth,
349 ) -> fidl::Result<()> {
350 decoder.debug_check_bounds::<Self>(offset);
351 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
352 unsafe {
355 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
356 }
357 Ok(())
358 }
359 }
360
361 impl AdcChannel {
362 #[inline(always)]
363 fn max_ordinal_present(&self) -> u64 {
364 if let Some(_) = self.name {
365 return 2;
366 }
367 if let Some(_) = self.idx {
368 return 1;
369 }
370 0
371 }
372 }
373
374 impl fidl::encoding::ValueTypeMarker for AdcChannel {
375 type Borrowed<'a> = &'a Self;
376 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
377 value
378 }
379 }
380
381 unsafe impl fidl::encoding::TypeMarker for AdcChannel {
382 type Owned = Self;
383
384 #[inline(always)]
385 fn inline_align(_context: fidl::encoding::Context) -> usize {
386 8
387 }
388
389 #[inline(always)]
390 fn inline_size(_context: fidl::encoding::Context) -> usize {
391 16
392 }
393 }
394
395 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AdcChannel, D>
396 for &AdcChannel
397 {
398 unsafe fn encode(
399 self,
400 encoder: &mut fidl::encoding::Encoder<'_, D>,
401 offset: usize,
402 mut depth: fidl::encoding::Depth,
403 ) -> fidl::Result<()> {
404 encoder.debug_check_bounds::<AdcChannel>(offset);
405 let max_ordinal: u64 = self.max_ordinal_present();
407 encoder.write_num(max_ordinal, offset);
408 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
409 if max_ordinal == 0 {
411 return Ok(());
412 }
413 depth.increment()?;
414 let envelope_size = 8;
415 let bytes_len = max_ordinal as usize * envelope_size;
416 #[allow(unused_variables)]
417 let offset = encoder.out_of_line_offset(bytes_len);
418 let mut _prev_end_offset: usize = 0;
419 if 1 > max_ordinal {
420 return Ok(());
421 }
422
423 let cur_offset: usize = (1 - 1) * envelope_size;
426
427 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
429
430 fidl::encoding::encode_in_envelope_optional::<u32, D>(
435 self.idx.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
436 encoder,
437 offset + cur_offset,
438 depth,
439 )?;
440
441 _prev_end_offset = cur_offset + envelope_size;
442 if 2 > max_ordinal {
443 return Ok(());
444 }
445
446 let cur_offset: usize = (2 - 1) * envelope_size;
449
450 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
452
453 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<64>, D>(
458 self.name.as_ref().map(
459 <fidl::encoding::BoundedString<64> as fidl::encoding::ValueTypeMarker>::borrow,
460 ),
461 encoder,
462 offset + cur_offset,
463 depth,
464 )?;
465
466 _prev_end_offset = cur_offset + envelope_size;
467
468 Ok(())
469 }
470 }
471
472 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AdcChannel {
473 #[inline(always)]
474 fn new_empty() -> Self {
475 Self::default()
476 }
477
478 unsafe fn decode(
479 &mut self,
480 decoder: &mut fidl::encoding::Decoder<'_, D>,
481 offset: usize,
482 mut depth: fidl::encoding::Depth,
483 ) -> fidl::Result<()> {
484 decoder.debug_check_bounds::<Self>(offset);
485 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
486 None => return Err(fidl::Error::NotNullable),
487 Some(len) => len,
488 };
489 if len == 0 {
491 return Ok(());
492 };
493 depth.increment()?;
494 let envelope_size = 8;
495 let bytes_len = len * envelope_size;
496 let offset = decoder.out_of_line_offset(bytes_len)?;
497 let mut _next_ordinal_to_read = 0;
499 let mut next_offset = offset;
500 let end_offset = offset + bytes_len;
501 _next_ordinal_to_read += 1;
502 if next_offset >= end_offset {
503 return Ok(());
504 }
505
506 while _next_ordinal_to_read < 1 {
508 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
509 _next_ordinal_to_read += 1;
510 next_offset += envelope_size;
511 }
512
513 let next_out_of_line = decoder.next_out_of_line();
514 let handles_before = decoder.remaining_handles();
515 if let Some((inlined, num_bytes, num_handles)) =
516 fidl::encoding::decode_envelope_header(decoder, next_offset)?
517 {
518 let member_inline_size =
519 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
520 if inlined != (member_inline_size <= 4) {
521 return Err(fidl::Error::InvalidInlineBitInEnvelope);
522 }
523 let inner_offset;
524 let mut inner_depth = depth.clone();
525 if inlined {
526 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
527 inner_offset = next_offset;
528 } else {
529 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
530 inner_depth.increment()?;
531 }
532 let val_ref = self.idx.get_or_insert_with(|| fidl::new_empty!(u32, D));
533 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
534 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
535 {
536 return Err(fidl::Error::InvalidNumBytesInEnvelope);
537 }
538 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
539 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
540 }
541 }
542
543 next_offset += envelope_size;
544 _next_ordinal_to_read += 1;
545 if next_offset >= end_offset {
546 return Ok(());
547 }
548
549 while _next_ordinal_to_read < 2 {
551 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
552 _next_ordinal_to_read += 1;
553 next_offset += envelope_size;
554 }
555
556 let next_out_of_line = decoder.next_out_of_line();
557 let handles_before = decoder.remaining_handles();
558 if let Some((inlined, num_bytes, num_handles)) =
559 fidl::encoding::decode_envelope_header(decoder, next_offset)?
560 {
561 let member_inline_size =
562 <fidl::encoding::BoundedString<64> as fidl::encoding::TypeMarker>::inline_size(
563 decoder.context,
564 );
565 if inlined != (member_inline_size <= 4) {
566 return Err(fidl::Error::InvalidInlineBitInEnvelope);
567 }
568 let inner_offset;
569 let mut inner_depth = depth.clone();
570 if inlined {
571 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
572 inner_offset = next_offset;
573 } else {
574 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
575 inner_depth.increment()?;
576 }
577 let val_ref = self
578 .name
579 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<64>, D));
580 fidl::decode!(
581 fidl::encoding::BoundedString<64>,
582 D,
583 val_ref,
584 decoder,
585 inner_offset,
586 inner_depth
587 )?;
588 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
589 {
590 return Err(fidl::Error::InvalidNumBytesInEnvelope);
591 }
592 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
593 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
594 }
595 }
596
597 next_offset += envelope_size;
598
599 while next_offset < end_offset {
601 _next_ordinal_to_read += 1;
602 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
603 next_offset += envelope_size;
604 }
605
606 Ok(())
607 }
608 }
609
610 impl Metadata {
611 #[inline(always)]
612 fn max_ordinal_present(&self) -> u64 {
613 if let Some(_) = self.channels {
614 return 1;
615 }
616 0
617 }
618 }
619
620 impl fidl::encoding::ValueTypeMarker for Metadata {
621 type Borrowed<'a> = &'a Self;
622 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
623 value
624 }
625 }
626
627 unsafe impl fidl::encoding::TypeMarker for Metadata {
628 type Owned = Self;
629
630 #[inline(always)]
631 fn inline_align(_context: fidl::encoding::Context) -> usize {
632 8
633 }
634
635 #[inline(always)]
636 fn inline_size(_context: fidl::encoding::Context) -> usize {
637 16
638 }
639 }
640
641 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Metadata, D> for &Metadata {
642 unsafe fn encode(
643 self,
644 encoder: &mut fidl::encoding::Encoder<'_, D>,
645 offset: usize,
646 mut depth: fidl::encoding::Depth,
647 ) -> fidl::Result<()> {
648 encoder.debug_check_bounds::<Metadata>(offset);
649 let max_ordinal: u64 = self.max_ordinal_present();
651 encoder.write_num(max_ordinal, offset);
652 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
653 if max_ordinal == 0 {
655 return Ok(());
656 }
657 depth.increment()?;
658 let envelope_size = 8;
659 let bytes_len = max_ordinal as usize * envelope_size;
660 #[allow(unused_variables)]
661 let offset = encoder.out_of_line_offset(bytes_len);
662 let mut _prev_end_offset: usize = 0;
663 if 1 > max_ordinal {
664 return Ok(());
665 }
666
667 let cur_offset: usize = (1 - 1) * envelope_size;
670
671 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
673
674 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<AdcChannel>, D>(
679 self.channels.as_ref().map(<fidl::encoding::UnboundedVector<AdcChannel> as fidl::encoding::ValueTypeMarker>::borrow),
680 encoder, offset + cur_offset, depth
681 )?;
682
683 _prev_end_offset = cur_offset + envelope_size;
684
685 Ok(())
686 }
687 }
688
689 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Metadata {
690 #[inline(always)]
691 fn new_empty() -> Self {
692 Self::default()
693 }
694
695 unsafe fn decode(
696 &mut self,
697 decoder: &mut fidl::encoding::Decoder<'_, D>,
698 offset: usize,
699 mut depth: fidl::encoding::Depth,
700 ) -> fidl::Result<()> {
701 decoder.debug_check_bounds::<Self>(offset);
702 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
703 None => return Err(fidl::Error::NotNullable),
704 Some(len) => len,
705 };
706 if len == 0 {
708 return Ok(());
709 };
710 depth.increment()?;
711 let envelope_size = 8;
712 let bytes_len = len * envelope_size;
713 let offset = decoder.out_of_line_offset(bytes_len)?;
714 let mut _next_ordinal_to_read = 0;
716 let mut next_offset = offset;
717 let end_offset = offset + bytes_len;
718 _next_ordinal_to_read += 1;
719 if next_offset >= end_offset {
720 return Ok(());
721 }
722
723 while _next_ordinal_to_read < 1 {
725 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
726 _next_ordinal_to_read += 1;
727 next_offset += envelope_size;
728 }
729
730 let next_out_of_line = decoder.next_out_of_line();
731 let handles_before = decoder.remaining_handles();
732 if let Some((inlined, num_bytes, num_handles)) =
733 fidl::encoding::decode_envelope_header(decoder, next_offset)?
734 {
735 let member_inline_size = <fidl::encoding::UnboundedVector<AdcChannel> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
736 if inlined != (member_inline_size <= 4) {
737 return Err(fidl::Error::InvalidInlineBitInEnvelope);
738 }
739 let inner_offset;
740 let mut inner_depth = depth.clone();
741 if inlined {
742 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
743 inner_offset = next_offset;
744 } else {
745 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
746 inner_depth.increment()?;
747 }
748 let val_ref = self.channels.get_or_insert_with(|| {
749 fidl::new_empty!(fidl::encoding::UnboundedVector<AdcChannel>, D)
750 });
751 fidl::decode!(
752 fidl::encoding::UnboundedVector<AdcChannel>,
753 D,
754 val_ref,
755 decoder,
756 inner_offset,
757 inner_depth
758 )?;
759 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
760 {
761 return Err(fidl::Error::InvalidNumBytesInEnvelope);
762 }
763 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
764 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
765 }
766 }
767
768 next_offset += envelope_size;
769
770 while next_offset < end_offset {
772 _next_ordinal_to_read += 1;
773 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
774 next_offset += envelope_size;
775 }
776
777 Ok(())
778 }
779 }
780}