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 MAX_RECTS_PER_IMAGE: u32 = 1024;
13
14#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
19pub enum Color {
20 Black,
22 Red,
24 Green,
26 Blue,
28 Yellow,
30 Magenta,
32 Cyan,
34 White,
36 #[doc(hidden)]
37 __SourceBreaking { unknown_ordinal: u32 },
38}
39
40#[macro_export]
42macro_rules! ColorUnknown {
43 () => {
44 _
45 };
46}
47
48impl Color {
49 #[inline]
50 pub fn from_primitive(prim: u32) -> Option<Self> {
51 match prim {
52 1 => Some(Self::Black),
53 2 => Some(Self::Red),
54 3 => Some(Self::Green),
55 4 => Some(Self::Blue),
56 5 => Some(Self::Yellow),
57 6 => Some(Self::Magenta),
58 7 => Some(Self::Cyan),
59 8 => Some(Self::White),
60 _ => None,
61 }
62 }
63
64 #[inline]
65 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
66 match prim {
67 1 => Self::Black,
68 2 => Self::Red,
69 3 => Self::Green,
70 4 => Self::Blue,
71 5 => Self::Yellow,
72 6 => Self::Magenta,
73 7 => Self::Cyan,
74 8 => Self::White,
75 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
76 }
77 }
78
79 #[inline]
80 pub fn unknown() -> Self {
81 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
82 }
83
84 #[inline]
85 pub const fn into_primitive(self) -> u32 {
86 match self {
87 Self::Black => 1,
88 Self::Red => 2,
89 Self::Green => 3,
90 Self::Blue => 4,
91 Self::Yellow => 5,
92 Self::Magenta => 6,
93 Self::Cyan => 7,
94 Self::White => 8,
95 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
96 }
97 }
98
99 #[inline]
100 pub fn is_unknown(&self) -> bool {
101 match self {
102 Self::__SourceBreaking { unknown_ordinal: _ } => true,
103 _ => false,
104 }
105 }
106}
107
108#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
110pub enum Result_ {
111 Unsupported,
124 Success,
126 Error,
128 #[doc(hidden)]
129 __SourceBreaking { unknown_ordinal: u32 },
130}
131
132#[macro_export]
134macro_rules! Result_Unknown {
135 () => {
136 _
137 };
138}
139
140impl Result_ {
141 #[inline]
142 pub fn from_primitive(prim: u32) -> Option<Self> {
143 match prim {
144 0 => Some(Self::Unsupported),
145 1 => Some(Self::Success),
146 2 => Some(Self::Error),
147 _ => None,
148 }
149 }
150
151 #[inline]
152 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
153 match prim {
154 0 => Self::Unsupported,
155 1 => Self::Success,
156 2 => Self::Error,
157 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
158 }
159 }
160
161 #[inline]
162 pub fn unknown() -> Self {
163 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
164 }
165
166 #[inline]
167 pub const fn into_primitive(self) -> u32 {
168 match self {
169 Self::Unsupported => 0,
170 Self::Success => 1,
171 Self::Error => 2,
172 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
173 }
174 }
175
176 #[inline]
177 pub fn is_unknown(&self) -> bool {
178 match self {
179 Self::__SourceBreaking { unknown_ordinal: _ } => true,
180 _ => false,
181 }
182 }
183}
184
185#[derive(Clone, Debug, Default, PartialEq)]
189pub struct ContentBounds {
190 pub size: Option<fidl_fuchsia_math_common::SizeU>,
196 pub origin: Option<fidl_fuchsia_math_common::Vec_>,
203 #[doc(hidden)]
204 pub __source_breaking: fidl::marker::SourceBreaking,
205}
206
207impl fidl::Persistable for ContentBounds {}
208
209#[derive(Clone, Debug, Default, PartialEq)]
211pub struct EmbeddedViewProperties {
212 pub bounds: Option<ContentBounds>,
215 #[doc(hidden)]
216 pub __source_breaking: fidl::marker::SourceBreaking,
217}
218
219impl fidl::Persistable for EmbeddedViewProperties {}
220
221#[derive(Clone, Debug, Default, PartialEq)]
223pub struct FilledRect {
224 pub color: Option<Color>,
226 pub bounds: Option<ContentBounds>,
228 #[doc(hidden)]
229 pub __source_breaking: fidl::marker::SourceBreaking,
230}
231
232impl fidl::Persistable for FilledRect {}
233
234#[derive(Clone, Debug, Default, PartialEq)]
236pub struct ImageProperties {
237 pub bounds: Option<ContentBounds>,
239 pub filled_rects: Option<Vec<FilledRect>>,
243 #[doc(hidden)]
244 pub __source_breaking: fidl::marker::SourceBreaking,
245}
246
247impl fidl::Persistable for ImageProperties {}
248
249#[derive(Clone, Debug, Default, PartialEq)]
250pub struct PuppetDrawImageRequest {
251 pub id: Option<u64>,
252 pub properties: Option<ImageProperties>,
253 #[doc(hidden)]
254 pub __source_breaking: fidl::marker::SourceBreaking,
255}
256
257impl fidl::Persistable for PuppetDrawImageRequest {}
258
259#[derive(Clone, Debug, Default, PartialEq)]
260pub struct PuppetDrawImageResponse {
261 pub result: Option<Result_>,
262 #[doc(hidden)]
263 pub __source_breaking: fidl::marker::SourceBreaking,
264}
265
266impl fidl::Persistable for PuppetDrawImageResponse {}
267
268#[derive(Clone, Debug, Default, PartialEq)]
269pub struct PuppetEmbedRemoteViewRequest {
270 pub id: Option<u64>,
271 pub properties: Option<EmbeddedViewProperties>,
272 #[doc(hidden)]
273 pub __source_breaking: fidl::marker::SourceBreaking,
274}
275
276impl fidl::Persistable for PuppetEmbedRemoteViewRequest {}
277
278#[derive(Clone, Debug, Default, PartialEq)]
279pub struct PuppetSetEmbeddedViewPropertiesRequest {
280 pub id: Option<u64>,
281 pub properties: Option<EmbeddedViewProperties>,
282 #[doc(hidden)]
283 pub __source_breaking: fidl::marker::SourceBreaking,
284}
285
286impl fidl::Persistable for PuppetSetEmbeddedViewPropertiesRequest {}
287
288#[derive(Clone, Debug, Default, PartialEq)]
289pub struct PuppetSetEmbeddedViewPropertiesResponse {
290 pub result: Option<Result_>,
291 #[doc(hidden)]
292 pub __source_breaking: fidl::marker::SourceBreaking,
293}
294
295impl fidl::Persistable for PuppetSetEmbeddedViewPropertiesResponse {}
296
297#[derive(Clone, Debug, Default, PartialEq)]
298pub struct PuppetSetImagePropertiesRequest {
299 pub id: Option<u64>,
300 pub properties: Option<ImageProperties>,
301 #[doc(hidden)]
302 pub __source_breaking: fidl::marker::SourceBreaking,
303}
304
305impl fidl::Persistable for PuppetSetImagePropertiesRequest {}
306
307#[derive(Clone, Debug, Default, PartialEq)]
308pub struct PuppetSetImagePropertiesResponse {
309 pub result: Option<Result_>,
310 #[doc(hidden)]
311 pub __source_breaking: fidl::marker::SourceBreaking,
312}
313
314impl fidl::Persistable for PuppetSetImagePropertiesResponse {}
315
316pub mod puppet_ordinals {
317 pub const EMBED_REMOTE_VIEW: u64 = 0x5bb2325a988aa137;
318 pub const SET_EMBEDDED_VIEW_PROPERTIES: u64 = 0x409a7f3de135c709;
319 pub const DRAW_IMAGE: u64 = 0x6d736daa48b835cc;
320 pub const SET_IMAGE_PROPERTIES: u64 = 0x2683795408d033ff;
321}
322
323pub mod puppet_factory_ordinals {
324 pub const CREATE: u64 = 0x4f90811dc284b595;
325}
326
327mod internal {
328 use super::*;
329 unsafe impl fidl::encoding::TypeMarker for Color {
330 type Owned = Self;
331
332 #[inline(always)]
333 fn inline_align(_context: fidl::encoding::Context) -> usize {
334 std::mem::align_of::<u32>()
335 }
336
337 #[inline(always)]
338 fn inline_size(_context: fidl::encoding::Context) -> usize {
339 std::mem::size_of::<u32>()
340 }
341
342 #[inline(always)]
343 fn encode_is_copy() -> bool {
344 false
345 }
346
347 #[inline(always)]
348 fn decode_is_copy() -> bool {
349 false
350 }
351 }
352
353 impl fidl::encoding::ValueTypeMarker for Color {
354 type Borrowed<'a> = Self;
355 #[inline(always)]
356 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
357 *value
358 }
359 }
360
361 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Color {
362 #[inline]
363 unsafe fn encode(
364 self,
365 encoder: &mut fidl::encoding::Encoder<'_, D>,
366 offset: usize,
367 _depth: fidl::encoding::Depth,
368 ) -> fidl::Result<()> {
369 encoder.debug_check_bounds::<Self>(offset);
370 encoder.write_num(self.into_primitive(), offset);
371 Ok(())
372 }
373 }
374
375 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Color {
376 #[inline(always)]
377 fn new_empty() -> Self {
378 Self::unknown()
379 }
380
381 #[inline]
382 unsafe fn decode(
383 &mut self,
384 decoder: &mut fidl::encoding::Decoder<'_, D>,
385 offset: usize,
386 _depth: fidl::encoding::Depth,
387 ) -> fidl::Result<()> {
388 decoder.debug_check_bounds::<Self>(offset);
389 let prim = decoder.read_num::<u32>(offset);
390
391 *self = Self::from_primitive_allow_unknown(prim);
392 Ok(())
393 }
394 }
395 unsafe impl fidl::encoding::TypeMarker for Result_ {
396 type Owned = Self;
397
398 #[inline(always)]
399 fn inline_align(_context: fidl::encoding::Context) -> usize {
400 std::mem::align_of::<u32>()
401 }
402
403 #[inline(always)]
404 fn inline_size(_context: fidl::encoding::Context) -> usize {
405 std::mem::size_of::<u32>()
406 }
407
408 #[inline(always)]
409 fn encode_is_copy() -> bool {
410 false
411 }
412
413 #[inline(always)]
414 fn decode_is_copy() -> bool {
415 false
416 }
417 }
418
419 impl fidl::encoding::ValueTypeMarker for Result_ {
420 type Borrowed<'a> = Self;
421 #[inline(always)]
422 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
423 *value
424 }
425 }
426
427 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Result_ {
428 #[inline]
429 unsafe fn encode(
430 self,
431 encoder: &mut fidl::encoding::Encoder<'_, D>,
432 offset: usize,
433 _depth: fidl::encoding::Depth,
434 ) -> fidl::Result<()> {
435 encoder.debug_check_bounds::<Self>(offset);
436 encoder.write_num(self.into_primitive(), offset);
437 Ok(())
438 }
439 }
440
441 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Result_ {
442 #[inline(always)]
443 fn new_empty() -> Self {
444 Self::unknown()
445 }
446
447 #[inline]
448 unsafe fn decode(
449 &mut self,
450 decoder: &mut fidl::encoding::Decoder<'_, D>,
451 offset: usize,
452 _depth: fidl::encoding::Depth,
453 ) -> fidl::Result<()> {
454 decoder.debug_check_bounds::<Self>(offset);
455 let prim = decoder.read_num::<u32>(offset);
456
457 *self = Self::from_primitive_allow_unknown(prim);
458 Ok(())
459 }
460 }
461
462 impl ContentBounds {
463 #[inline(always)]
464 fn max_ordinal_present(&self) -> u64 {
465 if let Some(_) = self.origin {
466 return 2;
467 }
468 if let Some(_) = self.size {
469 return 1;
470 }
471 0
472 }
473 }
474
475 impl fidl::encoding::ValueTypeMarker for ContentBounds {
476 type Borrowed<'a> = &'a Self;
477 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
478 value
479 }
480 }
481
482 unsafe impl fidl::encoding::TypeMarker for ContentBounds {
483 type Owned = Self;
484
485 #[inline(always)]
486 fn inline_align(_context: fidl::encoding::Context) -> usize {
487 8
488 }
489
490 #[inline(always)]
491 fn inline_size(_context: fidl::encoding::Context) -> usize {
492 16
493 }
494 }
495
496 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ContentBounds, D>
497 for &ContentBounds
498 {
499 unsafe fn encode(
500 self,
501 encoder: &mut fidl::encoding::Encoder<'_, D>,
502 offset: usize,
503 mut depth: fidl::encoding::Depth,
504 ) -> fidl::Result<()> {
505 encoder.debug_check_bounds::<ContentBounds>(offset);
506 let max_ordinal: u64 = self.max_ordinal_present();
508 encoder.write_num(max_ordinal, offset);
509 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
510 if max_ordinal == 0 {
512 return Ok(());
513 }
514 depth.increment()?;
515 let envelope_size = 8;
516 let bytes_len = max_ordinal as usize * envelope_size;
517 #[allow(unused_variables)]
518 let offset = encoder.out_of_line_offset(bytes_len);
519 let mut _prev_end_offset: usize = 0;
520 if 1 > max_ordinal {
521 return Ok(());
522 }
523
524 let cur_offset: usize = (1 - 1) * envelope_size;
527
528 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
530
531 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_math_common::SizeU, D>(
536 self.size.as_ref().map(
537 <fidl_fuchsia_math_common::SizeU as fidl::encoding::ValueTypeMarker>::borrow,
538 ),
539 encoder,
540 offset + cur_offset,
541 depth,
542 )?;
543
544 _prev_end_offset = cur_offset + envelope_size;
545 if 2 > max_ordinal {
546 return Ok(());
547 }
548
549 let cur_offset: usize = (2 - 1) * envelope_size;
552
553 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
555
556 fidl::encoding::encode_in_envelope_optional::<fidl_fuchsia_math_common::Vec_, D>(
561 self.origin.as_ref().map(
562 <fidl_fuchsia_math_common::Vec_ as fidl::encoding::ValueTypeMarker>::borrow,
563 ),
564 encoder,
565 offset + cur_offset,
566 depth,
567 )?;
568
569 _prev_end_offset = cur_offset + envelope_size;
570
571 Ok(())
572 }
573 }
574
575 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ContentBounds {
576 #[inline(always)]
577 fn new_empty() -> Self {
578 Self::default()
579 }
580
581 unsafe fn decode(
582 &mut self,
583 decoder: &mut fidl::encoding::Decoder<'_, D>,
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_fuchsia_math_common::SizeU 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 = self
638 .size
639 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_math_common::SizeU, D));
640 fidl::decode!(
641 fidl_fuchsia_math_common::SizeU,
642 D,
643 val_ref,
644 decoder,
645 inner_offset,
646 inner_depth
647 )?;
648 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
649 {
650 return Err(fidl::Error::InvalidNumBytesInEnvelope);
651 }
652 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
653 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
654 }
655 }
656
657 next_offset += envelope_size;
658 _next_ordinal_to_read += 1;
659 if next_offset >= end_offset {
660 return Ok(());
661 }
662
663 while _next_ordinal_to_read < 2 {
665 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
666 _next_ordinal_to_read += 1;
667 next_offset += envelope_size;
668 }
669
670 let next_out_of_line = decoder.next_out_of_line();
671 let handles_before = decoder.remaining_handles();
672 if let Some((inlined, num_bytes, num_handles)) =
673 fidl::encoding::decode_envelope_header(decoder, next_offset)?
674 {
675 let member_inline_size =
676 <fidl_fuchsia_math_common::Vec_ as fidl::encoding::TypeMarker>::inline_size(
677 decoder.context,
678 );
679 if inlined != (member_inline_size <= 4) {
680 return Err(fidl::Error::InvalidInlineBitInEnvelope);
681 }
682 let inner_offset;
683 let mut inner_depth = depth.clone();
684 if inlined {
685 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
686 inner_offset = next_offset;
687 } else {
688 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
689 inner_depth.increment()?;
690 }
691 let val_ref = self
692 .origin
693 .get_or_insert_with(|| fidl::new_empty!(fidl_fuchsia_math_common::Vec_, D));
694 fidl::decode!(
695 fidl_fuchsia_math_common::Vec_,
696 D,
697 val_ref,
698 decoder,
699 inner_offset,
700 inner_depth
701 )?;
702 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
703 {
704 return Err(fidl::Error::InvalidNumBytesInEnvelope);
705 }
706 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
707 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
708 }
709 }
710
711 next_offset += envelope_size;
712
713 while next_offset < end_offset {
715 _next_ordinal_to_read += 1;
716 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
717 next_offset += envelope_size;
718 }
719
720 Ok(())
721 }
722 }
723
724 impl EmbeddedViewProperties {
725 #[inline(always)]
726 fn max_ordinal_present(&self) -> u64 {
727 if let Some(_) = self.bounds {
728 return 1;
729 }
730 0
731 }
732 }
733
734 impl fidl::encoding::ValueTypeMarker for EmbeddedViewProperties {
735 type Borrowed<'a> = &'a Self;
736 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
737 value
738 }
739 }
740
741 unsafe impl fidl::encoding::TypeMarker for EmbeddedViewProperties {
742 type Owned = Self;
743
744 #[inline(always)]
745 fn inline_align(_context: fidl::encoding::Context) -> usize {
746 8
747 }
748
749 #[inline(always)]
750 fn inline_size(_context: fidl::encoding::Context) -> usize {
751 16
752 }
753 }
754
755 unsafe impl<D: fidl::encoding::ResourceDialect>
756 fidl::encoding::Encode<EmbeddedViewProperties, D> for &EmbeddedViewProperties
757 {
758 unsafe fn encode(
759 self,
760 encoder: &mut fidl::encoding::Encoder<'_, D>,
761 offset: usize,
762 mut depth: fidl::encoding::Depth,
763 ) -> fidl::Result<()> {
764 encoder.debug_check_bounds::<EmbeddedViewProperties>(offset);
765 let max_ordinal: u64 = self.max_ordinal_present();
767 encoder.write_num(max_ordinal, offset);
768 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
769 if max_ordinal == 0 {
771 return Ok(());
772 }
773 depth.increment()?;
774 let envelope_size = 8;
775 let bytes_len = max_ordinal as usize * envelope_size;
776 #[allow(unused_variables)]
777 let offset = encoder.out_of_line_offset(bytes_len);
778 let mut _prev_end_offset: usize = 0;
779 if 1 > max_ordinal {
780 return Ok(());
781 }
782
783 let cur_offset: usize = (1 - 1) * envelope_size;
786
787 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
789
790 fidl::encoding::encode_in_envelope_optional::<ContentBounds, D>(
795 self.bounds
796 .as_ref()
797 .map(<ContentBounds as fidl::encoding::ValueTypeMarker>::borrow),
798 encoder,
799 offset + cur_offset,
800 depth,
801 )?;
802
803 _prev_end_offset = cur_offset + envelope_size;
804
805 Ok(())
806 }
807 }
808
809 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
810 for EmbeddedViewProperties
811 {
812 #[inline(always)]
813 fn new_empty() -> Self {
814 Self::default()
815 }
816
817 unsafe fn decode(
818 &mut self,
819 decoder: &mut fidl::encoding::Decoder<'_, D>,
820 offset: usize,
821 mut depth: fidl::encoding::Depth,
822 ) -> fidl::Result<()> {
823 decoder.debug_check_bounds::<Self>(offset);
824 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
825 None => return Err(fidl::Error::NotNullable),
826 Some(len) => len,
827 };
828 if len == 0 {
830 return Ok(());
831 };
832 depth.increment()?;
833 let envelope_size = 8;
834 let bytes_len = len * envelope_size;
835 let offset = decoder.out_of_line_offset(bytes_len)?;
836 let mut _next_ordinal_to_read = 0;
838 let mut next_offset = offset;
839 let end_offset = offset + bytes_len;
840 _next_ordinal_to_read += 1;
841 if next_offset >= end_offset {
842 return Ok(());
843 }
844
845 while _next_ordinal_to_read < 1 {
847 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
848 _next_ordinal_to_read += 1;
849 next_offset += envelope_size;
850 }
851
852 let next_out_of_line = decoder.next_out_of_line();
853 let handles_before = decoder.remaining_handles();
854 if let Some((inlined, num_bytes, num_handles)) =
855 fidl::encoding::decode_envelope_header(decoder, next_offset)?
856 {
857 let member_inline_size =
858 <ContentBounds as fidl::encoding::TypeMarker>::inline_size(decoder.context);
859 if inlined != (member_inline_size <= 4) {
860 return Err(fidl::Error::InvalidInlineBitInEnvelope);
861 }
862 let inner_offset;
863 let mut inner_depth = depth.clone();
864 if inlined {
865 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
866 inner_offset = next_offset;
867 } else {
868 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
869 inner_depth.increment()?;
870 }
871 let val_ref = self.bounds.get_or_insert_with(|| fidl::new_empty!(ContentBounds, D));
872 fidl::decode!(ContentBounds, D, val_ref, decoder, inner_offset, inner_depth)?;
873 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
874 {
875 return Err(fidl::Error::InvalidNumBytesInEnvelope);
876 }
877 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
878 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
879 }
880 }
881
882 next_offset += envelope_size;
883
884 while next_offset < end_offset {
886 _next_ordinal_to_read += 1;
887 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
888 next_offset += envelope_size;
889 }
890
891 Ok(())
892 }
893 }
894
895 impl FilledRect {
896 #[inline(always)]
897 fn max_ordinal_present(&self) -> u64 {
898 if let Some(_) = self.bounds {
899 return 2;
900 }
901 if let Some(_) = self.color {
902 return 1;
903 }
904 0
905 }
906 }
907
908 impl fidl::encoding::ValueTypeMarker for FilledRect {
909 type Borrowed<'a> = &'a Self;
910 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
911 value
912 }
913 }
914
915 unsafe impl fidl::encoding::TypeMarker for FilledRect {
916 type Owned = Self;
917
918 #[inline(always)]
919 fn inline_align(_context: fidl::encoding::Context) -> usize {
920 8
921 }
922
923 #[inline(always)]
924 fn inline_size(_context: fidl::encoding::Context) -> usize {
925 16
926 }
927 }
928
929 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FilledRect, D>
930 for &FilledRect
931 {
932 unsafe fn encode(
933 self,
934 encoder: &mut fidl::encoding::Encoder<'_, D>,
935 offset: usize,
936 mut depth: fidl::encoding::Depth,
937 ) -> fidl::Result<()> {
938 encoder.debug_check_bounds::<FilledRect>(offset);
939 let max_ordinal: u64 = self.max_ordinal_present();
941 encoder.write_num(max_ordinal, offset);
942 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
943 if max_ordinal == 0 {
945 return Ok(());
946 }
947 depth.increment()?;
948 let envelope_size = 8;
949 let bytes_len = max_ordinal as usize * envelope_size;
950 #[allow(unused_variables)]
951 let offset = encoder.out_of_line_offset(bytes_len);
952 let mut _prev_end_offset: usize = 0;
953 if 1 > max_ordinal {
954 return Ok(());
955 }
956
957 let cur_offset: usize = (1 - 1) * envelope_size;
960
961 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
963
964 fidl::encoding::encode_in_envelope_optional::<Color, D>(
969 self.color.as_ref().map(<Color as fidl::encoding::ValueTypeMarker>::borrow),
970 encoder,
971 offset + cur_offset,
972 depth,
973 )?;
974
975 _prev_end_offset = cur_offset + envelope_size;
976 if 2 > max_ordinal {
977 return Ok(());
978 }
979
980 let cur_offset: usize = (2 - 1) * envelope_size;
983
984 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
986
987 fidl::encoding::encode_in_envelope_optional::<ContentBounds, D>(
992 self.bounds
993 .as_ref()
994 .map(<ContentBounds as fidl::encoding::ValueTypeMarker>::borrow),
995 encoder,
996 offset + cur_offset,
997 depth,
998 )?;
999
1000 _prev_end_offset = cur_offset + envelope_size;
1001
1002 Ok(())
1003 }
1004 }
1005
1006 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FilledRect {
1007 #[inline(always)]
1008 fn new_empty() -> Self {
1009 Self::default()
1010 }
1011
1012 unsafe fn decode(
1013 &mut self,
1014 decoder: &mut fidl::encoding::Decoder<'_, D>,
1015 offset: usize,
1016 mut depth: fidl::encoding::Depth,
1017 ) -> fidl::Result<()> {
1018 decoder.debug_check_bounds::<Self>(offset);
1019 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1020 None => return Err(fidl::Error::NotNullable),
1021 Some(len) => len,
1022 };
1023 if len == 0 {
1025 return Ok(());
1026 };
1027 depth.increment()?;
1028 let envelope_size = 8;
1029 let bytes_len = len * envelope_size;
1030 let offset = decoder.out_of_line_offset(bytes_len)?;
1031 let mut _next_ordinal_to_read = 0;
1033 let mut next_offset = offset;
1034 let end_offset = offset + bytes_len;
1035 _next_ordinal_to_read += 1;
1036 if next_offset >= end_offset {
1037 return Ok(());
1038 }
1039
1040 while _next_ordinal_to_read < 1 {
1042 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1043 _next_ordinal_to_read += 1;
1044 next_offset += envelope_size;
1045 }
1046
1047 let next_out_of_line = decoder.next_out_of_line();
1048 let handles_before = decoder.remaining_handles();
1049 if let Some((inlined, num_bytes, num_handles)) =
1050 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1051 {
1052 let member_inline_size =
1053 <Color as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1054 if inlined != (member_inline_size <= 4) {
1055 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1056 }
1057 let inner_offset;
1058 let mut inner_depth = depth.clone();
1059 if inlined {
1060 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1061 inner_offset = next_offset;
1062 } else {
1063 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1064 inner_depth.increment()?;
1065 }
1066 let val_ref = self.color.get_or_insert_with(|| fidl::new_empty!(Color, D));
1067 fidl::decode!(Color, D, val_ref, decoder, inner_offset, inner_depth)?;
1068 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1069 {
1070 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1071 }
1072 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1073 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1074 }
1075 }
1076
1077 next_offset += envelope_size;
1078 _next_ordinal_to_read += 1;
1079 if next_offset >= end_offset {
1080 return Ok(());
1081 }
1082
1083 while _next_ordinal_to_read < 2 {
1085 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1086 _next_ordinal_to_read += 1;
1087 next_offset += envelope_size;
1088 }
1089
1090 let next_out_of_line = decoder.next_out_of_line();
1091 let handles_before = decoder.remaining_handles();
1092 if let Some((inlined, num_bytes, num_handles)) =
1093 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1094 {
1095 let member_inline_size =
1096 <ContentBounds as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1097 if inlined != (member_inline_size <= 4) {
1098 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1099 }
1100 let inner_offset;
1101 let mut inner_depth = depth.clone();
1102 if inlined {
1103 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1104 inner_offset = next_offset;
1105 } else {
1106 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1107 inner_depth.increment()?;
1108 }
1109 let val_ref = self.bounds.get_or_insert_with(|| fidl::new_empty!(ContentBounds, D));
1110 fidl::decode!(ContentBounds, D, val_ref, decoder, inner_offset, inner_depth)?;
1111 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1112 {
1113 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1114 }
1115 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1116 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1117 }
1118 }
1119
1120 next_offset += envelope_size;
1121
1122 while next_offset < end_offset {
1124 _next_ordinal_to_read += 1;
1125 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1126 next_offset += envelope_size;
1127 }
1128
1129 Ok(())
1130 }
1131 }
1132
1133 impl ImageProperties {
1134 #[inline(always)]
1135 fn max_ordinal_present(&self) -> u64 {
1136 if let Some(_) = self.filled_rects {
1137 return 2;
1138 }
1139 if let Some(_) = self.bounds {
1140 return 1;
1141 }
1142 0
1143 }
1144 }
1145
1146 impl fidl::encoding::ValueTypeMarker for ImageProperties {
1147 type Borrowed<'a> = &'a Self;
1148 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1149 value
1150 }
1151 }
1152
1153 unsafe impl fidl::encoding::TypeMarker for ImageProperties {
1154 type Owned = Self;
1155
1156 #[inline(always)]
1157 fn inline_align(_context: fidl::encoding::Context) -> usize {
1158 8
1159 }
1160
1161 #[inline(always)]
1162 fn inline_size(_context: fidl::encoding::Context) -> usize {
1163 16
1164 }
1165 }
1166
1167 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ImageProperties, D>
1168 for &ImageProperties
1169 {
1170 unsafe fn encode(
1171 self,
1172 encoder: &mut fidl::encoding::Encoder<'_, D>,
1173 offset: usize,
1174 mut depth: fidl::encoding::Depth,
1175 ) -> fidl::Result<()> {
1176 encoder.debug_check_bounds::<ImageProperties>(offset);
1177 let max_ordinal: u64 = self.max_ordinal_present();
1179 encoder.write_num(max_ordinal, offset);
1180 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1181 if max_ordinal == 0 {
1183 return Ok(());
1184 }
1185 depth.increment()?;
1186 let envelope_size = 8;
1187 let bytes_len = max_ordinal as usize * envelope_size;
1188 #[allow(unused_variables)]
1189 let offset = encoder.out_of_line_offset(bytes_len);
1190 let mut _prev_end_offset: usize = 0;
1191 if 1 > max_ordinal {
1192 return Ok(());
1193 }
1194
1195 let cur_offset: usize = (1 - 1) * envelope_size;
1198
1199 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1201
1202 fidl::encoding::encode_in_envelope_optional::<ContentBounds, D>(
1207 self.bounds
1208 .as_ref()
1209 .map(<ContentBounds as fidl::encoding::ValueTypeMarker>::borrow),
1210 encoder,
1211 offset + cur_offset,
1212 depth,
1213 )?;
1214
1215 _prev_end_offset = cur_offset + envelope_size;
1216 if 2 > max_ordinal {
1217 return Ok(());
1218 }
1219
1220 let cur_offset: usize = (2 - 1) * envelope_size;
1223
1224 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1226
1227 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<FilledRect, 1024>, D>(
1232 self.filled_rects.as_ref().map(<fidl::encoding::Vector<FilledRect, 1024> as fidl::encoding::ValueTypeMarker>::borrow),
1233 encoder, offset + cur_offset, depth
1234 )?;
1235
1236 _prev_end_offset = cur_offset + envelope_size;
1237
1238 Ok(())
1239 }
1240 }
1241
1242 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ImageProperties {
1243 #[inline(always)]
1244 fn new_empty() -> Self {
1245 Self::default()
1246 }
1247
1248 unsafe fn decode(
1249 &mut self,
1250 decoder: &mut fidl::encoding::Decoder<'_, D>,
1251 offset: usize,
1252 mut depth: fidl::encoding::Depth,
1253 ) -> fidl::Result<()> {
1254 decoder.debug_check_bounds::<Self>(offset);
1255 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1256 None => return Err(fidl::Error::NotNullable),
1257 Some(len) => len,
1258 };
1259 if len == 0 {
1261 return Ok(());
1262 };
1263 depth.increment()?;
1264 let envelope_size = 8;
1265 let bytes_len = len * envelope_size;
1266 let offset = decoder.out_of_line_offset(bytes_len)?;
1267 let mut _next_ordinal_to_read = 0;
1269 let mut next_offset = offset;
1270 let end_offset = offset + bytes_len;
1271 _next_ordinal_to_read += 1;
1272 if next_offset >= end_offset {
1273 return Ok(());
1274 }
1275
1276 while _next_ordinal_to_read < 1 {
1278 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1279 _next_ordinal_to_read += 1;
1280 next_offset += envelope_size;
1281 }
1282
1283 let next_out_of_line = decoder.next_out_of_line();
1284 let handles_before = decoder.remaining_handles();
1285 if let Some((inlined, num_bytes, num_handles)) =
1286 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1287 {
1288 let member_inline_size =
1289 <ContentBounds as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1290 if inlined != (member_inline_size <= 4) {
1291 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1292 }
1293 let inner_offset;
1294 let mut inner_depth = depth.clone();
1295 if inlined {
1296 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1297 inner_offset = next_offset;
1298 } else {
1299 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1300 inner_depth.increment()?;
1301 }
1302 let val_ref = self.bounds.get_or_insert_with(|| fidl::new_empty!(ContentBounds, D));
1303 fidl::decode!(ContentBounds, D, val_ref, decoder, inner_offset, inner_depth)?;
1304 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1305 {
1306 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1307 }
1308 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1309 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1310 }
1311 }
1312
1313 next_offset += envelope_size;
1314 _next_ordinal_to_read += 1;
1315 if next_offset >= end_offset {
1316 return Ok(());
1317 }
1318
1319 while _next_ordinal_to_read < 2 {
1321 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1322 _next_ordinal_to_read += 1;
1323 next_offset += envelope_size;
1324 }
1325
1326 let next_out_of_line = decoder.next_out_of_line();
1327 let handles_before = decoder.remaining_handles();
1328 if let Some((inlined, num_bytes, num_handles)) =
1329 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1330 {
1331 let member_inline_size = <fidl::encoding::Vector<FilledRect, 1024> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1332 if inlined != (member_inline_size <= 4) {
1333 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1334 }
1335 let inner_offset;
1336 let mut inner_depth = depth.clone();
1337 if inlined {
1338 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1339 inner_offset = next_offset;
1340 } else {
1341 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1342 inner_depth.increment()?;
1343 }
1344 let val_ref = self.filled_rects.get_or_insert_with(
1345 || fidl::new_empty!(fidl::encoding::Vector<FilledRect, 1024>, D),
1346 );
1347 fidl::decode!(fidl::encoding::Vector<FilledRect, 1024>, D, val_ref, decoder, inner_offset, inner_depth)?;
1348 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1349 {
1350 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1351 }
1352 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1353 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1354 }
1355 }
1356
1357 next_offset += envelope_size;
1358
1359 while next_offset < end_offset {
1361 _next_ordinal_to_read += 1;
1362 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1363 next_offset += envelope_size;
1364 }
1365
1366 Ok(())
1367 }
1368 }
1369
1370 impl PuppetDrawImageRequest {
1371 #[inline(always)]
1372 fn max_ordinal_present(&self) -> u64 {
1373 if let Some(_) = self.properties {
1374 return 2;
1375 }
1376 if let Some(_) = self.id {
1377 return 1;
1378 }
1379 0
1380 }
1381 }
1382
1383 impl fidl::encoding::ValueTypeMarker for PuppetDrawImageRequest {
1384 type Borrowed<'a> = &'a Self;
1385 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1386 value
1387 }
1388 }
1389
1390 unsafe impl fidl::encoding::TypeMarker for PuppetDrawImageRequest {
1391 type Owned = Self;
1392
1393 #[inline(always)]
1394 fn inline_align(_context: fidl::encoding::Context) -> usize {
1395 8
1396 }
1397
1398 #[inline(always)]
1399 fn inline_size(_context: fidl::encoding::Context) -> usize {
1400 16
1401 }
1402 }
1403
1404 unsafe impl<D: fidl::encoding::ResourceDialect>
1405 fidl::encoding::Encode<PuppetDrawImageRequest, D> for &PuppetDrawImageRequest
1406 {
1407 unsafe fn encode(
1408 self,
1409 encoder: &mut fidl::encoding::Encoder<'_, D>,
1410 offset: usize,
1411 mut depth: fidl::encoding::Depth,
1412 ) -> fidl::Result<()> {
1413 encoder.debug_check_bounds::<PuppetDrawImageRequest>(offset);
1414 let max_ordinal: u64 = self.max_ordinal_present();
1416 encoder.write_num(max_ordinal, offset);
1417 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1418 if max_ordinal == 0 {
1420 return Ok(());
1421 }
1422 depth.increment()?;
1423 let envelope_size = 8;
1424 let bytes_len = max_ordinal as usize * envelope_size;
1425 #[allow(unused_variables)]
1426 let offset = encoder.out_of_line_offset(bytes_len);
1427 let mut _prev_end_offset: usize = 0;
1428 if 1 > max_ordinal {
1429 return Ok(());
1430 }
1431
1432 let cur_offset: usize = (1 - 1) * envelope_size;
1435
1436 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1438
1439 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1444 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1445 encoder,
1446 offset + cur_offset,
1447 depth,
1448 )?;
1449
1450 _prev_end_offset = cur_offset + envelope_size;
1451 if 2 > max_ordinal {
1452 return Ok(());
1453 }
1454
1455 let cur_offset: usize = (2 - 1) * envelope_size;
1458
1459 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1461
1462 fidl::encoding::encode_in_envelope_optional::<ImageProperties, D>(
1467 self.properties
1468 .as_ref()
1469 .map(<ImageProperties as fidl::encoding::ValueTypeMarker>::borrow),
1470 encoder,
1471 offset + cur_offset,
1472 depth,
1473 )?;
1474
1475 _prev_end_offset = cur_offset + envelope_size;
1476
1477 Ok(())
1478 }
1479 }
1480
1481 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1482 for PuppetDrawImageRequest
1483 {
1484 #[inline(always)]
1485 fn new_empty() -> Self {
1486 Self::default()
1487 }
1488
1489 unsafe fn decode(
1490 &mut self,
1491 decoder: &mut fidl::encoding::Decoder<'_, D>,
1492 offset: usize,
1493 mut depth: fidl::encoding::Depth,
1494 ) -> fidl::Result<()> {
1495 decoder.debug_check_bounds::<Self>(offset);
1496 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1497 None => return Err(fidl::Error::NotNullable),
1498 Some(len) => len,
1499 };
1500 if len == 0 {
1502 return Ok(());
1503 };
1504 depth.increment()?;
1505 let envelope_size = 8;
1506 let bytes_len = len * envelope_size;
1507 let offset = decoder.out_of_line_offset(bytes_len)?;
1508 let mut _next_ordinal_to_read = 0;
1510 let mut next_offset = offset;
1511 let end_offset = offset + bytes_len;
1512 _next_ordinal_to_read += 1;
1513 if next_offset >= end_offset {
1514 return Ok(());
1515 }
1516
1517 while _next_ordinal_to_read < 1 {
1519 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1520 _next_ordinal_to_read += 1;
1521 next_offset += envelope_size;
1522 }
1523
1524 let next_out_of_line = decoder.next_out_of_line();
1525 let handles_before = decoder.remaining_handles();
1526 if let Some((inlined, num_bytes, num_handles)) =
1527 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1528 {
1529 let member_inline_size =
1530 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1531 if inlined != (member_inline_size <= 4) {
1532 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1533 }
1534 let inner_offset;
1535 let mut inner_depth = depth.clone();
1536 if inlined {
1537 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1538 inner_offset = next_offset;
1539 } else {
1540 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1541 inner_depth.increment()?;
1542 }
1543 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
1544 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1545 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1546 {
1547 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1548 }
1549 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1550 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1551 }
1552 }
1553
1554 next_offset += envelope_size;
1555 _next_ordinal_to_read += 1;
1556 if next_offset >= end_offset {
1557 return Ok(());
1558 }
1559
1560 while _next_ordinal_to_read < 2 {
1562 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1563 _next_ordinal_to_read += 1;
1564 next_offset += envelope_size;
1565 }
1566
1567 let next_out_of_line = decoder.next_out_of_line();
1568 let handles_before = decoder.remaining_handles();
1569 if let Some((inlined, num_bytes, num_handles)) =
1570 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1571 {
1572 let member_inline_size =
1573 <ImageProperties as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1574 if inlined != (member_inline_size <= 4) {
1575 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1576 }
1577 let inner_offset;
1578 let mut inner_depth = depth.clone();
1579 if inlined {
1580 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1581 inner_offset = next_offset;
1582 } else {
1583 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1584 inner_depth.increment()?;
1585 }
1586 let val_ref =
1587 self.properties.get_or_insert_with(|| fidl::new_empty!(ImageProperties, D));
1588 fidl::decode!(ImageProperties, D, val_ref, decoder, inner_offset, inner_depth)?;
1589 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1590 {
1591 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1592 }
1593 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1594 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1595 }
1596 }
1597
1598 next_offset += envelope_size;
1599
1600 while next_offset < end_offset {
1602 _next_ordinal_to_read += 1;
1603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1604 next_offset += envelope_size;
1605 }
1606
1607 Ok(())
1608 }
1609 }
1610
1611 impl PuppetDrawImageResponse {
1612 #[inline(always)]
1613 fn max_ordinal_present(&self) -> u64 {
1614 if let Some(_) = self.result {
1615 return 1;
1616 }
1617 0
1618 }
1619 }
1620
1621 impl fidl::encoding::ValueTypeMarker for PuppetDrawImageResponse {
1622 type Borrowed<'a> = &'a Self;
1623 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1624 value
1625 }
1626 }
1627
1628 unsafe impl fidl::encoding::TypeMarker for PuppetDrawImageResponse {
1629 type Owned = Self;
1630
1631 #[inline(always)]
1632 fn inline_align(_context: fidl::encoding::Context) -> usize {
1633 8
1634 }
1635
1636 #[inline(always)]
1637 fn inline_size(_context: fidl::encoding::Context) -> usize {
1638 16
1639 }
1640 }
1641
1642 unsafe impl<D: fidl::encoding::ResourceDialect>
1643 fidl::encoding::Encode<PuppetDrawImageResponse, D> for &PuppetDrawImageResponse
1644 {
1645 unsafe fn encode(
1646 self,
1647 encoder: &mut fidl::encoding::Encoder<'_, D>,
1648 offset: usize,
1649 mut depth: fidl::encoding::Depth,
1650 ) -> fidl::Result<()> {
1651 encoder.debug_check_bounds::<PuppetDrawImageResponse>(offset);
1652 let max_ordinal: u64 = self.max_ordinal_present();
1654 encoder.write_num(max_ordinal, offset);
1655 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1656 if max_ordinal == 0 {
1658 return Ok(());
1659 }
1660 depth.increment()?;
1661 let envelope_size = 8;
1662 let bytes_len = max_ordinal as usize * envelope_size;
1663 #[allow(unused_variables)]
1664 let offset = encoder.out_of_line_offset(bytes_len);
1665 let mut _prev_end_offset: usize = 0;
1666 if 1 > max_ordinal {
1667 return Ok(());
1668 }
1669
1670 let cur_offset: usize = (1 - 1) * envelope_size;
1673
1674 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1676
1677 fidl::encoding::encode_in_envelope_optional::<Result_, D>(
1682 self.result.as_ref().map(<Result_ as fidl::encoding::ValueTypeMarker>::borrow),
1683 encoder,
1684 offset + cur_offset,
1685 depth,
1686 )?;
1687
1688 _prev_end_offset = cur_offset + envelope_size;
1689
1690 Ok(())
1691 }
1692 }
1693
1694 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1695 for PuppetDrawImageResponse
1696 {
1697 #[inline(always)]
1698 fn new_empty() -> Self {
1699 Self::default()
1700 }
1701
1702 unsafe fn decode(
1703 &mut self,
1704 decoder: &mut fidl::encoding::Decoder<'_, D>,
1705 offset: usize,
1706 mut depth: fidl::encoding::Depth,
1707 ) -> fidl::Result<()> {
1708 decoder.debug_check_bounds::<Self>(offset);
1709 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1710 None => return Err(fidl::Error::NotNullable),
1711 Some(len) => len,
1712 };
1713 if len == 0 {
1715 return Ok(());
1716 };
1717 depth.increment()?;
1718 let envelope_size = 8;
1719 let bytes_len = len * envelope_size;
1720 let offset = decoder.out_of_line_offset(bytes_len)?;
1721 let mut _next_ordinal_to_read = 0;
1723 let mut next_offset = offset;
1724 let end_offset = offset + bytes_len;
1725 _next_ordinal_to_read += 1;
1726 if next_offset >= end_offset {
1727 return Ok(());
1728 }
1729
1730 while _next_ordinal_to_read < 1 {
1732 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1733 _next_ordinal_to_read += 1;
1734 next_offset += envelope_size;
1735 }
1736
1737 let next_out_of_line = decoder.next_out_of_line();
1738 let handles_before = decoder.remaining_handles();
1739 if let Some((inlined, num_bytes, num_handles)) =
1740 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1741 {
1742 let member_inline_size =
1743 <Result_ as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1744 if inlined != (member_inline_size <= 4) {
1745 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1746 }
1747 let inner_offset;
1748 let mut inner_depth = depth.clone();
1749 if inlined {
1750 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1751 inner_offset = next_offset;
1752 } else {
1753 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1754 inner_depth.increment()?;
1755 }
1756 let val_ref = self.result.get_or_insert_with(|| fidl::new_empty!(Result_, D));
1757 fidl::decode!(Result_, D, val_ref, decoder, inner_offset, inner_depth)?;
1758 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1759 {
1760 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1761 }
1762 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1763 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1764 }
1765 }
1766
1767 next_offset += envelope_size;
1768
1769 while next_offset < end_offset {
1771 _next_ordinal_to_read += 1;
1772 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1773 next_offset += envelope_size;
1774 }
1775
1776 Ok(())
1777 }
1778 }
1779
1780 impl PuppetEmbedRemoteViewRequest {
1781 #[inline(always)]
1782 fn max_ordinal_present(&self) -> u64 {
1783 if let Some(_) = self.properties {
1784 return 2;
1785 }
1786 if let Some(_) = self.id {
1787 return 1;
1788 }
1789 0
1790 }
1791 }
1792
1793 impl fidl::encoding::ValueTypeMarker for PuppetEmbedRemoteViewRequest {
1794 type Borrowed<'a> = &'a Self;
1795 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1796 value
1797 }
1798 }
1799
1800 unsafe impl fidl::encoding::TypeMarker for PuppetEmbedRemoteViewRequest {
1801 type Owned = Self;
1802
1803 #[inline(always)]
1804 fn inline_align(_context: fidl::encoding::Context) -> usize {
1805 8
1806 }
1807
1808 #[inline(always)]
1809 fn inline_size(_context: fidl::encoding::Context) -> usize {
1810 16
1811 }
1812 }
1813
1814 unsafe impl<D: fidl::encoding::ResourceDialect>
1815 fidl::encoding::Encode<PuppetEmbedRemoteViewRequest, D> for &PuppetEmbedRemoteViewRequest
1816 {
1817 unsafe fn encode(
1818 self,
1819 encoder: &mut fidl::encoding::Encoder<'_, D>,
1820 offset: usize,
1821 mut depth: fidl::encoding::Depth,
1822 ) -> fidl::Result<()> {
1823 encoder.debug_check_bounds::<PuppetEmbedRemoteViewRequest>(offset);
1824 let max_ordinal: u64 = self.max_ordinal_present();
1826 encoder.write_num(max_ordinal, offset);
1827 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1828 if max_ordinal == 0 {
1830 return Ok(());
1831 }
1832 depth.increment()?;
1833 let envelope_size = 8;
1834 let bytes_len = max_ordinal as usize * envelope_size;
1835 #[allow(unused_variables)]
1836 let offset = encoder.out_of_line_offset(bytes_len);
1837 let mut _prev_end_offset: usize = 0;
1838 if 1 > max_ordinal {
1839 return Ok(());
1840 }
1841
1842 let cur_offset: usize = (1 - 1) * envelope_size;
1845
1846 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1848
1849 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1854 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1855 encoder,
1856 offset + cur_offset,
1857 depth,
1858 )?;
1859
1860 _prev_end_offset = cur_offset + envelope_size;
1861 if 2 > max_ordinal {
1862 return Ok(());
1863 }
1864
1865 let cur_offset: usize = (2 - 1) * envelope_size;
1868
1869 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1871
1872 fidl::encoding::encode_in_envelope_optional::<EmbeddedViewProperties, D>(
1877 self.properties
1878 .as_ref()
1879 .map(<EmbeddedViewProperties as fidl::encoding::ValueTypeMarker>::borrow),
1880 encoder,
1881 offset + cur_offset,
1882 depth,
1883 )?;
1884
1885 _prev_end_offset = cur_offset + envelope_size;
1886
1887 Ok(())
1888 }
1889 }
1890
1891 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1892 for PuppetEmbedRemoteViewRequest
1893 {
1894 #[inline(always)]
1895 fn new_empty() -> Self {
1896 Self::default()
1897 }
1898
1899 unsafe fn decode(
1900 &mut self,
1901 decoder: &mut fidl::encoding::Decoder<'_, D>,
1902 offset: usize,
1903 mut depth: fidl::encoding::Depth,
1904 ) -> fidl::Result<()> {
1905 decoder.debug_check_bounds::<Self>(offset);
1906 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1907 None => return Err(fidl::Error::NotNullable),
1908 Some(len) => len,
1909 };
1910 if len == 0 {
1912 return Ok(());
1913 };
1914 depth.increment()?;
1915 let envelope_size = 8;
1916 let bytes_len = len * envelope_size;
1917 let offset = decoder.out_of_line_offset(bytes_len)?;
1918 let mut _next_ordinal_to_read = 0;
1920 let mut next_offset = offset;
1921 let end_offset = offset + bytes_len;
1922 _next_ordinal_to_read += 1;
1923 if next_offset >= end_offset {
1924 return Ok(());
1925 }
1926
1927 while _next_ordinal_to_read < 1 {
1929 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1930 _next_ordinal_to_read += 1;
1931 next_offset += envelope_size;
1932 }
1933
1934 let next_out_of_line = decoder.next_out_of_line();
1935 let handles_before = decoder.remaining_handles();
1936 if let Some((inlined, num_bytes, num_handles)) =
1937 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1938 {
1939 let member_inline_size =
1940 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1941 if inlined != (member_inline_size <= 4) {
1942 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1943 }
1944 let inner_offset;
1945 let mut inner_depth = depth.clone();
1946 if inlined {
1947 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1948 inner_offset = next_offset;
1949 } else {
1950 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1951 inner_depth.increment()?;
1952 }
1953 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
1954 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1955 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1956 {
1957 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1958 }
1959 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1960 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1961 }
1962 }
1963
1964 next_offset += envelope_size;
1965 _next_ordinal_to_read += 1;
1966 if next_offset >= end_offset {
1967 return Ok(());
1968 }
1969
1970 while _next_ordinal_to_read < 2 {
1972 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1973 _next_ordinal_to_read += 1;
1974 next_offset += envelope_size;
1975 }
1976
1977 let next_out_of_line = decoder.next_out_of_line();
1978 let handles_before = decoder.remaining_handles();
1979 if let Some((inlined, num_bytes, num_handles)) =
1980 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1981 {
1982 let member_inline_size =
1983 <EmbeddedViewProperties as fidl::encoding::TypeMarker>::inline_size(
1984 decoder.context,
1985 );
1986 if inlined != (member_inline_size <= 4) {
1987 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1988 }
1989 let inner_offset;
1990 let mut inner_depth = depth.clone();
1991 if inlined {
1992 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1993 inner_offset = next_offset;
1994 } else {
1995 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1996 inner_depth.increment()?;
1997 }
1998 let val_ref = self
1999 .properties
2000 .get_or_insert_with(|| fidl::new_empty!(EmbeddedViewProperties, D));
2001 fidl::decode!(
2002 EmbeddedViewProperties,
2003 D,
2004 val_ref,
2005 decoder,
2006 inner_offset,
2007 inner_depth
2008 )?;
2009 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2010 {
2011 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2012 }
2013 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2014 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2015 }
2016 }
2017
2018 next_offset += envelope_size;
2019
2020 while next_offset < end_offset {
2022 _next_ordinal_to_read += 1;
2023 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2024 next_offset += envelope_size;
2025 }
2026
2027 Ok(())
2028 }
2029 }
2030
2031 impl PuppetSetEmbeddedViewPropertiesRequest {
2032 #[inline(always)]
2033 fn max_ordinal_present(&self) -> u64 {
2034 if let Some(_) = self.properties {
2035 return 2;
2036 }
2037 if let Some(_) = self.id {
2038 return 1;
2039 }
2040 0
2041 }
2042 }
2043
2044 impl fidl::encoding::ValueTypeMarker for PuppetSetEmbeddedViewPropertiesRequest {
2045 type Borrowed<'a> = &'a Self;
2046 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2047 value
2048 }
2049 }
2050
2051 unsafe impl fidl::encoding::TypeMarker for PuppetSetEmbeddedViewPropertiesRequest {
2052 type Owned = Self;
2053
2054 #[inline(always)]
2055 fn inline_align(_context: fidl::encoding::Context) -> usize {
2056 8
2057 }
2058
2059 #[inline(always)]
2060 fn inline_size(_context: fidl::encoding::Context) -> usize {
2061 16
2062 }
2063 }
2064
2065 unsafe impl<D: fidl::encoding::ResourceDialect>
2066 fidl::encoding::Encode<PuppetSetEmbeddedViewPropertiesRequest, D>
2067 for &PuppetSetEmbeddedViewPropertiesRequest
2068 {
2069 unsafe fn encode(
2070 self,
2071 encoder: &mut fidl::encoding::Encoder<'_, D>,
2072 offset: usize,
2073 mut depth: fidl::encoding::Depth,
2074 ) -> fidl::Result<()> {
2075 encoder.debug_check_bounds::<PuppetSetEmbeddedViewPropertiesRequest>(offset);
2076 let max_ordinal: u64 = self.max_ordinal_present();
2078 encoder.write_num(max_ordinal, offset);
2079 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2080 if max_ordinal == 0 {
2082 return Ok(());
2083 }
2084 depth.increment()?;
2085 let envelope_size = 8;
2086 let bytes_len = max_ordinal as usize * envelope_size;
2087 #[allow(unused_variables)]
2088 let offset = encoder.out_of_line_offset(bytes_len);
2089 let mut _prev_end_offset: usize = 0;
2090 if 1 > max_ordinal {
2091 return Ok(());
2092 }
2093
2094 let cur_offset: usize = (1 - 1) * envelope_size;
2097
2098 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2100
2101 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2106 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2107 encoder,
2108 offset + cur_offset,
2109 depth,
2110 )?;
2111
2112 _prev_end_offset = cur_offset + envelope_size;
2113 if 2 > max_ordinal {
2114 return Ok(());
2115 }
2116
2117 let cur_offset: usize = (2 - 1) * envelope_size;
2120
2121 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2123
2124 fidl::encoding::encode_in_envelope_optional::<EmbeddedViewProperties, D>(
2129 self.properties
2130 .as_ref()
2131 .map(<EmbeddedViewProperties as fidl::encoding::ValueTypeMarker>::borrow),
2132 encoder,
2133 offset + cur_offset,
2134 depth,
2135 )?;
2136
2137 _prev_end_offset = cur_offset + envelope_size;
2138
2139 Ok(())
2140 }
2141 }
2142
2143 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2144 for PuppetSetEmbeddedViewPropertiesRequest
2145 {
2146 #[inline(always)]
2147 fn new_empty() -> Self {
2148 Self::default()
2149 }
2150
2151 unsafe fn decode(
2152 &mut self,
2153 decoder: &mut fidl::encoding::Decoder<'_, D>,
2154 offset: usize,
2155 mut depth: fidl::encoding::Depth,
2156 ) -> fidl::Result<()> {
2157 decoder.debug_check_bounds::<Self>(offset);
2158 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2159 None => return Err(fidl::Error::NotNullable),
2160 Some(len) => len,
2161 };
2162 if len == 0 {
2164 return Ok(());
2165 };
2166 depth.increment()?;
2167 let envelope_size = 8;
2168 let bytes_len = len * envelope_size;
2169 let offset = decoder.out_of_line_offset(bytes_len)?;
2170 let mut _next_ordinal_to_read = 0;
2172 let mut next_offset = offset;
2173 let end_offset = offset + bytes_len;
2174 _next_ordinal_to_read += 1;
2175 if next_offset >= end_offset {
2176 return Ok(());
2177 }
2178
2179 while _next_ordinal_to_read < 1 {
2181 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2182 _next_ordinal_to_read += 1;
2183 next_offset += envelope_size;
2184 }
2185
2186 let next_out_of_line = decoder.next_out_of_line();
2187 let handles_before = decoder.remaining_handles();
2188 if let Some((inlined, num_bytes, num_handles)) =
2189 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2190 {
2191 let member_inline_size =
2192 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2193 if inlined != (member_inline_size <= 4) {
2194 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2195 }
2196 let inner_offset;
2197 let mut inner_depth = depth.clone();
2198 if inlined {
2199 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2200 inner_offset = next_offset;
2201 } else {
2202 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2203 inner_depth.increment()?;
2204 }
2205 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
2206 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2207 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2208 {
2209 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2210 }
2211 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2212 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2213 }
2214 }
2215
2216 next_offset += envelope_size;
2217 _next_ordinal_to_read += 1;
2218 if next_offset >= end_offset {
2219 return Ok(());
2220 }
2221
2222 while _next_ordinal_to_read < 2 {
2224 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2225 _next_ordinal_to_read += 1;
2226 next_offset += envelope_size;
2227 }
2228
2229 let next_out_of_line = decoder.next_out_of_line();
2230 let handles_before = decoder.remaining_handles();
2231 if let Some((inlined, num_bytes, num_handles)) =
2232 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2233 {
2234 let member_inline_size =
2235 <EmbeddedViewProperties as fidl::encoding::TypeMarker>::inline_size(
2236 decoder.context,
2237 );
2238 if inlined != (member_inline_size <= 4) {
2239 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2240 }
2241 let inner_offset;
2242 let mut inner_depth = depth.clone();
2243 if inlined {
2244 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2245 inner_offset = next_offset;
2246 } else {
2247 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2248 inner_depth.increment()?;
2249 }
2250 let val_ref = self
2251 .properties
2252 .get_or_insert_with(|| fidl::new_empty!(EmbeddedViewProperties, D));
2253 fidl::decode!(
2254 EmbeddedViewProperties,
2255 D,
2256 val_ref,
2257 decoder,
2258 inner_offset,
2259 inner_depth
2260 )?;
2261 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2262 {
2263 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2264 }
2265 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2266 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2267 }
2268 }
2269
2270 next_offset += envelope_size;
2271
2272 while next_offset < end_offset {
2274 _next_ordinal_to_read += 1;
2275 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2276 next_offset += envelope_size;
2277 }
2278
2279 Ok(())
2280 }
2281 }
2282
2283 impl PuppetSetEmbeddedViewPropertiesResponse {
2284 #[inline(always)]
2285 fn max_ordinal_present(&self) -> u64 {
2286 if let Some(_) = self.result {
2287 return 1;
2288 }
2289 0
2290 }
2291 }
2292
2293 impl fidl::encoding::ValueTypeMarker for PuppetSetEmbeddedViewPropertiesResponse {
2294 type Borrowed<'a> = &'a Self;
2295 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2296 value
2297 }
2298 }
2299
2300 unsafe impl fidl::encoding::TypeMarker for PuppetSetEmbeddedViewPropertiesResponse {
2301 type Owned = Self;
2302
2303 #[inline(always)]
2304 fn inline_align(_context: fidl::encoding::Context) -> usize {
2305 8
2306 }
2307
2308 #[inline(always)]
2309 fn inline_size(_context: fidl::encoding::Context) -> usize {
2310 16
2311 }
2312 }
2313
2314 unsafe impl<D: fidl::encoding::ResourceDialect>
2315 fidl::encoding::Encode<PuppetSetEmbeddedViewPropertiesResponse, D>
2316 for &PuppetSetEmbeddedViewPropertiesResponse
2317 {
2318 unsafe fn encode(
2319 self,
2320 encoder: &mut fidl::encoding::Encoder<'_, D>,
2321 offset: usize,
2322 mut depth: fidl::encoding::Depth,
2323 ) -> fidl::Result<()> {
2324 encoder.debug_check_bounds::<PuppetSetEmbeddedViewPropertiesResponse>(offset);
2325 let max_ordinal: u64 = self.max_ordinal_present();
2327 encoder.write_num(max_ordinal, offset);
2328 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2329 if max_ordinal == 0 {
2331 return Ok(());
2332 }
2333 depth.increment()?;
2334 let envelope_size = 8;
2335 let bytes_len = max_ordinal as usize * envelope_size;
2336 #[allow(unused_variables)]
2337 let offset = encoder.out_of_line_offset(bytes_len);
2338 let mut _prev_end_offset: usize = 0;
2339 if 1 > max_ordinal {
2340 return Ok(());
2341 }
2342
2343 let cur_offset: usize = (1 - 1) * envelope_size;
2346
2347 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2349
2350 fidl::encoding::encode_in_envelope_optional::<Result_, D>(
2355 self.result.as_ref().map(<Result_ as fidl::encoding::ValueTypeMarker>::borrow),
2356 encoder,
2357 offset + cur_offset,
2358 depth,
2359 )?;
2360
2361 _prev_end_offset = cur_offset + envelope_size;
2362
2363 Ok(())
2364 }
2365 }
2366
2367 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2368 for PuppetSetEmbeddedViewPropertiesResponse
2369 {
2370 #[inline(always)]
2371 fn new_empty() -> Self {
2372 Self::default()
2373 }
2374
2375 unsafe fn decode(
2376 &mut self,
2377 decoder: &mut fidl::encoding::Decoder<'_, D>,
2378 offset: usize,
2379 mut depth: fidl::encoding::Depth,
2380 ) -> fidl::Result<()> {
2381 decoder.debug_check_bounds::<Self>(offset);
2382 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2383 None => return Err(fidl::Error::NotNullable),
2384 Some(len) => len,
2385 };
2386 if len == 0 {
2388 return Ok(());
2389 };
2390 depth.increment()?;
2391 let envelope_size = 8;
2392 let bytes_len = len * envelope_size;
2393 let offset = decoder.out_of_line_offset(bytes_len)?;
2394 let mut _next_ordinal_to_read = 0;
2396 let mut next_offset = offset;
2397 let end_offset = offset + bytes_len;
2398 _next_ordinal_to_read += 1;
2399 if next_offset >= end_offset {
2400 return Ok(());
2401 }
2402
2403 while _next_ordinal_to_read < 1 {
2405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2406 _next_ordinal_to_read += 1;
2407 next_offset += envelope_size;
2408 }
2409
2410 let next_out_of_line = decoder.next_out_of_line();
2411 let handles_before = decoder.remaining_handles();
2412 if let Some((inlined, num_bytes, num_handles)) =
2413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2414 {
2415 let member_inline_size =
2416 <Result_ as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2417 if inlined != (member_inline_size <= 4) {
2418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2419 }
2420 let inner_offset;
2421 let mut inner_depth = depth.clone();
2422 if inlined {
2423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2424 inner_offset = next_offset;
2425 } else {
2426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2427 inner_depth.increment()?;
2428 }
2429 let val_ref = self.result.get_or_insert_with(|| fidl::new_empty!(Result_, D));
2430 fidl::decode!(Result_, D, val_ref, decoder, inner_offset, inner_depth)?;
2431 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2432 {
2433 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2434 }
2435 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2436 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2437 }
2438 }
2439
2440 next_offset += envelope_size;
2441
2442 while next_offset < end_offset {
2444 _next_ordinal_to_read += 1;
2445 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2446 next_offset += envelope_size;
2447 }
2448
2449 Ok(())
2450 }
2451 }
2452
2453 impl PuppetSetImagePropertiesRequest {
2454 #[inline(always)]
2455 fn max_ordinal_present(&self) -> u64 {
2456 if let Some(_) = self.properties {
2457 return 2;
2458 }
2459 if let Some(_) = self.id {
2460 return 1;
2461 }
2462 0
2463 }
2464 }
2465
2466 impl fidl::encoding::ValueTypeMarker for PuppetSetImagePropertiesRequest {
2467 type Borrowed<'a> = &'a Self;
2468 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2469 value
2470 }
2471 }
2472
2473 unsafe impl fidl::encoding::TypeMarker for PuppetSetImagePropertiesRequest {
2474 type Owned = Self;
2475
2476 #[inline(always)]
2477 fn inline_align(_context: fidl::encoding::Context) -> usize {
2478 8
2479 }
2480
2481 #[inline(always)]
2482 fn inline_size(_context: fidl::encoding::Context) -> usize {
2483 16
2484 }
2485 }
2486
2487 unsafe impl<D: fidl::encoding::ResourceDialect>
2488 fidl::encoding::Encode<PuppetSetImagePropertiesRequest, D>
2489 for &PuppetSetImagePropertiesRequest
2490 {
2491 unsafe fn encode(
2492 self,
2493 encoder: &mut fidl::encoding::Encoder<'_, D>,
2494 offset: usize,
2495 mut depth: fidl::encoding::Depth,
2496 ) -> fidl::Result<()> {
2497 encoder.debug_check_bounds::<PuppetSetImagePropertiesRequest>(offset);
2498 let max_ordinal: u64 = self.max_ordinal_present();
2500 encoder.write_num(max_ordinal, offset);
2501 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2502 if max_ordinal == 0 {
2504 return Ok(());
2505 }
2506 depth.increment()?;
2507 let envelope_size = 8;
2508 let bytes_len = max_ordinal as usize * envelope_size;
2509 #[allow(unused_variables)]
2510 let offset = encoder.out_of_line_offset(bytes_len);
2511 let mut _prev_end_offset: usize = 0;
2512 if 1 > max_ordinal {
2513 return Ok(());
2514 }
2515
2516 let cur_offset: usize = (1 - 1) * envelope_size;
2519
2520 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2522
2523 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2528 self.id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2529 encoder,
2530 offset + cur_offset,
2531 depth,
2532 )?;
2533
2534 _prev_end_offset = cur_offset + envelope_size;
2535 if 2 > max_ordinal {
2536 return Ok(());
2537 }
2538
2539 let cur_offset: usize = (2 - 1) * envelope_size;
2542
2543 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2545
2546 fidl::encoding::encode_in_envelope_optional::<ImageProperties, D>(
2551 self.properties
2552 .as_ref()
2553 .map(<ImageProperties as fidl::encoding::ValueTypeMarker>::borrow),
2554 encoder,
2555 offset + cur_offset,
2556 depth,
2557 )?;
2558
2559 _prev_end_offset = cur_offset + envelope_size;
2560
2561 Ok(())
2562 }
2563 }
2564
2565 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2566 for PuppetSetImagePropertiesRequest
2567 {
2568 #[inline(always)]
2569 fn new_empty() -> Self {
2570 Self::default()
2571 }
2572
2573 unsafe fn decode(
2574 &mut self,
2575 decoder: &mut fidl::encoding::Decoder<'_, D>,
2576 offset: usize,
2577 mut depth: fidl::encoding::Depth,
2578 ) -> fidl::Result<()> {
2579 decoder.debug_check_bounds::<Self>(offset);
2580 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2581 None => return Err(fidl::Error::NotNullable),
2582 Some(len) => len,
2583 };
2584 if len == 0 {
2586 return Ok(());
2587 };
2588 depth.increment()?;
2589 let envelope_size = 8;
2590 let bytes_len = len * envelope_size;
2591 let offset = decoder.out_of_line_offset(bytes_len)?;
2592 let mut _next_ordinal_to_read = 0;
2594 let mut next_offset = offset;
2595 let end_offset = offset + bytes_len;
2596 _next_ordinal_to_read += 1;
2597 if next_offset >= end_offset {
2598 return Ok(());
2599 }
2600
2601 while _next_ordinal_to_read < 1 {
2603 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2604 _next_ordinal_to_read += 1;
2605 next_offset += envelope_size;
2606 }
2607
2608 let next_out_of_line = decoder.next_out_of_line();
2609 let handles_before = decoder.remaining_handles();
2610 if let Some((inlined, num_bytes, num_handles)) =
2611 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2612 {
2613 let member_inline_size =
2614 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2615 if inlined != (member_inline_size <= 4) {
2616 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2617 }
2618 let inner_offset;
2619 let mut inner_depth = depth.clone();
2620 if inlined {
2621 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2622 inner_offset = next_offset;
2623 } else {
2624 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2625 inner_depth.increment()?;
2626 }
2627 let val_ref = self.id.get_or_insert_with(|| fidl::new_empty!(u64, D));
2628 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2629 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2630 {
2631 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2632 }
2633 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2634 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2635 }
2636 }
2637
2638 next_offset += envelope_size;
2639 _next_ordinal_to_read += 1;
2640 if next_offset >= end_offset {
2641 return Ok(());
2642 }
2643
2644 while _next_ordinal_to_read < 2 {
2646 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2647 _next_ordinal_to_read += 1;
2648 next_offset += envelope_size;
2649 }
2650
2651 let next_out_of_line = decoder.next_out_of_line();
2652 let handles_before = decoder.remaining_handles();
2653 if let Some((inlined, num_bytes, num_handles)) =
2654 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2655 {
2656 let member_inline_size =
2657 <ImageProperties as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2658 if inlined != (member_inline_size <= 4) {
2659 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2660 }
2661 let inner_offset;
2662 let mut inner_depth = depth.clone();
2663 if inlined {
2664 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2665 inner_offset = next_offset;
2666 } else {
2667 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2668 inner_depth.increment()?;
2669 }
2670 let val_ref =
2671 self.properties.get_or_insert_with(|| fidl::new_empty!(ImageProperties, D));
2672 fidl::decode!(ImageProperties, D, val_ref, decoder, inner_offset, inner_depth)?;
2673 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2674 {
2675 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2676 }
2677 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2678 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2679 }
2680 }
2681
2682 next_offset += envelope_size;
2683
2684 while next_offset < end_offset {
2686 _next_ordinal_to_read += 1;
2687 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2688 next_offset += envelope_size;
2689 }
2690
2691 Ok(())
2692 }
2693 }
2694
2695 impl PuppetSetImagePropertiesResponse {
2696 #[inline(always)]
2697 fn max_ordinal_present(&self) -> u64 {
2698 if let Some(_) = self.result {
2699 return 1;
2700 }
2701 0
2702 }
2703 }
2704
2705 impl fidl::encoding::ValueTypeMarker for PuppetSetImagePropertiesResponse {
2706 type Borrowed<'a> = &'a Self;
2707 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2708 value
2709 }
2710 }
2711
2712 unsafe impl fidl::encoding::TypeMarker for PuppetSetImagePropertiesResponse {
2713 type Owned = Self;
2714
2715 #[inline(always)]
2716 fn inline_align(_context: fidl::encoding::Context) -> usize {
2717 8
2718 }
2719
2720 #[inline(always)]
2721 fn inline_size(_context: fidl::encoding::Context) -> usize {
2722 16
2723 }
2724 }
2725
2726 unsafe impl<D: fidl::encoding::ResourceDialect>
2727 fidl::encoding::Encode<PuppetSetImagePropertiesResponse, D>
2728 for &PuppetSetImagePropertiesResponse
2729 {
2730 unsafe fn encode(
2731 self,
2732 encoder: &mut fidl::encoding::Encoder<'_, D>,
2733 offset: usize,
2734 mut depth: fidl::encoding::Depth,
2735 ) -> fidl::Result<()> {
2736 encoder.debug_check_bounds::<PuppetSetImagePropertiesResponse>(offset);
2737 let max_ordinal: u64 = self.max_ordinal_present();
2739 encoder.write_num(max_ordinal, offset);
2740 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2741 if max_ordinal == 0 {
2743 return Ok(());
2744 }
2745 depth.increment()?;
2746 let envelope_size = 8;
2747 let bytes_len = max_ordinal as usize * envelope_size;
2748 #[allow(unused_variables)]
2749 let offset = encoder.out_of_line_offset(bytes_len);
2750 let mut _prev_end_offset: usize = 0;
2751 if 1 > max_ordinal {
2752 return Ok(());
2753 }
2754
2755 let cur_offset: usize = (1 - 1) * envelope_size;
2758
2759 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2761
2762 fidl::encoding::encode_in_envelope_optional::<Result_, D>(
2767 self.result.as_ref().map(<Result_ as fidl::encoding::ValueTypeMarker>::borrow),
2768 encoder,
2769 offset + cur_offset,
2770 depth,
2771 )?;
2772
2773 _prev_end_offset = cur_offset + envelope_size;
2774
2775 Ok(())
2776 }
2777 }
2778
2779 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2780 for PuppetSetImagePropertiesResponse
2781 {
2782 #[inline(always)]
2783 fn new_empty() -> Self {
2784 Self::default()
2785 }
2786
2787 unsafe fn decode(
2788 &mut self,
2789 decoder: &mut fidl::encoding::Decoder<'_, D>,
2790 offset: usize,
2791 mut depth: fidl::encoding::Depth,
2792 ) -> fidl::Result<()> {
2793 decoder.debug_check_bounds::<Self>(offset);
2794 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
2795 None => return Err(fidl::Error::NotNullable),
2796 Some(len) => len,
2797 };
2798 if len == 0 {
2800 return Ok(());
2801 };
2802 depth.increment()?;
2803 let envelope_size = 8;
2804 let bytes_len = len * envelope_size;
2805 let offset = decoder.out_of_line_offset(bytes_len)?;
2806 let mut _next_ordinal_to_read = 0;
2808 let mut next_offset = offset;
2809 let end_offset = offset + bytes_len;
2810 _next_ordinal_to_read += 1;
2811 if next_offset >= end_offset {
2812 return Ok(());
2813 }
2814
2815 while _next_ordinal_to_read < 1 {
2817 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2818 _next_ordinal_to_read += 1;
2819 next_offset += envelope_size;
2820 }
2821
2822 let next_out_of_line = decoder.next_out_of_line();
2823 let handles_before = decoder.remaining_handles();
2824 if let Some((inlined, num_bytes, num_handles)) =
2825 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2826 {
2827 let member_inline_size =
2828 <Result_ as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2829 if inlined != (member_inline_size <= 4) {
2830 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2831 }
2832 let inner_offset;
2833 let mut inner_depth = depth.clone();
2834 if inlined {
2835 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2836 inner_offset = next_offset;
2837 } else {
2838 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2839 inner_depth.increment()?;
2840 }
2841 let val_ref = self.result.get_or_insert_with(|| fidl::new_empty!(Result_, D));
2842 fidl::decode!(Result_, D, val_ref, decoder, inner_offset, inner_depth)?;
2843 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2844 {
2845 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2846 }
2847 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2848 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2849 }
2850 }
2851
2852 next_offset += envelope_size;
2853
2854 while next_offset < end_offset {
2856 _next_ordinal_to_read += 1;
2857 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2858 next_offset += envelope_size;
2859 }
2860
2861 Ok(())
2862 }
2863 }
2864}